You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by xx...@apache.org on 2022/08/01 08:07:24 UTC

[kylin] branch kylin5 created (now d40fc16385)

This is an automated email from the ASF dual-hosted git repository.

xxyu pushed a change to branch kylin5
in repository https://gitbox.apache.org/repos/asf/kylin.git


      at d40fc16385 KYLIN-5217 Upgrade metadata and engine

This branch includes the following new commits:

     new d40fc16385 KYLIN-5217 Upgrade metadata and engine

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[kylin] 01/01: KYLIN-5217 Upgrade metadata and engine

Posted by xx...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

xxyu pushed a commit to branch kylin5
in repository https://gitbox.apache.org/repos/asf/kylin.git

commit d40fc16385e515ca79e05cdece85354921cf7a19
Author: XiaoxiangYu <xx...@apache.org>
AuthorDate: Mon Aug 1 15:48:53 2022 +0800

    KYLIN-5217 Upgrade metadata and engine
    
    codebase of Kylin 5.0
    
    Co-authored-by: xm-c <57...@users.noreply.github.com>
    Co-authored-by: Qian Xia <la...@gmail.com>
    Co-authored-by: Pengfei Zhan <pe...@kyligence.io>
    Co-authored-by: lxian2shell <lx...@gmail.com>
    Co-authored-by: bingfeng.guo <54...@qq.com>
    Co-authored-by: fenghuang <81...@users.noreply.github.com>
    Co-authored-by: Zhixiong Chen <ch...@apache.org>
    Co-authored-by: Enwei Jiao <en...@kyligence.io>
    Co-authored-by: Junqing Cai <ca...@163.com>
    Co-authored-by: WeiHong Lou <we...@kyligence.io>
    Co-authored-by: jlf <12...@qq.com>
    Co-authored-by: xifengyang <xi...@kyligence.io>
    Co-authored-by: qiangsheng.ye <qi...@kyligence.io>
    Co-authored-by: Yu Gan <gy...@gmail.com>
    Co-authored-by: chenliang.lu <31...@users.noreply.github.com>
    Co-authored-by: Zhiyu Zeng <le...@gmail.com>
    Co-authored-by: mingxiang.zhao <mz...@gmail.com>
    Co-authored-by: yang zhang <84...@qq.com>
    Co-authored-by: JiaZhi Zhou <ji...@kyligence.io>
    Co-authored-by: Zhiyu Zeng <zh...@kyligence.io>
    Co-authored-by: ChunYan Huang <qi...@163.com>
    Co-authored-by: Rongchuan Jin <wo...@gmail.com>
    Co-authored-by: wangrupeng <wa...@live.cn>
    Co-authored-by: Mingming Ge <mi...@kyligence.io>
    Co-authored-by: xinbei <xi...@dartmouth.edu>
    Co-authored-by: ffbh <25...@qq.com>
    Co-authored-by: Hao Cheng <ha...@kyligence.io>
    Co-authored-by: luoping.zhang <lu...@kyligence.io>
    Co-authored-by: binbin.zheng(郑斌斌) <bi...@kyligence.io>
    Co-authored-by: xifeng yang <xi...@hotmail.com>
    Co-authored-by: xifeng yang <12...@users.noreply.github.com>
    Co-authored-by: Shuai li <lo...@live.cn>
    Co-authored-by: Liang.Hua <36...@users.noreply.github.com>
    Co-authored-by: Jiawei Li <ji...@kyligence.io>
    Co-authored-by: songzhxlh-max <59...@users.noreply.github.com>
    Co-authored-by: chang.chen <ch...@kylingence.io>
    Co-authored-by: Min Xu <57...@users.noreply.github.com>
    Co-authored-by: LiuNeng <13...@qq.com>
    Co-authored-by: zheniantoushipashi <su...@gmail.com>
    Co-authored-by: zhoujiazhi <25...@qq.com>
    Co-authored-by: XuLong-Ma <86...@users.noreply.github.com>
    Co-authored-by: Ning Wang <pa...@qq.com>
    Co-authored-by: Lu Cao <wh...@gmail.com>
    Co-authored-by: fanshu.kong <17...@qq.com>
    Co-authored-by: xuejunnan <77...@qq.com>
    Co-authored-by: Yi <42...@users.noreply.github.com>
    Co-authored-by: Pan Wang <15...@users.noreply.github.com>
    Co-authored-by: shaoxiong.zhan <sh...@kyligence.io>
    Co-authored-by: jiale.he <ji...@kyligennce.io>
    Co-authored-by: binbin zheng <bi...@kyligence.io>
---
 .gitconfig                                         |      3 +
 .gitignore                                         |    140 +
 LICENSE                                            |    203 +
 NOTICE                                             |      2 +
 README.md                                          |     30 +
 build/apache_release/build.sh                      |     38 +
 build/apache_release/compress.sh                   |    103 +
 build/apache_release/download-grafana.sh           |     52 +
 build/apache_release/download-influxdb.sh          |     47 +
 build/apache_release/download-postgresql.sh        |     72 +
 build/apache_release/download-spark.sh             |     73 +
 build/apache_release/functions.sh                  |     78 +
 build/apache_release/package.sh                    |     78 +
 build/apache_release/prepare-libs.sh               |     30 +
 build/apache_release/prepare.sh                    |     54 +
 build/apache_release/release.sh                    |     77 +
 build/bin/admin-tool.sh                            |     56 +
 build/bin/check-env.sh                             |     97 +
 build/bin/diag.sh                                  |    132 +
 build/bin/get-properties.sh                        |     57 +
 build/bin/grafana.sh                               |    142 +
 build/bin/guardian.sh                              |    153 +
 build/bin/kylin.sh                                 |     30 +
 build/bin/metastore.sh                             |    174 +
 build/bin/rollback.sh                              |     83 +
 build/bin/sample.sh                                |    157 +
 build/bin/sql-extract-tool.sh                      |     97 +
 build/bin/upgrade.sh                               |    321 +
 build/conf/kylin-guardian-log4j.xml                |     24 +
 build/conf/kylin-server-log4j.xml                  |     69 +
 build/conf/kylin-tools-diag-log4j.xml              |     26 +
 build/conf/kylin-tools-log4j.xml                   |     20 +
 build/conf/kylin.properties                        |     27 +
 build/conf/setenv.sh                               |     36 +
 build/conf/spark-appmaster-log4j.xml               |     13 +
 build/conf/spark-driver-log4j.xml                  |     24 +
 build/conf/spark-executor-cloud-log4j.properties   |     46 +
 build/conf/spark-executor-cloud-log4j.xml          |     14 +
 build/conf/spark-executor-log4j.xml                |     26 +
 build/conf/spark-streaming-driver-log4j.xml        |     25 +
 build/conf/spark-streaming-executor-log4j.xml      |     28 +
 .../postgresql10-10.7-1PGDG.rhel6.x86_64.rpm       |    Bin 0 -> 1723920 bytes
 .../postgresql10-10.7-1PGDG.rhel7.x86_64.rpm       |    Bin 0 -> 1652980 bytes
 .../postgresql10-10.8-1PGDG.rhel8.x86_64.rpm       |    Bin 0 -> 1698484 bytes
 .../postgresql10-libs-10.7-1PGDG.rhel6.x86_64.rpm  |    Bin 0 -> 333124 bytes
 .../postgresql10-libs-10.7-1PGDG.rhel7.x86_64.rpm  |    Bin 0 -> 362956 bytes
 .../postgresql10-libs-10.8-1PGDG.rhel8.x86_64.rpm  |    Bin 0 -> 386556 bytes
 ...postgresql10-server-10.7-1PGDG.rhel6.x86_64.rpm |    Bin 0 -> 5275184 bytes
 ...postgresql10-server-10.7-1PGDG.rhel7.x86_64.rpm |    Bin 0 -> 4760172 bytes
 ...postgresql10-server-10.8-1PGDG.rhel8.x86_64.rpm |    Bin 0 -> 4913812 bytes
 build/sample_project/template/UUID                 |    Bin 0 -> 38 bytes
 .../template/_global/project/learn_kylin.json      |     35 +
 .../2d07e878-da28-a203-2d2c-185b4c6656f1.json      |     12 +
 .../2d07e878-da28-a203-2d2c-185b4c6656f1.json      |    111 +
 .../2d07e878-da28-a203-2d2c-185b4c6656f1.json      |    408 +
 .../template/learn_kylin/table/SSB.CUSTOMER.json   |     63 +
 .../template/learn_kylin/table/SSB.DATES.json      |    108 +
 .../template/learn_kylin/table/SSB.PART.json       |     68 +
 .../learn_kylin/table/SSB.P_LINEORDER.json         |    113 +
 .../template/learn_kylin/table/SSB.SUPPLIER.json   |     58 +
 ...8029-44c2-8c71-1cb0735a7941-c000.snappy.parquet |    Bin 0 -> 12032456 bytes
 ...3452-4085-8488-b0767c9b1c60-c000.snappy.parquet |    Bin 0 -> 6554 bytes
 ...7aea-4019-afea-014e7318d319-c000.snappy.parquet |    Bin 0 -> 646 bytes
 ...b4bf-4186-874a-a9898502a51e-c000.snappy.parquet |    Bin 0 -> 16513 bytes
 ...abb1-4d7a-a16a-eb830e3e0996-c000.snappy.parquet |    Bin 0 -> 34146 bytes
 ...5f7f-4297-a666-902609272ba3-c000.snappy.parquet |    Bin 0 -> 1546119 bytes
 ...0fba-4456-8d58-68e45ebf4848-c000.snappy.parquet |    Bin 0 -> 43293 bytes
 ...9646-42dd-91de-7a42a01f5ec9-c000.snappy.parquet |    Bin 0 -> 3324 bytes
 build/sbin/bootstrap.sh                            |    420 +
 build/sbin/check-1000-kerberos.sh                  |     33 +
 build/sbin/check-1100-os-commands.sh               |     36 +
 build/sbin/check-1200-hadoop-conf.sh               |    100 +
 build/sbin/check-1300-hdfs-working-dir.sh          |     49 +
 build/sbin/check-1400-java.sh                      |     30 +
 build/sbin/check-1401-kylin-config.sh              |     51 +
 build/sbin/check-1500-ports.sh                     |     32 +
 build/sbin/check-1501-driver-host.sh               |     95 +
 build/sbin/check-1600-spark-dir.sh                 |     86 +
 build/sbin/check-1601-spark-queue.sh               |    119 +
 build/sbin/check-1700-spark-kystorage.sh           |    132 +
 build/sbin/check-1800-metadata-access.sh           |     31 +
 build/sbin/check-1900-influxdb.sh                  |     65 +
 build/sbin/check-2000-zookeeper-role.sh            |     34 +
 build/sbin/check-2200-query-history-access.sh      |     35 +
 build/sbin/check-3000-clickhouse.sh                |     53 +
 build/sbin/do-check-and-prepare-spark.sh           |    183 +
 build/sbin/find-working-dir.sh                     |     39 +
 build/sbin/guardian-get-fgc-time.sh                |     35 +
 build/sbin/guardian-get-process-status.sh          |     45 +
 build/sbin/header.sh                               |    116 +
 build/sbin/init-kerberos.sh                        |    140 +
 build/sbin/kill-process-tree.sh                    |     56 +
 build/sbin/load-zookeeper-config.sh                |     34 +
 build/sbin/log-rotate-cron.sh                      |     51 +
 build/sbin/prepare-hadoop-conf-dir.sh              |    248 +
 build/sbin/prepare-hadoop-env.sh                   |    176 +
 build/sbin/replace-jars-under-spark.sh             |    255 +
 build/sbin/rotate-logs.sh                          |     89 +
 build/sbin/setenv.sh                               |     77 +
 build/sbin/spark-test.sh                           |    265 +
 build/scripts/download-spark.sh                    |     73 +
 build/scripts/functions.sh                         |     78 +
 build/spark/LICENSE                                |    566 +
 build/spark/NOTICE                                 |   1530 +
 build/spark/README.md                              |    109 +
 build/spark/RELEASE                                |      2 +
 build/spark/bin/beeline                            |     32 +
 build/spark/bin/beeline.cmd                        |     22 +
 build/spark/bin/docker-image-tool.sh               |    336 +
 build/spark/bin/find-spark-home                    |     41 +
 build/spark/bin/find-spark-home.cmd                |     60 +
 build/spark/bin/load-spark-env.cmd                 |     62 +
 build/spark/bin/load-spark-env.sh                  |     65 +
 build/spark/bin/pyspark                            |     68 +
 build/spark/bin/pyspark.cmd                        |     25 +
 build/spark/bin/pyspark2.cmd                       |     38 +
 build/spark/bin/run-example                        |     25 +
 build/spark/bin/run-example.cmd                    |     27 +
 build/spark/bin/spark-class                        |    111 +
 build/spark/bin/spark-class.cmd                    |     25 +
 build/spark/bin/spark-class2.cmd                   |     77 +
 build/spark/bin/spark-shell                        |     98 +
 build/spark/bin/spark-shell.cmd                    |     25 +
 build/spark/bin/spark-shell2.cmd                   |     43 +
 build/spark/bin/spark-sql                          |     25 +
 build/spark/bin/spark-sql.cmd                      |     25 +
 build/spark/bin/spark-sql2.cmd                     |     25 +
 build/spark/bin/spark-submit                       |     27 +
 build/spark/bin/spark-submit.cmd                   |     25 +
 build/spark/bin/spark-submit2.cmd                  |     27 +
 build/spark/bin/sparkR                             |     26 +
 build/spark/bin/sparkR.cmd                         |     25 +
 build/spark/bin/sparkR2.cmd                        |     25 +
 build/spark/conf/fairscheduler.xml.template        |     31 +
 build/spark/conf/log4j.properties.template         |     48 +
 build/spark/conf/metrics.properties.template       |    210 +
 build/spark/conf/spark-defaults.conf.template      |     27 +
 build/spark/conf/spark-env.sh.template             |     73 +
 build/spark/conf/workers.template                  |     19 +
 .../spark/kubernetes/dockerfiles/spark/Dockerfile  |     63 +
 .../dockerfiles/spark/bindings/R/Dockerfile        |     42 +
 .../dockerfiles/spark/bindings/python/Dockerfile   |     41 +
 build/spark/kubernetes/dockerfiles/spark/decom.sh  |     35 +
 .../kubernetes/dockerfiles/spark/entrypoint.sh     |    105 +
 build/spark/kubernetes/tests/autoscale.py          |     49 +
 build/spark/kubernetes/tests/decommissioning.py    |     55 +
 .../kubernetes/tests/decommissioning_cleanup.py    |     59 +
 .../spark/kubernetes/tests/py_container_checks.py  |     32 +
 build/spark/kubernetes/tests/pyfiles.py            |     43 +
 .../kubernetes/tests/python_executable_check.py    |     40 +
 .../spark/kubernetes/tests/worker_memory_check.py  |     45 +
 build/spark/licenses/LICENSE-AnchorJS.txt          |     21 +
 build/spark/licenses/LICENSE-CC0.txt               |    121 +
 build/spark/licenses/LICENSE-JLargeArrays.txt      |     23 +
 build/spark/licenses/LICENSE-JTransforms.txt       |     23 +
 build/spark/licenses/LICENSE-antlr.txt             |      8 +
 build/spark/licenses/LICENSE-arpack.txt            |      8 +
 build/spark/licenses/LICENSE-automaton.txt         |     24 +
 build/spark/licenses/LICENSE-blas.txt              |     25 +
 build/spark/licenses/LICENSE-bootstrap.txt         |     22 +
 build/spark/licenses/LICENSE-cloudpickle.txt       |     28 +
 build/spark/licenses/LICENSE-d3.min.js.txt         |     26 +
 build/spark/licenses/LICENSE-dagre-d3.txt          |     19 +
 build/spark/licenses/LICENSE-datatables.txt        |      7 +
 build/spark/licenses/LICENSE-dnsjava.txt           |     24 +
 build/spark/licenses/LICENSE-f2j.txt               |      8 +
 build/spark/licenses/LICENSE-graphlib-dot.txt      |     19 +
 .../licenses/LICENSE-istack-commons-runtime.txt    |     11 +
 .../spark/licenses/LICENSE-jakarta-annotation-api  |    277 +
 build/spark/licenses/LICENSE-jakarta-ws-rs-api     |    277 +
 .../licenses/LICENSE-jakarta.activation-api.txt    |     11 +
 .../licenses/LICENSE-jakarta.xml.bind-api.txt      |     11 +
 build/spark/licenses/LICENSE-janino.txt            |     31 +
 build/spark/licenses/LICENSE-javassist.html        |    373 +
 .../LICENSE-javax-transaction-transaction-api.txt  |    119 +
 build/spark/licenses/LICENSE-javolution.txt        |     27 +
 build/spark/licenses/LICENSE-jaxb-runtime.txt      |     11 +
 build/spark/licenses/LICENSE-jline.txt             |     32 +
 build/spark/licenses/LICENSE-jodd.txt              |     24 +
 build/spark/licenses/LICENSE-join.txt              |     30 +
 build/spark/licenses/LICENSE-jquery.txt            |     20 +
 build/spark/licenses/LICENSE-json-formatter.txt    |      6 +
 build/spark/licenses/LICENSE-jsp-api.txt           |    759 +
 build/spark/licenses/LICENSE-kryo.txt              |     10 +
 build/spark/licenses/LICENSE-leveldbjni.txt        |     27 +
 build/spark/licenses/LICENSE-machinist.txt         |     19 +
 .../spark/licenses/LICENSE-matchMedia-polyfill.txt |      1 +
 build/spark/licenses/LICENSE-minlog.txt            |     10 +
 build/spark/licenses/LICENSE-modernizr.txt         |     21 +
 build/spark/licenses/LICENSE-mustache.txt          |     11 +
 build/spark/licenses/LICENSE-netlib.txt            |     49 +
 build/spark/licenses/LICENSE-paranamer.txt         |     28 +
 build/spark/licenses/LICENSE-pmml-model.txt        |     10 +
 build/spark/licenses/LICENSE-protobuf.txt          |     42 +
 build/spark/licenses/LICENSE-py4j.txt              |     27 +
 build/spark/licenses/LICENSE-pyrolite.txt          |     28 +
 build/spark/licenses/LICENSE-re2j.txt              |     32 +
 build/spark/licenses/LICENSE-reflectasm.txt        |     10 +
 build/spark/licenses/LICENSE-respond.txt           |     22 +
 build/spark/licenses/LICENSE-sbt-launch-lib.txt    |     26 +
 build/spark/licenses/LICENSE-scala.txt             |     30 +
 build/spark/licenses/LICENSE-scopt.txt             |      9 +
 build/spark/licenses/LICENSE-slf4j.txt             |     21 +
 build/spark/licenses/LICENSE-sorttable.js.txt      |     16 +
 build/spark/licenses/LICENSE-spire.txt             |     19 +
 build/spark/licenses/LICENSE-vis-timeline.txt      |     22 +
 build/spark/licenses/LICENSE-xmlenc.txt            |     27 +
 build/spark/licenses/LICENSE-zstd-jni.txt          |     26 +
 build/spark/licenses/LICENSE-zstd.txt              |     30 +
 build/spark/python/.coveragerc                     |     21 +
 build/spark/python/.gitignore                      |      5 +
 build/spark/python/MANIFEST.in                     |     26 +
 build/spark/python/README.md                       |     32 +
 build/spark/python/docs/Makefile                   |     35 +
 build/spark/python/docs/make.bat                   |     23 +
 build/spark/python/docs/make2.bat                  |     51 +
 .../spark/python/docs/source/_static/copybutton.js |     66 +
 .../python/docs/source/_static/css/pyspark.css     |     94 +
 .../docs/source/_templates/autosummary/class.rst   |     38 +
 .../_templates/autosummary/class_with_docs.rst     |     79 +
 build/spark/python/docs/source/conf.py             |    404 +
 .../docs/source/development/contributing.rst       |    236 +
 .../python/docs/source/development/debugging.rst   |    280 +
 .../spark/python/docs/source/development/index.rst |     29 +
 .../python/docs/source/development/setting_ide.rst |     62 +
 .../python/docs/source/development/testing.rst     |     57 +
 .../python/docs/source/getting_started/index.rst   |     40 +
 .../python/docs/source/getting_started/install.rst |    180 +
 .../source/getting_started/quickstart_df.ipynb     |   1177 +
 .../source/getting_started/quickstart_ps.ipynb     |  14489 +
 build/spark/python/docs/source/index.rst           |     76 +
 .../python/docs/source/migration_guide/index.rst   |     50 +
 .../source/migration_guide/koalas_to_pyspark.rst   |     36 +
 .../migration_guide/pyspark_1.0_1.2_to_1.3.rst     |     23 +
 .../source/migration_guide/pyspark_1.4_to_1.5.rst  |     25 +
 .../source/migration_guide/pyspark_2.2_to_2.3.rst  |     30 +
 .../pyspark_2.3.0_to_2.3.1_above.rst               |     23 +
 .../source/migration_guide/pyspark_2.3_to_2.4.rst  |     23 +
 .../source/migration_guide/pyspark_2.4_to_3.0.rst  |     44 +
 .../source/migration_guide/pyspark_3.1_to_3.2.rst  |     31 +
 build/spark/python/docs/source/reference/index.rst |     35 +
 .../python/docs/source/reference/pyspark.ml.rst    |    363 +
 .../python/docs/source/reference/pyspark.mllib.rst |    254 +
 .../source/reference/pyspark.pandas/extensions.rst |     39 +
 .../docs/source/reference/pyspark.pandas/frame.rst |    338 +
 .../reference/pyspark.pandas/general_functions.rst |     67 +
 .../source/reference/pyspark.pandas/groupby.rst    |    106 +
 .../docs/source/reference/pyspark.pandas/index.rst |     36 +
 .../source/reference/pyspark.pandas/indexing.rst   |    386 +
 .../docs/source/reference/pyspark.pandas/io.rst    |    121 +
 .../docs/source/reference/pyspark.pandas/ml.rst    |     42 +
 .../source/reference/pyspark.pandas/series.rst     |    478 +
 .../source/reference/pyspark.pandas/window.rst     |     49 +
 .../docs/source/reference/pyspark.resource.rst     |     38 +
 .../spark/python/docs/source/reference/pyspark.rst |    284 +
 .../python/docs/source/reference/pyspark.sql.rst   |    634 +
 .../python/docs/source/reference/pyspark.ss.rst    |     90 +
 .../docs/source/reference/pyspark.streaming.rst    |    130 +
 .../python/docs/source/user_guide/arrow_pandas.rst |     24 +
 .../spark/python/docs/source/user_guide/index.rst  |     40 +
 .../user_guide/pandas_on_spark/best_practices.rst  |    331 +
 .../docs/source/user_guide/pandas_on_spark/faq.rst |     57 +
 .../user_guide/pandas_on_spark/from_to_dbms.rst    |    125 +
 .../source/user_guide/pandas_on_spark/index.rst    |     33 +
 .../source/user_guide/pandas_on_spark/options.rst  |    294 +
 .../user_guide/pandas_on_spark/pandas_pyspark.rst  |    136 +
 .../user_guide/pandas_on_spark/transform_apply.rst |    139 +
 .../user_guide/pandas_on_spark/typehints.rst       |    154 +
 .../source/user_guide/pandas_on_spark/types.rst    |    246 +
 .../docs/source/user_guide/python_packaging.rst    |    253 +
 .../docs/source/user_guide/sql/arrow_pandas.rst    |    421 +
 .../python/docs/source/user_guide/sql/index.rst    |     27 +
 build/spark/python/lib/PY4J_LICENSE.txt            |     27 +
 build/spark/python/lib/py4j-0.10.9.2-src.zip       |    Bin 0 -> 41839 bytes
 build/spark/python/lib/pyspark.zip                 |    Bin 0 -> 1517553 bytes
 build/spark/python/mypy.ini                        |    158 +
 build/spark/python/pylintrc                        |    404 +
 build/spark/python/pyspark/__init__.py             |    129 +
 build/spark/python/pyspark/__init__.pyi            |     77 +
 build/spark/python/pyspark/_globals.py             |     70 +
 build/spark/python/pyspark/_typing.pyi             |     33 +
 build/spark/python/pyspark/accumulators.py         |    303 +
 build/spark/python/pyspark/accumulators.pyi        |     73 +
 build/spark/python/pyspark/broadcast.py            |    209 +
 build/spark/python/pyspark/broadcast.pyi           |     48 +
 build/spark/python/pyspark/cloudpickle/__init__.py |     11 +
 .../python/pyspark/cloudpickle/cloudpickle.py      |    842 +
 .../python/pyspark/cloudpickle/cloudpickle_fast.py |    770 +
 build/spark/python/pyspark/cloudpickle/compat.py   |     13 +
 build/spark/python/pyspark/conf.py                 |    231 +
 build/spark/python/pyspark/conf.pyi                |     44 +
 build/spark/python/pyspark/context.py              |   1289 +
 build/spark/python/pyspark/context.pyi             |    194 +
 build/spark/python/pyspark/daemon.py               |    211 +
 build/spark/python/pyspark/files.py                |     58 +
 build/spark/python/pyspark/files.pyi               |     24 +
 build/spark/python/pyspark/find_spark_home.py      |     86 +
 build/spark/python/pyspark/install.py              |    179 +
 build/spark/python/pyspark/java_gateway.py         |    237 +
 build/spark/python/pyspark/join.py                 |    113 +
 build/spark/python/pyspark/ml/__init__.py          |     33 +
 build/spark/python/pyspark/ml/_typing.pyi          |     76 +
 build/spark/python/pyspark/ml/base.py              |    367 +
 build/spark/python/pyspark/ml/base.pyi             |    107 +
 build/spark/python/pyspark/ml/classification.py    |   3575 +
 build/spark/python/pyspark/ml/classification.pyi   |    944 +
 build/spark/python/pyspark/ml/clustering.py        |   1853 +
 build/spark/python/pyspark/ml/clustering.pyi       |    437 +
 build/spark/python/pyspark/ml/common.py            |    133 +
 build/spark/python/pyspark/ml/common.pyi           |     26 +
 build/spark/python/pyspark/ml/evaluation.py        |    949 +
 build/spark/python/pyspark/ml/evaluation.pyi       |    283 +
 build/spark/python/pyspark/ml/feature.py           |   6032 +
 build/spark/python/pyspark/ml/feature.pyi          |   1623 +
 build/spark/python/pyspark/ml/fpm.py               |    486 +
 build/spark/python/pyspark/ml/fpm.pyi              |    109 +
 build/spark/python/pyspark/ml/functions.py         |    130 +
 build/spark/python/pyspark/ml/functions.pyi        |     24 +
 build/spark/python/pyspark/ml/image.py             |    261 +
 build/spark/python/pyspark/ml/image.pyi            |     40 +
 build/spark/python/pyspark/ml/linalg/__init__.py   |   1200 +
 build/spark/python/pyspark/ml/linalg/__init__.pyi  |    251 +
 build/spark/python/pyspark/ml/param/__init__.py    |    560 +
 build/spark/python/pyspark/ml/param/__init__.pyi   |     96 +
 .../pyspark/ml/param/_shared_params_code_gen.py    |    179 +
 .../pyspark/ml/param/_shared_params_code_gen.pyi   |     19 +
 build/spark/python/pyspark/ml/param/shared.py      |    617 +
 build/spark/python/pyspark/ml/param/shared.pyi     |    192 +
 build/spark/python/pyspark/ml/pipeline.py          |    408 +
 build/spark/python/pyspark/ml/pipeline.pyi         |     97 +
 build/spark/python/pyspark/ml/recommendation.py    |    649 +
 build/spark/python/pyspark/ml/recommendation.pyi   |    152 +
 build/spark/python/pyspark/ml/regression.py        |   2773 +
 build/spark/python/pyspark/ml/regression.pyi       |    825 +
 build/spark/python/pyspark/ml/stat.py              |    495 +
 build/spark/python/pyspark/ml/stat.pyi             |     77 +
 build/spark/python/pyspark/ml/tests/__init__.py    |     16 +
 .../python/pyspark/ml/tests/test_algorithms.py     |    352 +
 build/spark/python/pyspark/ml/tests/test_base.py   |     90 +
 .../python/pyspark/ml/tests/test_evaluation.py     |     69 +
 .../spark/python/pyspark/ml/tests/test_feature.py  |    311 +
 build/spark/python/pyspark/ml/tests/test_image.py  |     76 +
 build/spark/python/pyspark/ml/tests/test_linalg.py |    388 +
 build/spark/python/pyspark/ml/tests/test_param.py  |    394 +
 .../python/pyspark/ml/tests/test_persistence.py    |    473 +
 .../spark/python/pyspark/ml/tests/test_pipeline.py |     69 +
 build/spark/python/pyspark/ml/tests/test_stat.py   |     50 +
 .../pyspark/ml/tests/test_training_summary.py      |    452 +
 build/spark/python/pyspark/ml/tests/test_tuning.py |    949 +
 build/spark/python/pyspark/ml/tests/test_util.py   |     84 +
 .../spark/python/pyspark/ml/tests/test_wrapper.py  |    129 +
 build/spark/python/pyspark/ml/tree.py              |    356 +
 build/spark/python/pyspark/ml/tree.pyi             |    112 +
 build/spark/python/pyspark/ml/tuning.py            |   1475 +
 build/spark/python/pyspark/ml/tuning.pyi           |    225 +
 build/spark/python/pyspark/ml/util.py              |    667 +
 build/spark/python/pyspark/ml/util.pyi             |    136 +
 build/spark/python/pyspark/ml/wrapper.py           |    416 +
 build/spark/python/pyspark/ml/wrapper.pyi          |     48 +
 build/spark/python/pyspark/mllib/__init__.py       |     33 +
 build/spark/python/pyspark/mllib/_typing.pyi       |     23 +
 build/spark/python/pyspark/mllib/classification.py |    813 +
 .../spark/python/pyspark/mllib/classification.pyi  |    151 +
 build/spark/python/pyspark/mllib/clustering.py     |   1152 +
 build/spark/python/pyspark/mllib/clustering.pyi    |    198 +
 build/spark/python/pyspark/mllib/common.py         |    158 +
 build/spark/python/pyspark/mllib/common.pyi        |     35 +
 build/spark/python/pyspark/mllib/evaluation.py     |    660 +
 build/spark/python/pyspark/mllib/evaluation.pyi    |     94 +
 build/spark/python/pyspark/mllib/feature.py        |    954 +
 build/spark/python/pyspark/mllib/feature.pyi       |    167 +
 build/spark/python/pyspark/mllib/fpm.py            |    215 +
 build/spark/python/pyspark/mllib/fpm.pyi           |     57 +
 .../spark/python/pyspark/mllib/linalg/__init__.py  |   1444 +
 .../spark/python/pyspark/mllib/linalg/__init__.pyi |    286 +
 .../python/pyspark/mllib/linalg/distributed.py     |   1596 +
 .../python/pyspark/mllib/linalg/distributed.pyi    |    151 +
 build/spark/python/pyspark/mllib/random.py         |    599 +
 build/spark/python/pyspark/mllib/random.pyi        |    126 +
 build/spark/python/pyspark/mllib/recommendation.py |    344 +
 .../spark/python/pyspark/mllib/recommendation.pyi  |     75 +
 build/spark/python/pyspark/mllib/regression.py     |    906 +
 build/spark/python/pyspark/mllib/regression.pyi    |    155 +
 .../python/pyspark/mllib/stat/KernelDensity.py     |     56 +
 .../python/pyspark/mllib/stat/KernelDensity.pyi    |     27 +
 build/spark/python/pyspark/mllib/stat/__init__.py  |     29 +
 build/spark/python/pyspark/mllib/stat/__init__.pyi |     29 +
 .../spark/python/pyspark/mllib/stat/_statistics.py |    365 +
 .../python/pyspark/mllib/stat/_statistics.pyi      |     69 +
 .../python/pyspark/mllib/stat/distribution.py      |     34 +
 .../python/pyspark/mllib/stat/distribution.pyi     |     25 +
 build/spark/python/pyspark/mllib/stat/test.py      |     82 +
 build/spark/python/pyspark/mllib/stat/test.pyi     |     39 +
 build/spark/python/pyspark/mllib/tests/__init__.py |     16 +
 .../python/pyspark/mllib/tests/test_algorithms.py  |    302 +
 .../python/pyspark/mllib/tests/test_feature.py     |    192 +
 .../python/pyspark/mllib/tests/test_linalg.py      |    661 +
 .../spark/python/pyspark/mllib/tests/test_stat.py  |    187 +
 .../mllib/tests/test_streaming_algorithms.py       |    485 +
 .../spark/python/pyspark/mllib/tests/test_util.py  |    104 +
 build/spark/python/pyspark/mllib/tree.py           |    702 +
 build/spark/python/pyspark/mllib/tree.pyi          |    126 +
 build/spark/python/pyspark/mllib/util.py           |    609 +
 build/spark/python/pyspark/mllib/util.pyi          |     90 +
 build/spark/python/pyspark/pandas/__init__.py      |    147 +
 build/spark/python/pyspark/pandas/_typing.py       |     51 +
 build/spark/python/pyspark/pandas/accessors.py     |    922 +
 build/spark/python/pyspark/pandas/base.py          |   1667 +
 build/spark/python/pyspark/pandas/categorical.py   |    933 +
 build/spark/python/pyspark/pandas/config.py        |    471 +
 .../pyspark/pandas/data_type_ops/__init__.py       |     16 +
 .../python/pyspark/pandas/data_type_ops/base.py    |    385 +
 .../pyspark/pandas/data_type_ops/binary_ops.py     |    108 +
 .../pyspark/pandas/data_type_ops/boolean_ops.py    |    367 +
 .../pandas/data_type_ops/categorical_ops.py        |    143 +
 .../pyspark/pandas/data_type_ops/complex_ops.py    |    145 +
 .../pyspark/pandas/data_type_ops/date_ops.py       |    123 +
 .../pyspark/pandas/data_type_ops/datetime_ops.py   |    138 +
 .../pyspark/pandas/data_type_ops/null_ops.py       |     80 +
 .../python/pyspark/pandas/data_type_ops/num_ops.py |    498 +
 .../pyspark/pandas/data_type_ops/string_ops.py     |    162 +
 .../python/pyspark/pandas/data_type_ops/udt_ops.py |     29 +
 build/spark/python/pyspark/pandas/datetimes.py     |    902 +
 build/spark/python/pyspark/pandas/exceptions.py    |    142 +
 build/spark/python/pyspark/pandas/extensions.py    |    388 +
 build/spark/python/pyspark/pandas/frame.py         |  12065 +
 build/spark/python/pyspark/pandas/generic.py       |   3242 +
 build/spark/python/pyspark/pandas/groupby.py       |   3357 +
 .../python/pyspark/pandas/indexes/__init__.py      |     20 +
 build/spark/python/pyspark/pandas/indexes/base.py  |   2640 +
 .../python/pyspark/pandas/indexes/category.py      |    736 +
 .../python/pyspark/pandas/indexes/datetimes.py     |    777 +
 build/spark/python/pyspark/pandas/indexes/multi.py |   1205 +
 .../spark/python/pyspark/pandas/indexes/numeric.py |    197 +
 build/spark/python/pyspark/pandas/indexing.py      |   1843 +
 build/spark/python/pyspark/pandas/internal.py      |   1584 +
 .../python/pyspark/pandas/missing/__init__.py      |     48 +
 .../spark/python/pyspark/pandas/missing/common.py  |     59 +
 build/spark/python/pyspark/pandas/missing/frame.py |     98 +
 .../spark/python/pyspark/pandas/missing/groupby.py |    103 +
 .../spark/python/pyspark/pandas/missing/indexes.py |    201 +
 .../spark/python/pyspark/pandas/missing/series.py  |    125 +
 .../spark/python/pyspark/pandas/missing/window.py  |    126 +
 build/spark/python/pyspark/pandas/ml.py            |    116 +
 build/spark/python/pyspark/pandas/mlflow.py        |    238 +
 build/spark/python/pyspark/pandas/namespace.py     |   3004 +
 build/spark/python/pyspark/pandas/numpy_compat.py  |    254 +
 build/spark/python/pyspark/pandas/plot/__init__.py |     17 +
 build/spark/python/pyspark/pandas/plot/core.py     |   1144 +
 .../spark/python/pyspark/pandas/plot/matplotlib.py |    897 +
 build/spark/python/pyspark/pandas/plot/plotly.py   |    218 +
 build/spark/python/pyspark/pandas/series.py        |   6400 +
 .../spark/python/pyspark/pandas/spark/__init__.py  |     16 +
 .../spark/python/pyspark/pandas/spark/accessors.py |   1275 +
 .../spark/python/pyspark/pandas/spark/functions.py |     74 +
 build/spark/python/pyspark/pandas/spark/utils.py   |    195 +
 build/spark/python/pyspark/pandas/sql_processor.py |    386 +
 build/spark/python/pyspark/pandas/strings.py       |   2404 +
 .../spark/python/pyspark/pandas/tests/__init__.py  |     16 +
 .../pyspark/pandas/tests/data_type_ops/__init__.py |     16 +
 .../pandas/tests/data_type_ops/test_base.py        |     98 +
 .../pandas/tests/data_type_ops/test_binary_ops.py  |    221 +
 .../pandas/tests/data_type_ops/test_boolean_ops.py |    779 +
 .../tests/data_type_ops/test_categorical_ops.py    |    563 +
 .../pandas/tests/data_type_ops/test_complex_ops.py |    365 +
 .../pandas/tests/data_type_ops/test_date_ops.py    |    244 +
 .../tests/data_type_ops/test_datetime_ops.py       |    250 +
 .../pandas/tests/data_type_ops/test_null_ops.py    |    174 +
 .../pandas/tests/data_type_ops/test_num_ops.py     |    638 +
 .../pandas/tests/data_type_ops/test_string_ops.py  |    351 +
 .../pandas/tests/data_type_ops/test_udt_ops.py     |    189 +
 .../pandas/tests/data_type_ops/testing_utils.py    |    248 +
 .../pyspark/pandas/tests/indexes/__init__.py       |     16 +
 .../pyspark/pandas/tests/indexes/test_base.py      |   2382 +
 .../pyspark/pandas/tests/indexes/test_category.py  |    443 +
 .../pyspark/pandas/tests/indexes/test_datetime.py  |    254 +
 .../python/pyspark/pandas/tests/plot/__init__.py   |     16 +
 .../pyspark/pandas/tests/plot/test_frame_plot.py   |    124 +
 .../tests/plot/test_frame_plot_matplotlib.py       |    488 +
 .../pandas/tests/plot/test_frame_plot_plotly.py    |    279 +
 .../pyspark/pandas/tests/plot/test_series_plot.py  |    102 +
 .../tests/plot/test_series_plot_matplotlib.py      |    408 +
 .../pandas/tests/plot/test_series_plot_plotly.py   |    248 +
 .../pyspark/pandas/tests/test_categorical.py       |    805 +
 .../python/pyspark/pandas/tests/test_config.py     |    156 +
 .../spark/python/pyspark/pandas/tests/test_csv.py  |    435 +
 .../python/pyspark/pandas/tests/test_dataframe.py  |   5787 +
 .../pandas/tests/test_dataframe_conversion.py      |    276 +
 .../pandas/tests/test_dataframe_spark_io.py        |    458 +
 .../pyspark/pandas/tests/test_default_index.py     |     52 +
 .../python/pyspark/pandas/tests/test_expanding.py  |    345 +
 .../python/pyspark/pandas/tests/test_extension.py  |    152 +
 .../pyspark/pandas/tests/test_frame_spark.py       |    156 +
 .../python/pyspark/pandas/tests/test_groupby.py    |   2943 +
 .../python/pyspark/pandas/tests/test_indexing.py   |   1345 +
 .../pyspark/pandas/tests/test_indexops_spark.py    |     76 +
 .../python/pyspark/pandas/tests/test_internal.py   |    120 +
 .../python/pyspark/pandas/tests/test_namespace.py  |    350 +
 .../pyspark/pandas/tests/test_numpy_compat.py      |    212 +
 .../pandas/tests/test_ops_on_diff_frames.py        |   1983 +
 .../tests/test_ops_on_diff_frames_groupby.py       |    623 +
 .../test_ops_on_diff_frames_groupby_expanding.py   |    144 +
 .../test_ops_on_diff_frames_groupby_rolling.py     |    107 +
 .../spark/python/pyspark/pandas/tests/test_repr.py |    186 +
 .../python/pyspark/pandas/tests/test_reshape.py    |    297 +
 .../python/pyspark/pandas/tests/test_rolling.py    |    220 +
 .../python/pyspark/pandas/tests/test_series.py     |   2974 +
 .../pyspark/pandas/tests/test_series_conversion.py |     77 +
 .../pyspark/pandas/tests/test_series_datetime.py   |    293 +
 .../pyspark/pandas/tests/test_series_string.py     |    341 +
 .../pyspark/pandas/tests/test_spark_functions.py   |     54 +
 .../spark/python/pyspark/pandas/tests/test_sql.py  |     77 +
 .../python/pyspark/pandas/tests/test_stats.py      |    427 +
 .../python/pyspark/pandas/tests/test_typedef.py    |    438 +
 .../python/pyspark/pandas/tests/test_utils.py      |    116 +
 .../python/pyspark/pandas/tests/test_window.py     |    317 +
 .../python/pyspark/pandas/typedef/__init__.py      |     18 +
 .../pyspark/pandas/typedef/string_typehints.py     |     40 +
 .../python/pyspark/pandas/typedef/typehints.py     |    551 +
 .../pyspark/pandas/usage_logging/__init__.py       |    267 +
 .../pyspark/pandas/usage_logging/usage_logger.py   |    132 +
 build/spark/python/pyspark/pandas/utils.py         |    985 +
 build/spark/python/pyspark/pandas/window.py        |   1782 +
 build/spark/python/pyspark/profiler.py             |    181 +
 build/spark/python/pyspark/profiler.pyi            |     56 +
 build/spark/python/pyspark/py.typed                |      1 +
 build/spark/python/pyspark/python/pyspark/shell.py |     75 +
 build/spark/python/pyspark/rdd.py                  |   2989 +
 build/spark/python/pyspark/rdd.pyi                 |    483 +
 build/spark/python/pyspark/rddsampler.py           |    119 +
 build/spark/python/pyspark/resource/__init__.py    |     30 +
 build/spark/python/pyspark/resource/information.py |     51 +
 .../spark/python/pyspark/resource/information.pyi  |     26 +
 build/spark/python/pyspark/resource/profile.py     |    172 +
 build/spark/python/pyspark/resource/profile.pyi    |     60 +
 build/spark/python/pyspark/resource/requests.py    |    281 +
 build/spark/python/pyspark/resource/requests.pyi   |     83 +
 .../python/pyspark/resource/tests/__init__.py      |     16 +
 .../pyspark/resource/tests/test_resources.py       |     82 +
 build/spark/python/pyspark/resultiterable.py       |     40 +
 build/spark/python/pyspark/resultiterable.pyi      |     30 +
 build/spark/python/pyspark/serializers.py          |    648 +
 build/spark/python/pyspark/shell.py                |     75 +
 build/spark/python/pyspark/shuffle.py              |    824 +
 build/spark/python/pyspark/sql/__init__.py         |     59 +
 build/spark/python/pyspark/sql/__init__.pyi        |     41 +
 build/spark/python/pyspark/sql/_typing.pyi         |     63 +
 build/spark/python/pyspark/sql/avro/__init__.py    |     18 +
 build/spark/python/pyspark/sql/avro/functions.py   |    163 +
 build/spark/python/pyspark/sql/avro/functions.pyi  |     27 +
 build/spark/python/pyspark/sql/catalog.py          |    332 +
 build/spark/python/pyspark/sql/catalog.pyi         |     64 +
 build/spark/python/pyspark/sql/column.py           |    939 +
 build/spark/python/pyspark/sql/column.pyi          |    118 +
 build/spark/python/pyspark/sql/conf.py             |     91 +
 build/spark/python/pyspark/sql/conf.pyi            |     27 +
 build/spark/python/pyspark/sql/context.py          |    673 +
 build/spark/python/pyspark/sql/context.pyi         |    140 +
 build/spark/python/pyspark/sql/dataframe.py        |   2874 +
 build/spark/python/pyspark/sql/dataframe.pyi       |    349 +
 build/spark/python/pyspark/sql/functions.py        |   5135 +
 build/spark/python/pyspark/sql/functions.pyi       |    372 +
 build/spark/python/pyspark/sql/group.py            |    303 +
 build/spark/python/pyspark/sql/group.pyi           |     44 +
 build/spark/python/pyspark/sql/pandas/__init__.py  |     21 +
 .../python/pyspark/sql/pandas/_typing/__init__.pyi |    338 +
 .../sql/pandas/_typing/protocols/__init__.pyi      |     17 +
 .../pyspark/sql/pandas/_typing/protocols/frame.pyi |    428 +
 .../sql/pandas/_typing/protocols/series.pyi        |    253 +
 .../spark/python/pyspark/sql/pandas/conversion.py  |    513 +
 .../spark/python/pyspark/sql/pandas/conversion.pyi |     58 +
 build/spark/python/pyspark/sql/pandas/functions.py |    432 +
 .../spark/python/pyspark/sql/pandas/functions.pyi  |    176 +
 build/spark/python/pyspark/sql/pandas/group_ops.py |    360 +
 .../spark/python/pyspark/sql/pandas/group_ops.pyi  |     49 +
 build/spark/python/pyspark/sql/pandas/map_ops.py   |    105 +
 build/spark/python/pyspark/sql/pandas/map_ops.pyi  |     30 +
 .../spark/python/pyspark/sql/pandas/serializers.py |    302 +
 build/spark/python/pyspark/sql/pandas/typehints.py |    141 +
 build/spark/python/pyspark/sql/pandas/types.py     |    348 +
 build/spark/python/pyspark/sql/pandas/utils.py     |     62 +
 build/spark/python/pyspark/sql/readwriter.py       |   1211 +
 build/spark/python/pyspark/sql/readwriter.pyi      |    257 +
 build/spark/python/pyspark/sql/session.py          |    849 +
 build/spark/python/pyspark/sql/session.pyi         |    131 +
 build/spark/python/pyspark/sql/streaming.py        |   1312 +
 build/spark/python/pyspark/sql/streaming.pyi       |    197 +
 build/spark/python/pyspark/sql/tests/__init__.py   |     16 +
 build/spark/python/pyspark/sql/tests/test_arrow.py |    603 +
 .../spark/python/pyspark/sql/tests/test_catalog.py |    213 +
 .../spark/python/pyspark/sql/tests/test_column.py  |    193 +
 build/spark/python/pyspark/sql/tests/test_conf.py  |     56 +
 .../spark/python/pyspark/sql/tests/test_context.py |    182 +
 .../python/pyspark/sql/tests/test_dataframe.py     |    966 +
 .../python/pyspark/sql/tests/test_datasources.py   |    171 +
 .../python/pyspark/sql/tests/test_functions.py     |    694 +
 build/spark/python/pyspark/sql/tests/test_group.py |     47 +
 .../pyspark/sql/tests/test_pandas_cogrouped_map.py |    266 +
 .../pyspark/sql/tests/test_pandas_grouped_map.py   |    621 +
 .../python/pyspark/sql/tests/test_pandas_map.py    |    132 +
 .../python/pyspark/sql/tests/test_pandas_udf.py    |    251 +
 .../sql/tests/test_pandas_udf_grouped_agg.py       |    523 +
 .../pyspark/sql/tests/test_pandas_udf_scalar.py    |   1164 +
 .../pyspark/sql/tests/test_pandas_udf_typehints.py |    253 +
 .../pyspark/sql/tests/test_pandas_udf_window.py    |    366 +
 .../python/pyspark/sql/tests/test_readwriter.py    |    211 +
 build/spark/python/pyspark/sql/tests/test_serde.py |    149 +
 .../spark/python/pyspark/sql/tests/test_session.py |    368 +
 .../python/pyspark/sql/tests/test_streaming.py     |    606 +
 build/spark/python/pyspark/sql/tests/test_types.py |    992 +
 build/spark/python/pyspark/sql/tests/test_udf.py   |    718 +
 build/spark/python/pyspark/sql/tests/test_utils.py |     61 +
 build/spark/python/pyspark/sql/types.py            |   1642 +
 build/spark/python/pyspark/sql/types.pyi           |    205 +
 build/spark/python/pyspark/sql/udf.py              |    455 +
 build/spark/python/pyspark/sql/udf.pyi             |     58 +
 build/spark/python/pyspark/sql/utils.py            |    212 +
 build/spark/python/pyspark/sql/window.py           |    332 +
 build/spark/python/pyspark/sql/window.pyi          |     41 +
 build/spark/python/pyspark/statcounter.py          |    160 +
 build/spark/python/pyspark/statcounter.pyi         |     44 +
 build/spark/python/pyspark/status.py               |     96 +
 build/spark/python/pyspark/status.pyi              |     42 +
 build/spark/python/pyspark/storagelevel.py         |     60 +
 build/spark/python/pyspark/storagelevel.pyi        |     43 +
 build/spark/python/pyspark/streaming/__init__.py   |     22 +
 build/spark/python/pyspark/streaming/context.py    |    403 +
 build/spark/python/pyspark/streaming/context.pyi   |     75 +
 build/spark/python/pyspark/streaming/dstream.py    |    682 +
 build/spark/python/pyspark/streaming/dstream.pyi   |    216 +
 build/spark/python/pyspark/streaming/kinesis.py    |    122 +
 build/spark/python/pyspark/streaming/kinesis.pyi   |     49 +
 build/spark/python/pyspark/streaming/listener.py   |     81 +
 build/spark/python/pyspark/streaming/listener.pyi  |     35 +
 .../python/pyspark/streaming/tests/__init__.py     |     16 +
 .../python/pyspark/streaming/tests/test_context.py |    185 +
 .../python/pyspark/streaming/tests/test_dstream.py |    651 +
 .../python/pyspark/streaming/tests/test_kinesis.py |     90 +
 .../pyspark/streaming/tests/test_listener.py       |    159 +
 build/spark/python/pyspark/streaming/util.py       |    162 +
 build/spark/python/pyspark/taskcontext.py          |    282 +
 build/spark/python/pyspark/taskcontext.pyi         |     45 +
 build/spark/python/pyspark/testing/__init__.py     |     16 +
 build/spark/python/pyspark/testing/mllibutils.py   |     30 +
 build/spark/python/pyspark/testing/mlutils.py      |    250 +
 build/spark/python/pyspark/testing/pandasutils.py  |    389 +
 build/spark/python/pyspark/testing/sqlutils.py     |    261 +
 .../spark/python/pyspark/testing/streamingutils.py |    174 +
 build/spark/python/pyspark/testing/utils.py        |    174 +
 build/spark/python/pyspark/tests/__init__.py       |     16 +
 build/spark/python/pyspark/tests/test_appsubmit.py |    248 +
 build/spark/python/pyspark/tests/test_broadcast.py |    155 +
 build/spark/python/pyspark/tests/test_conf.py      |     43 +
 build/spark/python/pyspark/tests/test_context.py   |    332 +
 build/spark/python/pyspark/tests/test_daemon.py    |     83 +
 .../python/pyspark/tests/test_install_spark.py     |    109 +
 build/spark/python/pyspark/tests/test_join.py      |     69 +
 .../spark/python/pyspark/tests/test_pin_thread.py  |    176 +
 build/spark/python/pyspark/tests/test_profiler.py  |    108 +
 build/spark/python/pyspark/tests/test_rdd.py       |    891 +
 .../spark/python/pyspark/tests/test_rddbarrier.py  |     50 +
 build/spark/python/pyspark/tests/test_readwrite.py |    314 +
 .../spark/python/pyspark/tests/test_serializers.py |    234 +
 build/spark/python/pyspark/tests/test_shuffle.py   |    177 +
 .../spark/python/pyspark/tests/test_taskcontext.py |    338 +
 build/spark/python/pyspark/tests/test_util.py      |     84 +
 build/spark/python/pyspark/tests/test_worker.py    |    260 +
 build/spark/python/pyspark/traceback_utils.py      |     78 +
 build/spark/python/pyspark/util.py                 |    414 +
 build/spark/python/pyspark/util.pyi                |     29 +
 build/spark/python/pyspark/version.py              |     19 +
 build/spark/python/pyspark/version.pyi             |     19 +
 build/spark/python/pyspark/worker.py               |    679 +
 build/spark/python/run-tests                       |     30 +
 build/spark/python/run-tests-with-coverage         |     69 +
 build/spark/python/run-tests.py                    |    331 +
 build/spark/python/setup.cfg                       |     22 +
 build/spark/python/setup.py                        |    309 +
 .../python/test_coverage/conf/spark-defaults.conf  |     21 +
 .../spark/python/test_coverage/coverage_daemon.py  |     48 +
 build/spark/python/test_coverage/sitecustomize.py  |     26 +
 .../spark/python/test_support/SimpleHTTPServer.py  |     22 +
 build/spark/python/test_support/hello/hello.txt    |      1 +
 .../test_support/hello/sub_hello/sub_hello.txt     |      1 +
 build/spark/python/test_support/sql/ages.csv       |      4 +
 .../python/test_support/sql/ages_newlines.csv      |      6 +
 ...-00000-829af031-b970-49d6-ad39-30460a0be2c8.orc |    Bin 0 -> 168 bytes
 ...-00000-829af031-b970-49d6-ad39-30460a0be2c8.orc |    Bin 0 -> 168 bytes
 .../sql/parquet_partitioned/_common_metadata       |    Bin 0 -> 210 bytes
 .../test_support/sql/parquet_partitioned/_metadata |    Bin 0 -> 743 bytes
 .../month=9/day=1/part-r-00008.gz.parquet          |    Bin 0 -> 322 bytes
 .../month=10/day=25/part-r-00002.gz.parquet        |    Bin 0 -> 343 bytes
 .../month=10/day=25/part-r-00004.gz.parquet        |    Bin 0 -> 343 bytes
 .../month=10/day=26/part-r-00005.gz.parquet        |    Bin 0 -> 333 bytes
 .../month=9/day=1/part-r-00007.gz.parquet          |    Bin 0 -> 343 bytes
 build/spark/python/test_support/sql/people.json    |      3 +
 build/spark/python/test_support/sql/people1.json   |      2 +
 .../python/test_support/sql/people_array.json      |     13 +
 .../test_support/sql/people_array_utf16le.json     |    Bin 0 -> 182 bytes
 .../test_support/sql/streaming/text-test.txt       |      2 +
 build/spark/python/test_support/sql/text-test.txt  |      2 +
 build/spark/python/test_support/userlib-0.1.zip    |    Bin 0 -> 668 bytes
 build/spark/python/test_support/userlibrary.py     |     26 +
 build/spark/sbin/decommission-slave.sh             |     23 +
 build/spark/sbin/decommission-worker.sh            |     57 +
 build/spark/sbin/slaves.sh                         |     23 +
 build/spark/sbin/spark-config.sh                   |     33 +
 build/spark/sbin/spark-daemon.sh                   |    264 +
 build/spark/sbin/spark-daemons.sh                  |     36 +
 build/spark/sbin/start-all.sh                      |     35 +
 build/spark/sbin/start-history-server.sh           |     49 +
 build/spark/sbin/start-master.sh                   |     68 +
 build/spark/sbin/start-mesos-dispatcher.sh         |     51 +
 build/spark/sbin/start-mesos-shuffle-service.sh    |     36 +
 build/spark/sbin/start-slave.sh                    |     23 +
 build/spark/sbin/start-slaves.sh                   |     23 +
 build/spark/sbin/start-thriftserver.sh             |     60 +
 build/spark/sbin/start-worker.sh                   |     92 +
 build/spark/sbin/start-workers.sh                  |     46 +
 build/spark/sbin/stop-all.sh                       |     49 +
 build/spark/sbin/stop-history-server.sh            |     26 +
 build/spark/sbin/stop-master.sh                    |     28 +
 build/spark/sbin/stop-mesos-dispatcher.sh          |     33 +
 build/spark/sbin/stop-mesos-shuffle-service.sh     |     26 +
 build/spark/sbin/stop-slave.sh                     |     23 +
 build/spark/sbin/stop-slaves.sh                    |     23 +
 build/spark/sbin/stop-thriftserver.sh              |     26 +
 build/spark/sbin/stop-worker.sh                    |     44 +
 build/spark/sbin/stop-workers.sh                   |     28 +
 build/spark/sbin/workers.sh                        |    120 +
 dev-support/checkstyle-apache-header.txt           |     17 +
 dev-support/checkstyle-apache-suppressions.xml     |     66 +
 dev-support/checkstyle-apache.xml                  |     83 +
 dev-support/findbugs-exclude-filter.xml            |     22 +
 dev-support/forbidden-signatures.txt               |    105 +
 dev-support/sandbox/.gitignore                     |      2 +
 dev-support/sandbox/README.md                      |    114 +
 dev-support/sandbox/conf/capacity-scheduler.xml    |     99 +
 dev-support/sandbox/conf/core-site.xml             |     30 +
 dev-support/sandbox/conf/fairscheduler.xml         |     47 +
 dev-support/sandbox/conf/hadoop/core-site.xml      |     30 +
 dev-support/sandbox/conf/hdfs-site.xml             |     28 +
 dev-support/sandbox/conf/hive-site.xml             |     63 +
 dev-support/sandbox/conf/kylin.properties          |    195 +
 dev-support/sandbox/conf/yarn-site.xml             |     46 +
 dev-support/sandbox/docker-compose.yml             |    179 +
 dev-support/sandbox/hadoop.env                     |     48 +
 dev-support/sandbox/hive.env                       |      8 +
 dev-support/sandbox/images/6nP8shbaNX.png          |    Bin 0 -> 49891 bytes
 .../sandbox/images/image-20211102105411171.png     |    Bin 0 -> 279505 bytes
 .../sandbox/images/image-20211102105446286.png     |    Bin 0 -> 101816 bytes
 .../sandbox/images/image-20211102110553460.png     |    Bin 0 -> 296430 bytes
 .../sandbox/images/image-20211102111037483.png     |    Bin 0 -> 364056 bytes
 .../sandbox/images/image-20211102111253713.png     |    Bin 0 -> 138867 bytes
 .../sandbox/images/image-20211102111745414.png     |    Bin 0 -> 223073 bytes
 .../sandbox/images/image-20211102111806627.png     |    Bin 0 -> 225910 bytes
 .../sandbox/images/image-20211102112221619.png     |    Bin 0 -> 298560 bytes
 .../sandbox/images/image-20211102112351003.png     |    Bin 0 -> 337499 bytes
 .../sandbox/images/image-20211102113005133.png     |    Bin 0 -> 304205 bytes
 .../sandbox/images/image-20211102113055804.png     |    Bin 0 -> 308948 bytes
 .../sandbox/images/image-20211102113605007.png     |    Bin 0 -> 291798 bytes
 dev-support/sandbox/images/img.png                 |    Bin 0 -> 140288 bytes
 dev-support/sandbox/images/img_1.png               |    Bin 0 -> 57617 bytes
 .../img_8835f30f-7805-4951-808d-45469370fa7g.png   |    Bin 0 -> 210172 bytes
 .../BootstrapServer_docker_sandbox_.xml            |     25 +
 dev-support/sandbox/sandbox.sh                     |    187 +
 .../streaming_data/STREAMING_SSB_CUSTOMER.csv      |    300 +
 .../sandbox/streaming_data/STREAMING_SSB_DATES.csv |   2556 +
 .../streaming_data/STREAMING_SSB_LINEORDER.csv     |  24399 +
 .../sandbox/streaming_data/STREAMING_SSB_PART.csv  |   2000 +
 .../streaming_data/STREAMING_SSB_SUPPLIER.csv      |     20 +
 document/protocol-buffer/metadata.proto            |    466 +
 kystudio/.babelrc                                  |     17 +
 kystudio/.editorconfig                             |      9 +
 kystudio/.eslintignore                             |      2 +
 kystudio/.eslintrc.js                              |     33 +
 kystudio/.gitignore                                |     13 +
 kystudio/README.md                                 |     40 +
 kystudio/build/build.js                            |     35 +
 kystudio/build/check-versions.js                   |     45 +
 kystudio/build/dev-client.js                       |      9 +
 kystudio/build/dev-server.js                       |     83 +
 kystudio/build/explore-chinese.js                  |    223 +
 kystudio/build/translate-extract.js                |    207 +
 kystudio/build/utils.js                            |     71 +
 kystudio/build/vue-loader.conf.js                  |     17 +
 kystudio/build/webpack.base.conf.js                |     81 +
 kystudio/build/webpack.dev.conf.js                 |     37 +
 kystudio/build/webpack.prod.conf.js                |    121 +
 kystudio/build/webpack.test.conf.js                |     24 +
 kystudio/config/dev.env.js                         |      6 +
 kystudio/config/explore-chinese.config.js          |      8 +
 kystudio/config/index.js                           |     61 +
 kystudio/config/prod.env.js                        |      3 +
 kystudio/config/test.env.js                        |      6 +
 kystudio/config/translate-extract.config.js        |     22 +
 kystudio/e2e/.npmrc                                |      2 +
 .../\344\273\252\350\241\250\347\233\230.xmind"    |    Bin 0 -> 26500 bytes
 .../e2e/e2eCase/\344\273\273\345\212\241.xmind"    |    Bin 0 -> 85260 bytes
 ...0\357\274\210\347\224\250ssb\357\274\211.xmind" |    Bin 0 -> 104924 bytes
 .../e2e/e2eCase/\346\250\241\345\235\227.xmind"    |    Bin 0 -> 83346 bytes
 .../e2e/e2eCase/\346\250\241\345\236\213.xmind"    |    Bin 0 -> 184809 bytes
 .../e2e/e2eCase/\347\224\250\346\210\267.xmind"    |    Bin 0 -> 97269 bytes
 .../\347\224\250\346\210\267\347\273\204.xmind"    |    Bin 0 -> 43118 bytes
 .../e2e/e2eCase/\347\231\273\345\275\225.xmind"    |    Bin 0 -> 49682 bytes
 ...\242\345\274\225\345\220\216\357\274\211.xmind" |    Bin 0 -> 23182 bytes
 .../e2e/e2eCase/\350\256\276\347\275\256.xmind"    |    Bin 0 -> 119553 bytes
 .../e2e/e2eCase/\351\241\271\347\233\256.xmind"    |    Bin 0 -> 141003 bytes
 kystudio/e2e/package.json                          |     25 +
 kystudio/e2e/specs/clear/index.spec.js             |     97 +
 kystudio/e2e/specs/e2e.env                         |     37 +
 kystudio/e2e/specs/index.js                        |     26 +
 .../specs/projectAdmin/happy_path/index.spec.js    |     39 +
 .../projectManagement/happy_path/index.spec.js     |     39 +
 .../projectOperation/happy_path/index.spec.js      |     39 +
 .../specs/projectQuery/happy_path/index.spec.js    |     39 +
 .../e2e/specs/systemAdmin/happy_path/index.spec.js |    415 +
 kystudio/e2e/specs/systemAdmin/login/login.spec.js |    126 +
 .../e2e/specs/systemAdmin/logout/logout.spec.js    |     50 +
 kystudio/e2e/specs/utils/businessHelper.js         |    216 +
 kystudio/e2e/specs/utils/domHelper.js              |    306 +
 kystudio/e2e/specs/utils/index.js                  |      2 +
 kystudio/index.html                                |     30 +
 kystudio/jsconfig.json                             |      5 +
 kystudio/mock/aggregateIndex.js                    |     54 +
 kystudio/package.json                              |    119 +
 kystudio/src/assets/fonts/icons/icomoon.eot        |    Bin 0 -> 71856 bytes
 kystudio/src/assets/fonts/icons/icomoon.svg        |    230 +
 kystudio/src/assets/fonts/icons/icomoon.ttf        |    Bin 0 -> 71692 bytes
 kystudio/src/assets/fonts/icons/icomoon.woff       |    Bin 0 -> 71768 bytes
 kystudio/src/assets/img/CN.png                     |    Bin 0 -> 340 bytes
 kystudio/src/assets/img/EN.png                     |    Bin 0 -> 529 bytes
 kystudio/src/assets/img/GBase_logo.jpg             |    Bin 0 -> 11641 bytes
 kystudio/src/assets/img/Hive.png                   |    Bin 0 -> 14517 bytes
 kystudio/src/assets/img/Hive_logo.png              |    Bin 0 -> 32779 bytes
 kystudio/src/assets/img/Kafka_logo.png             |    Bin 0 -> 10856 bytes
 kystudio/src/assets/img/RDBMs.png                  |    Bin 0 -> 14292 bytes
 kystudio/src/assets/img/Seg-index.gif              |    Bin 0 -> 1470141 bytes
 kystudio/src/assets/img/acc_01.gif                 |    Bin 0 -> 20739 bytes
 kystudio/src/assets/img/acc_01.jpg                 |    Bin 0 -> 8841 bytes
 kystudio/src/assets/img/acc_02.gif                 |    Bin 0 -> 19351 bytes
 kystudio/src/assets/img/acc_02.jpg                 |    Bin 0 -> 10930 bytes
 kystudio/src/assets/img/acc_03.gif                 |    Bin 0 -> 16952 bytes
 kystudio/src/assets/img/acc_03.jpg                 |    Bin 0 -> 13111 bytes
 kystudio/src/assets/img/acc_light.png              |    Bin 0 -> 5206 bytes
 kystudio/src/assets/img/addProject.png             |    Bin 0 -> 629 bytes
 kystudio/src/assets/img/arrow.png                  |    Bin 0 -> 88 bytes
 kystudio/src/assets/img/back.png                   |    Bin 0 -> 193 bytes
 kystudio/src/assets/img/bg1.jpg                    |    Bin 0 -> 31353 bytes
 kystudio/src/assets/img/bi-dashboard.png           |    Bin 0 -> 407 bytes
 kystudio/src/assets/img/canary_Hive.png            |    Bin 0 -> 13118 bytes
 kystudio/src/assets/img/cardlist.png               |    Bin 0 -> 146 bytes
 kystudio/src/assets/img/cardlisthover.png          |    Bin 0 -> 146 bytes
 kystudio/src/assets/img/circle@2x.png              |    Bin 0 -> 150416 bytes
 kystudio/src/assets/img/computed.png               |    Bin 0 -> 340 bytes
 kystudio/src/assets/img/connect_to_BI@2x.png       |    Bin 0 -> 3003 bytes
 kystudio/src/assets/img/cost_time.png              |    Bin 0 -> 1588 bytes
 kystudio/src/assets/img/cube.png                   |    Bin 0 -> 17671 bytes
 kystudio/src/assets/img/dashboard.png              |    Bin 0 -> 1379 bytes
 kystudio/src/assets/img/dashboard_hover.png        |    Bin 0 -> 951 bytes
 kystudio/src/assets/img/data_profile@2x.png        |    Bin 0 -> 1512 bytes
 kystudio/src/assets/img/data_source@2x.png         |    Bin 0 -> 2844 bytes
 kystudio/src/assets/img/datasource.png             |    Bin 0 -> 10575 bytes
 kystudio/src/assets/img/datasource/hive_blue.png   |    Bin 0 -> 18396 bytes
 kystudio/src/assets/img/datasource/hive_white.png  |    Bin 0 -> 9384 bytes
 kystudio/src/assets/img/datasource/kafka_blue.png  |    Bin 0 -> 13548 bytes
 kystudio/src/assets/img/datasource/kafka_white.png |    Bin 0 -> 6191 bytes
 kystudio/src/assets/img/datasource/rdbms_blue.png  |    Bin 0 -> 8199 bytes
 kystudio/src/assets/img/datasource/rdbms_white.png |    Bin 0 -> 4315 bytes
 kystudio/src/assets/img/default_project.png        |    Bin 0 -> 1241 bytes
 kystudio/src/assets/img/dot.gif                    |    Bin 0 -> 1332 bytes
 kystudio/src/assets/img/draft.png                  |    Bin 0 -> 842 bytes
 kystudio/src/assets/img/dragtable.png              |    Bin 0 -> 997 bytes
 kystudio/src/assets/img/editmodel.gif              |    Bin 0 -> 372238 bytes
 kystudio/src/assets/img/empty.svg                  |     18 +
 kystudio/src/assets/img/empty/empty_state_404.svg  |     51 +
 .../img/empty/empty_state_connection_timed_out.svg |     36 +
 .../src/assets/img/empty/empty_state_empty.svg     |     24 +
 .../src/assets/img/empty/empty_state_not_found.svg |     29 +
 .../img/empty/empty_state_permission_denied.svg    |     45 +
 .../img/empty/empty_state_server_maintenance.svg   |     79 +
 kystudio/src/assets/img/favicon.png                |    Bin 0 -> 16958 bytes
 kystudio/src/assets/img/fd.png                     |    Bin 0 -> 266 bytes
 kystudio/src/assets/img/full-screen.png            |    Bin 0 -> 900 bytes
 kystudio/src/assets/img/gif1.png                   |    Bin 0 -> 274 bytes
 kystudio/src/assets/img/gif2.png                   |    Bin 0 -> 7493 bytes
 kystudio/src/assets/img/gif3.png                   |    Bin 0 -> 7350 bytes
 kystudio/src/assets/img/guide/cursor-bg.png        |    Bin 0 -> 7720 bytes
 kystudio/src/assets/img/guide/cursor-click.png     |    Bin 0 -> 8441 bytes
 kystudio/src/assets/img/guide/cursor-drag.png      |    Bin 0 -> 6223 bytes
 kystudio/src/assets/img/guide/cursor-pointer.png   |    Bin 0 -> 7156 bytes
 kystudio/src/assets/img/guide/expert_mode_big.png  |    Bin 0 -> 3782 bytes
 .../src/assets/img/guide/expert_mode_small.png     |    Bin 0 -> 963 bytes
 kystudio/src/assets/img/guide/icon_flag.png        |    Bin 0 -> 397 bytes
 kystudio/src/assets/img/guide/smart_mode_big.png   |    Bin 0 -> 5296 bytes
 kystudio/src/assets/img/guide/smart_mode_small.png |    Bin 0 -> 2058 bytes
 kystudio/src/assets/img/help.png                   |    Bin 0 -> 218 bytes
 kystudio/src/assets/img/history@2x.png             |    Bin 0 -> 1457 bytes
 kystudio/src/assets/img/icon_model/index_auto.png  |    Bin 0 -> 1120 bytes
 .../src/assets/img/icon_model/index_manual.png     |    Bin 0 -> 1480 bytes
 kystudio/src/assets/img/icon_steps/cube-green.png  |    Bin 0 -> 4783 bytes
 kystudio/src/assets/img/icon_steps/cube-grey.png   |    Bin 0 -> 2991 bytes
 kystudio/src/assets/img/icon_steps/robot-green.png |    Bin 0 -> 15958 bytes
 kystudio/src/assets/img/icon_steps/robot-grey.png  |    Bin 0 -> 7826 bytes
 .../src/assets/img/icon_steps/rocket-green.png     |    Bin 0 -> 16601 bytes
 kystudio/src/assets/img/icon_steps/rocket-grey.png |    Bin 0 -> 12180 bytes
 kystudio/src/assets/img/icon_steps/sql-green.png   |    Bin 0 -> 7496 bytes
 kystudio/src/assets/img/icon_steps/sql-grey.png    |    Bin 0 -> 4462 bytes
 kystudio/src/assets/img/image-index-cn.png         |    Bin 0 -> 42499 bytes
 kystudio/src/assets/img/image-index-en.png         |    Bin 0 -> 48376 bytes
 kystudio/src/assets/img/image-seg.png              |    Bin 0 -> 19309 bytes
 kystudio/src/assets/img/index.gif                  |    Bin 0 -> 1134508 bytes
 kystudio/src/assets/img/insight.png                |    Bin 0 -> 711 bytes
 kystudio/src/assets/img/insight@2x.png             |    Bin 0 -> 2257 bytes
 kystudio/src/assets/img/insight_hover.png          |    Bin 0 -> 477 bytes
 kystudio/src/assets/img/jsplumb.png                |    Bin 0 -> 14642 bytes
 kystudio/src/assets/img/kylin-loading.gif          |    Bin 0 -> 66750 bytes
 kystudio/src/assets/img/layout.png                 |    Bin 0 -> 487 bytes
 kystudio/src/assets/img/license.png                |    Bin 0 -> 2477 bytes
 kystudio/src/assets/img/loadmore.png               |    Bin 0 -> 350 bytes
 kystudio/src/assets/img/logincontactus.png         |    Bin 0 -> 409 bytes
 kystudio/src/assets/img/loginintroduction.png      |    Bin 0 -> 390 bytes
 kystudio/src/assets/img/loginmanual.png            |    Bin 0 -> 362 bytes
 kystudio/src/assets/img/logo.png                   |    Bin 0 -> 8905 bytes
 kystudio/src/assets/img/logo/big_logo.png          |    Bin 0 -> 3313 bytes
 kystudio/src/assets/img/logo/logo_login.png        |    Bin 0 -> 6697 bytes
 kystudio/src/assets/img/logo/logo_small_white.png  |    Bin 0 -> 3661 bytes
 kystudio/src/assets/img/logo/small_logo.png        |    Bin 0 -> 2737 bytes
 kystudio/src/assets/img/logo_kylin.png             |    Bin 0 -> 2902 bytes
 kystudio/src/assets/img/merge1.gif                 |    Bin 0 -> 74306 bytes
 kystudio/src/assets/img/model.png                  |    Bin 0 -> 316 bytes
 kystudio/src/assets/img/model@2x.png               |    Bin 0 -> 1987 bytes
 kystudio/src/assets/img/monitor.png                |    Bin 0 -> 1318 bytes
 kystudio/src/assets/img/monitor_hover.png          |    Bin 0 -> 1029 bytes
 kystudio/src/assets/img/no_cube 2.png              |    Bin 0 -> 11746 bytes
 kystudio/src/assets/img/no_cube.png                |    Bin 0 -> 6649 bytes
 kystudio/src/assets/img/no_data.png                |    Bin 0 -> 4475 bytes
 kystudio/src/assets/img/no_model 2.png             |    Bin 0 -> 9897 bytes
 kystudio/src/assets/img/no_model.png               |    Bin 0 -> 5971 bytes
 kystudio/src/assets/img/no_project.png             |    Bin 0 -> 1666 bytes
 kystudio/src/assets/img/no_table.png               |    Bin 0 -> 3805 bytes
 kystudio/src/assets/img/nocube.png                 |    Bin 0 -> 5735 bytes
 kystudio/src/assets/img/nomodel.png                |    Bin 0 -> 4684 bytes
 kystudio/src/assets/img/notabledata.png            |    Bin 0 -> 1831 bytes
 kystudio/src/assets/img/noticeImg1.png             |    Bin 0 -> 5526 bytes
 kystudio/src/assets/img/noticeImg2.png             |    Bin 0 -> 13634 bytes
 kystudio/src/assets/img/noticeImg3.png             |    Bin 0 -> 26433 bytes
 kystudio/src/assets/img/order.png                  |    Bin 0 -> 288 bytes
 kystudio/src/assets/img/outin.png                  |    Bin 0 -> 3016 bytes
 kystudio/src/assets/img/overview.png               |    Bin 0 -> 68093 bytes
 kystudio/src/assets/img/project.png                |    Bin 0 -> 171 bytes
 kystudio/src/assets/img/projects.png               |    Bin 0 -> 708 bytes
 kystudio/src/assets/img/renderDown.gif             |    Bin 0 -> 1608713 bytes
 kystudio/src/assets/img/renderUp.gif               |    Bin 0 -> 318364 bytes
 kystudio/src/assets/img/save_query.png             |    Bin 0 -> 3395 bytes
 kystudio/src/assets/img/sql.png                    |    Bin 0 -> 321 bytes
 kystudio/src/assets/img/studio.png                 |    Bin 0 -> 1739 bytes
 kystudio/src/assets/img/studio_hover.png           |    Bin 0 -> 1190 bytes
 kystudio/src/assets/img/sx.png                     |    Bin 0 -> 149 bytes
 kystudio/src/assets/img/system.png                 |    Bin 0 -> 2020 bytes
 kystudio/src/assets/img/system_hover.png           |    Bin 0 -> 649 bytes
 kystudio/src/assets/img/table-index.png            |    Bin 0 -> 15315 bytes
 kystudio/src/assets/img/tableStats.png             |    Bin 0 -> 240 bytes
 kystudio/src/assets/img/table_index.png            |    Bin 0 -> 16698 bytes
 kystudio/src/assets/img/tablelist.png              |    Bin 0 -> 139 bytes
 kystudio/src/assets/img/tablelisthover.png         |    Bin 0 -> 138 bytes
 kystudio/src/assets/styles/icons.less              |    684 +
 kystudio/src/assets/styles/index.less              |      9 +
 kystudio/src/assets/styles/main.less               |   1118 +
 kystudio/src/assets/styles/mixin.less              |      8 +
 kystudio/src/assets/styles/utils.less              |      3 +
 kystudio/src/assets/styles/variables.less          |    165 +
 kystudio/src/canvas/CanvasText/CanvasText.vue      |    268 +
 .../src/canvas/CanvasTooltip/CanvasTooltip.vue     |     86 +
 kystudio/src/canvas/ModelTable/ModelTable.vue      |     54 +
 kystudio/src/canvas/ModelTable/TableHeader.vue     |     61 +
 kystudio/src/canvas/Stage/Stage.vue                |    183 +
 kystudio/src/canvas/TableJoint/TableJoint.vue      |    135 +
 kystudio/src/canvas/TableJoint/handler.js          |     48 +
 kystudio/src/canvas/index.js                       |      9 +
 kystudio/src/canvas/utils/index.js                 |      5 +
 kystudio/src/canvas/utils/style.js                 |     46 +
 kystudio/src/components/admin/Diagnostic/index.vue |    680 +
 .../src/components/admin/Diagnostic/locales.js     |     68 +
 kystudio/src/components/admin/Diagnostic/store.js  |    227 +
 kystudio/src/components/admin/Group/index.vue      |    211 +
 kystudio/src/components/admin/Group/locales.js     |     15 +
 kystudio/src/components/admin/User/index.vue       |    300 +
 kystudio/src/components/admin/User/locales.js      |     21 +
 .../common/DataRangeBar/DataRangeBar.vue           |    304 +
 kystudio/src/components/common/DataRangeBar/bg.png |    Bin 0 -> 121 bytes
 .../src/components/common/DataSourceBar/handler.js |    334 +
 .../src/components/common/DataSourceBar/index.vue  |    960 +
 .../src/components/common/DataSourceBar/locales.js |     24 +
 .../DataSourceModal/SourceHive/SourceHive.vue      |   1030 +
 .../common/DataSourceModal/SourceHive/handler.js   |    127 +
 .../common/DataSourceModal/SourceHive/locales.js   |     48 +
 .../common/DataSourceModal/SourceHive/mock.js      |     21 +
 .../SourceHiveSetting/SourceHiveSetting.vue        |    176 +
 .../DataSourceModal/SourceHiveSetting/handler.js   |     56 +
 .../DataSourceModal/SourceHiveSetting/locales.js   |     20 +
 .../SourceAuthorityForm/SourceAuthorityForm.vue    |     86 +
 .../SourceJDBC/SourceAuthorityForm/locales.js      |     14 +
 .../SourceJDBC/SourceGbase/SourceGbase.vue         |     52 +
 .../SourceJDBC/SourceGbase/locales.js              |      5 +
 .../DataSourceModal/SourceKafka/SourceKafka.vue    |    499 +
 .../common/DataSourceModal/SourceKafka/locales.js  |     22 +
 .../SourceKafkaStep2/SourceKafkaStep2.vue          |    540 +
 .../DataSourceModal/SourceKafkaStep2/locales.js    |     22 +
 .../DataSourceModal/SourceSelect/SourceSelect.vue  |    300 +
 .../common/DataSourceModal/SourceSelect/locales.js |      9 +
 .../components/common/DataSourceModal/handler.js   |    138 +
 .../components/common/DataSourceModal/index.vue    |    451 +
 .../components/common/DataSourceModal/locales.js   |     22 +
 .../src/components/common/DataSourceModal/store.js |    138 +
 .../common/DropdownFilter/DropdownFilter.vue       |    293 +
 .../components/common/DropdownFilter/handler.js    |     31 +
 .../components/common/DropdownFilter/locales.js    |      8 +
 .../common/EditableBlock/EditableBlock.vue         |    142 +
 .../src/components/common/EmptyData/EmptyData.vue  |     82 +
 .../src/components/common/EmptyData/locales.js     |      5 +
 .../common/GlobalDialog/dialog/detail_dialog.vue   |    372 +
 .../components/common/GlobalDialog/dialog/store.js |     84 +
 .../components/common/GroupEditModal/handler.js    |     25 +
 .../src/components/common/GroupEditModal/index.vue |    310 +
 .../components/common/GroupEditModal/locales.js    |     14 +
 .../src/components/common/GroupEditModal/store.js  |     71 +
 kystudio/src/components/common/Modal/Modal.vue     |     43 +
 .../ModelDimensionList/ModelDimensionList.vue      |     97 +
 .../common/ModelERDiagram/ModelERDiagram.vue       |    267 +
 .../components/common/ModelERDiagram/handler.js    |      4 +
 .../components/common/ModelERDiagram/locales.js    |      6 +
 .../ModelERDiagramModal/ModelERDiagramModal.vue    |     75 +
 .../common/ModelERDiagramModal/locales.js          |      5 +
 .../components/common/ModelERDiagramModal/store.js |     46 +
 .../common/ModelMeasureList/ModelMeasureList.vue   |    129 +
 .../common/ModelsExportModal/ModelsExportModal.vue |    451 +
 .../components/common/ModelsExportModal/locales.js |     23 +
 .../components/common/ModelsExportModal/store.js   |     83 +
 .../common/ModelsImportModal/ModelsImportModal.vue |   1238 +
 .../ModelsImportModal/RenderModelConflicts.vue     |     57 +
 .../components/common/ModelsImportModal/handler.js |     74 +
 .../components/common/ModelsImportModal/locales.js |    113 +
 .../components/common/ModelsImportModal/store.js   |    284 +
 .../OverflowTextTooltip/OverflowTextTooltip.vue    |     77 +
 .../src/components/common/PartitionChart/index.vue |    262 +
 .../common/ProjectEditModal/ProjectEditModal.vue   |    394 +
 .../components/common/ProjectEditModal/handler.js  |     40 +
 .../components/common/ProjectEditModal/locales.js  |     21 +
 .../components/common/ProjectEditModal/store.js    |     85 +
 .../common/ProjectSidebar/ProjectSidebar.vue       |    287 +
 .../components/common/ProjectSidebar/locales.js    |     11 +
 .../common/SourceTableModal/SourceTableModal.vue   |    331 +
 .../components/common/SourceTableModal/handler.js  |     67 +
 .../components/common/SourceTableModal/locales.js  |     54 +
 .../components/common/SourceTableModal/store.js    |     67 +
 .../common/TreeList/__test__/treeList.spec.js      |    226 +
 kystudio/src/components/common/TreeList/index.vue  |    434 +
 .../src/components/common/UserEditModal/handler.js |     55 +
 .../src/components/common/UserEditModal/index.vue  |    450 +
 .../src/components/common/UserEditModal/locales.js |     33 +
 .../src/components/common/UserEditModal/store.js   |    127 +
 kystudio/src/components/common/area_label.vue      |    433 +
 kystudio/src/components/common/change_lang.vue     |     95 +
 kystudio/src/components/common/common_tip.vue      |     47 +
 .../src/components/common/datasource_left_bar.vue  |    609 +
 kystudio/src/components/common/editor.vue          |    395 +
 kystudio/src/components/common/help.vue            |      5 +
 kystudio/src/components/common/loading.vue         |     49 +
 kystudio/src/components/common/nodata.vue          |     38 +
 kystudio/src/components/common/pager.vue           |     90 +
 kystudio/src/components/common/progress.vue        |     92 +
 kystudio/src/components/common/slider.vue          |     64 +
 kystudio/src/components/common/tab.vue             |     61 +
 kystudio/src/components/layout/layout_full.vue     |    171 +
 .../components/layout/layout_left_right_top.vue    |    898 +
 .../monitor/batchJobs/buildSegmentDetail.vue       |    252 +
 .../src/components/monitor/batchJobs/handler.js    |     76 +
 .../monitor/batchJobs/jobErrorDetail.vue           |     99 +
 kystudio/src/components/monitor/batchJobs/jobs.vue |   1757 +
 .../src/components/monitor/batchJobs/locales.js    |    143 +
 kystudio/src/components/monitor/job_dialog.vue     |     96 +
 .../components/monitor/streamingJobs/locales.js    |     71 +
 .../monitor/streamingJobs/streamingJobs.vue        |   1108 +
 kystudio/src/components/noAuthority/index.vue      |    123 +
 .../src/components/project/project_authority.vue   |    834 +
 kystudio/src/components/project/project_list.vue   |    432 +
 kystudio/src/components/project/project_select.vue |    109 +
 kystudio/src/components/query/handler.js           |    134 +
 kystudio/src/components/query/insight.vue          |    653 +
 kystudio/src/components/query/query_history.vue    |    262 +
 .../src/components/query/query_history_table.vue   |   1428 +
 kystudio/src/components/query/query_result.vue     |    888 +
 kystudio/src/components/query/query_tab.vue        |    392 +
 .../src/components/query/save_query_dialog.vue     |     92 +
 .../setting/SettingAdvanced/SettingAdvanced.vue    |   1227 +
 .../components/setting/SettingAdvanced/handler.js  |     86 +
 .../components/setting/SettingAdvanced/locales.js  |     91 +
 .../setting/SettingBasic/SettingBasic.vue          |    807 +
 .../src/components/setting/SettingBasic/handler.js |    137 +
 .../src/components/setting/SettingBasic/locales.js |    109 +
 .../setting/SettingModel/SettingModel.vue          |    627 +
 .../src/components/setting/SettingModel/locales.js |     60 +
 kystudio/src/components/setting/handler.js         |     12 +
 kystudio/src/components/setting/locales.js         |      8 +
 kystudio/src/components/setting/setting.vue        |    314 +
 .../studio/StudioModel/AddCCModal/addcc.vue        |     76 +
 .../studio/StudioModel/AddCCModal/locales.js       |      5 +
 .../studio/StudioModel/AddCCModal/store.js         |     52 +
 .../studio/StudioModel/AddMeasure/index.vue        |   1046 +
 .../studio/StudioModel/BatchMeasureModal/index.vue |    779 +
 .../StudioModel/BatchMeasureModal/locales.js       |     17 +
 .../studio/StudioModel/BatchMeasureModal/store.js  |     49 +
 .../StudioModel/ComputedColumnForm/ccform.vue      |    375 +
 .../studio/StudioModel/DimensionsModal/index.vue   |    961 +
 .../studio/StudioModel/DimensionsModal/locales.js  |     35 +
 .../studio/StudioModel/DimensionsModal/store.js    |     58 +
 .../studio/StudioModel/ModelEdit/config.js         |    146 +
 .../studio/StudioModel/ModelEdit/dragbar.vue       |     85 +
 .../studio/StudioModel/ModelEdit/index.vue         |   2924 +
 .../studio/StudioModel/ModelEdit/layout.js         |    292 +
 .../studio/StudioModel/ModelEdit/locales.js        |     95 +
 .../studio/StudioModel/ModelEdit/model.js          |   1417 +
 .../studio/StudioModel/ModelEdit/schama.js         |    155 +
 .../studio/StudioModel/ModelEdit/table.js          |    287 +
 .../ModelList/AggregateModal/handler.js            |     32 +
 .../StudioModel/ModelList/AggregateModal/index.vue |   2460 +
 .../ModelList/AggregateModal/locales.js            |    119 +
 .../StudioModel/ModelList/AggregateModal/mock.js   |    733 +
 .../StudioModel/ModelList/AggregateModal/store.js  |    231 +
 .../ModelList/ConfirmSegment/ConfirmSegment.vue    |    382 +
 .../ModelList/ConfirmSegment/locales.js            |     17 +
 .../StudioModel/ModelList/ConfirmSegment/store.js  |     58 +
 .../ModelList/DataFeatures/dataFeatures.vue        |    336 +
 .../StudioModel/ModelList/DataFeatures/locales.js  |     11 +
 .../ModelList/Developers/developers.vue            |     49 +
 .../ModelList/GuideModal/GuideModal.vue            |    393 +
 .../StudioModel/ModelList/GuideModal/locales.js    |     19 +
 .../StudioModel/ModelList/GuideModal/store.js      |     48 +
 .../StudioModel/ModelList/ModelActions/locales.js  |     70 +
 .../ModelList/ModelActions/modelActions.vue        |    734 +
 .../ModelList/ModelAddModal/addmodel.vue           |    116 +
 .../StudioModel/ModelList/ModelAddModal/locales.js |      6 +
 .../StudioModel/ModelList/ModelAddModal/store.js   |     42 +
 .../ModelList/ModelAggregate/broken.png            |    Bin 0 -> 159 bytes
 .../ModelList/ModelAggregate/broken_note.jpg       |    Bin 0 -> 2946 bytes
 .../StudioModel/ModelList/ModelAggregate/empty.png |    Bin 0 -> 219 bytes
 .../ModelList/ModelAggregate/empty_note.jpg        |    Bin 0 -> 2917 bytes
 .../ModelList/ModelAggregate/handler.js            |    129 +
 .../StudioModel/ModelList/ModelAggregate/index.vue |   1259 +
 .../ModelList/ModelAggregate/indexDetails.vue      |    186 +
 .../ModelList/ModelAggregate/locales.js            |     88 +
 .../StudioModel/ModelList/ModelAggregate/mock.js   |    962 +
 .../ModelAggregateView/AggAdvancedModal/index.vue  |    439 +
 .../ModelAggregateView/AggAdvancedModal/locales.js |     11 +
 .../ModelAggregateView/AggAdvancedModal/store.js   |     42 +
 .../ModelList/ModelAggregateView/index.vue         |    473 +
 .../ModelList/ModelAggregateView/locales.js        |     34 +
 .../ModelList/ModelBuildModal/build.vue            |   1360 +
 .../ModelList/ModelBuildModal/locales.js           |     76 +
 .../StudioModel/ModelList/ModelBuildModal/store.js |     61 +
 .../ModelList/ModelCheckData/checkdata.vue         |    195 +
 .../ModelList/ModelCheckData/locales.js            |      3 +
 .../StudioModel/ModelList/ModelCheckData/store.js  |     48 +
 .../ModelList/ModelCloneModal/clone.vue            |     99 +
 .../ModelList/ModelCloneModal/locales.js           |      7 +
 .../StudioModel/ModelList/ModelCloneModal/store.js |     48 +
 .../StudioModel/ModelList/ModelJson/modelJson.vue  |     63 +
 .../StudioModel/ModelList/ModelLayout/locales.js   |     26 +
 .../ModelList/ModelLayout/modelLayout.vue          |    660 +
 .../ModelList/ModelOverview/ModelOverview.vue      |     91 +
 .../StudioModel/ModelList/ModelOverview/locales.js |      7 +
 .../StudioModel/ModelList/ModelPartition/index.vue |    517 +
 .../ModelList/ModelPartition/locales.js            |     26 +
 .../StudioModel/ModelList/ModelPartition/store.js  |     52 +
 .../ModelList/ModelRenameModal/locales.js          |      7 +
 .../ModelList/ModelRenameModal/rename.vue          |    101 +
 .../ModelList/ModelRenameModal/store.js            |     48 +
 .../ModelList/ModelSaveConfig/index.vue            |   1022 +
 .../ModelList/ModelSaveConfig/locales.js           |     70 +
 .../StudioModel/ModelList/ModelSaveConfig/store.js |     59 +
 .../ModelSegment/SegmentChart/SegmentChart.vue     |    339 +
 .../ModelList/ModelSegment/SegmentChart/handler.js |     37 +
 .../ModelList/ModelSegment/SegmentChart/locales.js |      6 +
 .../ModelList/ModelSegment/SegmentTabs.vue         |    134 +
 .../StreamingSegment/StreamingSegment.vue          |    565 +
 .../StudioModel/ModelList/ModelSegment/handler.js  |     24 +
 .../ModelList/ModelSegment/icon_add.svg            |     16 +
 .../ModelList/ModelSegment/icon_reduce.svg         |     16 +
 .../StudioModel/ModelList/ModelSegment/index.vue   |   1339 +
 .../StudioModel/ModelList/ModelSegment/locales.js  |    103 +
 .../StudioModel/ModelList/ModelSql/ModelSql.vue    |     61 +
 .../ModelStreamingJob/ModelStreamingJob.vue        |    362 +
 .../ModelList/ModelStreamingJob/locales.js         |     34 +
 .../StudioModel/ModelList/TableIndexView/index.vue |    335 +
 .../ModelList/TableIndexView/locales.js            |     19 +
 .../studio/StudioModel/ModelList/index.vue         |   1395 +
 .../studio/StudioModel/ModelList/locales.js        |    116 +
 .../studio/StudioModel/ModelList/mock.js           |     15 +
 .../studio/StudioModel/ModelTabs/index.vue         |    180 +
 .../studio/StudioModel/ModelTabs/locales.js        |     21 +
 .../studio/StudioModel/ShowCC/locales.js           |      4 +
 .../studio/StudioModel/ShowCC/showcc.vue           |     91 +
 .../components/studio/StudioModel/ShowCC/store.js  |     48 +
 .../SingleDimensionModal/addDimension.vue          |    302 +
 .../StudioModel/SingleDimensionModal/locales.js    |     18 +
 .../StudioModel/SingleDimensionModal/store.js      |     54 +
 .../SubPartitionValues/SubPartitionValues.vue      |    373 +
 .../StudioModel/SubPartitionValues/locales.js      |     16 +
 .../studio/StudioModel/TableIndex/index.vue        |    504 +
 .../studio/StudioModel/TableIndex/locales.js       |     44 +
 .../studio/StudioModel/TableIndexEdit/locales.js   |     34 +
 .../studio/StudioModel/TableIndexEdit/store.js     |     71 +
 .../StudioModel/TableIndexEdit/tableindex_edit.vue |    607 +
 .../studio/StudioModel/TableJoinModal/index.vue    |    825 +
 .../studio/StudioModel/TableJoinModal/locales.js   |     36 +
 .../studio/StudioModel/TableJoinModal/store.js     |     59 +
 .../StudioSource/KafkaCluster/KafkaCluster.vue     |     70 +
 .../studio/StudioSource/KafkaCluster/locales.js    |     19 +
 .../SourceManagement/SourceManagement.vue          |    105 +
 .../StudioSource/SourceManagement/locales.js       |     11 +
 .../studio/StudioSource/SourceManagement/mock.js   |     10 +
 .../StudioSource/TableColumns/TableColumns.vue     |    219 +
 .../studio/StudioSource/TableColumns/locales.js    |      8 +
 .../StudioSource/TableDataLoad/TableDataLoad.vue   |    342 +
 .../studio/StudioSource/TableDataLoad/handler.js   |     28 +
 .../studio/StudioSource/TableDataLoad/locales.js   |     27 +
 .../studio/StudioSource/TableExtInfo/index.vue     |     74 +
 .../studio/StudioSource/TableExtInfo/locales.js    |      4 +
 .../studio/StudioSource/TableReload/locales.js     |     50 +
 .../studio/StudioSource/TableReload/reload.vue     |    336 +
 .../studio/StudioSource/TableReload/store.js       |     59 +
 .../StudioSource/TableSamples/TableSamples.vue     |    184 +
 .../studio/StudioSource/TableSamples/locales.js    |      9 +
 .../studio/StudioSource/TableStatistics/index.vue  |    155 +
 .../studio/StudioSource/TableStatistics/locales.js |      5 +
 .../src/components/studio/StudioSource/empty.svg   |     18 +
 .../src/components/studio/StudioSource/handler.js  |      6 +
 .../src/components/studio/StudioSource/index.vue   |    503 +
 .../src/components/studio/StudioSource/locales.js  |     37 +
 .../snapshot/SnapshotModel/SnapshotModel.vue       |   1236 +
 .../studio/snapshot/SnapshotModel/handler.js       |    122 +
 .../studio/snapshot/SnapshotModel/locales.js       |     38 +
 .../studio/snapshot/SnapshotModel/store.js         |     51 +
 kystudio/src/components/studio/snapshot/locales.js |     62 +
 .../src/components/studio/snapshot/snapshot.vue    |    968 +
 kystudio/src/components/user/login.vue             |    293 +
 kystudio/src/config/index.js                       |    722 +
 kystudio/src/config/model.js                       |     12 +
 kystudio/src/config/projectCfgs.js                 |      5 +
 kystudio/src/config/spec.js                        |    280 +
 kystudio/src/directive/index.js                    |    868 +
 kystudio/src/filter/index.js                       |    159 +
 kystudio/src/locale/en.js                          |    520 +
 kystudio/src/main.js                               |    108 +
 kystudio/src/router/index.js                       |    140 +
 kystudio/src/router/routerGuard.js                 |    123 +
 kystudio/src/service/api.js                        |     22 +
 kystudio/src/service/config.js                     |     17 +
 kystudio/src/service/datasource.js                 |    319 +
 kystudio/src/service/kafka.js                      |     38 +
 kystudio/src/service/message.js                    |     18 +
 kystudio/src/service/model.js                      |    330 +
 kystudio/src/service/monitor.js                    |     77 +
 kystudio/src/service/project.js                    |    152 +
 kystudio/src/service/system.js                     |     64 +
 kystudio/src/service/user.js                       |     64 +
 kystudio/src/store/config.js                       |    107 +
 kystudio/src/store/datasource.js                   |    399 +
 kystudio/src/store/index.js                        |     31 +
 kystudio/src/store/kafka.js                        |     42 +
 kystudio/src/store/model.js                        |    442 +
 kystudio/src/store/monitor.js                      |     90 +
 kystudio/src/store/project.js                      |    358 +
 kystudio/src/store/system.js                       |    245 +
 kystudio/src/store/types.js                        |    434 +
 kystudio/src/store/user.js                         |    165 +
 kystudio/src/util/UtilTable.js                     |     87 +
 kystudio/src/util/autoLayout/TreeLayout.js         |    297 +
 kystudio/src/util/autoLayout/index.js              |      5 +
 kystudio/src/util/business.js                      |    246 +
 kystudio/src/util/charts.js                        |    156 +
 kystudio/src/util/dataGenerator.js                 |    170 +
 kystudio/src/util/dataHelper.js                    |     46 +
 kystudio/src/util/datasourceDataHandler.js         |    334 +
 kystudio/src/util/domHelper.js                     |     38 +
 kystudio/src/util/event.js                         |     25 +
 kystudio/src/util/index.js                         |    442 +
 kystudio/src/util/object.js                        |     66 +
 kystudio/src/util/plumb.js                         |    137 +
 kystudio/src/util/polyfill.js                      |     40 +
 kystudio/src/util/specParser.js                    |    106 +
 kystudio/src/util/validate.js                      |     81 +
 kystudio/src/util/vuex-router-sync.js              |     74 +
 kystudio/static/.gitkeep                           |      0
 kystudio/test/README.md                            |     59 +
 kystudio/test/common/directive.js                  |    795 +
 kystudio/test/common/spec_common.js                |     61 +
 kystudio/test/jest.conf.js                         |     92 +
 kystudio/test/setup.js                             |      3 +
 lombok.config                                      |      1 +
 pom.xml                                            |   3210 +
 scalastyle-config.xml                              |    336 +
 src/.gitignore                                     |      6 +
 src/assembly/pom.xml                               |    344 +
 src/common-booter/pom.xml                          |    238 +
 .../apache/kylin/rest/CommonBootstrapServer.java   |     38 +
 .../src/main/resources/META-INF/spring.factories   |      1 +
 .../src/main/resources/application.yaml            |     98 +
 .../src/main/resources/applicationContext.xml      |     40 +
 src/common-booter/src/main/resources/assembly.xml  |     79 +
 .../src/main/resources/config/config.yaml          |     45 +
 .../src/main/resources/config/config_library.csv   |    566 +
 .../src/main/resources/config/init.properties      |    453 +
 src/common-booter/src/main/resources/ehcache.xml   |     42 +
 .../src/main/resources/exception_to_code.json      |      8 +
 .../src/main/resources/kylinSecurity.xml           |    625 +
 src/common-booter/src/main/resources/log4j2.xml    |     22 +
 .../script/schema-session-attributes-mysql.sql     |     24 +
 .../script/schema-session-attributes-pg.sql        |     24 +
 .../main/resources/script/schema-session-mysql.sql |     31 +
 .../main/resources/script/schema-session-pg.sql    |     31 +
 src/common-server/pom.xml                          |    216 +
 .../kylin/rest/controller/BroadcastController.java |     59 +
 .../kylin/rest/controller/ErrorController.java     |     39 +
 .../kylin/rest/controller/HealthController.java    |    162 +
 .../kylin/rest/controller/LightningController.java |     48 +
 .../kylin/rest/controller/NAdminController.java    |    117 +
 .../kylin/rest/controller/NConfigController.java   |     46 +
 .../kylin/rest/controller/NEpochController.java    |     68 +
 .../kylin/rest/controller/NMonitorController.java  |    116 +
 .../kylin/rest/controller/NSystemController.java   |    277 +
 .../rest/controller/SparkSourceController.java     |    145 +
 .../src/main/resources/META-INF/spring.factories   |      1 +
 .../src/main/resources/applicationContext.xml      |     40 +
 src/common-server/src/main/resources/ehcache.xml   |     42 +
 .../kylin/rest/controller/AdminControllerTest.java |     92 +
 .../kylin/rest/controller/ErrorControllerTest.java |     65 +
 .../rest/controller/HealthControllerTest.java      |     94 +
 .../rest/controller/LightningControllerTest.java   |     78 +
 .../rest/controller/NConfigControllerTest.java     |     73 +
 .../rest/controller/NEpochControllerTest.java      |     84 +
 .../rest/controller/NSystemControllerTest.java     |    149 +
 .../rest/controller/SparkSourceControllerTest.java |    184 +
 src/common-service/pom.xml                         |    324 +
 .../apache/kylin/rest/KylinPrepareEnvListener.java |    127 +
 .../org/apache/kylin/rest/cache/RedisCache.java    |    515 +
 .../org/apache/kylin/rest/config/AppConfig.java    |    197 +
 .../apache/kylin/rest/config/AppInitializer.java   |    192 +
 .../org/apache/kylin/rest/config/CloudConfig.java  |     36 +
 .../apache/kylin/rest/config/MetricsConfig.java    |    101 +
 .../rest/config/SwaggerCompatibilityConfig.java    |     72 +
 .../kylin/rest/config/cloud/AlluxioExtension.java  |    184 +
 .../rest/config/initialize/AclTCRListener.java     |     72 +
 .../config/initialize/AfterMetadataReadyEvent.java |     27 +
 .../rest/config/initialize/BootstrapCommand.java   |     65 +
 .../rest/config/initialize/CacheCleanListener.java |    101 +
 .../config/initialize/EpochChangedListener.java    |    149 +
 .../config/initialize/JobSchedulerListener.java    |     65 +
 .../rest/config/initialize/MetricsRegistry.java    |    359 +
 .../config/initialize/ModelBrokenListener.java     |    188 +
 .../config/initialize/ProcessStatusListener.java   |    172 +
 .../config/initialize/ProjectDropListener.java     |     74 +
 .../config/initialize/QueryMetricsListener.java    |    198 +
 .../rest/config/initialize/SparderStartEvent.java  |     35 +
 .../initialize/TableSchemaChangeListener.java      |     77 +
 .../rest/constant/ProjectInfoParserConstant.java   |     69 +
 .../apache/kylin/rest/constant/SnapshotStatus.java |     23 +
 .../kylin/rest/controller/NBasicController.java    |    590 +
 .../IResourceGroupRequestValidator.java            |     27 +
 .../ResourceGroupDisabledValidator.java            |     51 +
 .../ResourceGroupEnabledValidator.java             |     43 +
 .../ResourceGroupEntityValidator.java              |     61 +
 .../resourcegroup/ResourceGroupFieldValidator.java |     42 +
 .../ResourceGroupKylinInstanceValidator.java       |     68 +
 .../ResourceGroupMappingInfoValidator.java         |     92 +
 .../kylin/rest/interceptor/ProjectInfoParser.java  |    155 +
 .../interceptor/ReloadAuthoritiesInterceptor.java  |    109 +
 .../interceptor/RepeatableRequestBodyFilter.java   |     79 +
 .../interceptor/ResourceGroupCheckerFilter.java    |    110 +
 .../rest/monitor/AbstractMonitorCollectTask.java   |     54 +
 .../apache/kylin/rest/monitor/MonitorReporter.java |    203 +
 .../apache/kylin/rest/request/AccessRequest.java   |     34 +
 .../apache/kylin/rest/request/AclTCRRequest.java   |    127 +
 .../kylin/rest/request/AlertMessageRequest.java    |     66 +
 .../apache/kylin/rest/request/BackupRequest.java   |     35 +
 .../kylin/rest/request/BatchAccessRequest.java     |     35 +
 .../request/BatchProjectPermissionRequest.java     |     41 +
 .../rest/request/ComputedColumnConfigRequest.java  |     29 +
 .../kylin/rest/request/DataSourceTypeRequest.java  |     29 +
 .../kylin/rest/request/DefaultDatabaseRequest.java |     30 +
 .../kylin/rest/request/DiagPackageRequest.java     |     30 +
 .../kylin/rest/request/DiagProgressRequest.java    |     35 +
 .../apache/kylin/rest/request/EpochRequest.java    |     42 +
 .../apache/kylin/rest/request/EventRequest.java    |     51 +
 .../request/FavoriteQueryThresholdRequest.java     |     32 +
 .../rest/request/FavoriteRuleUpdateRequest.java    |     75 +
 .../rest/request/GarbageCleanUpConfigRequest.java  |     56 +
 .../org/apache/kylin/rest/request/JdbcRequest.java |     38 +
 .../kylin/rest/request/JdbcSourceInfoRequest.java  |     42 +
 .../rest/request/JobNotificationConfigRequest.java |     36 +
 .../rest/request/MaintainModelTypeRequest.java     |     36 +
 .../kylin/rest/request/MaintenanceModeRequest.java |     29 +
 .../rest/request/MultiPartitionConfigRequest.java  |     33 +
 .../kylin/rest/request/PasswordChangeRequest.java  |     35 +
 .../kylin/rest/request/ProjectConfigRequest.java   |     32 +
 .../rest/request/ProjectConfigResetRequest.java    |     29 +
 .../rest/request/ProjectGeneralInfoRequest.java    |     32 +
 .../rest/request/ProjectKerberosInfoRequest.java   |     30 +
 .../rest/request/ProjectPermissionRequest.java     |     38 +
 .../apache/kylin/rest/request/ProjectRequest.java  |     72 +
 .../kylin/rest/request/PushDownConfigRequest.java  |     29 +
 .../kylin/rest/request/PushDownModeRequest.java    |     37 +
 .../rest/request/PushDownProjectConfigRequest.java |     32 +
 .../rest/request/QueryDiagPackageRequest.java      |     29 +
 .../kylin/rest/request/SCD2ConfigRequest.java      |     29 +
 .../org/apache/kylin/rest/request/SQLRequest.java  |    159 +
 .../kylin/rest/request/SegmentConfigRequest.java   |     43 +
 .../kylin/rest/request/ShardNumConfigRequest.java  |     32 +
 .../kylin/rest/request/SnapshotConfigRequest.java  |     29 +
 .../kylin/rest/request/SourceUsageFilter.java      |     38 +
 .../kylin/rest/request/StorageQuotaRequest.java    |     29 +
 .../kylin/rest/request/UpdateGroupRequest.java     |     35 +
 .../kylin/rest/request/UserGroupRequest.java       |     28 +
 .../org/apache/kylin/rest/request/UserRequest.java |     80 +
 .../org/apache/kylin/rest/request/Validation.java  |     27 +
 .../kylin/rest/request/YarnQueueRequest.java       |     30 +
 .../resourecegroup/ResourceGroupRequest.java       |     47 +
 .../kylin/rest/response/AccessEntryResponse.java   |     84 +
 .../kylin/rest/response/AsyncQueryResponse.java    |     61 +
 .../kylin/rest/response/AsyncQueryResponseV2.java  |     39 +
 .../rest/response/CapacityDetailsResponse.java     |     41 +
 .../response/ClusterStatisticStatusResponse.java   |     64 +
 .../kylin/rest/response/ClusterStatusResponse.java |     58 +
 .../kylin/rest/response/DiagStatusResponse.java    |     30 +
 .../response/FavoriteQueryThresholdResponse.java   |     33 +
 .../apache/kylin/rest/response/HealthResponse.java |     60 +
 .../rest/response/MaintenanceModeResponse.java     |     36 +
 .../OpenPartitionColumnFormatResponse.java         |     31 +
 .../rest/response/OpenReloadTableResponse.java     |     34 +
 .../rest/response/ProjectCapacityResponse.java     |     46 +
 .../kylin/rest/response/ProjectConfigResponse.java |    144 +
 .../rest/response/ProjectPermissionResponse.java   |     37 +
 .../rest/response/ProjectStatisticsResponse.java   |     59 +
 .../kylin/rest/response/ServersResponse.java       |     36 +
 .../response/SidPermissionWithAclResponse.java     |     39 +
 .../kylin/rest/response/SnapshotInfoResponse.java  |    103 +
 .../rest/response/StorageVolumeInfoResponse.java   |     35 +
 .../kylin/rest/response/SystemProfileResponse.java |     67 +
 .../kylin/rest/response/UserInfoResponse.java      |     72 +
 .../response/UserProjectPermissionResponse.java    |     36 +
 .../rest/security/CachedBCryptPasswordEncoder.java |     85 +
 .../rest/security/LdapAuthenticationProvider.java  |     93 +
 .../rest/security/LdapAuthoritiesPopulator.java    |     55 +
 .../security/LimitLoginAuthenticationProvider.java |    197 +
 .../rest/security/NUnauthorisedEntryPoint.java     |    106 +
 .../rest/security/OpenAuthenticationProvider.java  |     92 +
 .../kylin/rest/security/SecurityLogAspect.java     |     76 +
 .../config/CustomProfileConfiguration.java         |     64 +
 .../config/LdapSamlProfileConfiguration.java       |     48 +
 .../config/LogoutHandlerConfiguration.java         |     42 +
 .../security/config/PasswordConfiguration.java     |     42 +
 .../apache/kylin/rest/service/AccessService.java   |    901 +
 .../apache/kylin/rest/service/AclTCRService.java   |   1229 +
 .../service/AsyncTaskQueryHistorySupporter.java    |     23 +
 .../rest/service/AsyncTaskServiceSupporter.java    |     34 +
 .../apache/kylin/rest/service/AuditLogService.java |     38 +
 .../apache/kylin/rest/service/BasicService.java    |    173 +
 .../rest/service/CacheSignatureQuerySupporter.java |     25 +
 .../service/CaseInsensitiveKylinUserService.java   |    117 +
 .../service/CaseInsensitiveUserGroupService.java   |     45 +
 .../rest/service/CommonQueryCacheSupporter.java    |     35 +
 .../apache/kylin/rest/service/EpochService.java    |     81 +
 .../apache/kylin/rest/service/HealthService.java   |     54 +
 .../kylin/rest/service/KylinUserService.java       |    186 +
 .../kylin/rest/service/LdapUserGroupService.java   |    264 +
 .../apache/kylin/rest/service/LdapUserService.java |    302 +
 .../kylin/rest/service/LightningService.java       |     55 +
 .../kylin/rest/service/MaintenanceModeService.java |     70 +
 .../rest/service/MaintenanceModeSupporter.java     |     23 +
 .../kylin/rest/service/MetadataBackupService.java  |     77 +
 .../kylin/rest/service/NUserGroupService.java      |    314 +
 .../kylin/rest/service/OpenUserGroupService.java   |     83 +
 .../apache/kylin/rest/service/OpenUserService.java |     67 +
 .../kylin/rest/service/ProjectModelSupporter.java  |     29 +
 .../apache/kylin/rest/service/ProjectService.java  |   1050 +
 .../rest/service/ProjectSmartServiceSupporter.java |     28 +
 .../kylin/rest/service/ProjectSmartSupporter.java  |     27 +
 .../kylin/rest/service/QuerySmartSupporter.java    |     28 +
 .../kylin/rest/service/SnapshotSupporter.java      |     30 +
 .../service/SystemProfileExtractorFactory.java     |     39 +
 .../apache/kylin/rest/service/SystemService.java   |    367 +
 .../org/apache/kylin/rest/service/UserService.java |    133 +
 .../service/task/QueryHistoryTaskScheduler.java    |    493 +
 .../task/RecommendationTopNUpdateScheduler.java    |    184 +
 .../kylin/rest/util/CreateAdminUserUtils.java      |    100 +
 .../kylin/rest/util/InitResourceGroupUtils.java    |     44 +
 .../apache/kylin/rest/util/InitUserGroupUtils.java |     50 +
 .../org/apache/kylin/rest/util/JStackDumpTask.java |     53 +
 .../org/apache/kylin/rest/util/SparkUIUtil.java    |    101 +
 .../config/initialize/MetricsRegistryTest.java     |    292 +
 .../config/initialize/ProjectDropListenerTest.java |     96 +
 .../rest/controller/NBasicControllerTest.java      |    295 +
 .../rest/controller/fixture/FixtureController.java |     34 +
 .../rest/interceptor/ProjectInfoParserTest.java    |    161 +
 .../ReloadAuthoritiesInterceptorTest.java          |    102 +
 .../RepeatableRequestBodyFilterTest.java           |    102 +
 .../ResourceGroupCheckerFilterTest.java            |    128 +
 .../kylin/rest/monitor/MonitorReporterTest.java    |     86 +
 .../kylin/rest/request/ProjectRequestTest.java     |     38 +
 .../security/FillEmptyAuthorizationFilterTest.java |     80 +
 .../LimitLoginAuthenticationProviderTest.java      |    185 +
 .../rest/security/NUnauthorisedEntryPointTest.java |    101 +
 .../PasswordPlaceholderConfigurerTest.java         |     64 +
 .../security/StaticAuthenticationProvider.java     |     35 +
 .../kylin/rest/security/UserLockRuleUtilTest.java  |     93 +
 .../config/CustomProfileConfigurationTest.java     |    100 +
 .../kylin/rest/service/AccessServiceTest.java      |    620 +
 .../apache/kylin/rest/service/AclServiceTest.java  |    196 +
 .../kylin/rest/service/CSVSourceTestCase.java      |    128 +
 .../CaseInsensitiveKylinUserServiceTest.java       |    131 +
 .../CaseInsensitiveUserGroupServiceTest.java       |     79 +
 .../kylin/rest/service/HealthServiceTest.java      |     95 +
 .../kylin/rest/service/KylinUserServiceTest.java   |    122 +
 .../kylin/rest/service/LdapUserServiceTest.java    |    380 +
 .../rest/service/MetadataBackupServiceTest.java    |    176 +
 .../kylin/rest/service/NUserGroupServiceTest.java  |    228 +
 .../kylin/rest/service/OpenUserServiceTest.java    |    204 +
 .../apache/kylin/rest/service/ServiceTestBase.java |    144 +
 .../kylin/rest/service/StaticUserGroupService.java |     74 +
 .../kylin/rest/service/StaticUserService.java      |     94 +
 .../kylin/rest/service/SystemServiceTest.java      |    273 +
 .../apache/kylin/rest/service/UserServiceTest.java |    139 +
 .../apache/kylin/rest/util/JStackDumpTaskTest.java |     56 +
 .../kylin/rest/validator/ProjectRequestTest.java   |     37 +
 .../src/test/resources/applicationContext.xml      |     40 +
 src/common-service/src/test/resources/ehcache.xml  |     42 +
 .../src/test/resources/kylinSecurity.xml           |    623 +
 .../acl/1eaca32a-a33e-4b69-83dd-0bb8b1f8c91b       |     35 +
 .../resources/ut_custom/custom-config.properties   |     19 +
 .../test/resources/ut_ldap/ldap-config.properties  |     39 +
 .../src/test/resources/ut_ldap/ldap-server.ldif    |    127 +
 src/core-common/pom.xml                            |    338 +
 .../common/eventbus/KylinEventException.java       |     29 +
 .../eventbus/SyncThrowExceptionEventBus.java       |     29 +
 .../kylin/common/BackwardCompatibilityConfig.java  |    231 +
 .../apache/kylin/common/ForceToTieredStorage.java  |     26 +
 .../java/org/apache/kylin/common/KapConfig.java    |    745 +
 .../java/org/apache/kylin/common/KylinConfig.java  |    723 +
 .../org/apache/kylin/common/KylinConfigBase.java   |   3399 +
 .../common/KylinConfigCannotInitException.java     |     44 +
 .../org/apache/kylin/common/KylinConfigExt.java    |    126 +
 .../kylin/common/KylinExternalConfigLoader.java    |    168 +
 .../java/org/apache/kylin/common/KylinVersion.java |    217 +
 .../apache/kylin/common/PropertiesDelegate.java    |     99 +
 .../java/org/apache/kylin/common/QueryContext.java |    383 +
 .../java/org/apache/kylin/common/QueryTrace.java   |    153 +
 .../java/org/apache/kylin/common/ReadFsSwitch.java |     95 +
 .../ShellKylinExternalConfigLoaderFactory.java     |    106 +
 .../java/org/apache/kylin/common/Singletons.java   |    151 +
 .../java/org/apache/kylin/common/StorageURL.java   |    220 +
 .../org/apache/kylin/common/ZookeeperConfig.java   |     57 +
 .../kylin/common/annotation/Clarification.java     |     41 +
 .../common/annotation/ThirdPartyDependencies.java  |     44 +
 .../org/apache/kylin/common/constant/Constant.java |     30 +
 .../apache/kylin/common/constant/Constants.java    |     53 +
 .../apache/kylin/common/constant/HttpConstant.java |     42 +
 .../constant/NonCustomProjectLevelConfig.java      |     73 +
 .../apache/kylin/common/debug/BackdoorToggles.java |    254 +
 .../apache/kylin/common/event/ModelAddEvent.java   |     34 +
 .../apache/kylin/common/event/ModelDropEvent.java  |     34 +
 .../event/ProjectCleanOldQueryResultEvent.java     |     34 +
 .../common/event/SourceUsageUpdateReqEvent.java    |     22 +
 .../exception/CalciteNotSupportException.java      |     39 +
 .../kylin/common/exception/CommonErrorCode.java    |     78 +
 .../common/exception/DistributedLockException.java |     45 +
 .../apache/kylin/common/exception/ErrorCode.java   |    124 +
 .../kylin/common/exception/ErrorCodeException.java |     59 +
 .../kylin/common/exception/ErrorCodeSupplier.java  |     40 +
 .../kylin/common/exception/ExceptionReason.java    |     94 +
 .../common/exception/ExceptionReasonSupplier.java  |     23 +
 .../kylin/common/exception/ExceptionResolve.java   |     93 +
 .../common/exception/ExceptionResolveSupplier.java |     23 +
 .../kylin/common/exception/JobErrorCode.java       |     46 +
 .../kylin/common/exception/JobExceptionReason.java |     41 +
 .../common/exception/JobExceptionResolve.java      |     43 +
 .../kylin/common/exception/KylinException.java     |    158 +
 .../common/exception/KylinRuntimeException.java    |     48 +
 .../common/exception/KylinTimeoutException.java    |     52 +
 .../common/exception/NewQueryRefuseException.java  |     34 +
 .../exception/OutOfMaxCombinationException.java    |     44 +
 .../kylin/common/exception/QueryErrorCode.java     |    100 +
 .../exception/ResourceLimitExceededException.java  |     48 +
 .../kylin/common/exception/ServerErrorCode.java    |    326 +
 .../kylin/common/exception/SystemErrorCode.java    |     68 +
 .../kylin/common/exception/ToolErrorCode.java      |     72 +
 .../exception/code/AbstractErrorContent.java       |     89 +
 .../kylin/common/exception/code/ErrorCode.java     |     68 +
 .../common/exception/code/ErrorCodeCommon.java     |     54 +
 .../kylin/common/exception/code/ErrorCodeJob.java  |     49 +
 .../common/exception/code/ErrorCodeProducer.java   |     40 +
 .../common/exception/code/ErrorCodeServer.java     |    137 +
 .../common/exception/code/ErrorCodeSystem.java     |     63 +
 .../kylin/common/exception/code/ErrorCodeTool.java |     53 +
 .../kylin/common/exception/code/ErrorMsg.java      |     86 +
 .../common/exception/code/ErrorSuggestion.java     |     86 +
 .../common/extension/ExtensionFactoryLoader.java   |     39 +
 .../kylin/common/extension/KylinExtension.java     |     28 +
 .../kylin/common/hystrix/NBreakerConfig.java       |     45 +
 .../kylin/common/hystrix/NCircuitBreaker.java      |    119 +
 .../kylin/common/lock/DistributedLockFactory.java  |     65 +
 .../lock/curator/CuratorDistributedLock.java       |    249 +
 .../curator/CuratorDistributedLockFactory.java     |    128 +
 .../lock/jdbc/JdbcDistributedLockFactory.java      |     59 +
 .../common/lock/jdbc/JdbcDistributedLockUtil.java  |     85 +
 .../kylin/common/logging/LogOutputStream.java      |     52 +
 .../common/logging/SensitivePatternMasker.java     |     63 +
 .../kylin/common/logging/SetLogCategory.java       |     36 +
 .../kylin/common/metrics/MetricsCategory.java      |     33 +
 .../apache/kylin/common/metrics/MetricsConfig.java |     50 +
 .../kylin/common/metrics/MetricsController.java    |     80 +
 .../apache/kylin/common/metrics/MetricsGroup.java  |    683 +
 .../common/metrics/MetricsInfluxdbReporter.java    |    196 +
 .../apache/kylin/common/metrics/MetricsName.java   |    204 +
 .../apache/kylin/common/metrics/MetricsObject.java |     75 +
 .../kylin/common/metrics/MetricsObjectType.java    |     39 +
 .../kylin/common/metrics/MetricsReporter.java      |     31 +
 .../apache/kylin/common/metrics/MetricsTag.java    |     50 +
 .../common/metrics/context/ClusterContext.java     |     44 +
 .../kylin/common/metrics/context/ClusterInfo.java  |     29 +
 .../common/metrics/gauges/QueryRatioGauge.java     |     36 +
 .../metrics/prometheus/PrometheusMetrics.java      |     67 +
 .../common/metrics/reporter/InfluxdbReporter.java  |    410 +
 .../metrics/reporter/ServerModeMetricFilter.java   |     72 +
 .../common/metrics/service/InfluxDBInstance.java   |    180 +
 .../metrics/service/JobStatusMonitorMetric.java    |     63 +
 .../kylin/common/metrics/service/MonitorDao.java   |    134 +
 .../common/metrics/service/MonitorMetric.java      |     89 +
 .../metrics/service/MonitorMetricOperation.java    |     29 +
 .../common/metrics/service/QueryMonitorMetric.java |     58 +
 .../org/apache/kylin/common/msg/CnMessage.java     |   2112 +
 .../java/org/apache/kylin/common/msg/Message.java  |   1865 +
 .../org/apache/kylin/common/msg/MsgPicker.java     |     57 +
 .../apache/kylin/common/persistence/AclEntity.java |     47 +
 .../apache/kylin/common/persistence/AuditLog.java  |     78 +
 .../apache/kylin/common/persistence/ImageDesc.java |     33 +
 .../common/persistence/InMemResourceStore.java     |    198 +
 .../kylin/common/persistence/JsonSerializer.java   |     74 +
 .../persistence/MissingRootPersistentEntity.java   |     32 +
 .../kylin/common/persistence/RawResource.java      |     89 +
 .../persistence/ResourceNotFoundException.java     |     54 +
 .../kylin/common/persistence/ResourceStore.java    |    605 +
 .../common/persistence/RootPersistentEntity.java   |    217 +
 .../kylin/common/persistence/Serializer.java       |     53 +
 .../common/persistence/SnapshotRawResource.java    |     49 +
 .../kylin/common/persistence/StorageException.java |     56 +
 .../kylin/common/persistence/StringEntity.java     |     93 +
 .../persistence/ThreadViewResourceStore.java       |    165 +
 .../kylin/common/persistence/TombRawResource.java  |     38 +
 .../persistence/TombVersionedRawResource.java      |     43 +
 .../kylin/common/persistence/TrashRecord.java      |     36 +
 .../kylin/common/persistence/UnitMessages.java     |     67 +
 .../persistence/VersionConflictException.java      |     40 +
 .../common/persistence/VersionedRawResource.java   |     54 +
 .../kylin/common/persistence/event/EndUnit.java    |     32 +
 .../kylin/common/persistence/event/Event.java      |     56 +
 .../event/ResourceCreateOrUpdateEvent.java         |     37 +
 .../persistence/event/ResourceDeleteEvent.java     |     30 +
 .../persistence/event/ResourceRelatedEvent.java    |     28 +
 .../kylin/common/persistence/event/StartUnit.java  |     33 +
 .../common/persistence/metadata/AuditLogStore.java |     55 +
 .../kylin/common/persistence/metadata/Epoch.java   |     77 +
 .../persistence/metadata/EpochRowMapper.java       |     41 +
 .../common/persistence/metadata/EpochStore.java    |     73 +
 .../persistence/metadata/FileEpochStore.java       |    160 +
 .../persistence/metadata/FileMetadataStore.java    |    119 +
 .../persistence/metadata/HDFSMetadataStore.java    |    372 +
 .../persistence/metadata/JdbcAuditLogStore.java    |    378 +
 .../persistence/metadata/JdbcDataSource.java       |     51 +
 .../persistence/metadata/JdbcEpochStore.java       |    269 +
 .../persistence/metadata/JdbcMetadataStore.java    |    356 +
 .../metadata/JdbcPartialAuditLogStore.java         |     49 +
 .../common/persistence/metadata/MetadataStore.java |    209 +
 .../persistence/metadata/NoopAuditLogStore.java    |    104 +
 .../persistence/metadata/PersistException.java     |     25 +
 .../metadata/jdbc/AuditLogRowMapper.java           |     53 +
 .../common/persistence/metadata/jdbc/JdbcUtil.java |    219 +
 .../metadata/jdbc/RawResourceRowMapper.java        |     41 +
 .../transaction/AbstractAuditLogReplayWorker.java  |    175 +
 .../transaction/AccessBatchGrantEventNotifier.java |     39 +
 .../transaction/AccessGrantEventNotifier.java      |     46 +
 .../transaction/AccessRevokeEventNotifier.java     |     42 +
 .../transaction/AclGrantEventNotifier.java         |     34 +
 .../transaction/AclRevokeEventNotifier.java        |     36 +
 .../transaction/AclTCRRevokeEventNotifier.java     |     43 +
 .../AuditLogBroadcastEventNotifier.java            |     30 +
 .../transaction/AuditLogReplayWorker.java          |    186 +
 .../transaction/BroadcastEventReadyNotifier.java   |     69 +
 .../transaction/EpochCheckBroadcastNotifier.java   |     31 +
 .../transaction/EventListenerRegistry.java         |     70 +
 .../transaction/MessageSynchronization.java        |    148 +
 .../persistence/transaction/QuitTxnRightNow.java   |     21 +
 .../RefreshVolumeBroadcastEventNotifier.java       |     30 +
 .../StopQueryBroadcastEventNotifier.java           |     47 +
 .../transaction/TransactionException.java          |     29 +
 .../persistence/transaction/TransactionLock.java   |     96 +
 .../common/persistence/transaction/UnitOfWork.java |    362 +
 .../persistence/transaction/UnitOfWorkContext.java |    115 +
 .../persistence/transaction/UnitOfWorkParams.java  |     60 +
 .../transaction/UpdateJobStatusEventNotifier.java  |     46 +
 .../apache/kylin/common/response/RestResponse.java |     78 +
 .../common/scheduler/EpochStartedNotifier.java     |     22 +
 .../kylin/common/scheduler/EventBusFactory.java    |    165 +
 .../common/scheduler/EventCreatedNotifier.java     |     25 +
 .../common/scheduler/EventFinishedNotifier.java    |     25 +
 .../scheduler/FavoriteQueryListNotifier.java       |     25 +
 .../kylin/common/scheduler/JobAddedNotifier.java   |     34 +
 .../kylin/common/scheduler/JobDiscardNotifier.java |     33 +
 .../common/scheduler/JobFinishedNotifier.java      |     76 +
 .../kylin/common/scheduler/JobReadyNotifier.java   |     25 +
 .../scheduler/ProjectControlledNotifier.java       |     26 +
 .../common/scheduler/ProjectEscapedNotifier.java   |     25 +
 .../common/scheduler/SchedulerEventNotifier.java   |     45 +
 .../scheduler/SourceUsageUpdateNotifier.java       |     21 +
 .../scheduler/SourceUsageVerifyNotifier.java       |     23 +
 .../apache/kylin/common/state/IStateSwitch.java    |     29 +
 .../kylin/common/state/StateSwitchConstant.java    |     28 +
 .../common/storage/DefaultStorageProvider.java     |     72 +
 .../kylin/common/storage/IStorageProvider.java     |     28 +
 .../kylin/common/util/AddTableNameSqlVisitor.java  |     85 +
 .../org/apache/kylin/common/util/AddressUtil.java  |    106 +
 .../org/apache/kylin/common/util/Application.java  |     42 +
 .../java/org/apache/kylin/common/util/Array.java   |    100 +
 .../org/apache/kylin/common/util/ArrayUtils.java   |     38 +
 .../kylin/common/util/AutoReadWriteLock.java       |     84 +
 .../common/util/BasicEmailNotificationContent.java |     63 +
 .../java/org/apache/kylin/common/util/BitSets.java |     74 +
 .../apache/kylin/common/util/BufferedLogger.java   |     57 +
 .../org/apache/kylin/common/util/ByteArray.java    |    191 +
 .../common/util/ByteBufferBackedInputStream.java   |     79 +
 .../kylin/common/util/ByteBufferOutputStream.java  |     61 +
 .../org/apache/kylin/common/util/ByteUnit.java     |     76 +
 .../java/org/apache/kylin/common/util/Bytes.java   |   1991 +
 .../apache/kylin/common/util/BytesSerializer.java  |     53 +
 .../apache/kylin/common/util/BytesSplitter.java    |    144 +
 .../org/apache/kylin/common/util/BytesUtil.java    |    495 +
 .../common/util/CaseInsensitiveStringMap.java      |     45 +
 .../common/util/CaseInsensitiveStringSet.java      |     51 +
 .../org/apache/kylin/common/util/CheckUtil.java    |     99 +
 .../apache/kylin/common/util/ClassLoaderUtils.java |     81 +
 .../org/apache/kylin/common/util/ClassUtil.java    |    134 +
 .../kylin/common/util/CleanMetadataHelper.java     |     81 +
 .../kylin/common/util/CliCommandExecutor.java      |    295 +
 .../apache/kylin/common/util/ClusterConstant.java  |     43 +
 .../apache/kylin/common/util/CollectionUtil.java   |     73 +
 .../apache/kylin/common/util/CompressionUtils.java |    121 +
 .../java/org/apache/kylin/common/util/DBUtils.java |    107 +
 .../kylin/common/util/DaemonThreadFactory.java     |     64 +
 .../org/apache/kylin/common/util/DateFormat.java   |    294 +
 .../kylin/common/util/DefaultHostInfoFetcher.java  |     39 +
 .../org/apache/kylin/common/util/Dictionary.java   |    245 +
 .../org/apache/kylin/common/util/EncryptUtil.java  |     96 +
 .../kylin/common/util/ExecutableApplication.java   |     45 +
 .../kylin/common/util/ExecutorServiceUtil.java     |     65 +
 .../org/apache/kylin/common/util/FilePathUtil.java |     25 +
 .../org/apache/kylin/common/util/FileUtils.java    |     95 +
 .../org/apache/kylin/common/util/HadoopUtil.java   |    331 +
 .../apache/kylin/common/util/HostInfoFetcher.java  |     22 +
 .../apache/kylin/common/util/ImmutableBitSet.java  |    236 +
 .../kylin/common/util/ImplementationSwitch.java    |    101 +
 .../apache/kylin/common/util/InfluxDBUtils.java    |     62 +
 .../org/apache/kylin/common/util/JacksonBean.java  |     88 +
 .../org/apache/kylin/common/util/JdbcUtils.java    |     48 +
 .../org/apache/kylin/common/util/JsonUtil.java     |    277 +
 .../java/org/apache/kylin/common/util/Logger.java  |     45 +
 .../org/apache/kylin/common/util/MailHelper.java   |    107 +
 .../org/apache/kylin/common/util/MailService.java  |    150 +
 .../java/org/apache/kylin/common/util/MapUtil.java |     34 +
 .../org/apache/kylin/common/util/MathUtil.java     |     50 +
 .../apache/kylin/common/util/MetadataChecker.java  |    221 +
 .../common/util/ModifyTableNameSqlVisitor.java     |     48 +
 .../kylin/common/util/NamedThreadFactory.java      |     64 +
 .../org/apache/kylin/common/util/NetworkUtils.java |     70 +
 .../apache/kylin/common/util/OptionBuilder.java    |    337 +
 .../apache/kylin/common/util/OptionsHelper.java    |     97 +
 .../kylin/common/util/OrderedProperties.java       |    440 +
 .../java/org/apache/kylin/common/util/Pair.java    |    152 +
 .../org/apache/kylin/common/util/ProcessUtils.java |     80 +
 .../org/apache/kylin/common/util/RandomUtil.java   |     33 +
 .../org/apache/kylin/common/util/RangeUtil.java    |    241 +
 .../apache/kylin/common/util/ResourceUtils.java    |     66 +
 .../java/org/apache/kylin/common/util/S3AUtil.java |     52 +
 .../org/apache/kylin/common/util/SSHClient.java    |    447 +
 .../apache/kylin/common/util/SSHClientOutput.java  |     71 +
 .../apache/kylin/common/util/SecretKeyUtil.java    |    158 +
 .../common/util/SegmentMergeStorageChecker.java    |    214 +
 .../kylin/common/util/SerializeToByteBuffer.java   |     62 +
 .../apache/kylin/common/util/SetThreadName.java    |     68 +
 .../apache/kylin/common/util/ShellException.java   |     32 +
 .../apache/kylin/common/util/SizeConvertUtil.java  |    121 +
 .../apache/kylin/common/util/SplittedBytes.java    |     51 +
 .../apache/kylin/common/util/StringSplitter.java   |     65 +
 .../org/apache/kylin/common/util/StringUtil.java   |    233 +
 .../kylin/common/util/SystemInfoCollector.java     |     61 +
 .../kylin/common/util/TempMetadataBuilder.java     |    115 +
 .../org/apache/kylin/common/util/ThreadUtil.java   |     43 +
 .../apache/kylin/common/util/ThrowableUtils.java   |     35 +
 .../org/apache/kylin/common/util/TimeUtil.java     |    151 +
 .../apache/kylin/common/util/TimeZoneUtils.java    |     63 +
 .../java/org/apache/kylin/common/util/Unsafe.java  |    123 +
 .../java/org/apache/kylin/common/util/ZKUtil.java  |    212 +
 .../org/apache/kylin/common/util/ZipFileUtils.java |    142 +
 .../resources/job_exception_reason_en.properties   |     23 +
 .../resources/job_exception_reason_zh.properties   |     23 +
 .../resources/job_exception_resolve_en.properties  |     24 +
 .../resources/job_exception_resolve_zh.properties  |     24 +
 .../kylin-backward-compatibility.properties        |    206 +
 .../kylin-backward-compatibility0.properties       |    198 +
 .../src/main/resources/kylin-defaults-1.properties |     26 +
 .../src/main/resources/kylin-defaults.properties   |     18 +
 .../src/main/resources/kylin-defaults0.properties  |    452 +
 .../resources/kylin_error_msg_conf_cn.properties   |    150 +
 .../resources/kylin_error_msg_conf_en.properties   |    149 +
 .../kylin_error_suggestion_conf_cn.properties      |    148 +
 .../kylin_error_suggestion_conf_en.properties      |    149 +
 .../main/resources/kylin_errorcode_conf.properties |    159 +
 .../resources/kylin_errorcode_conf_en.properties   |    272 +
 .../resources/kylin_errorcode_conf_zh.properties   |    271 +
 .../resources/metadata-jdbc-default.properties     |     49 +
 .../src/main/resources/metadata-jdbc-h2.properties |    182 +
 .../main/resources/metadata-jdbc-mysql.properties  |    205 +
 .../resources/metadata-jdbc-postgresql.properties  |    204 +
 .../org/apache/kylin/common/AbstractTestCase.java  |     89 +
 .../org/apache/kylin/common/KapConfigTest.java     |    323 +
 .../apache/kylin/common/KylinConfigBaseTest.java   |   1243 +
 .../common/KylinConfigMultithreadingTest.java      |    212 +
 .../org/apache/kylin/common/KylinConfigTest.java   |    262 +
 .../org/apache/kylin/common/KylinVersionTest.java  |     75 +
 .../kylin/common/PropertiesDelegateTest.java       |    150 +
 .../org/apache/kylin/common/PropertiesEntity.java  |     48 +
 .../org/apache/kylin/common/QueryTraceTest.java    |     97 +
 .../org/apache/kylin/common/ReadFsSwitchTest.java  |     79 +
 .../ShellKylinExternalConfigLoaderFactoryTest.java |    100 +
 .../kylin/common/TestExternalConfigLoader.java     |     50 +
 .../exception/code/AbstractErrorContentTest.java   |     72 +
 .../kylin/common/exception/code/ErrorCodeTest.java |     40 +
 .../kylin/common/hystrix/NCircuitBreakerTest.java  |     57 +
 .../common/lock/DistributedLockFactoryTest.java    |     88 +
 .../curator/CuratorDistributedLockFactoryTest.java |    199 +
 .../lock/jdbc/JdbcDistributedLockFactoryTest.java  |     46 +
 .../kylin/common/metric/InfluxDBInstanceTest.java  |    113 +
 .../kylin/common/metric/InfluxMetricsTest.java     |    540 +
 .../apache/kylin/common/metric/MonitorDaoTest.java |    152 +
 .../common/persistence/InMemResourceStoreTest.java |     79 +
 .../persistence/JdbcAuditLogRecoveryTest.java      |    229 +
 .../common/persistence/JdbcMetadataStoreTest.java  |    276 +
 .../kylin/common/persistence/RawResourceTest.java  |     62 +
 .../common/persistence/ResourceStoreTest.java      |     89 +
 .../common/persistence/ResourceStoreTestBase.java  |    286 +
 .../kylin/common/persistence/ResourceTool.java     |    233 +
 .../persistence/SnapshotRawResourceTest.java       |     81 +
 .../persistence/ThreadViewResourceStoreTest.java   |    325 +
 .../kylin/common/persistence/UnitOfWorkTest.java   |    343 +
 .../metadata/JdbcAuditLogGroupbyReplayerTest.java  |    125 +
 .../metadata/JdbcAuditLogReplayerTest.java         |     99 +
 .../metadata/JdbcAuditLogStoreTest.java            |    418 +
 .../metadata/JdbcAuditLogStoreTool.java            |     47 +
 .../persistence/metadata/MetadataStoreTest.java    |    104 +
 .../epochstore/AbstractEpochStoreTest.java         |    177 +
 .../metadata/epochstore/FileEpochStoreTest.java    |     29 +
 .../metadata/epochstore/JdbcEpochStoreTest.java    |     88 +
 .../jdbc/JdbcPartialAuditLogStoreTest.java         |    120 +
 .../persistence/metadata/jdbc/JdbcUtilTest.java    |     54 +
 .../transaction/MessageSynchronizationTest.java    |    123 +
 .../transaction/TransactionLockTest.java           |     88 +
 .../apache/kylin/common/util/AddressUtilTest.java  |     87 +
 .../apache/kylin/common/util/ArrayUtilsTest.java   |     56 +
 .../kylin/common/util/AutoReadWriteLockTest.java   |     60 +
 .../apache/kylin/common/util/BytesUtilTest.java    |    102 +
 .../util/CaseInsensitiveStringCollectionTest.java  |     68 +
 .../apache/kylin/common/util/ClassUtilTest.java    |     52 +
 .../kylin/common/util/CliCommandExecutorTest.java  |    101 +
 .../apache/kylin/common/util/DateFormatTest.java   |    210 +
 .../apache/kylin/common/util/EncryptUtilsTest.java |     41 +
 .../kylin/common/util/ExecutorServiceUtilTest.java |     85 +
 .../apache/kylin/common/util/HadoopUtilTest.java   |    196 +
 .../kylin/common/util/HostInfoFetcherTest.java     |     39 +
 .../common/util/ImplementationSwitchTest.java      |     78 +
 .../org/apache/kylin/common/util/JacksonTest.java  |     92 +
 .../kylin/common/util/LogOutputTestCase.java       |     92 +
 .../apache/kylin/common/util/MailServiceTest.java  |     96 +
 .../org/apache/kylin/common/util/MapUtilTest.java  |     45 +
 .../common/util/NLocalFileMetadataTestCase.java    |    272 +
 .../apache/kylin/common/util/NetworkUtilsTest.java |     36 +
 .../kylin/common/util/OptionBuilderTest.java       |    107 +
 .../apache/kylin/common/util/RandomUtilTest.java   |     39 +
 .../org/apache/kylin/common/util/RangeTest.java    |    195 +
 .../apache/kylin/common/util/RangeUtilTest.java    |     98 +
 .../apache/kylin/common/util/SSHClientTest.java    |    115 +
 .../kylin/common/util/SecretKeyUtilTest.java       |     85 +
 .../util/SegmentMergeStorageCheckerTest.java       |    239 +
 .../kylin/common/util/SizeConvertUtilTest.java     |     57 +
 .../org/apache/kylin/common/util/TestUtils.java    |     36 +
 .../org/apache/kylin/common/util/TimeUtilTest.java |    136 +
 .../kylin/common/util/TimeZoneUtilsTest.java       |     62 +
 .../apache/kylin/common/util/ZipFileUtilTest.java  |     78 +
 .../test/java/org/apache/kylin/junit/JdbcInfo.java |     33 +
 .../apache/kylin/junit/JdbcMetadataExtension.java  |     79 +
 .../org/apache/kylin/junit/MetadataExtension.java  |    218 +
 .../apache/kylin/junit/MultiTimezoneProvider.java  |     98 +
 .../apache/kylin/junit/OverwritePropExtension.java |     91 +
 .../org/apache/kylin/junit/TimeZoneTestRunner.java |     66 +
 .../org/apache/kylin/junit/TimezoneExtension.java  |     83 +
 .../kylin/junit/annotation/JdbcMetadataInfo.java   |     36 +
 .../kylin/junit/annotation/MetadataInfo.java       |     42 +
 .../kylin/junit/annotation/MultiTimezoneTest.java  |     38 +
 .../kylin/junit/annotation/OverwriteProp.java      |     50 +
 .../kylin/junit/rule/ClearKEPropertiesRule.java    |     37 +
 .../java/org/apache/kylin/junit/rule/Repeat.java   |     34 +
 .../org/apache/kylin/junit/rule/RepeatRule.java    |     68 +
 .../junit/rule/TransactionExceptedException.java   |    105 +
 src/core-common/src/test/resources/log4j2.xml      |     23 +
 src/core-job/pom.xml                               |    109 +
 .../org/apache/kylin/job/ForkBasedJobRunner.java   |     48 +
 .../org/apache/kylin/job/InMemoryJobRunner.java    |     36 +
 .../org/apache/kylin/job/JobRunnerFactory.java     |    149 +
 .../main/java/org/apache/kylin/job/Scheduler.java  |     53 +
 .../apache/kylin/job/common/ExecutableUtil.java    |    153 +
 .../apache/kylin/job/common/IndexBuildJobUtil.java |    119 +
 .../java/org/apache/kylin/job/common/JobUtil.java  |    109 +
 .../org/apache/kylin/job/common/MergeJobUtil.java  |     98 +
 .../kylin/job/common/PartitionBuildJobUtil.java    |    116 +
 .../apache/kylin/job/common/RefreshJobUtil.java    |    123 +
 .../kylin/job/common/SegmentBuildJobUtil.java      |     84 +
 .../org/apache/kylin/job/common/SegmentUtil.java   |    192 +
 .../apache/kylin/job/common/ShellExecutable.java   |     87 +
 .../kylin/job/constant/ExecutableConstants.java    |    108 +
 .../apache/kylin/job/constant/JobActionEnum.java   |     42 +
 .../apache/kylin/job/constant/JobIssueEnum.java    |     51 +
 .../apache/kylin/job/constant/JobStatusEnum.java   |    161 +
 .../kylin/job/constant/JobStepCmdTypeEnum.java     |     45 +
 .../kylin/job/constant/JobStepStatusEnum.java      |     70 +
 .../kylin/job/constant/JobTimeFilterEnum.java      |     61 +
 .../apache/kylin/job/dao/ExecutableOutputPO.java   |    149 +
 .../org/apache/kylin/job/dao/ExecutablePO.java     |    152 +
 .../org/apache/kylin/job/dao/JobStatistics.java    |     77 +
 .../apache/kylin/job/dao/JobStatisticsBasic.java   |     53 +
 .../apache/kylin/job/dao/JobStatisticsManager.java |    263 +
 .../org/apache/kylin/job/dao/NExecutableDao.java   |    133 +
 .../apache/kylin/job/engine/JobEngineConfig.java   |    194 +
 .../org/apache/kylin/job/engine/NCubingEngine.java |     26 +
 .../kylin/job/exception/ExecuteException.java      |     59 +
 .../exception/IllegalStateTranferException.java    |     64 +
 .../apache/kylin/job/exception/JobException.java   |     76 +
 .../kylin/job/exception/JobStoppedException.java   |     43 +
 .../JobStoppedNonVoluntarilyException.java         |     33 +
 .../exception/JobStoppedVoluntarilyException.java  |     41 +
 .../job/exception/JobSubmissionException.java      |     48 +
 .../apache/kylin/job/exception/LockException.java  |     62 +
 .../kylin/job/exception/PersistentException.java   |     62 +
 .../kylin/job/exception/SchedulerException.java    |     62 +
 .../job/exception/ZkAcquireLockException.java      |     43 +
 .../kylin/job/exception/ZkPeekLockException.java   |     42 +
 .../exception/ZkPeekLockInterruptException.java    |     48 +
 .../job/exception/ZkReleaseLockException.java      |     58 +
 .../exception/ZkReleaseLockInterruptException.java |     48 +
 .../kylin/job/execution/AbstractExecutable.java    |    837 +
 .../kylin/job/execution/ChainedExecutable.java     |     50 +
 .../job/execution/ChainedStageExecutable.java      |     36 +
 .../job/execution/DefaultChainedExecutable.java    |    290 +
 .../execution/DefaultChainedExecutableOnModel.java |    176 +
 .../execution/DefaultChainedExecutableOnTable.java |     57 +
 .../apache/kylin/job/execution/DefaultOutput.java  |     70 +
 .../job/execution/EmailNotificationContent.java    |     87 +
 .../org/apache/kylin/job/execution/Executable.java |     64 +
 .../kylin/job/execution/ExecutableContext.java     |     97 +
 .../kylin/job/execution/ExecutableHandler.java     |     96 +
 .../kylin/job/execution/ExecutableParams.java      |    218 +
 .../kylin/job/execution/ExecutableState.java       |    140 +
 .../apache/kylin/job/execution/ExecuteResult.java  |    155 +
 .../apache/kylin/job/execution/JobTypeEnum.java    |    101 +
 .../kylin/job/execution/NExecutableManager.java    |   1671 +
 .../org/apache/kylin/job/execution/Output.java     |     77 +
 .../org/apache/kylin/job/execution/StageBase.java  |     59 +
 .../org/apache/kylin/job/factory/JobFactory.java   |     74 +
 .../kylin/job/factory/JobFactoryConstant.java      |     35 +
 .../kylin/job/handler/AbstractJobHandler.java      |    168 +
 .../apache/kylin/job/handler/AddIndexHandler.java  |     76 +
 .../kylin/job/handler/AddSegmentHandler.java       |     52 +
 .../kylin/job/handler/MergeSegmentHandler.java     |     85 +
 .../kylin/job/handler/RefreshSegmentHandler.java   |     68 +
 .../job/impl/threadpool/NDefaultScheduler.java     |    233 +
 .../kylin/job/impl/threadpool/NoopScheduler.java   |     65 +
 .../apache/kylin/job/lock/ZookeeperAclBuilder.java |    140 +
 .../org/apache/kylin/job/lock/ZookeeperUtil.java   |     59 +
 .../org/apache/kylin/job/manager/JobManager.java   |    176 +
 .../kylin/job/manager/SegmentAutoMergeUtil.java    |     90 +
 .../java/org/apache/kylin/job/model/JobParam.java  |    218 +
 .../job/model/SnapshotBuildFinishedEvent.java      |     37 +
 .../runners/AbstractDefaultSchedulerRunner.java    |     93 +
 .../apache/kylin/job/runners/FetcherRunner.java    |    241 +
 .../kylin/job/runners/ForkBasedJobRunner.java      |     48 +
 .../kylin/job/runners/InMemoryJobRunner.java       |     36 +
 .../apache/kylin/job/runners/JobCheckRunner.java   |     90 +
 .../org/apache/kylin/job/runners/JobRunner.java    |     76 +
 .../apache/kylin/job/runners/JobRunnerFactory.java |    185 +
 .../job/runners/LicenseCapacityCheckRunner.java    |     63 +
 .../kylin/job/runners/QuotaStorageCheckRunner.java |     77 +
 .../cube/storage/GarbageStorageCollector.java      |     87 +
 .../cube/storage/ProjectStorageInfoCollector.java  |     79 +
 .../cube/storage/StorageInfoCollector.java         |     29 +
 .../metadata/cube/storage/StorageInfoEnum.java     |     23 +
 .../cube/storage/StorageQuotaCollector.java        |     35 +
 .../metadata/cube/storage/StorageVolumeInfo.java   |     38 +
 .../cube/storage/TotalStorageCollector.java        |     42 +
 .../org/apache/kylin/job/JoinedFlatTableTest.java  |    256 +
 .../kylin/job/common/ExecutableUtilTest.java       |     48 +
 .../org/apache/kylin/job/common/JobUtilTest.java   |    187 +
 .../org/apache/kylin/job/common/SegmentsTest.java  |    179 +
 .../kylin/job/execution/BaseTestExecutable.java    |     32 +
 .../kylin/job/execution/ErrorTestExecutable.java   |     70 +
 .../kylin/job/execution/FailedTestExecutable.java  |     60 +
 .../execution/FiveSecondErrorTestExecutable.java   |     59 +
 .../execution/FiveSecondSucceedTestExecutable.java |     69 +
 .../job/execution/JobStatisticsManagerTest.java    |    264 +
 .../kylin/job/execution/JobStatusChangedTest.java  |    100 +
 .../job/execution/LongRunningTestExecutable.java   |     39 +
 .../kylin/job/execution/MockJobException.java      |     22 +
 .../job/execution/NExecutableManagerTest.java      |    842 +
 .../execution/NoErrorStatusExecutableOnModel.java  |     50 +
 .../kylin/job/execution/SelfStopExecutable.java    |     83 +
 .../execution/SucceedChainedTestExecutable.java    |     72 +
 .../execution/SucceedSubTaskTestExecutable.java    |     37 +
 .../kylin/job/execution/SucceedTestExecutable.java |     56 +
 .../kylin/job/handler/AbstractJobHandlerTest.java  |     76 +
 .../job/impl/threadpool/BaseSchedulerTest.java     |    136 +
 .../impl/threadpool/ExecutableDurationContext.java |     66 +
 .../job/impl/threadpool/NDefaultSchedulerTest.java |   2028 +
 .../kylin/job/lock/ZookeeperAclBuilderTest.java    |    115 +
 .../storage/ProjectStorageInfoCollectorTest.java   |    457 +
 src/core-metadata/pom.xml                          |    143 +
 .../cache/CustomKeyEquivalenceCacheBuilder.java    |     58 +
 .../kylin/cube/gridtable/GridTableMapping.java     |    177 +
 .../apache/kylin/cube/model/CubeBuildTypeEnum.java |     57 +
 .../org/apache/kylin/cube/model/SelectRule.java    |     59 +
 .../cube/model/validation/IValidatorRule.java      |     45 +
 .../kylin/cube/model/validation/ResultLevel.java   |     57 +
 .../validation/SourceTableMetadataValidator.java   |     51 +
 .../cube/model/validation/ValidateContext.java     |    118 +
 .../upgrade/common/MetadataVersionRefresher.java   |    113 +
 .../apache/kylin/dimension/AbstractDateDimEnc.java |    161 +
 .../org/apache/kylin/dimension/BooleanDimEnc.java  |    201 +
 .../org/apache/kylin/dimension/DateDimEnc.java     |    132 +
 .../apache/kylin/dimension/DictionaryDimEnc.java   |    189 +
 .../apache/kylin/dimension/DimensionEncoding.java  |     97 +
 .../kylin/dimension/DimensionEncodingFactory.java  |    168 +
 .../org/apache/kylin/dimension/FixedLenDimEnc.java |    209 +
 .../apache/kylin/dimension/FixedLenHexDimEnc.java  |    316 +
 .../kylin/dimension/IDimensionEncodingMap.java     |     59 +
 .../java/org/apache/kylin/dimension/IntDimEnc.java |    206 +
 .../org/apache/kylin/dimension/IntegerDimEnc.java  |    234 +
 .../kylin/dimension/OneMoreByteVLongDimEnc.java    |    217 +
 .../org/apache/kylin/dimension/TimeDimEnc.java     |     80 +
 .../apache/kylin/measure/BufferedMeasureCodec.java |    125 +
 .../apache/kylin/measure/MeasureAggregator.java    |     98 +
 .../apache/kylin/measure/MeasureAggregators.java   |    129 +
 .../org/apache/kylin/measure/MeasureCodec.java     |    120 +
 .../org/apache/kylin/measure/MeasureIngester.java  |     73 +
 .../java/org/apache/kylin/measure/MeasureType.java |    194 +
 .../apache/kylin/measure/MeasureTypeFactory.java   |    290 +
 .../apache/kylin/measure/ParamAsMeasureCount.java  |     48 +
 .../kylin/measure/basic/BasicMeasureType.java      |    168 +
 .../kylin/measure/basic/BigDecimalIngester.java    |     60 +
 .../measure/basic/BigDecimalMaxAggregator.java     |     86 +
 .../measure/basic/BigDecimalMinAggregator.java     |     87 +
 .../measure/basic/BigDecimalSumAggregator.java     |     79 +
 .../apache/kylin/measure/basic/DoubleIngester.java |     63 +
 .../kylin/measure/basic/DoubleMaxAggregator.java   |     76 +
 .../kylin/measure/basic/DoubleMinAggregator.java   |     76 +
 .../kylin/measure/basic/DoubleSumAggregator.java   |     73 +
 .../apache/kylin/measure/basic/LongIngester.java   |     66 +
 .../kylin/measure/basic/LongMaxAggregator.java     |     76 +
 .../kylin/measure/basic/LongMinAggregator.java     |     76 +
 .../kylin/measure/basic/LongSumAggregator.java     |     73 +
 .../apache/kylin/measure/bitmap/BitmapAggFunc.java |     47 +
 .../kylin/measure/bitmap/BitmapAggregator.java     |     89 +
 .../kylin/measure/bitmap/BitmapBuildAggFunc.java   |     49 +
 .../kylin/measure/bitmap/BitmapCountAggFunc.java   |     48 +
 .../apache/kylin/measure/bitmap/BitmapCounter.java |    105 +
 .../kylin/measure/bitmap/BitmapCounterFactory.java |     50 +
 .../measure/bitmap/BitmapDistinctCountAggFunc.java |     65 +
 .../BitmapIntersectDistinctCountAggFunc.java       |     63 +
 .../BitmapIntersectDistinctCountAggV2Func.java     |     57 +
 .../kylin/measure/bitmap/BitmapMeasureType.java    |    235 +
 .../kylin/measure/bitmap/BitmapSerializer.java     |    118 +
 .../kylin/measure/bitmap/RoaringBitmapCounter.java |    157 +
 .../bitmap/RoaringBitmapCounterFactory.java        |     72 +
 .../bitmap/intersect/IntersectBitmapCounter.java   |    143 +
 .../intersect/IntersectMeasureAggregator.java      |     75 +
 .../bitmap/intersect/IntersectMeasureType.java     |    109 +
 .../bitmap/intersect/IntersectSerializer.java      |    115 +
 .../measure/collect_set/CollectSetAggFunc.java     |     57 +
 .../measure/collect_set/CollectSetCounter.java     |     40 +
 .../measure/collect_set/CollectSetMeasureType.java |    105 +
 .../measure/collect_set/CollectSetSerializer.java  |     69 +
 .../org/apache/kylin/measure/corr/CorrAggFunc.java |     42 +
 .../apache/kylin/measure/corr/CorrMeasureType.java |    125 +
 .../measure/dim/DimCountDistincSerializer.java     |     87 +
 .../kylin/measure/dim/DimCountDistinctAggFunc.java |     72 +
 .../measure/dim/DimCountDistinctAggregator.java    |     81 +
 .../kylin/measure/dim/DimCountDistinctCounter.java |     92 +
 .../measure/dim/DimCountDistinctMeasureType.java   |    114 +
 .../extendedcolumn/ExtendedColumnMeasureType.java  |    319 +
 .../extendedcolumn/ExtendedColumnSerializer.java   |     93 +
 .../apache/kylin/measure/hllc/DenseRegister.java   |    135 +
 .../apache/kylin/measure/hllc/HLLCAggregator.java  |     95 +
 .../apache/kylin/measure/hllc/HLLCMeasureType.java |    169 +
 .../apache/kylin/measure/hllc/HLLCSerializer.java  |    105 +
 .../org/apache/kylin/measure/hllc/HLLCounter.java  |    452 +
 .../apache/kylin/measure/hllc/HLLCounterOld.java   |    412 +
 .../measure/hllc/HLLDistinctCountAggFunc.java      |    171 +
 .../kylin/measure/hllc/HyperLogLogPlusTable.java   |    893 +
 .../org/apache/kylin/measure/hllc/Register.java    |     55 +
 .../apache/kylin/measure/hllc/RegisterType.java    |     43 +
 .../kylin/measure/hllc/SingleValueRegister.java    |    133 +
 .../apache/kylin/measure/hllc/SparseRegister.java  |    136 +
 .../measure/percentile/PercentileAggFunc.java      |     62 +
 .../measure/percentile/PercentileAggregator.java   |     82 +
 .../measure/percentile/PercentileCounter.java      |    172 +
 .../measure/percentile/PercentileMeasureType.java  |    129 +
 .../measure/percentile/PercentileSerializer.java   |    101 +
 .../apache/kylin/measure/raw/RawAggregator.java    |     97 +
 .../apache/kylin/measure/raw/RawMeasureType.java   |    306 +
 .../apache/kylin/measure/raw/RawSerializer.java    |    127 +
 .../org/apache/kylin/measure/topn/Counter.java     |    104 +
 .../kylin/measure/topn/DoubleDeltaSerializer.java  |    213 +
 .../apache/kylin/measure/topn/TopNAggregator.java  |     86 +
 .../org/apache/kylin/measure/topn/TopNCounter.java |    311 +
 .../kylin/measure/topn/TopNCounterSerializer.java  |    128 +
 .../apache/kylin/measure/topn/TopNMeasureType.java |    590 +
 .../apache/kylin/metadata/MetadataConstants.java   |     76 +
 .../apache/kylin/metadata/MetadataExtension.java   |     87 +
 .../org/apache/kylin/metadata/ModifiedOrder.java   |     51 +
 .../kylin/metadata/TempStatementManager.java       |    201 +
 .../java/org/apache/kylin/metadata/acl/AclTCR.java |    369 +
 .../apache/kylin/metadata/acl/AclTCRDigest.java    |     30 +
 .../apache/kylin/metadata/acl/AclTCRManager.java   |    785 +
 .../apache/kylin/metadata/acl/ColumnToConds.java   |    363 +
 .../apache/kylin/metadata/acl/DependentColumn.java |     73 +
 .../kylin/metadata/acl/DependentColumnInfo.java    |     67 +
 .../kylin/metadata/acl/NDataModelAclParams.java    |     41 +
 .../kylin/metadata/acl/PrincipalRowFilter.java     |     37 +
 .../java/org/apache/kylin/metadata/acl/RowSet.java |     42 +
 .../kylin/metadata/acl/SensitiveDataMask.java      |     87 +
 .../kylin/metadata/acl/SensitiveDataMaskInfo.java  |     53 +
 .../metadata/cachesync/CacheReloadChecker.java     |     72 +
 .../kylin/metadata/cachesync/CachedCrudAssist.java |    274 +
 .../metadata/cube/cuboid/AdaptiveSpanningTree.java |    605 +
 .../metadata/cube/cuboid/AggIndexMatcher.java      |    218 +
 .../kylin/metadata/cube/cuboid/ChooserContext.java |    128 +
 .../metadata/cube/cuboid/ComparatorUtils.java      |    107 +
 .../metadata/cube/cuboid/CuboidBigInteger.java     |     63 +
 .../metadata/cube/cuboid/CuboidScheduler.java      |    129 +
 .../kylin/metadata/cube/cuboid/CuboidStatus.java   |     23 +
 .../kylin/metadata/cube/cuboid/IndexMatcher.java   |    213 +
 .../metadata/cube/cuboid/KECuboidSchedulerV1.java  |    331 +
 .../metadata/cube/cuboid/KECuboidSchedulerV2.java  |    186 +
 .../metadata/cube/cuboid/NAggregationGroup.java    |    449 +
 .../metadata/cube/cuboid/NCuboidLayoutChooser.java |     51 +
 .../metadata/cube/cuboid/NForestSpanningTree.java  |    308 +
 .../cube/cuboid/NForestSpanningTreeV2.java         |    103 +
 .../metadata/cube/cuboid/NLayoutCandidate.java     |    135 +
 .../metadata/cube/cuboid/NLookupCandidate.java     |     41 +
 .../metadata/cube/cuboid/NQueryLayoutChooser.java  |    316 +
 .../kylin/metadata/cube/cuboid/NSpanningTree.java  |    125 +
 .../metadata/cube/cuboid/NSpanningTreeFactory.java |     80 +
 .../kylin/metadata/cube/cuboid/OrderedSet.java     |    172 +
 .../cube/cuboid/PartitionSpanningTree.java         |    309 +
 .../metadata/cube/cuboid/TableIndexMatcher.java    |     91 +
 .../cube/gridtable/NLayoutToGridTableMapping.java  |    158 +
 .../metadata/cube/model/DimensionRangeInfo.java    |     70 +
 .../kylin/metadata/cube/model/IndexEntity.java     |    421 +
 .../kylin/metadata/cube/model/IndexPlan.java       |   1226 +
 .../kylin/metadata/cube/model/LayoutEntity.java    |    441 +
 .../kylin/metadata/cube/model/LayoutPartition.java |     70 +
 .../kylin/metadata/cube/model/NBatchConstants.java |     63 +
 .../cube/model/NCubeJoinedFlatTableDesc.java       |    207 +
 .../kylin/metadata/cube/model/NDataLayout.java     |    308 +
 .../metadata/cube/model/NDataLoadingRange.java     |     82 +
 .../cube/model/NDataLoadingRangeManager.java       |    266 +
 .../kylin/metadata/cube/model/NDataSegDetails.java |    216 +
 .../cube/model/NDataSegDetailsManager.java         |    209 +
 .../kylin/metadata/cube/model/NDataSegment.java    |    738 +
 .../kylin/metadata/cube/model/NDataflow.java       |    593 +
 .../cube/model/NDataflowCapabilityChecker.java     |    138 +
 .../metadata/cube/model/NDataflowManager.java      |    873 +
 .../kylin/metadata/cube/model/NDataflowUpdate.java |     95 +
 .../kylin/metadata/cube/model/NDictionaryDesc.java |     71 +
 .../metadata/cube/model/NIndexPlanManager.java     |    330 +
 .../metadata/cube/model/NSegmentConfigHelper.java  |     99 +
 .../metadata/cube/model/PartitionStatusEnum.java   |     28 +
 .../cube/model/PartitionStatusEnumToDisplay.java   |     23 +
 .../kylin/metadata/cube/model/RuleBasedIndex.java  |    543 +
 .../metadata/cube/model/SegmentPartition.java      |    178 +
 .../cube/model/validation/NIndexPlanValidator.java |     40 +
 .../cube/optimization/AbstractOptStrategy.java     |     64 +
 .../metadata/cube/optimization/FrequencyMap.java   |    105 +
 .../cube/optimization/GarbageLayoutType.java       |     23 +
 .../optimization/IncludedLayoutOptStrategy.java    |     84 +
 .../metadata/cube/optimization/IndexOptimizer.java |     91 +
 .../cube/optimization/IndexOptimizerFactory.java   |     72 +
 .../optimization/LowFreqLayoutOptStrategy.java     |     81 +
 .../optimization/SimilarLayoutOptStrategy.java     |    189 +
 .../cube/realization/HybridRealization.java        |    316 +
 .../metadata/cube/utils/IndexPlanReduceUtil.java   |    143 +
 .../kylin/metadata/cube/utils/ParameterType.java   |     41 +
 .../metadata/cube/utils/ParametersUtils.scala      |     27 +
 .../kylin/metadata/cube/utils/StreamingUtils.java  |    171 +
 .../metadata/datatype/BigDecimalSerializer.java    |    125 +
 .../kylin/metadata/datatype/BooleanSerializer.java |     82 +
 .../apache/kylin/metadata/datatype/DataType.java   |    467 +
 .../metadata/datatype/DataTypeSerializer.java      |    140 +
 .../metadata/datatype/DateTimeSerializer.java      |     78 +
 .../kylin/metadata/datatype/DoubleMutable.java     |     86 +
 .../kylin/metadata/datatype/DoubleSerializer.java  |     77 +
 .../kylin/metadata/datatype/Int4Serializer.java    |     79 +
 .../apache/kylin/metadata/datatype/IntMutable.java |     88 +
 .../kylin/metadata/datatype/Long8Serializer.java   |     79 +
 .../kylin/metadata/datatype/LongMutable.java       |     88 +
 .../kylin/metadata/datatype/LongSerializer.java    |     85 +
 .../kylin/metadata/datatype/StringSerializer.java  |     88 +
 .../apache/kylin/metadata/epoch/EpochManager.java  |    812 +
 .../metadata/epoch/EpochNotMatchException.java     |     35 +
 .../kylin/metadata/epoch/EpochOrchestrator.java    |    146 +
 .../metadata/epoch/EpochUpdateLockManager.java     |    146 +
 .../kylin/metadata/favorite/AbstractAsyncTask.java |     42 +
 .../metadata/favorite/AccelerateRuleUtil.java      |    139 +
 .../metadata/favorite/AsyncAccelerationTask.java   |     53 +
 .../kylin/metadata/favorite/AsyncTaskManager.java  |    125 +
 .../favorite/CheckAccelerateSqlListResult.java     |     39 +
 .../metadata/favorite/FavoriteQueryStatusEnum.java |     23 +
 .../kylin/metadata/favorite/FavoriteRule.java      |    190 +
 .../metadata/favorite/FavoriteRuleManager.java     |    172 +
 .../metadata/favorite/QueryHistoryIdOffset.java    |     44 +
 .../favorite/QueryHistoryIdOffsetManager.java      |     78 +
 .../metadata/favorite/QueryHistoryTimeOffset.java  |     43 +
 .../favorite/QueryHistoryTimeOffsetManager.java    |     76 +
 .../kylin/metadata/filter/CompareResultType.java   |     41 +
 .../metadata/filter/FilterCodeSystemFactory.java   |    116 +
 .../kylin/metadata/filter/IFilterCodeSystem.java   |     67 +
 .../kylin/metadata/filter/StringCodeSystem.java    |     76 +
 .../metadata/filter/UDF/MassInValueProvider.java   |     43 +
 .../metadata/filter/function/BuiltInMethod.java    |    176 +
 .../kylin/metadata/filter/function/Functions.java  |     51 +
 .../kylin/metadata/filter/function/Like.java       |    293 +
 .../metadata/filter/function/LikeMatchers.java     |    165 +
 .../metadata/insensitive/InsensitiveRequest.java   |     41 +
 .../insensitive/ModelInsensitiveRequest.java       |     98 +
 .../insensitive/ProjectInsensitiveRequest.java     |     68 +
 .../insensitive/UserInsensitiveRequest.java        |     68 +
 .../org/apache/kylin/metadata/job/JobBucket.java   |     44 +
 .../kylin/metadata/model/AutoMergeTimeEnum.java    |     43 +
 .../kylin/metadata/model/BadModelException.java    |     86 +
 .../kylin/metadata/model/BrokenReasonFilter.java   |     41 +
 .../org/apache/kylin/metadata/model/Canvas.java    |     58 +
 .../apache/kylin/metadata/model/ColumnDesc.java    |    338 +
 .../kylin/metadata/model/ColumnStatusFilter.java   |     41 +
 .../kylin/metadata/model/ComputedColumnDesc.java   |    219 +
 .../apache/kylin/metadata/model/DataCheckDesc.java |    102 +
 .../org/apache/kylin/metadata/model/DataType.java  |     75 +
 .../apache/kylin/metadata/model/DatabaseDesc.java  |     94 +
 .../DefaultMultiPartitionKeyMappingProvider.java   |     40 +
 .../apache/kylin/metadata/model/DeriveInfo.java    |     63 +
 .../metadata/model/ExcludedLookupChecker.java      |    307 +
 .../kylin/metadata/model/ExternalFilterDesc.java   |    151 +
 .../apache/kylin/metadata/model/FunctionDesc.java  |    524 +
 .../apache/kylin/metadata/model/FusionModel.java   |    147 +
 .../kylin/metadata/model/FusionModelManager.java   |    114 +
 .../apache/kylin/metadata/model/IBuildable.java    |     41 +
 .../apache/kylin/metadata/model/IEngineAware.java  |     43 +
 .../kylin/metadata/model/IJoinedFlatTableDesc.java |     62 +
 .../org/apache/kylin/metadata/model/ISegment.java  |     72 +
 .../kylin/metadata/model/ISegmentAdvisor.java      |     50 +
 .../apache/kylin/metadata/model/ISourceAware.java  |     55 +
 .../apache/kylin/metadata/model/IStorageAware.java |     44 +
 .../org/apache/kylin/metadata/model/JoinDesc.java  |    321 +
 .../apache/kylin/metadata/model/JoinTableDesc.java |    131 +
 .../kylin/metadata/model/JoinedFlatTable.java      |    354 +
 .../apache/kylin/metadata/model/JoinsGraph.java    |    625 +
 .../kylin/metadata/model/MaintainModelType.java    |     23 +
 .../kylin/metadata/model/ManagementType.java       |     23 +
 .../apache/kylin/metadata/model/MeasureDesc.java   |    136 +
 .../kylin/metadata/model/ModelDimensionDesc.java   |    117 +
 .../metadata/model/ModelJoinRelationTypeEnum.java  |     57 +
 .../metadata/model/ModelMetadataConflictType.java  |     23 +
 .../kylin/metadata/model/MultiPartitionDesc.java   |    227 +
 .../metadata/model/MultiPartitionKeyMapping.java   |     52 +
 .../model/MultiPartitionKeyMappingImpl.java        |     77 +
 .../model/MultiPartitionKeyMappingProvider.java    |     23 +
 .../apache/kylin/metadata/model/NDataModel.java    |   1470 +
 .../kylin/metadata/model/NDataModelManager.java    |    381 +
 .../metadata/model/NTableMetadataManager.java      |    338 +
 .../kylin/metadata/model/NonEquiJoinCondition.java |    250 +
 .../metadata/model/NonEquiJoinConditionType.java   |     24 +
 .../apache/kylin/metadata/model/ParameterDesc.java |    148 +
 .../apache/kylin/metadata/model/PartitionDesc.java |    405 +
 .../kylin/metadata/model/RetentionRange.java       |     43 +
 .../apache/kylin/metadata/model/SegmentConfig.java |     78 +
 .../apache/kylin/metadata/model/SegmentRange.java  |    526 +
 .../kylin/metadata/model/SegmentStatusEnum.java    |     47 +
 .../metadata/model/SegmentStatusEnumToDisplay.java |     46 +
 .../org/apache/kylin/metadata/model/Segments.java  |    854 +
 .../org/apache/kylin/metadata/model/TableDesc.java |    635 +
 .../apache/kylin/metadata/model/TableExtDesc.java  |    458 +
 .../org/apache/kylin/metadata/model/TableRef.java  |    155 +
 .../org/apache/kylin/metadata/model/TblColRef.java |    412 +
 .../org/apache/kylin/metadata/model/TimeRange.java |    112 +
 .../apache/kylin/metadata/model/UpdateImpact.java  |     62 +
 .../apache/kylin/metadata/model/VolatileRange.java |     44 +
 .../kylin/metadata/model/alias/AliasDeduce.java    |     33 +
 .../kylin/metadata/model/alias/AliasMapping.java   |     33 +
 .../metadata/model/alias/ExpressionComparator.java |    257 +
 .../exception/IllegalCCExpressionException.java    |     32 +
 .../model/exception/LookupTableException.java      |     32 +
 .../model/exception/ModelBrokenException.java      |     31 +
 .../model/schema/AffectedModelContext.java         |    208 +
 .../metadata/model/schema/ImportModelContext.java  |    507 +
 .../metadata/model/schema/ModelEdgeCollector.java  |    273 +
 .../metadata/model/schema/ModelImportChecker.java  |     67 +
 .../metadata/model/schema/ReloadTableContext.java  |    105 +
 .../model/schema/SchemaChangeCheckResult.java      |    295 +
 .../kylin/metadata/model/schema/SchemaNode.java    |    296 +
 .../metadata/model/schema/SchemaNodeType.java      |    142 +
 .../kylin/metadata/model/schema/SchemaUtil.java    |    164 +
 .../schema/strategy/ComputedColumnStrategy.java    |    160 +
 .../schema/strategy/MultiplePartitionStrategy.java |     82 +
 .../schema/strategy/OverWritableStrategy.java      |     66 +
 .../schema/strategy/SchemaChangeStrategy.java      |    118 +
 .../model/schema/strategy/TableColumnStrategy.java |     88 +
 .../model/schema/strategy/TableStrategy.java       |     61 +
 .../schema/strategy/UnOverWritableStrategy.java    |     67 +
 .../kylin/metadata/model/tool/CalciteParser.java   |    327 +
 .../model/tool/JoinDescNonEquiCompBean.java        |     60 +
 .../model/tool/NonEquiJoinConditionComparator.java |    166 +
 .../model/tool/NonEquiJoinConditionVisitor.java    |     59 +
 .../kylin/metadata/model/tool/TruthTable.java      |    277 +
 .../metadata/model/tool/TypedLiteralConverter.java |     76 +
 .../metadata/model/util/ComputedColumnUtil.java    |    578 +
 .../metadata/model/util/ExpandableMeasureUtil.java |    284 +
 .../kylin/metadata/model/util/JoinDescUtil.java    |    198 +
 .../metadata/model/util/MultiPartitionUtil.java    |     92 +
 .../metadata/model/util/scd2/SCD2CondChecker.java  |    131 +
 .../metadata/model/util/scd2/SCD2Exception.java    |     25 +
 .../util/scd2/SCD2NonEquiCondSimplification.java   |    201 +
 .../metadata/model/util/scd2/SCD2SqlConverter.java |     96 +
 .../model/util/scd2/SimplifiedJoinDesc.java        |     39 +
 .../model/util/scd2/SimplifiedJoinTableDesc.java   |     34 +
 .../kylin/metadata/project/EnhancedUnitOfWork.java |     71 +
 .../kylin/metadata/project/NProjectLoader.java     |    233 +
 .../kylin/metadata/project/NProjectManager.java    |    248 +
 .../kylin/metadata/project/ProjectInstance.java    |    385 +
 .../kylin/metadata/project/ProjectStatusEnum.java  |     43 +
 .../kylin/metadata/project/ProjectTable.java       |    113 +
 .../kylin/metadata/project/RealizationEntry.java   |    106 +
 .../metadata/query/BigQueryThresholdUpdater.java   |    141 +
 .../metadata/query/CuboidLayoutQueryTimes.java     |     37 +
 .../metadata/query/JdbcQueryHistoryStore.java      |    760 +
 .../metadata/query/NativeQueryRealization.java     |     93 +
 .../kylin/metadata/query/QueryDailyStatistic.java  |     51 +
 .../query/QueryExcludedTablesExtension.java        |     30 +
 .../apache/kylin/metadata/query/QueryHistory.java  |    265 +
 .../kylin/metadata/query/QueryHistoryDAO.java      |     62 +
 .../kylin/metadata/query/QueryHistoryInfo.java     |    104 +
 .../metadata/query/QueryHistoryInfoResponse.java   |     57 +
 .../kylin/metadata/query/QueryHistoryMapper.java   |     82 +
 .../query/QueryHistoryRealizationMapper.java       |     35 +
 .../query/QueryHistoryRealizationTable.java        |     39 +
 .../kylin/metadata/query/QueryHistoryRequest.java  |     67 +
 .../kylin/metadata/query/QueryHistoryResponse.java |    108 +
 .../kylin/metadata/query/QueryHistorySql.java      |     68 +
 .../kylin/metadata/query/QueryHistorySqlParam.java |     45 +
 .../kylin/metadata/query/QueryHistoryTable.java    |    146 +
 .../apache/kylin/metadata/query/QueryMetrics.java  |    154 +
 .../kylin/metadata/query/QueryMetricsContext.java  |    263 +
 .../kylin/metadata/query/QueryRealization.java     |     41 +
 .../kylin/metadata/query/QueryStatistics.java      |     77 +
 .../metadata/query/QueryStatisticsMapper.java      |     69 +
 .../kylin/metadata/query/QueryTimesResponse.java   |     32 +
 .../kylin/metadata/query/RDBMSQueryHistoryDAO.java |    248 +
 .../apache/kylin/metadata/query/StructField.java   |    107 +
 .../kylin/metadata/query/util/JdbcTableUtil.java   |     45 +
 .../metadata/query/util/QueryHisStoreUtil.java     |    188 +
 .../query/util/QueryHisTransformStandardUtil.java  |    119 +
 .../metadata/query/util/QueryHistoryUtil.java      |     81 +
 .../kylin/metadata/querymeta/ColumnMeta.java       |    300 +
 .../metadata/querymeta/ColumnMetaWithType.java     |    103 +
 .../metadata/querymeta/SelectedColumnMeta.java     |    174 +
 .../apache/kylin/metadata/querymeta/TableMeta.java |    183 +
 .../metadata/querymeta/TableMetaWithType.java      |     81 +
 .../metadata/realization/CapabilityResult.java     |    170 +
 .../kylin/metadata/realization/IRealization.java   |    100 +
 .../realization/IRealizationCandidate.java         |     40 +
 .../realization/IRealizationConstants.java         |     59 +
 .../metadata/realization/IRealizationFilter.java   |     42 +
 .../metadata/realization/IRealizationProvider.java |     45 +
 .../metadata/realization/NRealizationRegistry.java |    110 +
 .../realization/NoRealizationFoundException.java   |     54 +
 .../NoStreamingRealizationFoundException.java      |     40 +
 .../realization/RealizationStatusEnum.java         |     44 +
 .../realization/RoutingIndicatorException.java     |     53 +
 .../kylin/metadata/realization/SQLDigest.java      |    333 +
 .../candidate/CostBasedRecSelectStrategy.java      |     36 +
 .../recommendation/candidate/JdbcRawRecStore.java  |    835 +
 .../recommendation/candidate/LayoutMetric.java     |     89 +
 .../recommendation/candidate/RawRecItem.java       |    290 +
 .../recommendation/candidate/RawRecItemMapper.java |     82 +
 .../recommendation/candidate/RawRecItemTable.java  |    218 +
 .../recommendation/candidate/RawRecManager.java    |    232 +
 .../recommendation/candidate/RawRecSelection.java  |     36 +
 .../candidate/RecSelectStrategy.java               |     28 +
 .../recommendation/entity/CCRecItemV2.java         |     64 +
 .../recommendation/entity/DimensionRecItemV2.java  |     69 +
 .../recommendation/entity/LayoutRecItemV2.java     |    116 +
 .../recommendation/entity/MeasureRecItemV2.java    |     91 +
 .../metadata/recommendation/entity/RecItemV2.java  |     37 +
 .../recommendation/ref/BrokenRefProxy.java         |     60 +
 .../kylin/metadata/recommendation/ref/CCRef.java   |     58 +
 .../metadata/recommendation/ref/DimensionRef.java  |     76 +
 .../metadata/recommendation/ref/LayoutRef.java     |     71 +
 .../metadata/recommendation/ref/MeasureRef.java    |     87 +
 .../recommendation/ref/ModelColumnRef.java         |     48 +
 .../recommendation/ref/OptRecManagerV2.java        |    166 +
 .../metadata/recommendation/ref/OptRecV2.java      |    809 +
 .../recommendation/ref/RecommendationRef.java      |     74 +
 .../recommendation/util/RawRecStoreUtil.java       |    102 +
 .../metadata/recommendation/util/RawRecUtil.java   |    120 +
 .../metadata/resourcegroup/KylinInstance.java      |     39 +
 .../metadata/resourcegroup/RequestTypeEnum.java    |     23 +
 .../metadata/resourcegroup/ResourceGroup.java      |     82 +
 .../resourcegroup/ResourceGroupEntity.java         |     37 +
 .../resourcegroup/ResourceGroupManager.java        |    140 +
 .../resourcegroup/ResourceGroupMappingInfo.java    |     43 +
 .../kylin/metadata/sourceusage/LicenseInfo.java    |     53 +
 .../metadata/sourceusage/SourceUsageManager.java   |    535 +
 .../metadata/sourceusage/SourceUsageRecord.java    |    294 +
 .../kylin/metadata/state/JdbcShareStateStore.java  |    120 +
 .../kylin/metadata/state/MetadataStateSwitch.java  |     92 +
 .../metadata/state/QueryShareStateManager.java     |     88 +
 .../kylin/metadata/state/ShareStateInfo.java       |     47 +
 .../kylin/metadata/state/ShareStateMapper.java     |     53 +
 .../kylin/metadata/state/ShareStateTable.java      |     34 +
 .../kylin/metadata/state/ShareStateUtil.java       |     95 +
 .../metadata/streaming/ConsumptionRateStats.java   |     40 +
 .../streaming/JdbcStreamingJobRecordStore.java     |    179 +
 .../streaming/JdbcStreamingJobStatsStore.java      |    289 +
 .../kylin/metadata/streaming/KafkaConfig.java      |    122 +
 .../metadata/streaming/KafkaConfigManager.java     |    125 +
 .../metadata/streaming/RowCountDetailByTime.java   |     37 +
 .../streaming/RowCountDetailByTimeMapper.java      |     45 +
 .../kylin/metadata/streaming/StreamingConfig.java  |    110 +
 .../metadata/streaming/StreamingJobRecord.java     |     51 +
 .../streaming/StreamingJobRecordManager.java       |     75 +
 .../streaming/StreamingJobRecordMapper.java        |     61 +
 .../streaming/StreamingJobRecordTable.java         |     38 +
 .../metadata/streaming/StreamingJobStats.java      |     76 +
 .../streaming/StreamingJobStatsManager.java        |    109 +
 .../streaming/StreamingJobStatsMapper.java         |     78 +
 .../metadata/streaming/StreamingJobStatsTable.java |     42 +
 .../kylin/metadata/streaming/StreamingManager.java |    131 +
 .../util/StreamingJobRecordStoreUtil.java          |    114 +
 .../streaming/util/StreamingJobStatsStoreUtil.java |    115 +
 .../transaction/SpringManagedTransaction.java      |     98 +
 .../SpringManagedTransactionFactory.java           |     46 +
 .../kylin/metadata/tuple/IEvaluatableTuple.java    |     45 +
 .../org/apache/kylin/metadata/tuple/ITuple.java    |     61 +
 .../kylin/metadata/tuple/ITupleIterator.java       |     77 +
 .../org/apache/kylin/metadata/tuple/Tuple.java     |    213 +
 .../org/apache/kylin/metadata/tuple/TupleInfo.java |    134 +
 .../apache/kylin/metadata/user/ManagedUser.java    |    287 +
 .../kylin/metadata/user/NKylinUserManager.java     |    129 +
 .../metadata/usergroup/NUserGroupManager.java      |    145 +
 .../apache/kylin/metadata/usergroup/UserGroup.java |     47 +
 .../org/apache/kylin/rest/constant/Constant.java   |     70 +
 .../kylin/rest/service/UserGrantedAuthority.java   |     97 +
 .../org/apache/kylin/source/IReadableTable.java    |    164 +
 .../apache/kylin/source/ISampleDataDeployer.java   |     65 +
 .../main/java/org/apache/kylin/source/ISource.java |     87 +
 .../kylin/source/ISourceMetadataExplorer.java      |     61 +
 .../org/apache/kylin/source/SourceFactory.java     |    144 +
 .../adhocquery/DoubleQuotePushDownConverter.java   |    154 +
 .../source/adhocquery/IPushDownConverter.java      |     44 +
 .../kylin/source/adhocquery/IPushDownRunner.java   |     82 +
 .../adhocquery/PushDownConverterKeyWords.java      |    149 +
 .../kylin/source/adhocquery/PushdownResult.java    |     52 +
 .../org/apache/kylin/source/dfs/DFSFileTable.java  |    130 +
 .../kylin/source/dfs/DFSFileTableReader.java       |    271 +
 .../org/apache/kylin/util/BitSetSerializer.java    |     80 +
 .../org/apache/kylin/util/BrokenEntityProxy.java   |     89 +
 .../main/java/org/apache/kylin/util/KryoUtils.java |     79 +
 .../apache/kylin/util/PasswordEncodeFactory.java   |     65 +
 .../kylin/cube/common/BytesSplitterTest.java       |     79 +
 .../kylin/cube/gridtable/GridTableMappingTest.java |    136 +
 .../apache/kylin/dimension/BooleanDimEncTest.java  |    111 +
 .../org/apache/kylin/dimension/DateDimEncTest.java |    121 +
 .../kylin/dimension/FixedLenHexDimEncTest.java     |    197 +
 .../org/apache/kylin/dimension/IntDimEncTest.java  |    147 +
 .../apache/kylin/dimension/IntegerDimEncTest.java  |    189 +
 .../dimension/OneMoreByteVLongDimEncTest.java      |    149 +
 .../org/apache/kylin/dimension/TimeDimEncTest.java |    119 +
 .../kylin/measure/bitmap/BitmapAggregatorTest.java |    107 +
 .../measure/bitmap/BitmapBuildAggFuncTest.java     |     64 +
 .../kylin/measure/bitmap/BitmapCounterTest.java    |     77 +
 .../BitmapIntersectDistinctCountAggV2FuncTest.java |     49 +
 .../kylin/measure/bitmap/BitmapSerializerTest.java |     83 +
 .../ExtendedColumnSerializerTest.java              |    113 +
 .../kylin/measure/hllc/HLLCMeasureTypeTest.java    |     91 +
 .../kylin/measure/hllc/HLLCounterOldTest.java      |    285 +
 .../apache/kylin/measure/hllc/HLLCounterTest.java  |    374 +
 .../measure/hllc/NewHyperLogLogBenchmarkTest.java  |    320 +
 .../percentile/PercentileAggregatorTest.java       |    173 +
 .../measure/percentile/PercentileCounterTest.java  |     98 +
 .../percentile/PercentileSerializerTest.java       |     89 +
 .../kylin/measure/percentile/TDigestTest.java      |     75 +
 .../kylin/measure/raw/RawAggregatorTest.java       |     70 +
 .../kylin/measure/raw/RawSerializerTest.java       |    115 +
 .../measure/topn/DoubleDeltaSerializerTest.java    |    123 +
 .../kylin/measure/topn/TopNCounterBasicTest.java   |    167 +
 .../measure/topn/TopNCounterCombinationTest.java   |     82 +
 .../measure/topn/TopNCounterSerializerTest.java    |     95 +
 .../apache/kylin/measure/topn/TopNCounterTest.java |    405 +
 .../metadata/cachesync/CacheReloadCheckerTest.java |    137 +
 .../apache/kylin/metadata/cube/CubeTestUtils.java  |     47 +
 .../apache/kylin/metadata/cube/IndexPlanTest.java  |    764 +
 .../kylin/metadata/cube/NIndexPlanManagerTest.java |    262 +
 .../metadata/cube/ProjectSpecificConfigTest.java   |     65 +
 .../kylin/metadata/cube/StreamingUtilsTest.java    |    176 +
 .../metadata/cube/cuboid/CuboidSchedulerTest.java  |    160 +
 .../cube/cuboid/NAggregationGroupTest.java         |     54 +
 .../metadata/cube/cuboid/NSpanningTreeTest.java    |    181 +
 .../kylin/metadata/cube/model/EnormousDimTest.java |     74 +
 .../cube/model/IndexPlanLayoutRemoveTest.java      |     71 +
 .../cube/model/NDataLoadingRangeManagerTest.java   |    358 +
 .../cube/model/NDataSegDetailsManagerTest.java     |     66 +
 .../metadata/cube/model/NDataflowManagerTest.java  |    992 +
 .../kylin/metadata/cube/model/NDataflowTest.java   |    125 +
 .../cube/model/NSegmentConfigHelperTest.java       |    138 +
 .../cube/model/RuleBasedCuboidDescTest.java        |    885 +
 .../cube/utils/IndexPlanReduceUtilTest.java        |    517 +
 .../datatype/BigDecimalSerializerTest.java         |    100 +
 .../kylin/metadata/datatype/DataTypeTest.java      |     52 +
 .../metadata/epoch/EnhancedUnitOfWorkTest.java     |    159 +
 .../kylin/metadata/epoch/EpochManagerTest.java     |    403 +
 .../metadata/epoch/EpochUpdateLockManagerTest.java |    124 +
 .../kylin/metadata/measure/MeasureCodecTest.java   |    112 +
 .../metadata/measure/TopNMeasureTypeTest.java      |    222 +
 .../metadata/model/ComputedColumnDescTest.java     |    178 +
 .../kylin/metadata/model/DataCheckDescTest.java    |     54 +
 .../DefaultPartitionConditionBuilderTest.java      |    242 +
 .../apache/kylin/metadata/model/JoinOnCCTest.java  |     52 +
 .../kylin/metadata/model/JoinTableDescTest.java    |    130 +
 .../kylin/metadata/model/JoinsGraphTest.java       |    342 +
 .../kylin/metadata/model/MockJoinGraphBuilder.java |     97 +
 .../kylin/metadata/model/ModelNonEquiCondMock.java |    110 +
 .../metadata/model/NDataModelManagerTest.java      |    278 +
 .../kylin/metadata/model/NDataModelTest.java       |    179 +
 .../metadata/model/NMutiPartitionDescTest.java     |     51 +
 .../kylin/metadata/model/NPartitionDescTest.java   |     55 +
 .../metadata/model/NTableMetadataManagerTest.java  |    141 +
 .../kylin/metadata/model/SegmentRangeTest.java     |     59 +
 .../apache/kylin/metadata/model/SegmentsTest.java  |    472 +
 .../apache/kylin/metadata/model/TableDescTest.java |     61 +
 .../model/schema/ImportModelContextTest.java       |    136 +
 .../model/schema/SchemaUtilCCLineBreakTest.java    |     84 +
 .../model/schema/SchemaUtilImportModelTest.java    |    109 +
 .../metadata/model/schema/SchemaUtilTest.java      |    720 +
 .../tool/NonEquiJoinConditionComparatorTest.java   |    234 +
 .../model/util/ComputedColumnUtilTest.java         |    135 +
 .../metadata/model/util/FunctionDescTest.java      |    179 +
 .../model/util/ModelJoinRelationTypeEnumTest.java  |     60 +
 .../password/PasswordEncodeFactoryTest.java        |     51 +
 .../kylin/metadata/project/NProjectLoaderTest.java |     46 +
 .../metadata/project/NProjectManagerTest.java      |    126 +
 .../query/BigQueryThresholdUpdaterTest.java        |     85 +
 .../kylin/metadata/query/QueryHistorySqlTest.java  |     56 +
 .../metadata/query/RDBMSQueryHistoryDaoTest.java   |    768 +
 .../metadata/querymeta/SelectedColumnMetaTest.java |     54 +
 .../resourcegroup/ResourceGroupManagerTest.java    |     84 +
 .../kylin/metadata/state/StateSwitchTest.java      |    143 +
 .../metadata/streaming/FusionModelManagerTest.java |    109 +
 .../metadata/streaming/KafkaConfigManagerTest.java |    127 +
 .../kylin/metadata/streaming/KafkaConfigTest.java  |     61 +
 .../kylin/metadata/streaming/ReflectionUtils.java  |    176 +
 .../streaming/StreamingJobRecordManagerTest.java   |    188 +
 .../streaming/StreamingJobsStatsManagerTest.java   |    276 +
 .../metadata/streaming/StreamingManagerTest.java   |     92 +
 .../metadata/tuple/EmptyTupleIteratorTest.java     |     60 +
 .../metadata/usergroup/NUserGroupManagerTest.java  |     96 +
 .../org/apache/kylin/model/TableExtDescTest.java   |    156 +
 .../apache/kylin/model/tool/CalciteParserTest.java |    258 +
 .../DoubleQuotePushDownConverterTest.java          |    120 +
 .../resources/dict/dw_category_grouping_names.dat  | 448529 ++++++++++++++++++
 .../dict/english-words.80 (scowl-2015.05.18).txt   | 139304 ++++++
 .../src/test/resources/empty_cube.json             |     24 +
 .../test/resources/enormous_rule_based_cube.json   |    118 +
 .../src/test/resources/learn_kylin_cube2.json      |    159 +
 .../src/test/resources/ncube_rule_basedv2.json     |     37 +
 .../test/resources/ncube_rule_basedv2_mixed.json   |     81 +
 .../resources/ncube_rule_different_measure.json    |    296 +
 .../resources/ncube_rule_different_measure_2.json  |    250 +
 .../src/test/resources/ncude_mixed.json            |    228 +
 .../src/test/resources/ncude_rule_based.json       |     99 +
 .../1cc98309-f963-4808-aa4a-bfe025c21935.json      |     19 +
 .../66ee12c6-1fdf-48fc-8a79-44d7f503567c.json      |     19 +
 .../1cc98309-f963-4808-aa4a-bfe025c21935.json      |    244 +
 .../66ee12c6-1fdf-48fc-8a79-44d7f503567c.json      |    165 +
 .../1cc98309-f963-4808-aa4a-bfe025c21935.json      |    290 +
 .../resources/rec_v2/cc/table/SSB.CUSTOMER.json    |     58 +
 .../resources/rec_v2/cc/table/SSB.P_LINEORDER.json |    108 +
 .../a4f5117e-a609-4750-8c04-a73fa7959227.json      |     19 +
 .../a4f5117e-a609-4750-8c04-a73fa7959227.json      |    228 +
 .../a4f5117e-a609-4750-8c04-a73fa7959227.json      |    746 +
 .../rec_v2/general/table/SSB.CUSTOMER.json         |     58 +
 .../rec_v2/general/table/SSB.P_LINEORDER.json      |    108 +
 .../1cc98309-f963-4808-aa4a-bfe025c21935.json      |    143 +
 .../1cc98309-f963-4808-aa4a-bfe025c21935.json      |    305 +
 .../1cc98309-f963-4808-aa4a-bfe025c21935.json      |    410 +
 .../resources/rec_v2/state/table/SSB.CUSTOMER.json |     58 +
 .../rec_v2/state/table/SSB.P_LINEORDER.json        |    108 +
 .../test/resources/rule_based_and_auto_cube.json   |     94 +
 .../resources/rule_based_with_multi_order.json     |     83 +
 .../7212bf0c-0716-4cef-b623-69c161981262.json      |     13 +
 .../ed524ee2-2cdb-4b07-b39e-4c298563a863.json      |     13 +
 .../7212bf0c-0716-4cef-b623-69c161981262.json      |     18 +
 .../ed524ee2-2cdb-4b07-b39e-4c298563a863.json      |     44 +
 .../7212bf0c-0716-4cef-b623-69c161981262.json      |    332 +
 .../ed524ee2-2cdb-4b07-b39e-4c298563a863.json      |    386 +
 .../e6a4c3bb-6391-4995-9e33-cc24ac5a155b.json      |     36 +
 .../e6a4c3bb-6391-4995-9e33-cc24ac5a155b.json      |    767 +
 .../e6a4c3bb-6391-4995-9e33-cc24ac5a155b.json      |   1319 +
 .../0674f455-c7bd-4d8c-b0e3-374f3d26c315.json      |    336 +
 .../28b5e431-b5a3-406b-9806-19366bda6ce1.json      |    356 +
 .../2feebac2-efdc-4f39-a538-0dda065fda3a.json      |    338 +
 .../0674f455-c7bd-4d8c-b0e3-374f3d26c315.json      |    628 +
 .../28b5e431-b5a3-406b-9806-19366bda6ce1.json      |    628 +
 .../2feebac2-efdc-4f39-a538-0dda065fda3a.json      |    628 +
 .../enormous_dim/metadata/default/project.json     |      6 +
 .../default/table/DEFAULT.TEST_ENORMOUS_DIM.json   |    610 +
 .../2feca0d9-1cae-4157-90c2-d77f80310f1e.json      |     73 +
 .../14fcab15-09a4-4308-a604-1735693dc373.json      |     22 +
 .../fe0afd9e-97d4-47c5-b439-883d0921afa1.json      |     22 +
 .../2feca0d9-1cae-4157-90c2-d77f80310f1e.json      |     78 +
 .../2feca0d9-1cae-4157-90c2-d77f80310f1e.json      |    126 +
 .../metadata/default/project.json                  |      6 +
 .../default/table/DEFAULT.TEST_KYLIN_FACT.json     |     96 +
 .../_global/project/test_cache_loader.json         |     40 +
 .../0b45826c-ee12-8862-b2ba-02354b4bb04b.json      |     69 +
 .../0b4f4932-fe1e-2cbe-67fc-5931b51118b2.json      |     65 +
 .../5fdd33d9-3a8a-acf5-60ec-60c4951d2e1c.json      |     65 +
 .../8ddad87d-4f14-279c-ab3f-85579a9f3269.json      |     65 +
 .../9a7e01e7-f953-40a0-6f7d-50dabb3839b1.json      |     65 +
 .../c8acb693-8e4c-5021-9641-31a2d41a2a76.json      |     61 +
 .../48b1eee0-1bba-d2e1-0ff4-b34df48b7876.json      |     61 +
 .../e77c99c9-51e4-d14d-4305-de20787da250.json      |     61 +
 .../f269baf6-75e2-f8eb-fc61-49d957290cf9.json      |     61 +
 .../daf0115d-089d-0c5f-1dd4-1aabc1b9a624.json      |     61 +
 .../43fab2e1-45e9-5798-f670-acfcaee57ade.json      |     61 +
 .../a919f0b4-744d-99c5-45fd-9d8a4bcdadd4.json      |     61 +
 .../44b9873a-5ff9-8668-8428-f8fda5261d31.json      |     61 +
 .../566255d0-f4f5-c2b7-2ee8-abceed39e289.json      |     61 +
 .../8a23cfd9-1a7d-de9d-88d6-3673447e036f.json      |     61 +
 .../0b45826c-ee12-8862-b2ba-02354b4bb04b.json      |     93 +
 .../0b4f4932-fe1e-2cbe-67fc-5931b51118b2.json      |     93 +
 .../5fdd33d9-3a8a-acf5-60ec-60c4951d2e1c.json      |     93 +
 .../8ddad87d-4f14-279c-ab3f-85579a9f3269.json      |     93 +
 .../9a7e01e7-f953-40a0-6f7d-50dabb3839b1.json      |     93 +
 .../0b45826c-ee12-8862-b2ba-02354b4bb04b.json      |    243 +
 .../0b4f4932-fe1e-2cbe-67fc-5931b51118b2.json      |    260 +
 .../5fdd33d9-3a8a-acf5-60ec-60c4951d2e1c.json      |    260 +
 .../8ddad87d-4f14-279c-ab3f-85579a9f3269.json      |    277 +
 .../9a7e01e7-f953-40a0-6f7d-50dabb3839b1.json      |    260 +
 .../test_cache_loader/table/SSB.CUSTOMER.json      |     77 +
 .../test_cache_loader/table/SSB.P_LINEORDER.json   |    137 +
 ...4_16_20_06_5BCDB43E43D8C8D9E94A90C396CDA23F.zip |    Bin 0 -> 4853 bytes
 ...7_07_38_50_ECFF797F0B088D53A2FA781ABA3BC111.zip |    Bin 0 -> 4432 bytes
 ...3_14_07_15_2AE3E159782BD88DF0445DE9F8B5101C.zip |    Bin 0 -> 4211 bytes
 ...6_02_17_56_FB6573FA0363D0850D6807ABF0BCE060.zip |    Bin 0 -> 4194 bytes
 ...7_14_26_55_89173666F1E93F7988011666659D95AD.zip |    Bin 0 -> 5195 bytes
 ...2_17_27_25_F5A5FC2CC8452A2D55384F97D90C8CCE.zip |    Bin 0 -> 3741 bytes
 ...4_17_09_51_98DA15B726CE71B8FACA563708B8F4E5.zip |    Bin 0 -> 4177 bytes
 ...4_17_16_54_CF515DB4597CBE5DAE244A6EBF5FF5F3.zip |    Bin 0 -> 4064 bytes
 ...SK_RESULTS_b5c17c85a59e74f18a2b7f18c7575c16.zip |    Bin 0 -> 11897 bytes
 ...7_15_37_19_1C3C399B52A4E4E4F07C017C9692A7CB.zip |    Bin 0 -> 4573 bytes
 ...4_17_15_29_850F781B4B5B5C7A480F5834C6644FCB.zip |    Bin 0 -> 4920 bytes
 ...4_17_15_29_FAAAF2F8FA213F2888D3380720C28B4D.zip |    Bin 0 -> 4091 bytes
 ...4_17_11_19_77E61B40A0A3C2D1E1DE54E6982C98F5.zip |    Bin 0 -> 4160 bytes
 ...4_17_11_19_B6A82E50A2B4A7EE5CD606F01045CA84.zip |    Bin 0 -> 4865 bytes
 ...4_15_24_56_9BCCCB5D08F218EC86DD9D850017F5F5.zip |    Bin 0 -> 5528 bytes
 ...4_15_24_56_4B2101A84E908397A8E711864FC8ADF2.zip |    Bin 0 -> 5276 bytes
 ...2_20_50_10_F85294019F1CE7DB159D6C264B672472.zip |    Bin 0 -> 3740 bytes
 ...9_15_13_11_4B823934CF76C0A124244456539C9296.zip |    Bin 0 -> 10920 bytes
 ...9_16_53_38_F219D2C04B1792E7DB87B634DE058AD8.zip |    Bin 0 -> 4310 bytes
 ...3_21_43_58_620D9E784006043A4B6E9E5E36C9B06D.zip |    Bin 0 -> 2865 bytes
 ...6_02_37_33_1B8D602879F14297E132978D784C46EA.zip |    Bin 0 -> 4107 bytes
 ...6_02_37_33_3182D4A7694DA64E3D725C140CF80A47.zip |    Bin 0 -> 5104 bytes
 .../metadata/_global/project/original_project.json |      6 +
 .../3069a6a5-b5d1-4594-9c86-ef61fb7a070c.json      |      1 +
 .../ff810fb9-55c4-4c45-9f8e-4235122a63d3.json      |      1 +
 .../3069a6a5-b5d1-4594-9c86-ef61fb7a070c.json      |    371 +
 .../ff810fb9-55c4-4c45-9f8e-4235122a63d3.json      |      1 +
 .../original_project/table/SSB.CUSTOMER.json       |     57 +
 .../original_project/table/SSB.P_LINEORDER.json    |    107 +
 .../project/original_project_cc_linebreak.json     |     42 +
 .../42711a5f-85fb-4d84-a6b7-40493af849da.json      |     86 +
 .../42711a5f-85fb-4d84-a6b7-40493af849da.json      |    821 +
 .../table/CRS.PNL_RISK_RESULTS_VD.json             |    211 +
 .../table/CRS.PNL_TREE_VD.json                     |    204 +
 .../table/CRS.POSITION_DATA_VD.json                |    232 +
 .../table/FINANCE.FX_FAMILY_ENRICHED.json          |    120 +
 .../table/REFDATA.REFDATA_BOOK_HIERARCHY.json      |    442 +
 .../project/original_project_model_import.json     |     35 +
 .../project/original_project_model_import_2.json   |     35 +
 .../ca976b10-6808-a941-34e6-d178c69fd4f5.json      |     21 +
 .../ca976b10-6808-a941-34e6-d178c69fd4f5.json      |    152 +
 .../table/SSB.P_LINEORDER.json                     |    118 +
 .../b14520d9-2088-bc0e-13c9-8ff02144f53b.json      |     35 +
 .../b14520d9-2088-bc0e-13c9-8ff02144f53b.json      |    250 +
 .../table/SSB.LINEORDER.json                       |    113 +
 .../table/SSB.P_LINEORDER.json                     |    118 +
 ...4_17_11_19_25E6007633A4793DB1790C2E5D3B940A.zip |    Bin 0 -> 4111 bytes
 .../0674f455-c7bd-4d8c-b0e3-374f3d26c315.json      |     60 +
 .../b27d1342-5c1b-4e25-a6b4-ca25c1872641.json      |    119 +
 .../0674f455-c7bd-4d8c-b0e3-374f3d26c315.json      |    316 +
 .../0674f455-c7bd-4d8c-b0e3-374f3d26c315.json      |    173 +
 .../spanning_tree/metadata/default/project.json    |      6 +
 src/core-metadata/src/test/test.json               |    201 +
 src/core-storage/pom.xml                           |     65 +
 .../java/org/apache/kylin/storage/IStorage.java    |     46 +
 .../org/apache/kylin/storage/IStorageQuery.java    |     49 +
 .../apache/kylin/storage/ParquetDataStorage.java   |     45 +
 .../org/apache/kylin/storage/StorageContext.java   |    129 +
 .../org/apache/kylin/storage/StorageFactory.java   |     68 +
 .../apache/kylin/storage/StorageLimitLevel.java    |     47 +
 .../apache/kylin/storage/StorageFactoryTest.java   |    111 +
 .../org/apache/kylin/storage/StorageMockUtils.java |    119 +
 .../apache/kylin/storage/cache/EhcacheTest.java    |    125 +
 src/data-loading-booter/pom.xml                    |    247 +
 .../kylin/rest/DataLoadingBootstrapServer.java     |     38 +
 .../src/main/resources/META-INF/spring.factories   |      1 +
 .../src/main/resources/application.yaml            |     96 +
 .../src/main/resources/applicationContext.xml      |     40 +
 .../src/main/resources/assembly.xml                |     79 +
 .../src/main/resources/config/config.yaml          |     45 +
 .../src/main/resources/config/config_library.csv   |    566 +
 .../src/main/resources/config/init.properties      |    453 +
 .../src/main/resources/ehcache.xml                 |     42 +
 .../src/main/resources/exception_to_code.json      |      8 +
 .../src/main/resources/kylinSecurity.xml           |    623 +
 .../src/main/resources/log4j2.xml                  |     22 +
 .../script/schema-session-attributes-mysql.sql     |     24 +
 .../script/schema-session-attributes-pg.sql        |     24 +
 .../main/resources/script/schema-session-mysql.sql |     31 +
 .../main/resources/script/schema-session-pg.sql    |     31 +
 src/data-loading-server/pom.xml                    |    118 +
 .../org/apache/kylin/rest/SparkHistoryServer.java  |     61 +
 .../kylin/rest/controller/BaseController.java      |    432 +
 .../kylin/rest/controller/JobController.java       |    325 +
 .../kylin/rest/controller/SampleController.java    |    121 +
 .../kylin/rest/controller/SegmentController.java   |    390 +
 .../kylin/rest/controller/SnapshotController.java  |    247 +
 .../rest/controller/StreamingJobController.java    |    308 +
 .../rest/controller/open/OpenSampleController.java |    121 +
 .../controller/open/OpenSegmentController.java     |    296 +
 .../kylin/rest/controller/v2/JobControllerV2.java  |    106 +
 .../rest/controller/v2/SegmentControllerV2.java    |    287 +
 .../apache/kylin/rest/SparkHistoryServerTest.java  |     40 +
 .../kylin/rest/controller/BaseControllerTest.java  |    299 +
 .../kylin/rest/controller/JobControllerTest.java   |    359 +
 .../rest/controller/SampleControllerTest.java      |    196 +
 .../rest/controller/SegmentControllerTest.java     |    426 +
 .../rest/controller/SnapshotControllerTest.java    |    313 +
 .../controller/StreamingJobControllerTest.java     |    337 +
 .../controller/fake/HandleErrorController.java     |     34 +
 .../controller/open/OpenSampleControllerTest.java  |    167 +
 .../controller/open/OpenSegmentControllerTest.java |    518 +
 .../rest/controller/v2/JobControllerV2Test.java    |    113 +
 .../controller/v2/SegmentControllerV2Test.java     |    253 +
 src/data-loading-service/pom.xml                   |    139 +
 .../kylin/rest/filter/SegmentsRequestFilter.java   |    121 +
 .../kylin/rest/initialize/BuildAppInitializer.java |     39 +
 .../kylin/rest/request/CubeRebuildRequest.java     |     39 +
 .../apache/kylin/rest/request/JobErrorRequest.java |     40 +
 .../org/apache/kylin/rest/request/JobFilter.java   |     48 +
 .../kylin/rest/request/JobUpdateRequest.java       |     40 +
 .../kylin/rest/request/PartitionsBuildRequest.java |     55 +
 .../rest/request/PartitionsDeleteRequest.java      |     41 +
 .../rest/request/PartitionsRefreshRequest.java     |     68 +
 .../kylin/rest/request/RefreshSegmentsRequest.java |     45 +
 .../kylin/rest/request/SegmentMgmtRequest.java     |     39 +
 .../apache/kylin/rest/request/SnapshotRequest.java |     76 +
 .../rest/request/SnapshotTableConfigRequest.java   |     37 +
 .../kylin/rest/request/SparkJobTimeRequest.java    |     40 +
 .../kylin/rest/request/SparkJobUpdateRequest.java  |     41 +
 .../apache/kylin/rest/request/StageRequest.java    |     41 +
 .../kylin/rest/request/TablePartitionsRequest.java |     36 +
 .../request/TableReloadPartitionColRequest.java    |     34 +
 .../apache/kylin/rest/response/EventResponse.java  |     37 +
 .../kylin/rest/response/ExecutableResponse.java    |    321 +
 .../rest/response/ExecutableStepResponse.java      |    148 +
 .../rest/response/ExecutorMemoryResponse.java      |     36 +
 .../rest/response/ExecutorThreadInfoResponse.java  |     35 +
 .../kylin/rest/response/JobStatisticsResponse.java |     38 +
 .../kylin/rest/response/SnapshotCheckResponse.java |     55 +
 .../kylin/rest/response/SnapshotColResponse.java   |     90 +
 .../rest/response/SnapshotPartitionsResponse.java  |     35 +
 .../org/apache/kylin/rest/service/JobService.java  |   1176 +
 .../kylin/rest/service/ModelBuildService.java      |    644 +
 .../apache/kylin/rest/service/SegmentHelper.java   |    203 +
 .../apache/kylin/rest/service/SnapshotService.java |    846 +
 .../kylin/rest/service/TableSamplingService.java   |    126 +
 .../apache/kylin/rest/util/SparkHistoryUIUtil.java |     86 +
 .../src/main/resources/exception_to_code.json      |      8 +
 .../rest/filter/SegmentsRequestFilterTest.java     |    198 +
 .../rest/service/FusionModelServiceBuildTest.java  |    184 +
 .../kylin/rest/service/ModelBuildServiceTest.java  |    100 +
 .../kylin/rest/service/ModelServiceBuildTest.java  |   1652 +
 .../kylin/rest/service/SegmentHelperTest.java      |     70 +
 .../kylin/rest/service/SnapshotServiceTest.java    |    635 +
 .../rest/service/TableSamplingServiceTest.java     |    228 +
 .../kylin/rest/util/SparkHistoryUIUtilTest.java    |     93 +
 src/datasource-sdk/pom.xml                         |     71 +
 .../sdk/datasource/PushDownRunnerSDKImpl.java      |    109 +
 .../datasource/adaptor/AbstractJdbcAdaptor.java    |    496 +
 .../sdk/datasource/adaptor/AdaptorConfig.java      |    105 +
 .../sdk/datasource/adaptor/DefaultAdaptor.java     |    384 +
 .../kylin/sdk/datasource/adaptor/H2Adaptor.java    |     48 +
 .../kylin/sdk/datasource/adaptor/MssqlAdaptor.java |    145 +
 .../kylin/sdk/datasource/adaptor/MysqlAdaptor.java |    100 +
 .../kylin/sdk/datasource/adaptor/SQLDWAdaptor.java |     25 +
 .../sdk/datasource/framework/AdaptorFactory.java   |     48 +
 .../framework/FixedCachedRowSetImpl.java           |    335 +
 .../sdk/datasource/framework/JdbcConnector.java    |    220 +
 .../framework/SourceConnectorFactory.java          |     71 +
 .../sdk/datasource/framework/conv/ConvMaster.java  |    157 +
 .../framework/conv/ConvRownumSqlWriter.java        |    145 +
 .../datasource/framework/conv/ConvSqlWriter.java   |    238 +
 .../framework/conv/DefaultConfigurer.java          |    149 +
 .../framework/conv/GenericSqlConverter.java        |     57 +
 .../datasource/framework/conv/ParamNodeParser.java |     45 +
 .../framework/conv/SingleSqlNodeReplacer.java      |     48 +
 .../datasource/framework/conv/SqlConverter.java    |    259 +
 .../framework/conv/SqlNodeConverter.java           |    129 +
 .../datasource/framework/conv/SqlParamsFinder.java |    109 +
 .../datasource/framework/def/DataSourceDef.java    |    219 +
 .../framework/def/DataSourceDefProvider.java       |    122 +
 .../sdk/datasource/framework/def/FunctionDef.java  |     49 +
 .../sdk/datasource/framework/def/PropertyDef.java  |     36 +
 .../sdk/datasource/framework/def/TypeDef.java      |    111 +
 .../sdk/datasource/framework/def/TypeMapping.java  |     44 +
 .../sdk/datasource/framework/utils/Constants.java  |     22 +
 .../sdk/datasource/framework/utils/XmlUtil.java    |     48 +
 .../src/main/resources/datasource/default.xml      |    208 +
 .../src/main/resources/datasource/mssql.xml        |    115 +
 .../src/main/resources/datasource/mysql.xml        |     47 +
 .../src/main/resources/datasource/snowflake.xml    |     33 +
 .../src/main/resources/datasource/sqldw.xml        |    107 +
 .../sdk/datasource/PushdownRunnerSDKImplTest.java  |     62 +
 .../sdk/datasource/adaptor/AdaptorConfigTest.java  |     36 +
 .../kylin/sdk/datasource/adaptor/AdaptorsTest.java |     67 +
 .../datasource/framework/JdbcConnectorTest.java    |    124 +
 .../framework/conv/GenericSqlConverterTest.java    |    124 +
 .../framework/conv/ParamNodeParserTest.java        |     38 +
 .../framework/conv/SingleSqlNodeReplacerTest.java  |     72 +
 .../framework/conv/SqlConverterTest.java           |    718 +
 .../framework/conv/SqlParamsFinderTest.java        |     63 +
 .../framework/def/DataSourceDefTest.java           |     81 +
 .../sdk/datasource/framework/def/TypeDefTest.java  |     54 +
 .../src/test/resources/datasource/default.xml      |    226 +
 .../test/resources/datasource/default.xml.override |    204 +
 .../src/test/resources/datasource/testing.xml      |    122 +
 .../resources/datasource/testing_withcache.xml     |    123 +
 src/datasource-service/pom.xml                     |    135 +
 .../initialize/DataSourceAppInitializer.java       |     46 +
 .../apache/kylin/rest/constant/JobInfoEnum.java    |     22 +
 .../kylin/rest/request/AWSTableLoadRequest.java    |     45 +
 .../kylin/rest/request/AutoMergeRequest.java       |     52 +
 .../org/apache/kylin/rest/request/DDLRequest.java  |     31 +
 .../kylin/rest/request/DateRangeRequest.java       |     38 +
 .../kylin/rest/request/ExportTableRequest.java     |     33 +
 .../kylin/rest/request/OpenReloadTableRequest.java |     45 +
 .../kylin/rest/request/PartitionKeyRequest.java    |     35 +
 .../kylin/rest/request/ReloadTableRequest.java     |     45 +
 .../apache/kylin/rest/request/S3TableExtInfo.java  |     33 +
 .../apache/kylin/rest/request/SamplingRequest.java |     48 +
 .../kylin/rest/request/StreamingRequest.java       |     62 +
 .../kylin/rest/request/StreamingTableRequest.java  |     33 +
 .../kylin/rest/request/TableLoadRequest.java       |     44 +
 .../apache/kylin/rest/request/TopTableRequest.java |     51 +
 .../rest/request/UpdateAWSTableExtDescRequest.java |     35 +
 .../rest/response/AutoMergeConfigResponse.java     |     42 +
 .../rest/response/BatchLoadTableResponse.java      |     37 +
 .../apache/kylin/rest/response/DDLResponse.java    |     35 +
 .../rest/response/ExistedDataRangeResponse.java    |     37 +
 .../kylin/rest/response/ExportTablesResponse.java  |     36 +
 .../kylin/rest/response/LoadTableResponse.java     |     39 +
 .../rest/response/NHiveTableNameResponse.java      |     30 +
 .../kylin/rest/response/NInitTablesResponse.java   |     56 +
 .../rest/response/OpenPreReloadTableResponse.java  |     48 +
 .../rest/response/PreReloadTableResponse.java      |     77 +
 .../rest/response/PreUnloadTableResponse.java      |     44 +
 .../kylin/rest/response/TableDescResponse.java     |     99 +
 .../kylin/rest/response/TableNameResponse.java     |     44 +
 .../apache/kylin/rest/response/TableRefresh.java   |     43 +
 .../kylin/rest/response/TableRefreshAll.java       |     38 +
 .../rest/response/TablesAndColumnsResponse.java    |     39 +
 .../response/UpdateAWSTableExtDescResponse.java    |     34 +
 .../apache/kylin/rest/service/JobSupporter.java    |     25 +
 .../apache/kylin/rest/service/KafkaService.java    |     82 +
 .../kylin/rest/service/SparkSourceService.java     |    348 +
 .../kylin/rest/service/StreamingTableService.java  |    140 +
 .../apache/kylin/rest/service/TableExtService.java |    316 +
 .../rest/service/TableFusionModelSupporter.java    |     26 +
 .../rest/service/TableIndexPlanSupporter.java      |     30 +
 .../kylin/rest/service/TableModelSupporter.java    |     42 +
 .../kylin/rest/service/TableSamplingSupporter.java |     26 +
 .../apache/kylin/rest/service/TableService.java    |   1965 +
 .../apache/kylin/rest/source/DataSourceState.java  |    311 +
 .../apache/kylin/rest/source/NHiveSourceInfo.java  |     40 +
 .../org/apache/kylin/rest/util/TableUtils.java     |     45 +
 .../kylin/rest/service/KafkaServiceTest.java       |    132 +
 .../apache/kylin/rest/service/SourceTestCase.java  |    138 +
 .../kylin/rest/service/SparkSourceServiceTest.java |    275 +
 .../rest/service/StreamingTableServiceTest.java    |    274 +
 .../kylin/rest/service/TableExtServiceTest.java    |    249 +
 .../kylin/rest/source/DataSourceStateTest.java     |    152 +
 src/examples/LICENSE                               |     10 +
 .../sample_cube/create_sample_ssb_tables.sql       |    136 +
 src/examples/sample_cube/data/SSB.CUSTOMER.csv     |    300 +
 src/examples/sample_cube/data/SSB.DATES.csv        |   2556 +
 src/examples/sample_cube/data/SSB.LINEORDER.csv    |  60175 +++
 src/examples/sample_cube/data/SSB.PART.csv         |   2000 +
 src/examples/sample_cube/data/SSB.SUPPLIER.csv     |     20 +
 .../template/raw_table_desc/kylin_sales_cube.json  |    216 +
 .../raw_table_instance/kylin_sales_cube.json       |     13 +
 .../localmeta/data/DEFAULT.TEST_ACCOUNT.csv        |   2000 +
 .../localmeta/data/DEFAULT.TEST_BANK_INCOME.csv    |     30 +
 .../localmeta/data/DEFAULT.TEST_BANK_LOCATION.csv  |      3 +
 .../data/DEFAULT.TEST_CATEGORY_GROUPINGS.csv       |    144 +
 .../localmeta/data/DEFAULT.TEST_CHAR_N.csv         |      2 +
 .../localmeta/data/DEFAULT.TEST_COUNTRY.csv        |    244 +
 .../localmeta/data/DEFAULT.TEST_COUNT_DISTINCT.csv |     12 +
 .../localmeta/data/DEFAULT.TEST_ENCODING.csv       |      3 +
 .../data/DEFAULT.TEST_INTERSECT_COUNT.csv          |      7 +
 .../localmeta/data/DEFAULT.TEST_KYLIN_FACT.csv     |  10000 +
 .../data/DEFAULT.TEST_KYLIN_FACT_WITH_INT_DATE.csv |  10000 +
 .../localmeta/data/DEFAULT.TEST_MEASURE.csv        |     18 +
 .../localmeta/data/DEFAULT.TEST_MEASURE1.csv       |      4 +
 .../localmeta/data/DEFAULT.TEST_ORDER.csv          |   5000 +
 .../localmeta/data/DEFAULT.TEST_ORDER_STRING.csv   |   5000 +
 .../data/DEFAULT.TEST_ORDER_STRING_TS.csv          |   5000 +
 .../localmeta/data/DEFAULT.TEST_PAR_COL.csv        |      8 +
 .../localmeta/data/DEFAULT.TEST_SCD2.csv           |   1001 +
 .../localmeta/data/DEFAULT.TEST_TOP_N.csv          |      4 +
 .../localmeta/data/DEFAULT.TOPN_WITH_CHINESE.csv   |     12 +
 .../localmeta/data/EDW.TEST_CAL_DT.csv             |    731 +
 .../localmeta/data/EDW.TEST_SELLER_TYPE_DIM.csv    |      8 +
 .../localmeta/data/EDW.TEST_SITES.csv              |    262 +
 .../localmeta/data/ISSUES.TEST_TOP_N.csv           |      4 +
 .../localmeta/data/KEYWORD.TEST_KEYWORD_COLUMN.csv |      1 +
 .../POPHEALTH_ANALYTICS.XC_UM_MEMBER_MONTHS.csv    |      2 +
 .../data/POPHEALTH_ANALYTICS.X_PROVIDER.csv        |      6 +
 .../data/POPHEALTH_ANALYTICS.Z_360_HEAT.csv        |      3 +
 .../data/POPHEALTH_ANALYTICS.Z_360_OPPT_FINDER.csv |      2 +
 .../POPHEALTH_ANALYTICS.Z_PROVDASH_CI_INDEX.csv    |      4 +
 .../POPHEALTH_ANALYTICS.Z_PROVDASH_PAT_SAT.csv     |      3 +
 .../POPHEALTH_ANALYTICS.Z_PROVDASH_QPM_SCORE.csv   |      6 +
 .../data/POPHEALTH_ANALYTICS.Z_PROVDASH_UM_ED.csv  |      5 +
 .../POPHEALTH_ANALYTICS.Z_PROV_DASH_ATTRIBPROV.csv |      3 +
 .../POPHEALTH_ANALYTICS.Z_S0_CPRM_GENERICS.csv     |      3 +
 .../test_case_data/localmeta/data/SSB.CUSTOMER.csv |     30 +
 .../test_case_data/localmeta/data/SSB.DATES.csv    |   2556 +
 .../localmeta/data/SSB.LINEORDER.csv               |   6005 +
 .../test_case_data/localmeta/data/SSB.PART.csv     |    200 +
 .../localmeta/data/SSB.P_LINEORDER.csv             |   6005 +
 .../localmeta/data/SSB.P_LINEORDER.json            |      1 +
 .../test_case_data/localmeta/data/SSB.SUPPLIER.csv |      2 +
 .../S_CITY=ETHIOPIA6/SSB.SUPPLIER.csv              |      1 +
 .../S_NATION=PERU/S_CITY=PERU10/SSB.SUPPLIER.csv   |      1 +
 .../S_NATION=PERU/S_CITY=PERU9/SSB.SUPPLIER.csv    |      1 +
 .../data/SSB_100_TRANSACTION.CUSTOMER.csv          |     30 +
 .../data/SSB_100_TRANSACTION.DATES_RANGE.csv       |   2556 +
 .../data/SSB_100_TRANSACTION.DATES_RANGE_2.csv     |   2556 +
 ...SSB_100_TRANSACTION.DATES_TRANSACTION_RANGE.csv |   2556 +
 .../data/TDH_TEST.LINEORDER_PARTITION.csv          |   6005 +
 .../data/TDH_TEST.LINEORDER_TRANSACTION.csv        |   6005 +
 .../TDH_TEST.LINEORDER_TRANSACTION_PARTITION.csv   |   6005 +
 .../test_case_data/localmeta/data/TDVT.CALCS.csv   |     17 +
 .../test_case_data/localmeta/data/TDVT.STAPLES.csv |  54860 +++
 .../localmeta/data/TPCH.CUSTOMER.csv               |   9577 +
 .../localmeta/data/TPCH.LINEITEM.csv               |  10563 +
 .../test_case_data/localmeta/data/TPCH.NATION.csv  |     25 +
 .../test_case_data/localmeta/data/TPCH.ORDERS.csv  |   9615 +
 .../test_case_data/localmeta/data/TPCH.PART.csv    |   4188 +
 .../localmeta/data/TPCH.PARTSUPP.csv               |   5945 +
 .../test_case_data/localmeta/data/TPCH.REGION.csv  |      5 +
 .../localmeta/data/TPCH.SUPPLIER.csv               |   2962 +
 .../localmeta/data/YPB200C1000WYYYYMM.A1.csv       |      0
 .../test_case_data/localmeta/data/localmeta_n      |    200 +
 .../data/tableDesc/DEFAULT.STREAMING_TABLE.json    |     47 +
 .../data/tableDesc/DEFAULT.TEST_ACCOUNT.json       |     36 +
 .../tableDesc/DEFAULT.TEST_CATEGORY_GROUPINGS.json |    156 +
 .../data/tableDesc/DEFAULT.TEST_COUNTRY.json       |     26 +
 .../data/tableDesc/DEFAULT.TEST_ENCODING.json      |     97 +
 .../data/tableDesc/DEFAULT.TEST_KYLIN_FACT.json    |     74 +
 .../DEFAULT.TEST_KYLIN_FACT_WITH_INT_DATE.json     |     74 +
 .../data/tableDesc/DEFAULT.TEST_MEASURE.json       |    112 +
 .../data/tableDesc/DEFAULT.TEST_MEASURE1.json      |    112 +
 .../data/tableDesc/DEFAULT.TEST_ORDER.json         |     36 +
 .../data/tableDesc/DEFAULT.TEST_SCD2.json          |     36 +
 .../localmeta/data/tableDesc/EDW.TEST_CAL_DT.json  |    414 +
 .../data/tableDesc/EDW.TEST_SELLER_TYPE_DIM.json   |     46 +
 .../localmeta/data/tableDesc/EDW.TEST_SITES.json   |     52 +
 .../localmeta/data/tableDesc/SSB.CUSTOMER.json     |     41 +
 .../localmeta/data/tableDesc/SSB.DATES.json        |     77 +
 .../localmeta/data/tableDesc/SSB.LINEORDER.json    |     78 +
 .../localmeta/data/tableDesc/SSB.PART.json         |     45 +
 .../localmeta/data/tableDesc/SSB.P_LINEORDER.json  |     82 +
 .../localmeta/data/tableDesc/SSB.SUPPLIER.json     |     37 +
 .../test_case_data/localmeta/kylin.properties      |    167 +
 .../test_case_data/localmeta/metadata/UUID         |    Bin 0 -> 38 bytes
 .../metadata/_global/project/bad_query_test.json   |     34 +
 .../metadata/_global/project/broken_test.json      |     31 +
 .../metadata/_global/project/cc_test.json          |     34 +
 .../metadata/_global/project/default.json          |      7 +
 .../localmeta/metadata/_global/project/demo.json   |      6 +
 .../_global/project/enormous_cuboids_test.json     |      6 +
 .../metadata/_global/project/gc_test.json          |     32 +
 .../_global/project/heterogeneous_segment.json     |     34 +
 .../metadata/_global/project/infer_filter.json     |     15 +
 .../metadata/_global/project/intersect_count.json  |      6 +
 .../metadata/_global/project/keyword.json          |     31 +
 .../localmeta/metadata/_global/project/match.json  |      6 +
 .../_global/project/multi_level_partition.json     |     35 +
 .../localmeta/metadata/_global/project/newten.json |      6 +
 .../localmeta/metadata/_global/project/scd2.json   |     36 +
 .../localmeta/metadata/_global/project/smart.json  |      6 +
 .../localmeta/metadata/_global/project/ssb.json    |     14 +
 .../metadata/_global/project/streaming_test.json   |     13 +
 .../project/sum_expr_with_count_distinct.json      |     35 +
 .../metadata/_global/project/table_index.json      |      6 +
 .../localmeta/metadata/_global/project/tdh.json    |     15 +
 .../localmeta/metadata/_global/project/tdvt.json   |      8 +
 .../_global/project/test_broken_project.json       |     35 +
 .../_global/project/test_inferior_job.json         |     38 +
 .../localmeta/metadata/_global/project/top_n.json  |      6 +
 .../localmeta/metadata/_global/project/tpch.json   |      8 +
 .../metadata/_global/resource_group/relation.json  |     10 +
 .../localmeta/metadata/_global/trash_record        |      1 +
 .../f1bb4bbd-a638-442b-a276-e301fde0d7f6.json      |     66 +
 .../0dee5a53-84e0-479b-8804-ead352b50d04.json      |     29 +
 .../33579303-de88-4961-b214-106388243c53.json      |     29 +
 .../e42ff69e-9fe2-483d-a760-736498fc1133.json      |     29 +
 .../f1bb4bbd-a638-442b-a276-e301fde0d7f6.json      |    128 +
 .../f1bb4bbd-a638-442b-a276-e301fde0d7f6.json      |    120 +
 .../rule/57ae2f33-6321-4d2b-9c33-0334f19b3f1f.json |     11 +
 .../rule/5afa2a5e-4091-43fd-b6ab-11ae36b3e5dd.json |      9 +
 .../rule/8161776b-4096-4b62-aba3-769c21bab46a.json |     13 +
 .../rule/a390ff43-25b1-4bc2-9516-026972cfd5e2.json |     14 +
 .../rule/c1f6eaca-2e24-4f00-8e03-1c6cfc3fcf6a.json |     13 +
 .../bad_query_test/table/DEFAULT.TEST_ACCOUNT.json |     46 +
 .../table/DEFAULT.TEST_CATEGORY_GROUPINGS.json     |    197 +
 .../bad_query_test/table/DEFAULT.TEST_COUNTRY.json |     36 +
 .../table/DEFAULT.TEST_KYLIN_FACT.json             |     86 +
 .../039eef32-9691-4c88-93ba-d65c58a1ab7a.json      |     30 +
 .../3f8941de-d01c-42b8-91b5-44646390864b.json      |     30 +
 .../f1bb4bbd-a638-442b-a276-e301fde0d7f6.json      |     62 +
 .../bb018fdc-b9a6-4e92-8ee6-24973d1d1f24.json      |     17 +
 .../ee1bb06d-2d81-4613-91f8-f6d87ae46c8d.json      |     17 +
 .../0dee5a53-84e0-479b-8804-ead352b50d04.json      |     26 +
 .../33579303-de88-4961-b214-106388243c53.json      |     26 +
 .../e42ff69e-9fe2-483d-a760-736498fc1133.json      |     26 +
 .../3a6c96ca-0262-4c83-834a-ea96f53e2a96.json      |     21 +
 .../61901c77-a1cc-4dea-aa91-fd97ab893ec5.json      |     21 +
 .../7e988e1c-ba76-4cdb-9469-a2e873db8c5b.json      |     21 +
 .../cdcf8c17-c00f-4142-89f3-43f1b03e439a.json      |     21 +
 .../039eef32-9691-4c88-93ba-d65c58a1ab7a.json      |     53 +
 .../3f8941de-d01c-42b8-91b5-44646390864b.json      |     50 +
 .../f1bb4bbd-a638-442b-a276-e301fde0d7f6.json      |     88 +
 .../metadata/broken_test/kafka/SSB.LINEORDER.json  |     14 +
 .../loading_range/DEFAULT.TEST_KYLIN_FACT.json     |     21 +
 .../039eef32-9691-4c88-93ba-d65c58a1ab7a.json      |     69 +
 .../3f8941de-d01c-42b8-91b5-44646390864b.json      |     65 +
 .../a9e4c7d2-60c8-4a16-9949-2c8ed0199efd.json      |    132 +
 .../f1bb4bbd-a638-442b-a276-e301fde0d7f6.json      |    105 +
 .../rule/33dbe3ab-ae27-424e-ac05-ffdfed7e389f.json |     13 +
 .../rule/57ae2f33-6321-4d2b-9c33-0334f19b3f1f.json |     11 +
 .../rule/c1634505-9f16-4314-871c-5a3decfd8bb2.json |     13 +
 .../rule/cb5513c8-8fec-44b8-b5bc-4f47c1f21362.json |      9 +
 .../rule/dcaceac3-d117-4e5c-8078-0b1303947883.json |     13 +
 .../broken_test/table/DEFAULT.STREAMING_TABLE.json |     44 +
 .../broken_test/table/DEFAULT.TEST_ACCOUNT.json    |     40 +
 .../table/DEFAULT.TEST_CATEGORY_GROUPINGS.json     |    160 +
 .../broken_test/table/DEFAULT.TEST_COUNTRY.json    |     31 +
 .../broken_test/table/DEFAULT.TEST_ENCODING.json   |     84 +
 .../broken_test/table/DEFAULT.TEST_KYLIN_FACT.json |     74 +
 .../broken_test/table/DEFAULT.TEST_MEASURE.json    |     99 +
 .../broken_test/table/DEFAULT.TEST_ORDER.json      |     41 +
 .../metadata/broken_test/table/SSB.LINEORDER.json  |    137 +
 .../0d146f1a-bdd3-4548-87ac-21c2c6f9a0da.json      |     56 +
 .../4a45dc4d-937e-43cc-8faa-34d59d4e11d3.json      |     18 +
 .../ef866cc3-1f4c-4bb3-9203-1be872c8f799.json      |    392 +
 .../0d146f1a-bdd3-4548-87ac-21c2c6f9a0da.json      |     39 +
 .../4a45dc4d-937e-43cc-8faa-34d59d4e11d3.json      |     72 +
 .../0d146f1a-bdd3-4548-87ac-21c2c6f9a0da.json      |    214 +
 .../4a45dc4d-937e-43cc-8faa-34d59d4e11d3.json      |    257 +
 .../metadata/cc_test/table/SSB.CUSTOMER.json       |     49 +
 .../metadata/cc_test/table/SSB.DATES.json          |     85 +
 .../metadata/cc_test/table/SSB.LINEORDER.json      |     85 +
 .../localmeta/metadata/cc_test/table/SSB.PART.json |     53 +
 .../metadata/cc_test/table/SSB.SUPPLIER.json       |     45 +
 .../metadata/cc_test/table_exd/SSB.CUSTOMER.json   |     29 +
 .../metadata/cc_test/table_exd/SSB.DATES.json      |     29 +
 .../metadata/cc_test/table_exd/SSB.LINEORDER.json  |     29 +
 .../metadata/cc_test/table_exd/SSB.PART.json       |     29 +
 .../metadata/cc_test/table_exd/SSB.SUPPLIER.json   |     29 +
 .../741ca86a-1f13-46da-a59f-95fb68615e3a.json      |     59 +
 .../82fa7671-a935-45f5-8779-85703601f49a.json      |     13 +
 .../89af4ee2-2cdb-4b07-b39e-4c29856309aa.json      |     59 +
 .../a8ba3ff1-83bd-4066-ad54-d2fb3d1f0e94.json      |     13 +
 .../abe3bf1a-c4bc-458d-8278-7ea8b00f5e96.json      |     35 +
 .../b780e4e4-69af-449e-b09f-05c90dfa04b6.json      |    287 +
 .../cb596712-3a09-46f8-aea1-988b43fe9b6c.json      |     34 +
 .../d67bf0e4-30f4-9248-2528-52daa80be91a.json      |     66 +
 .../ef783e4d-e35f-4bd9-8afd-efd64336f04d.json      |     58 +
 .../ef5e0663-feba-4ed2-b71c-21958122bbff.json      |     88 +
 .../11124840-b3e3-43db-bcab-2b78da666d00.json      |     59 +
 .../0db919f3-1359-496c-aab5-b6f3951adc0e.json      |    533 +
 .../73570f31-05a5-448f-973c-44209830dd01.json      |    368 +
 .../d2edf0c5-5eb2-4968-9ad5-09efbf659324.json      |    698 +
 .../ff839b0b-2c23-4420-b332-0df70e36c343.json      |    698 +
 .../a9e2c5c6-689d-42d4-8706-16f6ff9998b7.json      |     19 +
 .../24faaf24-36ee-3e08-1c9f-b6e3ccfe9ec9.json      |     34 +
 .../741ca86a-1f13-46da-a59f-95fb68615e3a.json      |    443 +
 .../82fa7671-a935-45f5-8779-85703601f49a.json      |     52 +
 .../89af4ee2-2cdb-4b07-b39e-4c29856309aa.json      |    453 +
 .../a8ba3ff1-83bd-4066-ad54-d2fb3d1f0e94.json      |     70 +
 .../abe3bf1a-c4bc-458d-8278-7ea8b00f5e96.json      |    104 +
 .../b780e4e4-69af-449e-b09f-05c90dfa04b6.json      |     40 +
 .../cb596712-3a09-46f8-aea1-988b43fe9b6c.json      |     50 +
 .../d67bf0e4-30f4-9248-2528-52daa80be91a.json      |     63 +
 .../741ca86a-1f13-46da-a59f-95fb68615e3a.json      |   1254 +
 .../82fa7671-a935-45f5-8779-85703601f49a.json      |   1295 +
 .../89af4ee2-2cdb-4b07-b39e-4c29856309aa.json      |   1528 +
 .../a8ba3ff1-83bd-4066-ad54-d2fb3d1f0e94.json      |    134 +
 .../abe3bf1a-c4bc-458d-8278-7ea8b00f5e96.json      |   1295 +
 .../b780e4e4-69af-449e-b09f-05c90dfa04b6.json      |    137 +
 .../cb596712-3a09-46f8-aea1-988b43fe9b6c.json      |    368 +
 .../d67bf0e4-30f4-9248-2528-52daa80be91a.json      |    175 +
 .../rule/1b60d17f-3151-4a77-bbd8-ef368e353686.json |     13 +
 .../rule/30a73dc4-b1b6-4744-a598-5735f52c249b.json |     12 +
 .../rule/3956e983-5bd1-4d3e-9392-50c730a8d045.json |     19 +
 .../rule/57ae2f33-6321-4d2b-9c33-0334f19b3f1f.json |     11 +
 .../rule/bbb2798e-a6f0-4917-9645-9ee4fa035ac0.json |     12 +
 .../default/table/DEFAULT.STREAMING_TABLE.json     |     47 +
 .../default/table/DEFAULT.TEST_ACCOUNT.json        |     41 +
 .../default/table/DEFAULT.TEST_BANK_INCOME.json    |     37 +
 .../default/table/DEFAULT.TEST_BANK_LOCATION.json  |     31 +
 .../table/DEFAULT.TEST_CATEGORY_GROUPINGS.json     |    156 +
 .../default/table/DEFAULT.TEST_COUNTRY.json        |     26 +
 .../default/table/DEFAULT.TEST_ENCODING.json       |     97 +
 .../default/table/DEFAULT.TEST_KYLIN_FACT.json     |     86 +
 .../default/table/DEFAULT.TEST_MEASURE.json        |    112 +
 .../default/table/DEFAULT.TEST_MEASURE1.json       |    112 +
 .../metadata/default/table/DEFAULT.TEST_ORDER.json |     36 +
 .../metadata/default/table/EDW.TEST_CAL_DT.json    |    414 +
 .../default/table/EDW.TEST_SELLER_TYPE_DIM.json    |     46 +
 .../metadata/default/table/EDW.TEST_SITES.json     |     52 +
 .../metadata/default/table/SSB.CUSTOMER.json       |     41 +
 .../metadata/default/table/SSB.DATES.json          |     77 +
 .../metadata/default/table/SSB.LINEORDER.json      |     78 +
 .../localmeta/metadata/default/table/SSB.PART.json |     45 +
 .../metadata/default/table/SSB.P_LINEORDER.json    |     82 +
 .../metadata/default/table/SSB.SUPPLIER.json       |     37 +
 .../rule/57ae2f33-6321-4d2b-9c33-0334f19b3f1f.json |     11 +
 .../rule/5afa2a5e-4091-43fd-b6ab-11ae36b3e5dd.json |      9 +
 .../rule/8161776b-4096-4b62-aba3-769c21bab46a.json |     13 +
 .../rule/a390ff43-25b1-4bc2-9516-026972cfd5e2.json |     13 +
 .../rule/c1f6eaca-2e24-4f00-8e03-1c6cfc3fcf6a.json |     13 +
 .../metadata/demo/table/SSB.CUSTOMER.json          |     41 +
 .../localmeta/metadata/demo/table/SSB.DATES.json   |     77 +
 .../localmeta/metadata/demo/table/SSB.PART.json    |     45 +
 .../metadata/demo/table/SSB.P_LINEORDER.json       |     82 +
 .../metadata/demo/table/SSB.SUPPLIER.json          |     37 +
 .../c4437350-fa42-48b4-b1e4-060ae92ab527.json      |     14 +
 .../c4437350-fa42-48b4-b1e4-060ae92ab527.json      |     25 +
 .../c4437350-fa42-48b4-b1e4-060ae92ab527.json      |    529 +
 .../table/EDW.TEST_CAL_DT.json                     |    414 +
 .../e0e90065-e7c3-49a0-a801-20465ca64799.json      |     36 +
 .../4f68d257-45ff-40bf-bf31-f7d2bd942b1d.json      |    151 +
 .../e0e90065-e7c3-49a0-a801-20465ca64799.json      |    152 +
 .../6381db2-802f-4a25-98f0-bfe021c304ed.json       |     71 +
 .../e0e90065-e7c3-49a0-a801-20465ca64799.json      |    136 +
 .../gc_test/table/DEFAULT.TEST_KYLIN_FACT.json     |     75 +
 .../gc_test/table_exd/DEFAULT.TEST_KYLIN_FACT.json |     17 +
 .../565c8222-ea08-4f8b-9a46-ca3df682c484.json      |     18 +
 .../747f864b-9721-4b97-acde-0aa8e8656cba.json      |    239 +
 .../411f40b9-a80a-4453-90a9-409aac6f7632.json      |     32 +
 .../54eaf96d-6146-45d2-b94e-d5d187f89919.json      |     44 +
 .../8892fa3f-f607-4eec-8159-7c5ae2f16942.json      |     32 +
 .../a8318597-cb75-416f-8eb8-96ea285dd2b4.json      |     56 +
 .../d75a822c-788a-4592-a500-cf20186dded1.json      |     44 +
 .../565c8222-ea08-4f8b-9a46-ca3df682c484.json      |     19 +
 .../747f864b-9721-4b97-acde-0aa8e8656cba.json      |     56 +
 .../565c8222-ea08-4f8b-9a46-ca3df682c484.json      |    273 +
 .../747f864b-9721-4b97-acde-0aa8e8656cba.json      |    175 +
 .../table/DEFAULT.TEST_ACCOUNT.json                |     43 +
 .../table/DEFAULT.TEST_CATEGORY_GROUPINGS.json     |    164 +
 .../table/DEFAULT.TEST_KYLIN_FACT.json             |     83 +
 .../89af4ee2-2cdb-4b07-b39e-4c29856309ab.json      |     59 +
 .../ef5e0663-feba-4ed2-b71c-21958122bbfp.json      |     88 +
 .../89af4ee2-2cdb-4b07-b39e-4c29856309ab.json      |    221 +
 .../89af4ee2-2cdb-4b07-b39e-4c29856309ab.json      |   1528 +
 .../table/DEFAULT.STREAMING_TABLE.json             |     47 +
 .../infer_filter/table/DEFAULT.TEST_ACCOUNT.json   |     36 +
 .../table/DEFAULT.TEST_BANK_INCOME.json            |     37 +
 .../table/DEFAULT.TEST_BANK_LOCATION.json          |     32 +
 .../table/DEFAULT.TEST_CATEGORY_GROUPINGS.json     |    156 +
 .../infer_filter/table/DEFAULT.TEST_COUNTRY.json   |     26 +
 .../infer_filter/table/DEFAULT.TEST_ENCODING.json  |     97 +
 .../table/DEFAULT.TEST_KYLIN_FACT.json             |     74 +
 .../infer_filter/table/DEFAULT.TEST_MEASURE.json   |    112 +
 .../infer_filter/table/DEFAULT.TEST_MEASURE1.json  |    112 +
 .../infer_filter/table/DEFAULT.TEST_ORDER.json     |     36 +
 .../infer_filter/table/EDW.TEST_CAL_DT.json        |    414 +
 .../table/EDW.TEST_SELLER_TYPE_DIM.json            |     46 +
 .../infer_filter/table/EDW.TEST_SITES.json         |     52 +
 .../metadata/infer_filter/table/SSB.CUSTOMER.json  |     41 +
 .../metadata/infer_filter/table/SSB.DATES.json     |     77 +
 .../metadata/infer_filter/table/SSB.LINEORDER.json |     78 +
 .../metadata/infer_filter/table/SSB.PART.json      |     45 +
 .../infer_filter/table/SSB.P_LINEORDER.json        |     82 +
 .../metadata/infer_filter/table/SSB.SUPPLIER.json  |     37 +
 .../741ca86a-1f13-46da-a59f-95fb68615e3b.json      |     13 +
 .../741ca86a-1f13-46da-a59f-95fb68615e3z.json      |     13 +
 .../741ca86a-1f13-46da-a59f-95fb68615e3b.json      |    136 +
 .../741ca86a-1f13-46da-a59f-95fb68615e3z.json      |     52 +
 .../741ca86a-1f13-46da-a59f-95fb68615e3b.json      |    117 +
 .../741ca86a-1f13-46da-a59f-95fb68615e3z.json      |     99 +
 .../table/DEFAULT.TEST_KYLIN_FACT.json             |     74 +
 .../intersect_count/table/EDW.TEST_CAL_DT.json     |    414 +
 .../keyword/table/KEYWORD.TEST_KEYWORD_COLUMN.json |     36 +
 .../073198da-ce0e-4a0c-af38-cc27ae31cc0e.json      |     13 +
 .../83ade475-5b80-483a-ae4b-1144e4f04e81.json      |     13 +
 .../073198da-ce0e-4a0c-af38-cc27ae31cc0e.json      |     57 +
 .../83ade475-5b80-483a-ae4b-1144e4f04e81.json      |     74 +
 .../073198da-ce0e-4a0c-af38-cc27ae31cc0e.json      |    522 +
 .../83ade475-5b80-483a-ae4b-1144e4f04e81.json      |    497 +
 .../rule/57ae2f33-6321-4d2b-9c33-0334f19b3f1f.json |     11 +
 .../rule/5afa2a5e-4091-43fd-b6ab-11ae36b3e5dd.json |      9 +
 .../rule/8161776b-4096-4b62-aba3-769c21bab46a.json |     13 +
 .../rule/a390ff43-25b1-4bc2-9516-026972cfd5e2.json |     13 +
 .../rule/c1f6eaca-2e24-4f00-8e03-1c6cfc3fcf6a.json |     13 +
 .../match/table/DEFAULT.STREAMING_TABLE.json       |     47 +
 .../metadata/match/table/DEFAULT.TEST_ACCOUNT.json |     36 +
 .../table/DEFAULT.TEST_CATEGORY_GROUPINGS.json     |    156 +
 .../metadata/match/table/DEFAULT.TEST_COUNTRY.json |     26 +
 .../match/table/DEFAULT.TEST_KYLIN_FACT.json       |     69 +
 .../metadata/match/table/DEFAULT.TEST_ORDER.json   |     36 +
 .../metadata/match/table/EDW.TEST_CAL_DT.json      |    414 +
 .../match/table/EDW.TEST_SELLER_TYPE_DIM.json      |     46 +
 .../metadata/match/table/EDW.TEST_SITES.json       |     52 +
 .../747f864b-9721-4b97-acde-0aa8e8656cba.json      |    477 +
 .../411f40b9-a80a-4453-90a9-409aac6f7632.json      |     39 +
 .../54eaf96d-6146-45d2-b94e-d5d187f89919.json      |     48 +
 .../8892fa3f-f607-4eec-8159-7c5ae2f16942.json      |     57 +
 .../a8318597-cb75-416f-8eb8-96ea285dd2b4.json      |     39 +
 .../d75a822c-788a-4592-a500-cf20186dded1.json      |     48 +
 .../747f864b-9721-4b97-acde-0aa8e8656cba.json      |     38 +
 .../747f864b-9721-4b97-acde-0aa8e8656cba.json      |    216 +
 .../table/DEFAULT.TEST_ACCOUNT.json                |     43 +
 .../table/DEFAULT.TEST_KYLIN_FACT.json             |     83 +
 .../execute/dd5a6451-0743-4b32-b84d-2ddc8052429f   |    126 +
 .../rule/57ae2f33-6321-4d2b-9c33-0334f19b3f1f.json |     11 +
 .../rule/5afa2a5e-4091-43fd-b6ab-11ae36b3e5dd.json |      9 +
 .../rule/8161776b-4096-4b62-aba3-769c21bab46a.json |     13 +
 .../rule/a390ff43-25b1-4bc2-9516-026972cfd5e2.json |     13 +
 .../rule/c1f6eaca-2e24-4f00-8e03-1c6cfc3fcf6a.json |     13 +
 .../newten/table/DEFAULT.TEST_ACCOUNT.json         |     36 +
 .../table/DEFAULT.TEST_CATEGORY_GROUPINGS.json     |    156 +
 .../newten/table/DEFAULT.TEST_COUNTRY.json         |     26 +
 .../newten/table/DEFAULT.TEST_KYLIN_FACT.json      |     74 +
 .../newten/table/DEFAULT.TEST_MEASURE.json         |    118 +
 .../metadata/newten/table/DEFAULT.TEST_ORDER.json  |     36 +
 .../metadata/newten/table/EDW.TEST_CAL_DT.json     |    414 +
 .../newten/table/EDW.TEST_SELLER_TYPE_DIM.json     |     46 +
 .../metadata/newten/table/EDW.TEST_SITES.json      |     52 +
 .../POPHEALTH_ANALYTICS.XC_UM_MEMBER_MONTHS.json   |    242 +
 .../table/POPHEALTH_ANALYTICS.X_PROVIDER.json      |     54 +
 .../table/POPHEALTH_ANALYTICS.Z_360_HEAT.json      |    166 +
 .../POPHEALTH_ANALYTICS.Z_360_OPPT_FINDER.json     |    222 +
 .../POPHEALTH_ANALYTICS.Z_PROVDASH_CI_INDEX.json   |     62 +
 .../POPHEALTH_ANALYTICS.Z_PROVDASH_PAT_SAT.json    |     82 +
 .../POPHEALTH_ANALYTICS.Z_PROVDASH_QPM_SCORE.json  |     94 +
 .../POPHEALTH_ANALYTICS.Z_PROVDASH_UM_ED.json      |    306 +
 ...POPHEALTH_ANALYTICS.Z_PROV_DASH_ATTRIBPROV.json |     14 +
 .../POPHEALTH_ANALYTICS.Z_S0_CPRM_GENERICS.json    |     74 +
 .../metadata/newten/table/TPCH.CUSTOMER.json       |     42 +
 .../metadata/newten/table/TPCH.LINEITEM.json       |     74 +
 .../metadata/newten/table/TPCH.NATION.json         |     26 +
 .../metadata/newten/table/TPCH.ORDERS.json         |     46 +
 .../localmeta/metadata/newten/table/TPCH.PART.json |     46 +
 .../metadata/newten/table/TPCH.PARTSUPP.json       |     30 +
 .../metadata/newten/table/TPCH.REGION.json         |     22 +
 .../metadata/newten/table/TPCH.SUPPLIER.json       |     38 +
 .../metadata/newten/table_exd/SSB.DATES.json       |     27 +
 .../a11c60b4-c9b1-4875-a34d-89673e739164.json      |     43 +
 .../606eec60-792f-4e54-8eb6-deabcc7e1caf.json      |      8 +
 .../a11c60b4-c9b1-4875-a34d-89673e739164.json      |     38 +
 .../a11c60b4-c9b1-4875-a34d-89673e739164.json      |    358 +
 .../scd2/table/DEFAULT.STREAMING_TABLE.json        |     55 +
 .../metadata/scd2/table/DEFAULT.TEST_ACCOUNT.json  |     49 +
 .../table/DEFAULT.TEST_CATEGORY_GROUPINGS.json     |    200 +
 .../metadata/scd2/table/DEFAULT.TEST_COUNTRY.json  |     39 +
 .../metadata/scd2/table/DEFAULT.TEST_ENCODING.json |    105 +
 .../scd2/table/DEFAULT.TEST_KYLIN_FACT.json        |     95 +
 .../metadata/scd2/table/DEFAULT.TEST_MEASURE.json  |    120 +
 .../metadata/scd2/table/DEFAULT.TEST_MEASURE1.json |    120 +
 .../metadata/scd2/table/DEFAULT.TEST_ORDER.json    |     50 +
 .../metadata/scd2/table/DEFAULT.TEST_SCD2.json     |     50 +
 .../scd2/table_exd/DEFAULT.STREAMING_TABLE.json    |     19 +
 .../scd2/table_exd/DEFAULT.TEST_ACCOUNT.json       |     19 +
 .../table_exd/DEFAULT.TEST_CATEGORY_GROUPINGS.json |     19 +
 .../scd2/table_exd/DEFAULT.TEST_COUNTRY.json       |     19 +
 .../scd2/table_exd/DEFAULT.TEST_ENCODING.json      |     19 +
 .../scd2/table_exd/DEFAULT.TEST_KYLIN_FACT.json    |     19 +
 .../scd2/table_exd/DEFAULT.TEST_MEASURE.json       |     19 +
 .../scd2/table_exd/DEFAULT.TEST_MEASURE1.json      |     19 +
 .../scd2/table_exd/DEFAULT.TEST_ORDER.json         |     19 +
 .../metadata/scd2/table_exd/DEFAULT.TEST_SCD2.json |     19 +
 .../rule/57ae2f33-6321-4d2b-9c33-0334f19b3f1f.json |     11 +
 .../rule/5afa2a5e-4091-43fd-b6ab-11ae36b3e5dd.json |      9 +
 .../rule/8161776b-4096-4b62-aba3-769c21bab46a.json |     13 +
 .../rule/a390ff43-25b1-4bc2-9516-026972cfd5e2.json |     13 +
 .../rule/c1f6eaca-2e24-4f00-8e03-1c6cfc3fcf6a.json |     13 +
 .../smart/table/DEFAULT.STREAMING_TABLE.json       |     47 +
 .../metadata/smart/table/DEFAULT.TEST_ACCOUNT.json |     36 +
 .../table/DEFAULT.TEST_CATEGORY_GROUPINGS.json     |    156 +
 .../metadata/smart/table/DEFAULT.TEST_COUNTRY.json |     27 +
 .../smart/table/DEFAULT.TEST_KYLIN_FACT.json       |     69 +
 .../metadata/smart/table/DEFAULT.TEST_ORDER.json   |     36 +
 .../metadata/smart/table/EDW.TEST_CAL_DT.json      |    414 +
 .../smart/table/EDW.TEST_SELLER_TYPE_DIM.json      |     47 +
 .../metadata/smart/table/EDW.TEST_SITES.json       |     52 +
 .../rule/57ae2f33-6321-4d2b-9c33-0334f19b3f1f.json |     11 +
 .../rule/5afa2a5e-4091-43fd-b6ab-11ae36b3e5dd.json |      9 +
 .../rule/8161776b-4096-4b62-aba3-769c21bab46a.json |     13 +
 .../rule/a390ff43-25b1-4bc2-9516-026972cfd5e2.json |     13 +
 .../rule/c1f6eaca-2e24-4f00-8e03-1c6cfc3fcf6a.json |     13 +
 .../localmeta/metadata/ssb/table/SSB.CUSTOMER.json |     41 +
 .../localmeta/metadata/ssb/table/SSB.DATES.json    |     77 +
 .../localmeta/metadata/ssb/table/SSB.PART.json     |     45 +
 .../metadata/ssb/table/SSB.P_LINEORDER.json        |     82 +
 .../localmeta/metadata/ssb/table/SSB.SUPPLIER.json |     37 +
 .../14e00a6f-d910-14b6-ee67-e0a5775012c4.json      |     12 +
 .../222b9a23-699c-4699-b0dd-38c9412b3dfd.json      |     79 +
 .../334671fd-e383-4fc9-b5c2-94fce832f77a.json      |     18 +
 .../3d69e1c0-0165-c144-7dae-8ae5dc0cf16c.json      |     40 +
 .../4965c827-fbb4-4ea1-a744-3f341a3b030d.json      |     60 +
 .../511a9163-7888-4a60-aa24-ae735937cc87.json      |     17 +
 .../511a9163-7888-4a60-aa24-ae735937cc88.json      |     17 +
 .../511a9163-7888-4a60-aa24-ae735937cc89.json      |     17 +
 .../554671fd-e383-4fc9-b5c2-94fce832f77a.json      |     18 +
 .../6665c827-fbb4-4ea1-a744-3f341a3b030d.json      |     60 +
 .../b05034a8-c037-416b-aa26-9e6b4a41ee40.json      |     18 +
 .../cd2b9a23-699c-4699-b0dd-38c9412b3dfd.json      |     79 +
 .../e78a89dd-847f-4574-8afa-8768b4228b72.json      |    164 +
 .../e78a89dd-847f-4574-8afa-8768b4228b73.json      |    202 +
 .../e78a89dd-847f-4574-8afa-8768b4228b74.json      |    208 +
 .../86b5daaa-e295-4e8c-b877-f97bda69bee5.json      |     60 +
 .../63329bb1-384f-736b-2015-44fa97208c16.json      |     21 +
 .../3e560d22-b749-48c3-9f64-d4230207f120.json      |     60 +
 .../3e560d22-b749-48c3-9f64-d4230207f120.json      |     60 +
 .../86b5daaa-e295-4e8c-b877-f97bda69bee5.json      |     60 +
 .../c380dd2a-43b8-4268-b73d-2a5f76236633.json      |    212 +
 .../c380dd2a-43b8-4268-b73d-2a5f76236631.json      |     21 +
 .../c380dd2a-43b8-4268-b73d-2a5f76236632.json      |     21 +
 .../c380dd2a-43b8-4268-b73d-2a5f76236633.json      |     21 +
 .../c380dd2a-43b8-4268-b73d-2a5f76236634.json      |     21 +
 .../c380dd2a-43b8-4268-b73d-2a5f76236901.json      |     21 +
 .../14e00a6f-d910-14b6-ee67-e0a5775012c4.json      |     13 +
 .../4965c827-fbb4-4ea1-a744-3f341a3b030d.json      |     12 +
 .../6665c827-fbb4-4ea1-a744-3f341a3b030d.json      |     12 +
 .../b05034a8-c037-416b-aa26-9e6b4a41ee40.json      |     12 +
 .../14e00a6f-d910-14b6-ee67-e0a5775012c4.json      |     21 +
 .../222b9a23-699c-4699-b0dd-38c9412b3dfd.json      |     41 +
 .../334671fd-e383-4fc9-b5c2-94fce832f77a.json      |     41 +
 .../3d69e1c0-0165-c144-7dae-8ae5dc0cf16c.json      |     42 +
 .../4965c827-fbb4-4ea1-a744-3f341a3b030d.json      |     41 +
 .../511a9163-7888-4a60-aa24-ae735937cc87.json      |    249 +
 .../511a9163-7888-4a60-aa24-ae735937cc88.json      |     39 +
 .../511a9163-7888-4a60-aa24-ae735937cc89.json      |     39 +
 .../554671fd-e383-4fc9-b5c2-94fce832f77a.json      |     41 +
 .../6665c827-fbb4-4ea1-a744-3f341a3b030d.json      |     41 +
 .../b05034a8-c037-416b-aa26-9e6b4a41ee40.json      |    124 +
 .../cd2b9a23-699c-4699-b0dd-38c9412b3dfd.json      |     41 +
 .../e78a89dd-847f-4574-8afa-8768b4228b72.json      |     59 +
 .../e78a89dd-847f-4574-8afa-8768b4228b73.json      |     40 +
 .../e78a89dd-847f-4574-8afa-8768b4228b74.json      |     40 +
 .../kafka/DEFAULT.SSB_STREAMING.json               |     14 +
 .../streaming_test/kafka/DEFAULT.SSB_TOPIC.json    |     15 +
 .../streaming_test/kafka/SSB.P_LINEORDER.json      |     15 +
 .../streaming_test/kafka/SSB.P_LINEORDER_STR.json  |     15 +
 .../kafka/SSB.P_LINEORDER_STREAMING.json           |     14 +
 .../14e00a6f-d910-14b6-ee67-e0a5775012c4.json      |    195 +
 .../222b9a23-699c-4699-b0dd-38c9412b3dfd.json      |    193 +
 .../334671fd-e383-4fc9-b5c2-94fce832f77a.json      |    144 +
 .../3d69e1c0-0165-c144-7dae-8ae5dc0cf16c.json      |    195 +
 .../4965c827-fbb4-4ea1-a744-3f341a3b030d.json      |    193 +
 .../511a9163-7888-4a60-aa24-ae735937cc87.json      |    398 +
 .../511a9163-7888-4a60-aa24-ae735937cc88.json      |    379 +
 .../511a9163-7888-4a60-aa24-ae735937cc89.json      |    365 +
 .../554671fd-e383-4fc9-b5c2-94fce832f77a.json      |    142 +
 .../6665c827-fbb4-4ea1-a744-3f341a3b030d.json      |    193 +
 .../b05034a8-c037-416b-aa26-9e6b4a41ee40.json      |    146 +
 .../cd2b9a23-699c-4699-b0dd-38c9412b3dfd.json      |    193 +
 .../e78a89dd-847f-4574-8afa-8768b4228b72.json      |    195 +
 .../e78a89dd-847f-4574-8afa-8768b4228b73.json      |    142 +
 .../e78a89dd-847f-4574-8afa-8768b4228b74.json      |    195 +
 .../14e00a6f-d910-14b6-ee67-e0a5775012c4_build     |     35 +
 .../14e00a6f-d910-14b6-ee67-e0a5775012c4_merge     |     35 +
 .../4965c827-fbb4-4ea1-a744-3f341a3b030d_build     |     32 +
 .../4965c827-fbb4-4ea1-a744-3f341a3b030d_merge     |     32 +
 .../511a9163-7888-4a60-aa24-ae735937cc87_build     |     27 +
 .../b05034a8-c037-416b-aa26-9e6b4a41ee40_build     |     27 +
 .../b05034a8-c037-416b-aa26-9e6b4a41ee40_merge     |     28 +
 .../e78a89dd-847f-4574-8afa-8768b4228b72_build     |     27 +
 .../e78a89dd-847f-4574-8afa-8768b4228b72_merge     |     28 +
 .../e78a89dd-847f-4574-8afa-8768b4228b73_build     |     27 +
 .../e78a89dd-847f-4574-8afa-8768b4228b73_merge     |     28 +
 .../table/DEFAULT.SSB_STREAMING.json               |    117 +
 .../streaming_test/table/DEFAULT.SSB_TOPIC.json    |    135 +
 .../streaming_test/table/SSB.CUSTOMER.json         |     49 +
 .../metadata/streaming_test/table/SSB.DATES.json   |     85 +
 .../streaming_test/table/SSB.LINEORDER.json        |     85 +
 .../streaming_test/table/SSB.LINEORDER_HIVE.json   |    114 +
 .../metadata/streaming_test/table/SSB.PART.json    |     53 +
 .../streaming_test/table/SSB.P_LINEORDER.json      |     95 +
 .../streaming_test/table/SSB.P_LINEORDER_STR.json  |    114 +
 .../table/SSB.P_LINEORDER_STREAMING.json           |    109 +
 .../streaming_test/table/SSB.SUPPLIER.json         |     45 +
 .../73e06974-e642-6b91-e7a0-5cd7f02ec4f2.json      |     98 +
 .../039f9cc9-5330-eec5-e2d1-401dbbe90105.json      |     73 +
 .../73e06974-e642-6b91-e7a0-5cd7f02ec4f2.json      |    111 +
 .../73e06974-e642-6b91-e7a0-5cd7f02ec4f2.json      |    692 +
 .../table/DEFAULT.TEST_ACCOUNT.json                |     36 +
 .../table/DEFAULT.TEST_KYLIN_FACT.json             |     85 +
 .../975ae5ed-e670-3613-5e80-f9def911c632.json      |     40 +
 .../acfde546-2cc9-4eec-bc92-e3bd46d4e2bf.json      |     35 +
 .../acfde546-2cc9-4eec-bc92-e3bd46d4e2ee.json      |     35 +
 .../576f753c-a2f3-7bca-92cf-7dd103798971.json      |      8 +
 .../12124840-b3e3-43db-bcab-2b78da666dbf.json      |     29 +
 .../12124840-b3e3-43db-bcab-2b78da666d02.json      |     29 +
 .../975ae5ed-e670-3613-5e80-f9def911c632.json      |     42 +
 .../acfde546-2cc9-4eec-bc92-e3bd46d4e2bf.json      |     80 +
 .../acfde546-2cc9-4eec-bc92-e3bd46d4e2ee.json      |     72 +
 .../975ae5ed-e670-3613-5e80-f9def911c632.json      |    151 +
 .../acfde546-2cc9-4eec-bc92-e3bd46d4e2bf.json      |    163 +
 .../acfde546-2cc9-4eec-bc92-e3bd46d4e2ee.json      |    128 +
 .../table_index/table/DEFAULT.TEST_KYLIN_FACT.json |     75 +
 .../table_index/table/DEFAULT.TEST_ORDER.json      |     36 +
 .../rule/57ae2f33-6321-4d2b-9c33-0334f19b3f1f.json |     11 +
 .../rule/5afa2a5e-4091-43fd-b6ab-11ae36b3e5dd.json |      9 +
 .../rule/8161776b-4096-4b62-aba3-769c21bab46a.json |     13 +
 .../rule/a390ff43-25b1-4bc2-9516-026972cfd5e2.json |     13 +
 .../rule/c1f6eaca-2e24-4f00-8e03-1c6cfc3fcf6a.json |     13 +
 .../tdh/table/SSB_100_TRANSACTION.CUSTOMER.json    |     66 +
 .../tdh/table/SSB_100_TRANSACTION.DATES_RANGE.json |    112 +
 .../table/SSB_100_TRANSACTION.DATES_RANGE_2.json   |    112 +
 ...SB_100_TRANSACTION.DATES_TRANSACTION_RANGE.json |    112 +
 .../tdh/table/TDH_TEST.LINEORDER_PARTITION.json    |    117 +
 .../tdh/table/TDH_TEST.LINEORDER_TRANSACTION.json  |    111 +
 .../TDH_TEST.LINEORDER_TRANSACTION_PARTITION.json  |    117 +
 .../rule/57ae2f33-6321-4d2b-9c33-0334f19b3f1f.json |     11 +
 .../rule/5afa2a5e-4091-43fd-b6ab-11ae36b3e5dd.json |      9 +
 .../rule/8161776b-4096-4b62-aba3-769c21bab46a.json |     13 +
 .../rule/a390ff43-25b1-4bc2-9516-026972cfd5e2.json |     13 +
 .../rule/c1f6eaca-2e24-4f00-8e03-1c6cfc3fcf6a.json |     13 +
 .../localmeta/metadata/tdvt/table/TDVT.CALCS.json  |    118 +
 .../metadata/tdvt/table/TDVT.STAPLES.json          |    210 +
 .../4b93b131-824e-6966-c4dd-5a4268d27095.json      |     12 +
 .../4b93b131-824e-6966-c4dd-5a4268d27095.json      |     63 +
 .../4b93b131-824e-6966-c4dd-5a4268d27095.json      |    767 +
 .../table/DEFAULT.TEST_KYLIN_FACT.json             |     88 +
 .../test_broken_project/table/EDW.TEST_CAL_DT.json |    528 +
 .../bb4e7e15-06f5-519d-c36f-1af5d05f7b60.json      |     12 +
 .../bb4e7e15-06f5-519d-c36f-1af5d05f7b60.json      |     87 +
 .../bb4e7e15-06f5-519d-c36f-1af5d05f7b60.json      |   1128 +
 .../table/YPB200C1000WYYYYMM.A1.json               |   1277 +
 .../table/YPB200C1000WYYYYMM.B1.json               |   1277 +
 .../table/YPB200C1000WYYYYMM.C1.json               |   1277 +
 .../table/YPB200C1000WYYYYMM.D1.json               |   1277 +
 .../table/YPB200C1000WYYYYMM.E1.json               |   1277 +
 .../table/YPB200C10WYYYYMM.A01.json                |   1277 +
 .../table/YPB200C10WYYYYMM.B01.json                |   1277 +
 .../table/YPB200C10WYYYYMM.C01.json                |   1277 +
 .../table/YPB200C10WYYYYMM.D01.json                |   1277 +
 .../table/YPB200C10WYYYYMM.E01.json                |   1277 +
 .../table/YPB200C1YYYYYMM.A1.json                  |   1277 +
 .../table/YPB200C1YYYYYMM.B1.json                  |   1277 +
 .../table/YPB200C1YYYYYMM.C1.json                  |   1277 +
 .../table/YPB200C1YYYYYMM.D1.json                  |   1277 +
 .../table/YPB200C1YYYYYMM.E1.json                  |   1277 +
 .../79547ec2-350e-4ba4-88f9-099048962ceb.json      |     13 +
 .../ab547ec2-350e-4ba4-88f9-099048962ceq.json      |     13 +
 .../da101c43-6d22-48ce-88d2-bf0ce0594022.json      |     35 +
 .../fb6ce800-43ee-4ef9-b100-39d523f36304.json      |     13 +
 .../79547ec2-350e-4ba4-88f9-099048962ceb.json      |     87 +
 .../ab547ec2-350e-4ba4-88f9-099048962ceq.json      |     41 +
 .../da101c43-6d22-48ce-88d2-bf0ce0594022.json      |     34 +
 .../fb6ce800-43ee-4ef9-b100-39d523f36304.json      |     43 +
 .../79547ec2-350e-4ba4-88f9-099048962ceb.json      |    102 +
 .../ab547ec2-350e-4ba4-88f9-099048962ceq.json      |     68 +
 .../da101c43-6d22-48ce-88d2-bf0ce0594022.json      |    116 +
 .../fb6ce800-43ee-4ef9-b100-39d523f36304.json      |     74 +
 .../metadata/top_n/table/DEFAULT.TEST_TOP_N.json   |     33 +
 .../metadata/top_n/table/ISSUES.TEST_TOP_N.json    |     33 +
 .../metadata/tpch/table/TPCH.CUSTOMER.json         |     42 +
 .../metadata/tpch/table/TPCH.LINEITEM.json         |     74 +
 .../localmeta/metadata/tpch/table/TPCH.NATION.json |     26 +
 .../localmeta/metadata/tpch/table/TPCH.ORDERS.json |     46 +
 .../localmeta/metadata/tpch/table/TPCH.PART.json   |     46 +
 .../metadata/tpch/table/TPCH.PARTSUPP.json         |     30 +
 .../localmeta/metadata/tpch/table/TPCH.REGION.json |     22 +
 .../metadata/tpch/table/TPCH.SUPPLIER.json         |     38 +
 .../spark-history/application_1554187389076_9294   |      1 +
 .../spark-history/application_1554187389076_9295   |      1 +
 .../spark-history/application_1554187389076_9296   |      1 +
 src/examples/test_case_data/sandbox/.gitignore     |      2 +
 .../test_case_data/sandbox/capacity-scheduler.xml  |     99 +
 src/examples/test_case_data/sandbox/core-site.xml  |    187 +
 .../test_case_data/sandbox/fairscheduler.xml       |     47 +
 .../test_case_data/sandbox/hadoop-policy.xml       |     74 +
 src/examples/test_case_data/sandbox/hdfs-site.xml  |    309 +
 src/examples/test_case_data/sandbox/hive-site.xml  |    819 +
 .../test_case_data/sandbox/kylin.properties        |    195 +
 src/examples/test_case_data/sandbox/root.keytab    |    Bin 0 -> 248 bytes
 src/examples/test_case_data/sandbox/userctrl.acl   |     12 +
 src/examples/test_case_data/sandbox/yarn-site.xml  |    621 +
 .../test_case_data/webapps/META-INF/context.xml    |     37 +
 src/external-catalog/external-catalog-sdk/pom.xml  |     57 +
 .../kylin/externalCatalog/api/ApiException.java    |     41 +
 .../api/annotation/InterfaceStability.java         |     47 +
 .../externalCatalog/api/catalog/Database.java      |     87 +
 .../externalCatalog/api/catalog/FieldSchema.java   |     87 +
 .../api/catalog/IExternalCatalog.java              |     86 +
 .../externalCatalog/api/catalog/Partition.java     |     58 +
 .../kylin/externalCatalog/api/catalog/Table.java   |    159 +
 .../spark/sql/kylin/external/HasKeExternal.scala   |    177 +
 .../sql/kylin/external/KylinExternalCatalog.scala  |    142 +
 .../sql/kylin/external/KylinSessionCatalog.scala   |     65 +
 .../sql/kylin/external/KylinSharedState.scala      |    118 +
 .../apache/spark/sql/kylin/external/LogEx.scala    |     38 +
 src/external/pom.xml                               |    254 +
 src/integration-service/pom.xml                    |    109 +
 .../apache/kylin/rest/broadcaster/Broadcaster.java |    215 +
 .../rest/config/IntegrationAppInitializer.java     |     35 +
 .../rest/config/initialize/BroadcastListener.java  |    102 +
 .../apache/kylin/rest/service/MonitorService.java  |    629 +
 .../kylin/rest/broadcaster/BroadcasterTest.java    |     96 +
 .../kylin/rest/service/MonitorServiceTest.java     |    358 +
 src/job-service/pom.xml                            |     78 +
 .../kylin/rest/config/JobAppInitializer.java       |     35 +
 .../rest/config/initialize/JobSyncListener.java    |    488 +
 .../kylin/rest/response/JobInfoResponseV2.java     |     57 +
 .../kylin/rest/service/AsyncTaskService.java       |    151 +
 .../apache/kylin/rest/service/ScheduleService.java |     76 +
 .../src/main/resources/exception_to_code.json      |      8 +
 .../initialize/JobSchedulerListenerTest.java       |    435 +
 .../rest/config/initialize/JobSchedulerTest.java   |    521 +
 .../apache/kylin/rest/service/JobErrorTest.java    |    507 +
 .../apache/kylin/rest/service/JobServiceTest.java  |   1402 +
 .../org/apache/kylin/rest/service/StageTest.java   |    540 +
 src/license/THIRD-PARTY.properties                 |     32 +
 src/license/third-party-file.ftl                   |     33 +
 src/metadata-server/pom.xml                        |     98 +
 .../rest/controller/open/OpenModelController.java  |    406 +
 .../rest/controller/open/OpenSystemController.java |     54 +
 .../kylin/rest/controller/AclTCRController.java    |    188 +
 .../kylin/rest/controller/KafkaController.java     |     87 +
 .../kylin/rest/controller/NAccessController.java   |    352 +
 .../rest/controller/NIndexPlanController.java      |    262 +
 .../rest/controller/NMetaStoreController.java      |    175 +
 .../kylin/rest/controller/NModelController.java    |    800 +
 .../kylin/rest/controller/NProjectController.java  |    496 +
 .../kylin/rest/controller/NTableController.java    |    540 +
 .../kylin/rest/controller/NUserController.java     |    605 +
 .../rest/controller/NUserGroupController.java      |    225 +
 .../rest/controller/StreamingTableController.java  |    101 +
 .../rest/controller/open/OpenAccessController.java |    335 +
 .../rest/controller/open/OpenAclTCRController.java |    144 +
 .../controller/open/OpenMetaStoreController.java   |    155 +
 .../rest/controller/open/OpenTableController.java  |    278 +
 .../rest/controller/open/OpenUserController.java   |    139 +
 .../controller/open/OpenUserGroupController.java   |    179 +
 .../rest/controller/v2/NAccessControllerV2.java    |    127 +
 .../rest/controller/v2/NCubeDescControllerV2.java  |     57 +
 .../rest/controller/v2/NModelControllerV2.java     |     72 +
 .../controller/v2/NProjectControllerKylin.java     |     57 +
 .../rest/controller/v2/NProjectControllerV2.java   |     61 +
 .../rest/controller/v2/NUserControllerV2.java      |    109 +
 .../rest/controller/v2/NUserGroupControllerV2.java |     83 +
 .../src/main/resources/applicationContext.xml      |     40 +
 src/metadata-server/src/main/resources/ehcache.xml |     42 +
 .../controller/open/OpenModelControllerTest.java   |    499 +
 .../controller/open/OpenSystemControllerTest.java  |     79 +
 .../rest/controller/AclTCRControllerTest.java      |    210 +
 .../rest/controller/IndexPlanControllerTest.java   |    159 +
 .../kylin/rest/controller/KafkaControllerTest.java |    156 +
 .../rest/controller/NAccessControllerTest.java     |    293 +
 .../rest/controller/NAccessControllerV2Test.java   |     91 +
 .../rest/controller/NCubeDescControllerV2Test.java |     84 +
 .../rest/controller/NMetaStoreControllerTest.java  |    164 +
 .../rest/controller/NModelControllerTest.java      |    786 +
 .../rest/controller/NModelControllerV2Test.java    |    142 +
 .../controller/NProjectControllerKylinTest.java    |     90 +
 .../rest/controller/NProjectControllerTest.java    |    535 +
 .../rest/controller/NProjectControllerV2Test.java  |     91 +
 .../rest/controller/NTableControllerTest.java      |    734 +
 .../kylin/rest/controller/NUserControllerTest.java |    594 +
 .../rest/controller/NUserControllerV2Test.java     |    130 +
 .../rest/controller/NUserGroupControllerTest.java  |    220 +
 .../controller/NUserGroupControllerV2Test.java     |    101 +
 .../rest/controller/OpenAclTCRControllerTest.java  |    189 +
 .../controller/StreamingTableControllerTest.java   |    154 +
 .../controller/open/OpenAccessControllerTest.java  |    238 +
 .../controller/open/OpenAclTCRControllerTest.java  |    103 +
 .../open/OpenMetaStoreControllerTest.java          |    250 +
 .../controller/open/OpenTableControllerTest.java   |    382 +
 .../controller/open/OpenUserControllerTest.java    |    237 +
 .../open/OpenUserGroupControllerTest.java          |    188 +
 .../ut_model_metadata/metastore_model_metadata.zip |    Bin 0 -> 44144 bytes
 ...l_metadata_c4a20039c16dfbb5dcc5610c5052d7b1.zip |    Bin 0 -> 44144 bytes
 ...l_metadata_c4a20039c16dfbb5dcc5610c5052d7b3.zip |    Bin 0 -> 44144 bytes
 ...3_17_48_49_40126DF6694B94066ED623AC84291D9E.zip |    Bin 0 -> 4212 bytes
 ...3_18_43_01_8E323F797DDE2989BEBECC747AE40257.zip |    Bin 0 -> 4071 bytes
 ...0_14_56_44_39201D01EBE7665483E2044D6B5FD9D0.zip |    Bin 0 -> 5005 bytes
 ...1_15_45_16_9D3BCD19FF5AF9D3163128B9DEE237F4.zip |    Bin 0 -> 6257 bytes
 ...1_16_40_43_61D23206229CEB0C078F24AAACADF5DB.zip |    Bin 0 -> 5112 bytes
 .../ut_model_metadata/ut_model_matadata.zip        |    Bin 0 -> 38039 bytes
 src/modeling-service/pom.xml                       |    148 +
 .../kylin/rest/config/ModelingAppInitializer.java  |     40 +
 .../config/initialize/ModelDropAddListener.java    |    137 +
 .../config/initialize/ModelUpdateListener.java     |     51 +
 .../kylin/rest/constant/ModelAttributeEnum.java    |     67 +
 .../rest/constant/ModelStatusToDisplayEnum.java    |     40 +
 .../apache/kylin/rest/model/FuzzyKeySearcher.java  |    122 +
 .../rest/request/AggShardByColumnsRequest.java     |     44 +
 .../kylin/rest/request/BuildIndexRequest.java      |     41 +
 .../kylin/rest/request/BuildSegmentsRequest.java   |     66 +
 .../kylin/rest/request/CheckSegmentRequest.java    |     29 +
 .../rest/request/ComputedColumnCheckRequest.java   |     41 +
 .../kylin/rest/request/CreateBaseIndexRequest.java |     75 +
 .../rest/request/CreateTableIndexRequest.java      |     73 +
 .../request/IncrementBuildSegmentsRequest.java     |     71 +
 .../rest/request/IndexesToSegmentsRequest.java     |     54 +
 .../kylin/rest/request/MetadataCleanupRequest.java |     31 +
 .../kylin/rest/request/ModelCheckRequest.java      |     41 +
 .../kylin/rest/request/ModelCloneRequest.java      |     41 +
 .../kylin/rest/request/ModelConfigRequest.java     |     49 +
 .../kylin/rest/request/ModelImportRequest.java     |     51 +
 .../rest/request/ModelParatitionDescRequest.java   |     34 +
 .../kylin/rest/request/ModelPreviewRequest.java    |     41 +
 .../apache/kylin/rest/request/ModelRequest.java    |    132 +
 .../kylin/rest/request/ModelUpdateRequest.java     |     42 +
 .../kylin/rest/request/ModelValidationRequest.java |     37 +
 .../rest/request/MultiPartitionMappingRequest.java |     65 +
 .../rest/request/OpenModelPreviewRequest.java      |     43 +
 .../kylin/rest/request/PartitionColumnRequest.java |     38 +
 .../kylin/rest/request/SegmentFixRequest.java      |     40 +
 .../kylin/rest/request/SegmentTimeRequest.java     |     31 +
 .../apache/kylin/rest/request/SegmentsRequest.java |     62 +
 .../kylin/rest/request/StorageCleanupRequest.java  |     34 +
 .../kylin/rest/request/UnlinkModelRequest.java     |     28 +
 .../request/UpdateMultiPartitionValueRequest.java  |     35 +
 .../rest/request/UpdateRuleBasedCuboidRequest.java |     83 +
 .../rest/response/AffectedModelsResponse.java      |     36 +
 .../kylin/rest/response/AggGroupResponse.java      |    100 +
 .../kylin/rest/response/AggIndexCombResult.java    |     58 +
 .../kylin/rest/response/AggIndexResponse.java      |     86 +
 .../rest/response/AggShardByColumnsResponse.java   |     41 +
 .../apache/kylin/rest/response/BasicResponse.java  |     35 +
 .../rest/response/BuildBaseIndexResponse.java      |    125 +
 .../kylin/rest/response/BuildIndexResponse.java    |     45 +
 .../kylin/rest/response/CheckSegmentResponse.java  |     42 +
 .../rest/response/ComputedColumnCheckResponse.java |     39 +
 .../rest/response/ComputedColumnDescResponse.java  |     58 +
 .../rest/response/ComputedColumnUsageResponse.java |     55 +
 .../rest/response/DiffRuleBasedIndexResponse.java  |     92 +
 .../kylin/rest/response/EventModelResponse.java    |     40 +
 .../kylin/rest/response/FusionModelResponse.java   |    145 +
 .../kylin/rest/response/FusionRuleDataResult.java  |     59 +
 .../kylin/rest/response/IndexGraphResponse.java    |     89 +
 .../apache/kylin/rest/response/IndexResponse.java  |    127 +
 .../kylin/rest/response/IndexStatResponse.java     |     58 +
 .../kylin/rest/response/IndicesResponse.java       |    204 +
 .../rest/response/InvalidIndexesResponse.java      |     46 +
 .../kylin/rest/response/JobInfoResponse.java       |     57 +
 .../rest/response/JobInfoResponseWithFailure.java  |     82 +
 .../rest/response/LayoutRecDetailResponse.java     |     88 +
 .../rest/response/MergeSegmentCheckResponse.java   |     34 +
 .../kylin/rest/response/ModelConfigResponse.java   |     58 +
 .../kylin/rest/response/ModelInfoResponse.java     |     45 +
 .../rest/response/ModelMetadataCheckResponse.java  |     69 +
 .../kylin/rest/response/ModelPreviewResponse.java  |     47 +
 .../rest/response/ModelSaveCheckResponse.java      |     36 +
 .../rest/response/MultiPartitionValueResponse.java |     44 +
 .../kylin/rest/response/NCubeDescResponse.java     |    160 +
 .../apache/kylin/rest/response/NCubeResponse.java  |     36 +
 .../kylin/rest/response/NDataModelOldParams.java   |     53 +
 .../kylin/rest/response/NDataModelResponse.java    |    464 +
 .../kylin/rest/response/NDataModelResponse3X.java  |    156 +
 .../kylin/rest/response/NDataSegmentResponse.java  |    172 +
 .../kylin/rest/response/NModelDescResponse.java    |     77 +
 .../kylin/rest/response/OpenGetIndexResponse.java  |    101 +
 .../response/OpenModelMetadataImportResponse.java  |     37 +
 .../kylin/rest/response/ParameterResponse.java     |     43 +
 .../rest/response/PurgeModelAffectedResponse.java  |     34 +
 .../response/RefreshAffectedSegmentsResponse.java  |     46 +
 .../kylin/rest/response/RelatedModelResponse.java  |     69 +
 .../kylin/rest/response/SegmentCheckResponse.java  |     33 +
 .../rest/response/SegmentPartitionResponse.java    |     75 +
 .../kylin/rest/response/SegmentRangeResponse.java  |     29 +
 .../rest/response/SimplifiedColumnResponse.java    |     43 +
 .../kylin/rest/response/SimplifiedMeasure.java     |    122 +
 .../response/SimplifiedTablePreviewResponse.java   |     40 +
 .../rest/response/SimplifiedTableResponse.java     |     38 +
 .../kylin/rest/response/TableIndexResponse.java    |     65 +
 .../kylin/rest/service/BaseIndexUpdateHelper.java  |    140 +
 .../kylin/rest/service/FusionIndexService.java     |    459 +
 .../kylin/rest/service/FusionModelService.java     |    255 +
 .../kylin/rest/service/IndexPlanService.java       |   1286 +
 .../kylin/rest/service/MetaStoreService.java       |    744 +
 .../kylin/rest/service/ModelBuildSupporter.java    |     39 +
 .../kylin/rest/service/ModelChangeSupporter.java   |     29 +
 .../kylin/rest/service/ModelQuerySupporter.java    |     31 +
 .../kylin/rest/service/ModelSemanticHelper.java    |   1016 +
 .../apache/kylin/rest/service/ModelService.java    |   4341 +
 .../kylin/rest/service/ModelSmartSupporter.java    |     27 +
 .../kylin/rest/service/SegmentHelperSupporter.java |     25 +
 .../rest/service/params/BasicSegmentParams.java    |     56 +
 .../service/params/FullBuildSegmentParams.java     |     71 +
 .../params/IncrementBuildSegmentParams.java        |    144 +
 .../rest/service/params/MergeSegmentParams.java    |     49 +
 .../rest/service/params/ModelQueryParams.java      |     45 +
 .../rest/service/params/RefreshSegmentParams.java  |     80 +
 .../org/apache/kylin/rest/util/ModelTriple.java    |     71 +
 .../kylin/rest/util/ModelTripleComparator.java     |     88 +
 .../org/apache/kylin/rest/util/ModelUtils.java     |    131 +
 .../rest/util/SCD2SimplificationConvertUtil.java   |    128 +
 .../config/initialize/ModelBrokenListenerTest.java |    195 +
 .../config/initialize/ModelUpdateListenerTest.java |    107 +
 .../rest/response/NDataModelResponseTest.java      |    119 +
 .../apache/kylin/rest/service/BaseIndexTest.java   |    487 +
 .../kylin/rest/service/FusionIndexServiceTest.java |    863 +
 .../kylin/rest/service/FusionModelServiceTest.java |    421 +
 .../kylin/rest/service/IndexPlanServiceTest.java   |   1449 +
 .../kylin/rest/service/MetaStoreServiceTest.java   |   1411 +
 .../kylin/rest/service/MockModelQueryService.java  |     44 +
 .../service/ModelServiceSemanticUpdateTest.java    |   1650 +
 .../kylin/rest/service/ModelServiceTest.java       |   5209 +
 .../kylin/rest/service/ProjectServiceTest.java     |    992 +
 .../kylin/rest/service/TableReloadServiceTest.java |   1720 +
 .../kylin/rest/service/TableServiceTest.java       |   1441 +
 .../kylin/rest/util/ModelTripleComparatorTest.java |     80 +
 .../org/apache/kylin/rest/util/ModelUtilsTest.java |    122 +
 .../nmodel_full_measure_test.connector.tds         |    125 +
 .../nmodel_full_measure_test.connector_admin.tds   |    125 +
 .../nmodel_full_measure_test.connector_user.tds    |     53 +
 ...l_measure_test.connector_user_agg_index_col.tds |     53 +
 .../table_desc/CASE_SENSITIVE.TEST_KYLIN_FACT.json |     69 +
 .../default/model_desc/model_join_full_load.json   |    152 +
 .../model_join_increment_fact_table1.json          |    163 +
 .../cc_test/default/model_desc/nmodel_cc_test.json |    554 +
 .../internal_measure.model_desc/nmodel_test.json   |    184 +
 .../nmodel_test_expected.json                      |      1 +
 .../metadata/_global/project/model_index_mix.json  |     32 +
 .../metadata/_global/project/original_project.json |     36 +
 .../metadata/_global/project/target_project.json   |     32 +
 .../1af229fb-bb2c-42c5-9663-2bd92b50a861.json      |     13 +
 .../7212bf0c-0716-4cef-b623-69c161981262.json      |     13 +
 .../8b5a2d39-304f-4a20-a9da-942f461534d8.json      |     13 +
 .../1af229fb-bb2c-42c5-9663-2bd92b50a861.json      |      1 +
 .../7212bf0c-0716-4cef-b623-69c161981262.json      |     20 +
 .../8b5a2d39-304f-4a20-a9da-942f461534d8.json      |     20 +
 .../1af229fb-bb2c-42c5-9663-2bd92b50a861.json      |      1 +
 .../7212bf0c-0716-4cef-b623-69c161981262.json      |    332 +
 .../8b5a2d39-304f-4a20-a9da-942f461534d8.json      |    332 +
 .../272f4c70-b65e-4a3d-ba0d-d73250f0e844.json      |     13 +
 .../272f4c70-b65e-4a3d-ba0d-d73250f0e844.json      |      1 +
 .../272f4c70-b65e-4a3d-ba0d-d73250f0e844.json      |    225 +
 .../model_index_mix/table/SSB.CUSTOMER.json        |     58 +
 .../model_index_mix/table/SSB.P_LINEORDER.json     |    108 +
 .../1e3cf0a8-26f5-487e-8298-6274dd545869.json      |     43 +
 .../1f0873db-ffb8-4690-ad41-5bd4bbdb0aab.json      |     43 +
 .../2ad0f57d-9a45-460e-843d-5994457d3331.json      |     43 +
 .../2d30c25d-4aa7-4d13-a8a9-202f35301633.json      |     43 +
 .../3069a6a5-b5d1-4594-9c86-ef61fb7a070c.json      |     43 +
 .../686a7e9a-3fd1-4f95-be9c-23d0248a2adf.json      |     43 +
 .../6e444b80-0019-430d-93ad-9eea3923c810.json      |     43 +
 .../761215ee-3f21-4d1a-aae5-3d0d9d6ede85.json      |     43 +
 .../8a75fe2a-ba0f-4efd-b387-c623a64e88ff.json      |     43 +
 .../a642d3c7-80d3-4bda-b3b0-cbdf8f096a95.json      |     43 +
 .../e281b411-19a6-4e38-a117-bfd09cb796be.json      |     43 +
 .../ff810fb9-55c4-4c45-9f8e-4235122a63d3.json      |     18 +
 .../1e3cf0a8-26f5-487e-8298-6274dd545869.json      |     59 +
 .../1f0873db-ffb8-4690-ad41-5bd4bbdb0aab.json      |     59 +
 .../2ad0f57d-9a45-460e-843d-5994457d3331.json      |     59 +
 .../2d30c25d-4aa7-4d13-a8a9-202f35301633.json      |     59 +
 .../3069a6a5-b5d1-4594-9c86-ef61fb7a070c.json      |     61 +
 .../686a7e9a-3fd1-4f95-be9c-23d0248a2adf.json      |     59 +
 .../6e444b80-0019-430d-93ad-9eea3923c810.json      |     59 +
 .../761215ee-3f21-4d1a-aae5-3d0d9d6ede85.json      |     59 +
 .../8a75fe2a-ba0f-4efd-b387-c623a64e88ff.json      |     59 +
 .../a642d3c7-80d3-4bda-b3b0-cbdf8f096a95.json      |     59 +
 .../e281b411-19a6-4e38-a117-bfd09cb796be.json      |     59 +
 .../ff810fb9-55c4-4c45-9f8e-4235122a63d3.json      |     56 +
 .../1e3cf0a8-26f5-487e-8298-6274dd545869.json      |    325 +
 .../1f0873db-ffb8-4690-ad41-5bd4bbdb0aab.json      |    325 +
 .../2ad0f57d-9a45-460e-843d-5994457d3331.json      |    325 +
 .../2d30c25d-4aa7-4d13-a8a9-202f35301633.json      |    325 +
 .../3069a6a5-b5d1-4594-9c86-ef61fb7a070c.json      |    325 +
 .../686a7e9a-3fd1-4f95-be9c-23d0248a2adf.json      |    325 +
 .../6e444b80-0019-430d-93ad-9eea3923c810.json      |    325 +
 .../761215ee-3f21-4d1a-aae5-3d0d9d6ede85.json      |    325 +
 .../8a75fe2a-ba0f-4efd-b387-c623a64e88ff.json      |    325 +
 .../a642d3c7-80d3-4bda-b3b0-cbdf8f096a95.json      |    325 +
 .../e281b411-19a6-4e38-a117-bfd09cb796be.json      |    325 +
 .../ff810fb9-55c4-4c45-9f8e-4235122a63d3.json      |    281 +
 .../original_project/table/SSB.CUSTOMER.json       |     57 +
 .../metadata/original_project/table/SSB.DATES.json |    103 +
 .../original_project/table/SSB.LINEORDER.json      |    103 +
 .../metadata/original_project/table/SSB.PART.json  |     63 +
 .../original_project/table/SSB.P_LINEORDER.json    |    108 +
 .../original_project/table/SSB.SUPPLIER.json       |     53 +
 .../rec/1af229fb-bb2c-42c5-9663-2bd92b50a861.json  |    165 +
 ...7_14_54_54_F89122A7E22F485D8359616BC1C30718.zip |    Bin 0 -> 4707 bytes
 .../ut_model_metadata/metastore_model_metadata.zip |    Bin 0 -> 44144 bytes
 ...l_metadata_c4a20039c16dfbb5dcc5610c5052d7b1.zip |    Bin 0 -> 44144 bytes
 ...l_metadata_c4a20039c16dfbb5dcc5610c5052d7b3.zip |    Bin 0 -> 44144 bytes
 ...3_17_48_49_40126DF6694B94066ED623AC84291D9E.zip |    Bin 0 -> 4212 bytes
 ...3_18_43_01_8E323F797DDE2989BEBECC747AE40257.zip |    Bin 0 -> 4071 bytes
 ...0_14_56_44_39201D01EBE7665483E2044D6B5FD9D0.zip |    Bin 0 -> 5005 bytes
 ...1_15_45_16_9D3BCD19FF5AF9D3163128B9DEE237F4.zip |    Bin 0 -> 6257 bytes
 ...1_16_40_43_61D23206229CEB0C078F24AAACADF5DB.zip |    Bin 0 -> 5112 bytes
 .../ut_model_metadata/ut_model_matadata.zip        |    Bin 0 -> 38039 bytes
 .../model_update/model_with_measure.json           |     66 +
 .../model_with_measure_change_alias.json           |     82 +
 .../model_with_measure_change_alias_twice.json     |     82 +
 .../model_update/model_with_multi_measures.json    |    188 +
 src/query-booter/pom.xml                           |    241 +
 .../apache/kylin/rest/QueryBootstrapServer.java    |     38 +
 .../src/main/resources/META-INF/spring.factories   |      1 +
 .../src/main/resources/application.yaml            |     97 +
 .../src/main/resources/applicationContext.xml      |     40 +
 src/query-booter/src/main/resources/assembly.xml   |     79 +
 .../src/main/resources/config/config.yaml          |     45 +
 .../src/main/resources/config/config_library.csv   |    566 +
 .../src/main/resources/config/init.properties      |    453 +
 src/query-booter/src/main/resources/ehcache.xml    |     42 +
 .../src/main/resources/exception_to_code.json      |      8 +
 .../src/main/resources/kylinSecurity.xml           |    623 +
 src/query-booter/src/main/resources/log4j2.xml     |     22 +
 .../script/schema-session-attributes-mysql.sql     |     24 +
 .../script/schema-session-attributes-pg.sql        |     24 +
 .../main/resources/script/schema-session-mysql.sql |     31 +
 .../main/resources/script/schema-session-pg.sql    |     31 +
 src/query-common/pom.xml                           |     69 +
 src/query-common/src/main/codegen/.gitignore       |      7 +
 .../javacc/io/kyligence/kap/query/util/.gitignore  |     10 +
 .../io/kyligence/kap/query/util/EscapeParser.jj    |    831 +
 .../io/kyligence/kap/query/util/RawSqlParser.jj    |    195 +
 .../java/org/apache/kylin/query/MockContext.java   |     69 +
 .../org/apache/kylin/query/QueryExtension.java     |    109 +
 .../org/apache/kylin/query/SlowQueryDetector.java  |    199 +
 .../query/calcite/KylinRelDataTypeSystem.java      |    107 +
 .../apache/kylin/query/engine/KECalciteConfig.java |     80 +
 .../kylin/query/engine/PrepareSqlStateParam.java   |     81 +
 .../query/engine/RelColumnMetaDataExtractor.java   |     58 +
 .../kylin/query/engine/SchemaMapExtension.java     |     33 +
 .../query/engine/TableColumnAuthExtension.java     |     30 +
 .../kylin/query/engine/data/QueryResult.java       |    106 +
 .../kylin/query/engine/exec/ExecuteResult.java     |     39 +
 .../query/engine/exec/sparder/QueryEngine.java     |     43 +
 .../kylin/query/enumerator/HiveEnumerator.java     |    135 +
 .../kylin/query/enumerator/OLAPEnumerator.java     |    137 +
 .../apache/kylin/query/enumerator/OLAPQuery.java   |    153 +
 .../NAsyncQueryIllegalParamException.java          |     49 +
 .../query/exception/NoAuthorizedColsError.java     |     30 +
 .../query/exception/UserStopQueryException.java    |     53 +
 .../apache/kylin/query/relnode/ColumnRowType.java  |    136 +
 .../apache/kylin/query/relnode/ContextUtil.java    |    256 +
 .../kylin/query/relnode/KapAggregateRel.java       |    508 +
 .../org/apache/kylin/query/relnode/KapContext.java |     75 +
 .../apache/kylin/query/relnode/KapFilterRel.java   |    332 +
 .../org/apache/kylin/query/relnode/KapJoinRel.java |    402 +
 .../apache/kylin/query/relnode/KapLimitRel.java    |    149 +
 .../apache/kylin/query/relnode/KapMinusRel.java    |    163 +
 .../kylin/query/relnode/KapModelViewRel.java       |    154 +
 .../kylin/query/relnode/KapNonEquiJoinRel.java     |    478 +
 .../relnode/KapOLAPToEnumerableConverter.java      |     52 +
 .../apache/kylin/query/relnode/KapProjectRel.java  |    319 +
 .../org/apache/kylin/query/relnode/KapRel.java     |    219 +
 .../org/apache/kylin/query/relnode/KapSortRel.java |    131 +
 .../apache/kylin/query/relnode/KapTableScan.java   |    183 +
 .../apache/kylin/query/relnode/KapUnionRel.java    |    131 +
 .../apache/kylin/query/relnode/KapValuesRel.java   |     89 +
 .../apache/kylin/query/relnode/KapWindowRel.java   |    140 +
 .../kylin/query/relnode/KylinAggregateCall.java    |     71 +
 .../kylin/query/relnode/OLAPAggregateRel.java      |    603 +
 .../apache/kylin/query/relnode/OLAPContext.java    |    576 +
 .../kylin/query/relnode/OLAPContextProp.java       |     36 +
 .../apache/kylin/query/relnode/OLAPFilterRel.java  |    295 +
 .../apache/kylin/query/relnode/OLAPJoinRel.java    |    390 +
 .../apache/kylin/query/relnode/OLAPLimitRel.java   |    166 +
 .../apache/kylin/query/relnode/OLAPProjectRel.java |    306 +
 .../org/apache/kylin/query/relnode/OLAPRel.java    |    261 +
 .../apache/kylin/query/relnode/OLAPSortRel.java    |    174 +
 .../apache/kylin/query/relnode/OLAPTableScan.java  |    359 +
 .../query/relnode/OLAPToEnumerableConverter.java   |    153 +
 .../apache/kylin/query/relnode/OLAPUnionRel.java   |    170 +
 .../apache/kylin/query/relnode/OLAPValuesRel.java  |    140 +
 .../apache/kylin/query/relnode/OLAPWindowRel.java  |    167 +
 .../kylin/query/relnode/TableColRefWithRel.java    |     50 +
 .../org/apache/kylin/query/routing/Candidate.java  |    156 +
 .../apache/kylin/query/routing/QueryRouter.java    |    139 +
 .../kylin/query/routing/RealizationCheck.java      |    371 +
 .../kylin/query/routing/RealizationChooser.java    |    722 +
 .../kylin/query/routing/RealizationPruner.java     |    515 +
 .../apache/kylin/query/routing/RoutingRule.java    |    133 +
 .../query/routing/rules/PartitionPruningRule.java  |    107 +
 .../query/routing/rules/RealizationSortRule.java   |     64 +
 .../rules/RemoveBlackoutRealizationsRule.java      |     96 +
 .../rules/RemoveUncapableRealizationsRule.java     |     86 +
 .../query/routing/rules/SegmentPruningRule.java    |     77 +
 .../apache/kylin/query/schema/KapOLAPSchema.java   |     62 +
 .../apache/kylin/query/schema/KapOLAPTable.java    |     45 +
 .../query/schema/KylinRelDataTypeFactoryImpl.java  |    108 +
 .../query/schema/KylinRelDataTypeFieldImpl.java    |     57 +
 .../kylin/query/schema/KylinSqlValidator.java      |     90 +
 .../org/apache/kylin/query/schema/OLAPSchema.java  |    146 +
 .../org/apache/kylin/query/schema/OLAPTable.java   |    409 +
 .../query/security/AccessDeniedException.java      |     70 +
 .../security/HackSelectStarWithColumnACL.java      |    201 +
 .../org/apache/kylin/query/security/RowFilter.java |    421 +
 .../kylin/query/util/AbstractSqlVisitor.java       |    236 +
 .../apache/kylin/query/util/AliasDeduceImpl.java   |     53 +
 .../apache/kylin/query/util/AsyncQueryUtil.java    |    168 +
 .../util/CognosParenthesesEscapeTransformer.java   |    123 +
 .../kylin/query/util/ComputedColumnRewriter.java   |    184 +
 .../kylin/query/util/ConvertToComputedColumn.java  |    626 +
 .../kylin/query/util/DefaultQueryTransformer.java  |    134 +
 .../org/apache/kylin/query/util/EscapeDialect.java |    281 +
 .../apache/kylin/query/util/EscapeFunction.java    |    360 +
 .../apache/kylin/query/util/EscapeTransformer.java |     63 +
 .../kylin/query/util/ICutContextStrategy.java      |     58 +
 .../org/apache/kylin/query/util/KapQueryUtil.java  |    449 +
 .../org/apache/kylin/query/util/KapRelUtil.java    |     95 +
 .../kylin/query/util/KeywordDefaultDirtyHack.java  |     69 +
 .../query/util/ModelViewSqlNodeComparator.java     |     69 +
 .../apache/kylin/query/util/OBIEEConverter.java    |    126 +
 .../apache/kylin/query/util/PowerBIConverter.java  |     76 +
 .../org/apache/kylin/query/util/PushDownUtil.java  |    312 +
 .../kylin/query/util/QueryAliasMatchInfo.java      |     64 +
 .../apache/kylin/query/util/QueryAliasMatcher.java |    591 +
 .../org/apache/kylin/query/util/QueryParams.java   |    129 +
 .../java/org/apache/kylin/query/util/RawSql.java   |    178 +
 .../org/apache/kylin/query/util/RawSqlBlock.java   |     44 +
 .../kylin/query/util/ReplaceStringWithVarchar.java |     92 +
 .../query/util/RestoreFromComputedColumn.java      |    428 +
 .../kylin/query/util/RexToTblColRefTranslator.java |    640 +
 .../java/org/apache/kylin/query/util/RexUtils.java |    250 +
 .../query/util/SparkSQLFunctionConverter.java      |     35 +
 .../apache/kylin/query/util/SqlNodeExtractor.java  |     59 +
 .../apache/kylin/query/util/SqlSubqueryFinder.java |    160 +
 .../query/util/WithToSubQueryTransformer.java      |    305 +
 .../org/apache/kylin/tool/bisync/BISyncModel.java  |     26 +
 .../kylin/tool/bisync/BISyncModelConverter.java    |     26 +
 .../org/apache/kylin/tool/bisync/BISyncTool.java   |     59 +
 .../org/apache/kylin/tool/bisync/SyncContext.java  |     56 +
 .../apache/kylin/tool/bisync/SyncModelBuilder.java |    452 +
 .../apache/kylin/tool/bisync/model/ColumnDef.java  |    102 +
 .../kylin/tool/bisync/model/JoinTreeNode.java      |     79 +
 .../apache/kylin/tool/bisync/model/MeasureDef.java |     34 +
 .../apache/kylin/tool/bisync/model/SyncModel.java  |    106 +
 .../bisync/tableau/TableauDataSourceConverter.java |    498 +
 .../bisync/tableau/TableauDatasourceModel.java     |     64 +
 .../tool/bisync/tableau/datasource/Aliases.java    |     34 +
 .../tool/bisync/tableau/datasource/DrillPath.java  |     82 +
 .../tool/bisync/tableau/datasource/DrillPaths.java |     76 +
 .../tool/bisync/tableau/datasource/Layout.java     |     42 +
 .../bisync/tableau/datasource/SemanticValue.java   |     45 +
 .../tableau/datasource/SemanticValueList.java      |     31 +
 .../tableau/datasource/TableauConnection.java      |    104 +
 .../tableau/datasource/TableauDatasource.java      |    180 +
 .../tableau/datasource/column/Calculation.java     |     59 +
 .../bisync/tableau/datasource/column/Column.java   |    143 +
 .../bisync/tableau/datasource/connection/Col.java  |     74 +
 .../bisync/tableau/datasource/connection/Cols.java |     77 +
 .../tableau/datasource/connection/Connection.java  |     98 +
 .../connection/ConnectionCustomization.java        |     62 +
 .../datasource/connection/NamedConnection.java     |     52 +
 .../datasource/connection/NamedConnectionList.java |     54 +
 .../connection/customization/Customization.java    |     45 +
 .../customization/CustomizationList.java           |     35 +
 .../connection/customization/Driver.java           |     34 +
 .../connection/customization/Vendor.java           |     34 +
 .../datasource/connection/metadata/Attribute.java  |     49 +
 .../connection/metadata/AttributeList.java         |     30 +
 .../datasource/connection/metadata/Collation.java  |     37 +
 .../connection/metadata/MetadataRecord.java        |     72 +
 .../connection/metadata/MetadataRecordList.java    |     31 +
 .../datasource/connection/relation/Clause.java     |     65 +
 .../datasource/connection/relation/Expression.java |     83 +
 .../datasource/connection/relation/Relation.java   |    139 +
 .../bisync/tableau/mapping/FunctionMapping.java    |     45 +
 .../tool/bisync/tableau/mapping/Mappings.java      |     52 +
 .../tool/bisync/tableau/mapping/TypeMapping.java   |     45 +
 .../apache/kylin/util/CalciteSystemProperty.java   |     55 +
 .../apache/kylin/util/FilterConditionExpander.java |    242 +
 src/query-server/pom.xml                           |    151 +
 .../rest/controller/NAsyncQueryController.java     |    384 +
 .../rest/controller/NAsyncQueryControllerV2.java   |    128 +
 .../kylin/rest/controller/NQueryController.java    |    593 +
 .../controller/QuerySQLBlacklistController.java    |    202 +
 .../kylin/rest/controller/SparderUIController.java |     50 +
 .../rest/controller/SparkHistoryUIController.java  |     49 +
 .../rest/controller/SparkMetricsController.java    |     47 +
 .../rest/controller/v2/NQueryControllerV2.java     |     90 +
 .../rest/controller/v2/NQueryMetaController.java   |     66 +
 .../rest/controller/NAsyncQueryControllerTest.java |    738 +
 .../controller/NAsyncQueryControllerV2Test.java    |    243 +
 .../rest/controller/NQueryControllerTest.java      |    608 +
 .../rest/controller/NQueryControllerV2Test.java    |    187 +
 .../rest/controller/NQueryMetaControllerTest.java  |     81 +
 .../QuerySQLBlacklistControllerTest.java           |    223 +
 .../controller/SparkHistoryUIControllerTest.java   |     63 +
 .../controller/SparkMetricsControllerTest.java     |     50 +
 src/query-service/pom.xml                          |    225 +
 .../apache/kylin/rest/SparderConfiguration.java    |     71 +
 .../ProjectCleanOldQueryResultListener.java        |     42 +
 .../config/initialize/QueryAppInitializer.java     |     45 +
 .../rest/health/SparkContextHealthIndicator.java   |     36 +
 .../health/SparkSqlContextHealthIndicator.java     |     35 +
 .../java/org/apache/kylin/rest/model/Query.java    |    141 +
 .../kylin/rest/monitor/SparkContextCanary.java     |    170 +
 .../kylin/rest/request/AsyncQuerySQLRequest.java   |     52 +
 .../kylin/rest/request/AsyncQuerySQLRequestV2.java |     39 +
 .../org/apache/kylin/rest/request/MetaRequest.java |     68 +
 .../kylin/rest/request/PrepareSqlRequest.java      |    102 +
 .../rest/request/SQLBlacklistItemRequest.java      |     70 +
 .../kylin/rest/request/SQLBlacklistRequest.java    |     48 +
 .../kylin/rest/request/SQLFormatRequest.java       |     54 +
 .../apache/kylin/rest/request/SaveSqlRequest.java  |     53 +
 .../rest/response/QueryStatisticsResponse.java     |     36 +
 .../apache/kylin/rest/response/SQLResponse.java    |    231 +
 .../kylin/rest/response/SQLResponseTrace.java      |     42 +
 .../apache/kylin/rest/response/SQLResponseV2.java  |    205 +
 .../kylin/rest/response/TableMetaCacheResult.java  |     55 +
 .../rest/response/TableMetaCacheResultV2.java      |     55 +
 .../kylin/rest/service/AsyncQueryService.java      |    443 +
 .../org/apache/kylin/rest/service/CSVWriter.java   |    120 +
 .../kylin/rest/service/ModelQueryService.java      |    244 +
 .../kylin/rest/service/QueryCacheManager.java      |    327 +
 .../kylin/rest/service/QueryHistoryScheduler.java  |    193 +
 .../kylin/rest/service/QueryHistoryService.java    |    421 +
 .../rest/service/QuerySQLBlacklistService.java     |    146 +
 .../apache/kylin/rest/service/QueryService.java    |   1608 +
 .../apache/kylin/rest/service/XLSXExcelWriter.java |    155 +
 .../apache/kylin/rest/util/PrepareSQLUtils.java    |    226 +
 .../kylin/rest/util/QueryCacheSignatureUtil.java   |    214 +
 .../apache/kylin/rest/util/QueryRequestLimits.java |    144 +
 .../org/apache/kylin/rest/util/QueryUtils.java     |     93 +
 .../org/apache/kylin/rest/util/SparderUIUtil.java  |    121 +
 .../apache/kylin/rest/util/TableauInterceptor.java |    133 +
 .../health/SparkContextHealthIndicatorTest.java    |     53 +
 .../kylin/rest/monitor/SparkContextCanaryTest.java |     82 +
 .../kylin/rest/service/AsyncTaskServiceTest.java   |    145 +
 .../kylin/rest/service/AysncQueryServiceTest.java  |   1044 +
 .../rest/service/LocalFileMetadataTestCase.java    |     52 +
 .../kylin/rest/service/MockedQueryHistoryDao.java  |     93 +
 .../kylin/rest/service/ModelQueryServiceTest.java  |    143 +
 .../kylin/rest/service/ModelServiceQueryTest.java  |    289 +
 .../kylin/rest/service/QueryEhCacheTest.java       |    113 +
 .../rest/service/QueryHistorySchedulerTest.java    |    184 +
 .../rest/service/QueryHistoryServiceTest.java      |    949 +
 .../rest/service/QueryMetricsListenerTest.java     |    236 +
 .../kylin/rest/service/QueryRedisCacheTest.java    |    127 +
 .../rest/service/QuerySQLBlacklistServiceTest.java |    136 +
 .../rest/service/QueryServiceWithLdapTest.java     |    169 +
 .../task/QueryHistoryTaskSchedulerRunnerTest.java  |    125 +
 .../task/QueryHistoryTaskSchedulerTest.java        |    464 +
 .../kylin/rest/util/QueryRequestLimitsTest.java    |     37 +
 .../test/resources/ut_ldap/ldap-config.properties  |     39 +
 .../src/test/resources/ut_ldap/ldap-server.ldif    |    127 +
 src/query/pom.xml                                  |    156 +
 .../optrule/AbstractAggCaseWhenFunctionRule.java   |    478 +
 .../query/optrule/AggregateMultipleExpandRule.java |    173 +
 .../query/optrule/AggregateProjectReduceRule.java  |    133 +
 .../kap/query/optrule/CorrReduceFunctionRule.java  |    261 +
 .../optrule/CountDistinctCaseWhenFunctionRule.java |    225 +
 .../kap/query/optrule/ExtensionOlapJoinRule.java   |    259 +
 .../optrule/FilterJoinConditionMergeRule.java      |    123 +
 .../kap/query/optrule/FilterSimplifyRule.java      |    144 +
 .../kap/query/optrule/JoinFilterRule.java          |    130 +
 .../kyligence/kap/query/optrule/KAPValuesRule.java |     39 +
 .../query/optrule/KapAggFilterTransposeRule.java   |    145 +
 .../kap/query/optrule/KapAggJoinTransposeRule.java |    349 +
 .../kap/query/optrule/KapAggProjectMergeRule.java  |    173 +
 .../query/optrule/KapAggProjectTransposeRule.java  |    250 +
 .../kap/query/optrule/KapAggSumCastRule.java       |    219 +
 .../optrule/KapAggregateReduceFunctionsRule.java   |     44 +
 .../kap/query/optrule/KapAggregateRule.java        |     76 +
 .../query/optrule/KapCountDistinctJoinRule.java    |    144 +
 .../query/optrule/KapEquiJoinConditionFixRule.java |     70 +
 .../kap/query/optrule/KapFilterJoinRule.java       |    324 +
 .../kyligence/kap/query/optrule/KapFilterRule.java |     53 +
 .../query/optrule/KapJoinProjectTransposeRule.java |     69 +
 .../kyligence/kap/query/optrule/KapJoinRule.java   |    299 +
 .../kyligence/kap/query/optrule/KapLimitRule.java  |     56 +
 .../kyligence/kap/query/optrule/KapMinusRule.java  |     48 +
 .../kap/query/optrule/KapModelViewRule.java        |     53 +
 .../optrule/KapOLAPToEnumerableConverterRule.java  |     44 +
 .../query/optrule/KapProjectJoinTransposeRule.java |    150 +
 .../kap/query/optrule/KapProjectMergeRule.java     |    195 +
 .../kap/query/optrule/KapProjectRule.java          |     71 +
 .../kyligence/kap/query/optrule/KapRuleUtils.java  |     45 +
 .../kyligence/kap/query/optrule/KapSortRule.java   |     52 +
 .../kap/query/optrule/KapSumCastTransposeRule.java |    231 +
 .../query/optrule/KapSumTransCastToThenRule.java   |    405 +
 .../kyligence/kap/query/optrule/KapUnionRule.java  |     48 +
 .../kyligence/kap/query/optrule/KapWindowRule.java |     48 +
 .../kap/query/optrule/OLAPAggregateRule.java       |     89 +
 .../kap/query/optrule/OLAPFilterRule.java          |     70 +
 .../kyligence/kap/query/optrule/OLAPJoinRule.java  |     98 +
 .../kyligence/kap/query/optrule/OLAPLimitRule.java |     76 +
 .../kap/query/optrule/OLAPProjectRule.java         |     87 +
 .../kyligence/kap/query/optrule/OLAPSortRule.java  |     70 +
 .../optrule/OLAPToEnumerableConverterRule.java     |     62 +
 .../kyligence/kap/query/optrule/OLAPUnionRule.java |     66 +
 .../kap/query/optrule/OLAPWindowRule.java          |     65 +
 .../kap/query/optrule/RightJoinToLeftJoinRule.java |     47 +
 .../kap/query/optrule/SumBasicOperatorRule.java    |    407 +
 .../kap/query/optrule/SumCaseWhenFunctionRule.java |    119 +
 .../kap/query/optrule/SumConstantConvertRule.java  |    256 +
 .../main/java/org/apache/kylin/query/QueryCli.java |     96 +
 .../apache/kylin/query/blacklist/SQLBlacklist.java |    138 +
 .../kylin/query/blacklist/SQLBlacklistItem.java    |     99 +
 .../kylin/query/blacklist/SQLBlacklistManager.java |    171 +
 .../org/apache/kylin/query/calcite/KEDialect.java  |     37 +
 .../kylin/query/engine/AsyncQueryApplication.java  |    134 +
 .../apache/kylin/query/engine/AsyncQueryJob.java   |    200 +
 .../apache/kylin/query/engine/PlannerFactory.java  |    293 +
 .../kylin/query/engine/ProjectSchemaFactory.java   |    163 +
 .../org/apache/kylin/query/engine/QueryExec.java   |    431 +
 .../apache/kylin/query/engine/QueryOptimizer.java  |     81 +
 .../kylin/query/engine/QueryRoutingEngine.java     |    343 +
 .../apache/kylin/query/engine/SQLConverter.java    |    204 +
 .../apache/kylin/query/engine/SchemaMetaData.java  |     71 +
 .../org/apache/kylin/query/engine/TypeSystem.java  |     36 +
 .../org/apache/kylin/query/engine/UDFRegistry.java |    183 +
 .../kylin/query/engine/data/TableSchema.java       |     74 +
 .../kylin/query/engine/exec/QueryPlanExec.java     |     39 +
 .../engine/exec/calcite/CalciteQueryPlanExec.java  |    134 +
 .../engine/exec/sparder/SparderQueryPlanExec.java  |    210 +
 .../query/engine/meta/MutableDataContext.java      |     26 +
 .../kylin/query/engine/meta/PlannerContext.java    |     45 +
 .../kylin/query/engine/meta/SimpleDataContext.java |     97 +
 .../kylin/query/engine/view/ModelViewExpander.java |     43 +
 .../query/engine/view/ModelViewGenerator.java      |    190 +
 .../query/engine/view/SimpleViewExpander.java      |     48 +
 .../kylin/query/engine/view/ViewAnalyzer.java      |     27 +
 .../apache/kylin/query/engine/view/ViewSchema.java |    108 +
 .../kylin/query/exception/BusyQueryException.java  |     51 +
 .../query/exception/NotSupportedSQLException.java  |     30 +
 .../kylin/query/exception/SparderException.java    |     25 +
 .../query/exception/SumExprUnSupportException.java |     30 +
 .../query/exception/UnsupportedQueryException.java |     25 +
 .../java/org/apache/kylin/query/udf/BitmapUDF.java |     58 +
 .../java/org/apache/kylin/query/udf/MassInUDF.java |     46 +
 .../java/org/apache/kylin/query/udf/SizeUDF.java   |     47 +
 .../org/apache/kylin/query/udf/SparkLeafUDF.java   |     76 +
 .../org/apache/kylin/query/udf/SparkMathUDF.java   |    114 +
 .../org/apache/kylin/query/udf/SparkMiscUDF.java   |     64 +
 .../org/apache/kylin/query/udf/SparkOtherUDF.java  |     48 +
 .../org/apache/kylin/query/udf/SparkStringUDF.java |    134 +
 .../org/apache/kylin/query/udf/SparkTimeUDF.java   |    109 +
 .../org/apache/kylin/query/udf/VersionUDF.java     |     45 +
 .../kylin/query/udf/dateUdf/DateDiffUDF.java       |     48 +
 .../kylin/query/udf/dateUdf/DatePartUDF.java       |     79 +
 .../kylin/query/udf/dateUdf/DateTruncUDF.java      |     57 +
 .../kylin/query/udf/dateUdf/UnixTimestampUDF.java  |     78 +
 .../kylin/query/udf/formatUdf/DateFormatUDF.java   |     79 +
 .../kylin/query/udf/formatUdf/ToCharUDF.java       |     79 +
 .../kylin/query/udf/formatUdf/ToDateUDF.java       |     73 +
 .../kylin/query/udf/formatUdf/ToTimestampUDF.java  |     87 +
 .../kylin/query/udf/nullHandling/IfNullUDF.java    |     76 +
 .../kylin/query/udf/nullHandling/IsNullUDF.java    |     69 +
 .../kylin/query/udf/nullHandling/NvlUDF.java       |     74 +
 .../org/apache/kylin/query/udf/otherUdf/IfUDF.java |    126 +
 .../kylin/query/udf/otherUdf/RegexpLikeUDF.java    |     51 +
 .../apache/kylin/query/udf/otherUdf/RlikeUDF.java  |     51 +
 .../kylin/query/udf/stringUdf/ConcatUDF.java       |     49 +
 .../kylin/query/udf/stringUdf/ConcatwsUDF.java     |     50 +
 .../apache/kylin/query/udf/stringUdf/InStrUDF.java |     51 +
 .../kylin/query/udf/stringUdf/InitCapbUDF.java     |     88 +
 .../apache/kylin/query/udf/stringUdf/LeftUDF.java  |     46 +
 .../kylin/query/udf/stringUdf/LengthUDF.java       |     46 +
 .../kylin/query/udf/stringUdf/RepeatUDF.java       |     48 +
 .../kylin/query/udf/stringUdf/SplitPartUDF.java    |     54 +
 .../kylin/query/udf/stringUdf/StrPosUDF.java       |     46 +
 .../kylin/query/udf/stringUdf/SubStrUDF.java       |     65 +
 .../query/udf/stringUdf/TableauStringUDF.java      |     48 +
 .../apache/kylin/query/util/AggExpressionUtil.java |    509 +
 .../kylin/query/util/CalcitePlanRouterVisitor.java |     75 +
 .../apache/kylin/query/util/DialectConverter.java  |     43 +
 .../kylin/query/util/FilterPushDownUtil.java       |    322 +
 .../query/util/FirstRoundContextCutStrategy.java   |     82 +
 .../java/org/apache/kylin/query/util/HepUtils.java |    139 +
 .../kylin/query/util/QueryContextCutter.java       |    161 +
 .../org/apache/kylin/query/util/QueryHelper.java   |     68 +
 .../org/apache/kylin/query/util/QueryLimiter.java  |    116 +
 .../kylin/query/util/QueryModelPriorities.java     |     77 +
 .../query/util/QueryReCutContextStrategy.java      |     57 +
 .../org/apache/kylin/query/util/QueryUtil.java     |    189 +
 .../apache/kylin/query/util/TempStatementUtil.java |    190 +
 .../apache/kylin/query/SlowQueryDetectorTest.java  |    100 +
 .../aggregate/DimCountDistinctAggFuncTest.java     |    103 +
 .../query/calcite/KylinRelDataTypeSystemTest.java  |    148 +
 .../apache/kylin/query/calcite/ValidatorTest.java  |     88 +
 .../query/engine/AsyncQueryApplicationTest.java    |    114 +
 .../kylin/query/engine/AsyncQueryJobTest.java      |    319 +
 .../query/engine/QueryExecColumnMetaTest.java      |     79 +
 .../kylin/query/engine/QueryRoutingEngineTest.java |    220 +
 .../kylin/query/engine/SelectRealizationTest.java  |     91 +
 .../engine/SparderQueryPlanExecAbnormalTest.java   |    179 +
 .../kylin/query/engine/ThrownExceptionEngine.java  |     43 +
 .../engine/mask/QueryDependentColumnMaskTest.java  |    308 +
 .../engine/mask/QuerySensitiveDataMaskTest.java    |    214 +
 .../kylin/query/engine/view/ModelViewTest.java     |    208 +
 .../kylin/query/relnode/ContextUtilTest.java       |     61 +
 .../kylin/query/routing/CandidateSortTest.java     |    240 +
 .../kylin/query/routing/RealizationCheckTest.java  |     53 +
 .../kylin/query/schema/KylinSqlValidatorTest.java  |    110 +
 .../security/HackSelectStarWithColumnACLTest.java  |    250 +
 .../apache/kylin/query/security/RowFilterTest.java |    270 +
 .../org/apache/kylin/query/udf/DateUDFTest.java    |     69 +
 .../org/apache/kylin/query/udf/FormatUDFTest.java  |    104 +
 .../java/org/apache/kylin/query/udf/IfUDFTest.java |     59 +
 .../kylin/query/udf/NullHandlingUDFTest.java       |    119 +
 .../apache/kylin/query/udf/RegexpLikeUDFTest.java  |     51 +
 .../org/apache/kylin/query/udf/RlikeUDFTest.java   |     51 +
 .../org/apache/kylin/query/udf/StringUDFTest.java  |    157 +
 .../org/apache/kylin/query/udf/VersionUDFTest.java |     51 +
 .../apache/kylin/query/util/CCOnRealModelTest.java |    521 +
 .../CognosParenthesesEscapeTransformerTest.java    |    140 +
 .../kylin/query/util/ColumnRowTypeMockUtil.java    |     49 +
 .../query/util/DefaultQueryTransformerTest.java    |    127 +
 .../kylin/query/util/DialectConverterTest.java     |     78 +
 .../query/util/EscapeTransformerCalciteTest.java   |    344 +
 .../query/util/EscapeTransformerSparkSqlTest.java  |    312 +
 .../kylin/query/util/EscapeTransformerTest.java    |    497 +
 .../kylin/query/util/ExpressionComparatorTest.java |    177 +
 .../kylin/query/util/FilterPushDownUtilTest.java   |    487 +
 .../query/util/ImplicitCCOnModelViewTest.java      |    174 +
 .../apache/kylin/query/util/ImplicitCCTest.java    |    330 +
 .../apache/kylin/query/util/KapQueryUtilTest.java  |     60 +
 .../apache/kylin/query/util/KapRelUtilTest.java    |     81 +
 .../kylin/query/util/OBIEEConverterTest.java       |     56 +
 .../kylin/query/util/PowerBIConverterTest.java     |     81 +
 .../apache/kylin/query/util/PushDownUtilTest.java  |     85 +
 .../apache/kylin/query/util/QueryLimiterTest.java  |    162 +
 .../kylin/query/util/QueryModelPrioritiesTest.java |     70 +
 .../org/apache/kylin/query/util/QueryUtilTest.java |    426 +
 .../org/apache/kylin/query/util/RawSqlTest.java    |    188 +
 .../query/util/ReplaceStringWithVarcharTest.java   |     70 +
 .../query/util/RestoreFromCCOnRealModelTest.java   |    382 +
 .../query/util/RexToTblColRefTranslatorTest.java   |    693 +
 .../kylin/query/util/SqlNodeExtractorTest.java     |     53 +
 .../src/test/resources/query/cognos/query01.sql    |     28 +
 .../resources/query/cognos/query01.sql.expected    |     28 +
 .../src/test/resources/query/cognos/query02.sql    |     27 +
 .../resources/query/cognos/query02.sql.expected    |     27 +
 .../src/test/resources/query/cognos/query03.sql    |     29 +
 .../resources/query/cognos/query03.sql.expected    |     29 +
 .../src/test/resources/query/cpic/big_query1.sql   |     18 +
 .../resources/query/cpic/big_query1.sql.expected   |      1 +
 .../src/test/resources/query_pattern/query01.sql   |     37 +
 .../resources/query_pattern/query01.sql.expected   |     13 +
 .../src/test/resources/query_pattern/query02.sql   |     39 +
 .../resources/query_pattern/query02.sql.expected   |      6 +
 .../src/test/resources/query_pattern/query03.sql   |     27 +
 .../resources/query_pattern/query03.sql.expected   |      7 +
 .../src/test/resources/query_pattern/query04.sql   |     47 +
 .../resources/query_pattern/query04.sql.expected   |     13 +
 .../src/test/resources/query_pattern/query05.sql   |     42 +
 .../resources/query_pattern/query05.sql.expected   |      9 +
 .../src/test/resources/query_pattern/query06.sql   |    342 +
 .../resources/query_pattern/query06.sql.expected   |     58 +
 .../test/resources/ut_meta/validator/model.json    |    106 +
 .../ut_meta/view/DEFAULT.TEST_DECIMAL.json         |     21 +
 .../src/test/resources/ut_meta/view/model_cc.json  |    282 +
 .../src/test/resources/ut_meta/view/model_cc.sql   |      1 +
 .../test/resources/ut_meta/view/model_decimal.json |     91 +
 .../test/resources/ut_meta/view/model_joins.json   |    279 +
 .../test/resources/ut_meta/view/model_joins.sql    |      1 +
 .../resources/ut_meta/view/model_single_table.json |    169 +
 .../resources/ut_meta/view/model_single_table.sql  |      1 +
 .../kap/secondstorage/EndpointParametersTest.java  |    270 +
 .../SecondStorageLockOperatorTest.java             |    630 +
 .../utils/SecondStorageMetadataHelperTest.java     |     83 +
 src/second-storage/clickhouse/pom.xml              |    109 +
 .../kap/clickhouse/ClickHouseConstants.java        |     36 +
 .../kap/clickhouse/ClickHouseStorage.java          |    181 +
 .../clickhouse/database/ClickHouseOperator.java    |     87 +
 .../database/ClickHouseQueryOperator.java          |    141 +
 .../kap/clickhouse/ddl/ClickHouseCreateTable.java  |     99 +
 .../kap/clickhouse/ddl/ClickHouseRender.java       |    112 +
 .../factory/ClickHouseMetadataFactory.java         |     31 +
 .../factory/ClickHouseOperatorFactory.java         |     30 +
 .../clickhouse/factory/ClickHouseQueryFactory.java |     30 +
 .../clickhouse/job/AbstractClickHouseClean.java    |    123 +
 .../kap/clickhouse/job/AzureBlobClient.java        |    121 +
 .../io/kyligence/kap/clickhouse/job/BlobUrl.java   |    123 +
 .../kyligence/kap/clickhouse/job/ClickHouse.java   |    187 +
 .../clickhouse/job/ClickHouseCleanJobParam.java    |     38 +
 .../clickhouse/job/ClickHouseDatabaseClean.java    |     73 +
 .../kap/clickhouse/job/ClickHouseErrorCode.java    |     26 +
 .../kap/clickhouse/job/ClickHouseIndexClean.java   |    142 +
 .../clickhouse/job/ClickHouseIndexCleanJob.java    |    147 +
 .../kap/clickhouse/job/ClickHouseJob.java          |    157 +
 .../kap/clickhouse/job/ClickHouseLoad.java         |    408 +
 .../kap/clickhouse/job/ClickHouseMerge.java        |     85 +
 .../clickhouse/job/ClickHouseModelCleanJob.java    |    114 +
 .../clickhouse/job/ClickHousePartitionClean.java   |    114 +
 .../clickhouse/job/ClickHouseProjectCleanJob.java  |     79 +
 .../kap/clickhouse/job/ClickHouseRefresh.java      |    120 +
 .../clickhouse/job/ClickHouseSegmentCleanJob.java  |     95 +
 .../kap/clickhouse/job/ClickHouseSystemQuery.java  |    105 +
 .../kap/clickhouse/job/ClickHouseTableClean.java   |     86 +
 .../job/ClickHouseTableStorageMetric.java          |     93 +
 .../kyligence/kap/clickhouse/job/DataLoader.java   |    260 +
 .../io/kyligence/kap/clickhouse/job/Engine.java    |     47 +
 .../kyligence/kap/clickhouse/job/FileProvider.java |     25 +
 .../kyligence/kap/clickhouse/job/FileStatus.java   |     29 +
 .../kyligence/kap/clickhouse/job/LoadContext.java  |    137 +
 .../io/kyligence/kap/clickhouse/job/LoadInfo.java  |    197 +
 .../kap/clickhouse/job/SegmentFileProvider.java    |     63 +
 .../kyligence/kap/clickhouse/job/ShardCleaner.java |    149 +
 .../kyligence/kap/clickhouse/job/ShardLoader.java  |    315 +
 .../kap/clickhouse/job/TableEngineType.java        |     25 +
 .../kap/clickhouse/job/TableSourceType.java        |    137 +
 .../kap/clickhouse/job/ViewFsTransform.java        |     63 +
 .../management/ClickHouseConfigLoader.java         |    116 +
 .../clickhouse/management/RecoveryParameter.java   |     57 +
 .../clickhouse/metadata/ClickHouseFlowManager.java |     73 +
 .../kap/clickhouse/metadata/ClickHouseManager.java |     73 +
 .../metadata/ClickHouseMetadataOperator.java       |    238 +
 .../metadata/ClickHouseNodeGroupManager.java       |     70 +
 .../kap/clickhouse/parser/ExistsQueryParser.java   |     34 +
 .../clickhouse/parser/ShowCreateQueryParser.java   |     34 +
 .../kap/clickhouse/parser/ShowDatabasesParser.java |     34 +
 .../clickhouse/tool/ClickHouseSanityCheckTool.java |    112 +
 .../org/apache/kylin/common/ClickHouseConfig.java  |     49 +
 .../kap/clickhouse/MockSecondStorage.java          |     83 +
 .../kap/clickhouse/job/AzureBlobClientTest.java    |     52 +
 .../kyligence/kap/clickhouse/job/BlobUrlTest.java  |     80 +
 .../kap/clickhouse/job/ClickHouseLoadTest.java     |     76 +
 .../kap/clickhouse/job/ClickHouseTest.java         |     86 +
 .../kap/clickhouse/job/DataLoaderTest.java         |     74 +
 .../kap/clickhouse/job/HadoopMockUtil.java         |     55 +
 .../kap/clickhouse/job/TableSourceTypeTest.java    |    118 +
 .../kap/clickhouse/job/ViewFsTransformTest.java    |     69 +
 .../management/ClickHouseConfigLoaderTest.java     |     88 +
 .../metadata/ClickHouseFlowManagerTest.java        |    165 +
 .../clickhouse/metadata/ClickHouseManagerTest.java |    158 +
 .../kap/clickhouse/metadata/TestUtils.java         |     53 +
 .../kap/secondstorage/ddl/ClickHouseDDLTest.java   |     95 +
 .../org.mockito.plugins.MockMaker                  |      1 +
 src/second-storage/core-ui/pom.xml                 |    149 +
 .../secondstorage/management/ManagementConfig.java |     49 +
 .../kap/secondstorage/management/NodeData.java     |     37 +
 .../management/OpenSecondStorageEndpoint.java      |    161 +
 .../kap/secondstorage/management/ProjectLock.java  |     35 +
 .../kap/secondstorage/management/ProjectNode.java  |     38 +
 .../management/SecondStorageEndpoint.java          |    313 +
 .../management/SecondStorageScheduleService.java   |    121 +
 .../management/SecondStorageService.java           |    858 +
 .../management/request/ModelEnableRequest.java     |     33 +
 .../management/request/ProjectCleanRequest.java    |     28 +
 .../management/request/ProjectEnableRequest.java   |     34 +
 .../management/request/ProjectLoadRequest.java     |     30 +
 .../management/request/ProjectLoadResponse.java    |     31 +
 .../request/ProjectLockOperateRequest.java         |     33 +
 .../management/request/ProjectNodeRequest.java     |     38 +
 .../request/ProjectRecoveryResponse.java           |     37 +
 .../request/ProjectTableSyncResponse.java          |     40 +
 .../management/request/RecoverRequest.java         |     31 +
 .../request/SecondStorageMetadataRequest.java      |     33 +
 .../management/request/StorageRequest.java         |     63 +
 .../management/OpenSecondStorageEndpointTest.java  |    117 +
 .../management/SecondStorageEndpointTest.java      |     85 +
 .../management/SecondStorageServiceTest.java       |    136 +
 .../service/ModelServiceWithSecondStorageTest.java |    248 +
 src/second-storage/core/pom.xml                    |    172 +
 .../io/kyligence/kap/secondstorage/NameUtil.java   |     75 +
 .../SecondStorageConcurrentTestUtil.java           |     69 +
 .../secondstorage/SecondStorageConfigLoader.java   |     29 +
 .../kap/secondstorage/SecondStorageConstants.java  |     56 +
 .../kap/secondstorage/SecondStorageLockUtils.java  |     90 +
 .../kap/secondstorage/SecondStorageNodeHelper.java |    185 +
 .../kap/secondstorage/SecondStoragePlugin.java     |     39 +
 .../secondstorage/SecondStorageQueryRouteUtil.java |    109 +
 .../kap/secondstorage/SecondStorageUpdater.java    |     57 +
 .../kap/secondstorage/SecondStorageUtil.java       |    453 +
 .../kap/secondstorage/config/ClusterInfo.java      |    154 +
 .../kap/secondstorage/config/ConfigOption.java     |     85 +
 .../config/DefaultSecondStorageProperties.java     |     66 +
 .../kyligence/kap/secondstorage/config/Node.java   |    111 +
 .../config/SecondStorageModelSegment.java          |     60 +
 .../config/SecondStorageProjectModelSegment.java   |     41 +
 .../config/SecondStorageProperties.java            |     29 +
 .../secondstorage/config/SecondStorageSegment.java |     38 +
 .../secondstorage/database/DatabaseOperator.java   |     30 +
 .../kap/secondstorage/database/QueryOperator.java  |     25 +
 .../kap/secondstorage/ddl/AlterTable.java          |    119 +
 .../kap/secondstorage/ddl/CreateDatabase.java      |     47 +
 .../kap/secondstorage/ddl/CreateTable.java         |     76 +
 .../io/kyligence/kap/secondstorage/ddl/DDL.java    |     43 +
 .../kap/secondstorage/ddl/DropDatabase.java        |     48 +
 .../kyligence/kap/secondstorage/ddl/DropTable.java |     48 +
 .../kap/secondstorage/ddl/ExistsDatabase.java      |     37 +
 .../kap/secondstorage/ddl/ExistsTable.java         |     38 +
 .../kap/secondstorage/ddl/InsertInto.java          |     79 +
 .../kap/secondstorage/ddl/RenameTable.java         |     53 +
 .../io/kyligence/kap/secondstorage/ddl/Select.java |     78 +
 .../kap/secondstorage/ddl/ShowCreateDatabase.java  |     37 +
 .../kap/secondstorage/ddl/ShowCreateTable.java     |     39 +
 .../kap/secondstorage/ddl/ShowDatabases.java       |     27 +
 .../kap/secondstorage/ddl/ShowTables.java          |     41 +
 .../kap/secondstorage/ddl/exp/ColumnWithAlias.java |     88 +
 .../kap/secondstorage/ddl/exp/ColumnWithType.java  |     64 +
 .../kap/secondstorage/ddl/exp/GroupBy.java         |     35 +
 .../kap/secondstorage/ddl/exp/TableIdentifier.java |     50 +
 .../kap/secondstorage/ddl/visitor/BaseRender.java  |     27 +
 .../ddl/visitor/DefaultSQLRender.java              |    303 +
 .../secondstorage/ddl/visitor/RenderVisitor.java   |     61 +
 .../kap/secondstorage/ddl/visitor/Renderable.java  |     22 +
 .../secondstorage/enums/LockOperateTypeEnum.java   |     45 +
 .../kap/secondstorage/enums/LockTypeEnum.java      |    136 +
 .../SecondStorageDatabaseOperatorFactory.java      |     25 +
 .../factory/SecondStorageFactory.java              |     21 +
 .../factory/SecondStorageFactoryUtils.java         |     54 +
 .../factory/SecondStorageMetadataFactory.java      |     25 +
 .../factory/SecondStorageQueryOperatorFactory.java |     25 +
 .../secondstorage/metadata/HasLayoutElement.java   |     68 +
 .../kap/secondstorage/metadata/IManager.java       |     31 +
 .../kap/secondstorage/metadata/IManagerAware.java  |     25 +
 .../kap/secondstorage/metadata/Manager.java        |    149 +
 .../secondstorage/metadata/MetadataOperator.java   |     27 +
 .../kap/secondstorage/metadata/NodeGroup.java      |    127 +
 .../kap/secondstorage/metadata/PartitionType.java  |     23 +
 .../secondstorage/metadata/SegmentFileStatus.java  |     73 +
 .../kap/secondstorage/metadata/TableData.java      |    289 +
 .../kap/secondstorage/metadata/TableEntity.java    |     88 +
 .../kap/secondstorage/metadata/TableFlow.java      |    171 +
 .../kap/secondstorage/metadata/TablePartition.java |    113 +
 .../kap/secondstorage/metadata/TablePlan.java      |    162 +
 .../kap/secondstorage/metadata/WithLayout.java     |     22 +
 .../metadata/annotation/DataDefinition.java        |     21 +
 .../metadata/annotation/TableDefinition.java       |     30 +
 .../secondstorage/response/SecondStorageInfo.java  |     56 +
 .../secondstorage/response/SecondStorageNode.java  |     68 +
 .../secondstorage/response/SizeInNodeResponse.java |     38 +
 .../secondstorage/response/TableSyncResponse.java  |     72 +
 .../kap/secondstorage/util/ConvertUtils.java       |    124 +
 .../secondstorage/util/SecondStorageDateUtils.java |     58 +
 .../secondstorage/util/SecondStorageJobUtil.java   |     75 +
 .../secondstorage/util/SecondStorageSqlUtils.java  |     36 +
 .../apache/kylin/common/SecondStorageConfig.java   |     45 +
 .../main/java/org/apache/kylin/job/ProjectJob.java |     22 +
 .../job/SecondStorageCleanJobBuildParams.java      |     83 +
 .../kylin/job/SecondStorageCleanJobUtil.java       |     35 +
 .../kylin/job/SecondStorageJobParamUtil.java       |     94 +
 .../org/apache/kylin/job/SecondStorageJobUtil.java |    111 +
 .../apache/kylin/job/SecondStorageStepFactory.java |     51 +
 .../handler/AbstractSecondStorageJobHanlder.java   |     37 +
 .../handler/SecondStorageIndexCleanJobHandler.java |     49 +
 .../handler/SecondStorageModelCleanJobHandler.java |     46 +
 .../SecondStorageProjectCleanJobHandler.java       |     40 +
 .../SecondStorageSegmentCleanJobHandler.java       |     48 +
 .../SecondStorageSegmentLoadJobHandler.java        |    122 +
 .../kap/secondstorage/ColumnMapping.scala          |     23 +
 .../kap/secondstorage/SecondStorage.scala          |    174 +
 .../datasources/jdbc/v2/SecondStorageCatalog.scala |     74 +
 .../kyligence/kap/secondstorage/NameUtilTest.java  |     77 +
 .../secondstorage/SecondStorageConstantsTest.java  |     30 +
 .../secondstorage/SecondStorageLockUtilsTest.java  |     60 +
 .../kap/secondstorage/SecondStorageUtilTest.java   |    189 +
 .../kap/secondstorage/config/ClusterTest.java      |     68 +
 .../kap/secondstorage/config/ConfigOptionTest.java |     42 +
 .../config/DefaultSecondStoragePropertiesTest.java |     51 +
 .../config/SecondStorageModelSegmentTest.java      |     39 +
 .../kyligence/kap/secondstorage/ddl/DDLTest.java   |     85 +
 .../enums/LockOperateTypeEnumTest.java             |     56 +
 .../kap/secondstorage/enums/LockTypeEnumTest.java  |    148 +
 .../kap/secondstorage/metadata/NodeGroupTest.java  |     36 +
 .../response/TableSyncResponseTest.java            |     42 +
 .../kap/secondstorage/util/ConvertUtilsTest.java   |     79 +
 .../util/SecondStorageDateUtilsTest.java           |     41 +
 .../util/SecondStorageSqlUtilsTest.java            |     50 +
 .../kap/secondstorage/SecondStorageTest.scala      |    121 +
 .../kyligence/kap/secondstorage/TestStorage.scala  |     34 +
 src/server-base/pom.xml                            |    457 +
 .../open/OpenStreamingJobController.java           |    115 +
 src/server-base/src/main/resources/.gitignore      |      2 +
 .../src/main/resources/META-INF/spring.factories   |      1 +
 .../src/main/resources/applicationContext.xml      |     40 +
 src/server-base/src/main/resources/ehcache.xml     |     42 +
 .../src/main/resources/exception_to_code.json      |      8 +
 .../src/main/resources/kylinSecurity.xml           |    629 +
 .../KylinPropertySourceConfigurationTest.java      |     57 +
 .../initialize/ProcessStatusListenerTest.java      |     92 +
 .../config/initialize/SchedulerEventBusTest.java   |    273 +
 .../open/OpenStreamingJobControllerTest.java       |    168 +
 .../rest/metrics/QueryMetricsContextTest.java      |    575 +
 .../handler/AccelerateEventHandlerTest.java        |    116 +
 .../src/test/resources/kylin.properties            |     16 +
 .../default/table/DEFAULT.EMPTY_COLUMN.json        |      9 +
 .../ut_cache/metadata/_global/project/cache.json   |      6 +
 .../8c670664-8d05-466a-802f-83c023b56c77.json      |     36 +
 .../ef5e0663-feba-4ed2-b71c-21958122bbff.json      |     31 +
 .../ff5e0663-feba-4ed2-b71c-21958122bbff.json      |     31 +
 .../8c670664-8d05-466a-802f-83c023b56c77.json      |     64 +
 .../8c670664-8d05-466a-802f-83c023b56c77.json      |     66 +
 .../cache/table/DEFAULT.TEST_KYLIN_FACT.json       |     74 +
 .../test/resources/ut_ldap/ldap-config.properties  |     39 +
 .../src/test/resources/ut_ldap/ldap-server.ldif    |    127 +
 .../4a45dc4d-937e-43cc-8faa-34d59d4e11d2.json      |    266 +
 .../execute/d9a2b721-9916-4607-8047-148ceb2473b1   |     14 +
 .../table_desc/CASE_SENSITIVE.TEST_KYLIN_FACT.json |     69 +
 .../default/model_desc/model_join_full_load.json   |    152 +
 .../model_join_increment_fact_table1.json          |    163 +
 .../model_join_increment_fact_table2.json          |    152 +
 .../model_desc/model_self_join_increment.json      |    178 +
 .../cc_test/default/model_desc/nmodel_cc_test.json |    554 +
 .../_global/project/heterogeneous_segment_2.json   |     35 +
 ...gment_with_snapshot_large_than_input_bytes.json |     35 +
 .../heterogeneous_segment_without_snapshot.json    |     35 +
 .../4802b471-fb69-4b08-a45e-ab3e314e2f6c.json      |    272 +
 .../3f2860d5-0a4c-4f52-b27b-2627caafe769.json      |    213 +
 .../2805396d-4fe5-4541-8bc0-944caacaa1a3.json      |     23 +
 .../2b0b5bb9-df78-5817-5245-2a28c451035d.json      |     21 +
 .../a7cef448-34e9-4acf-8632-0a3db101cef4.json      |     21 +
 .../da9b8d84-bd69-455f-ab1a-4718d9d5b5a1.json      |     21 +
 .../3f2860d5-0a4c-4f52-b27b-2627caafe769.json      |     42 +
 .../3f2860d5-0a4c-4f52-b27b-2627caafe769.json      |    216 +
 .../table/DEFAULT.KYLIN_ACCOUNT.json               |     53 +
 .../table/DEFAULT.KYLIN_CAL_DT.json                |    529 +
 .../table/DEFAULT.KYLIN_CATEGORY_GROUPINGS.json    |    213 +
 .../table/DEFAULT.KYLIN_COUNTRY.json               |     44 +
 .../table/DEFAULT.KYLIN_SALES.json                 |    107 +
 .../table_exd/DEFAULT.KYLIN_ACCOUNT.json           |     18 +
 .../3f2860d5-0a4c-4f52-b27b-2627caafe769.json      |    213 +
 .../2805396d-4fe5-4541-8bc0-944caacaa1a3.json      |     23 +
 .../2b0b5bb9-df78-5817-5245-2a28c451035d.json      |     21 +
 .../a7cef448-34e9-4acf-8632-0a3db101cef4.json      |     21 +
 .../da9b8d84-bd69-455f-ab1a-4718d9d5b5a1.json      |     21 +
 .../3f2860d5-0a4c-4f52-b27b-2627caafe769.json      |     42 +
 .../3f2860d5-0a4c-4f52-b27b-2627caafe769.json      |    216 +
 .../table/DEFAULT.KYLIN_ACCOUNT.json               |     53 +
 .../table/DEFAULT.KYLIN_CAL_DT.json                |    529 +
 .../table/DEFAULT.KYLIN_CATEGORY_GROUPINGS.json    |    213 +
 .../table/DEFAULT.KYLIN_COUNTRY.json               |     44 +
 .../table/DEFAULT.KYLIN_SALES.json                 |    107 +
 .../table_exd/DEFAULT.KYLIN_ACCOUNT.json           |     18 +
 .../31a71d6b-49ac-4607-9dc5-d419d32a821c.json      |    213 +
 .../2805396d-4fe5-4541-8bc0-944caacaa1a3.json      |     23 +
 .../2b0b5bb9-df78-5817-5245-2a28c451035d.json      |     21 +
 .../a7cef448-34e9-4acf-8632-0a3db101cef4.json      |     21 +
 .../da9b8d84-bd69-455f-ab1a-4718d9d5b5a1.json      |     21 +
 .../31a71d6b-49ac-4607-9dc5-d419d32a821c.json      |     42 +
 .../31a71d6b-49ac-4607-9dc5-d419d32a821c.json      |    216 +
 .../table/DEFAULT.KYLIN_ACCOUNT.json               |     53 +
 .../table/DEFAULT.KYLIN_CAL_DT.json                |    529 +
 .../table/DEFAULT.KYLIN_CATEGORY_GROUPINGS.json    |    213 +
 .../table/DEFAULT.KYLIN_COUNTRY.json               |     44 +
 .../table/DEFAULT.KYLIN_SALES.json                 |    107 +
 .../table_exd/DEFAULT.KYLIN_ACCOUNT.json           |     18 +
 .../internal_measure.model_desc/nmodel_test.json   |    184 +
 .../nmodel_test_expected.json                      |      1 +
 .../metadata/_global/project/model_index_mix.json  |     32 +
 .../metadata/_global/project/original_project.json |     36 +
 .../metadata/_global/project/target_project.json   |     32 +
 .../1af229fb-bb2c-42c5-9663-2bd92b50a861.json      |     13 +
 .../7212bf0c-0716-4cef-b623-69c161981262.json      |     13 +
 .../8b5a2d39-304f-4a20-a9da-942f461534d8.json      |     13 +
 .../1af229fb-bb2c-42c5-9663-2bd92b50a861.json      |      1 +
 .../7212bf0c-0716-4cef-b623-69c161981262.json      |     20 +
 .../8b5a2d39-304f-4a20-a9da-942f461534d8.json      |     20 +
 .../1af229fb-bb2c-42c5-9663-2bd92b50a861.json      |      1 +
 .../7212bf0c-0716-4cef-b623-69c161981262.json      |    332 +
 .../8b5a2d39-304f-4a20-a9da-942f461534d8.json      |    332 +
 .../272f4c70-b65e-4a3d-ba0d-d73250f0e844.json      |     13 +
 .../272f4c70-b65e-4a3d-ba0d-d73250f0e844.json      |      1 +
 .../272f4c70-b65e-4a3d-ba0d-d73250f0e844.json      |    225 +
 .../model_index_mix/table/SSB.CUSTOMER.json        |     58 +
 .../model_index_mix/table/SSB.P_LINEORDER.json     |    108 +
 .../1e3cf0a8-26f5-487e-8298-6274dd545869.json      |     43 +
 .../1f0873db-ffb8-4690-ad41-5bd4bbdb0aab.json      |     43 +
 .../2ad0f57d-9a45-460e-843d-5994457d3331.json      |     43 +
 .../2d30c25d-4aa7-4d13-a8a9-202f35301633.json      |     43 +
 .../3069a6a5-b5d1-4594-9c86-ef61fb7a070c.json      |     43 +
 .../686a7e9a-3fd1-4f95-be9c-23d0248a2adf.json      |     43 +
 .../6e444b80-0019-430d-93ad-9eea3923c810.json      |     43 +
 .../761215ee-3f21-4d1a-aae5-3d0d9d6ede85.json      |     43 +
 .../8a75fe2a-ba0f-4efd-b387-c623a64e88ff.json      |     43 +
 .../a642d3c7-80d3-4bda-b3b0-cbdf8f096a95.json      |     43 +
 .../e281b411-19a6-4e38-a117-bfd09cb796be.json      |     43 +
 .../ff810fb9-55c4-4c45-9f8e-4235122a63d3.json      |     18 +
 .../1e3cf0a8-26f5-487e-8298-6274dd545869.json      |     59 +
 .../1f0873db-ffb8-4690-ad41-5bd4bbdb0aab.json      |     59 +
 .../2ad0f57d-9a45-460e-843d-5994457d3331.json      |     59 +
 .../2d30c25d-4aa7-4d13-a8a9-202f35301633.json      |     59 +
 .../3069a6a5-b5d1-4594-9c86-ef61fb7a070c.json      |     61 +
 .../686a7e9a-3fd1-4f95-be9c-23d0248a2adf.json      |     59 +
 .../6e444b80-0019-430d-93ad-9eea3923c810.json      |     59 +
 .../761215ee-3f21-4d1a-aae5-3d0d9d6ede85.json      |     59 +
 .../8a75fe2a-ba0f-4efd-b387-c623a64e88ff.json      |     59 +
 .../a642d3c7-80d3-4bda-b3b0-cbdf8f096a95.json      |     59 +
 .../e281b411-19a6-4e38-a117-bfd09cb796be.json      |     59 +
 .../ff810fb9-55c4-4c45-9f8e-4235122a63d3.json      |     56 +
 .../1e3cf0a8-26f5-487e-8298-6274dd545869.json      |    325 +
 .../1f0873db-ffb8-4690-ad41-5bd4bbdb0aab.json      |    325 +
 .../2ad0f57d-9a45-460e-843d-5994457d3331.json      |    325 +
 .../2d30c25d-4aa7-4d13-a8a9-202f35301633.json      |    325 +
 .../3069a6a5-b5d1-4594-9c86-ef61fb7a070c.json      |    325 +
 .../686a7e9a-3fd1-4f95-be9c-23d0248a2adf.json      |    325 +
 .../6e444b80-0019-430d-93ad-9eea3923c810.json      |    325 +
 .../761215ee-3f21-4d1a-aae5-3d0d9d6ede85.json      |    325 +
 .../8a75fe2a-ba0f-4efd-b387-c623a64e88ff.json      |    325 +
 .../a642d3c7-80d3-4bda-b3b0-cbdf8f096a95.json      |    325 +
 .../e281b411-19a6-4e38-a117-bfd09cb796be.json      |    325 +
 .../ff810fb9-55c4-4c45-9f8e-4235122a63d3.json      |    281 +
 .../original_project/table/SSB.CUSTOMER.json       |     57 +
 .../metadata/original_project/table/SSB.DATES.json |    103 +
 .../original_project/table/SSB.LINEORDER.json      |    103 +
 .../metadata/original_project/table/SSB.PART.json  |     63 +
 .../original_project/table/SSB.P_LINEORDER.json    |    108 +
 .../original_project/table/SSB.SUPPLIER.json       |     53 +
 .../rec/1af229fb-bb2c-42c5-9663-2bd92b50a861.json  |    165 +
 .../execute/d9a2b721-9916-4607-8047-148ceb2473b1   |     14 +
 .../ut_model_metadata/metastore_model_metadata.zip |    Bin 0 -> 44144 bytes
 ...l_metadata_c4a20039c16dfbb5dcc5610c5052d7b1.zip |    Bin 0 -> 44144 bytes
 ...l_metadata_c4a20039c16dfbb5dcc5610c5052d7b3.zip |    Bin 0 -> 44144 bytes
 ...3_17_48_49_40126DF6694B94066ED623AC84291D9E.zip |    Bin 0 -> 4212 bytes
 ...3_18_43_01_8E323F797DDE2989BEBECC747AE40257.zip |    Bin 0 -> 4071 bytes
 ...0_14_56_44_39201D01EBE7665483E2044D6B5FD9D0.zip |    Bin 0 -> 5005 bytes
 ...1_15_45_16_9D3BCD19FF5AF9D3163128B9DEE237F4.zip |    Bin 0 -> 6257 bytes
 ...1_16_40_43_61D23206229CEB0C078F24AAACADF5DB.zip |    Bin 0 -> 5112 bytes
 .../ut_model_metadata/ut_model_matadata.zip        |    Bin 0 -> 38039 bytes
 .../model_update/model_with_measure.json           |     66 +
 .../model_with_measure_change_alias.json           |     82 +
 .../model_with_measure_change_alias_twice.json     |     82 +
 .../model_update/model_with_multi_measures.json    |    188 +
 .../test/resources/ut_table_meta/defaultTableMetas |    232 +
 .../resources/ut_table_meta/defaultTableMetasV2    |    232 +
 src/server/pom.xml                                 |    458 +
 .../org/apache/kylin/rest/BootstrapServer.java     |    138 +
 .../org/apache/kylin/rest/HAConfiguration.java     |    120 +
 .../org/apache/kylin/rest/InitConfiguration.java   |     45 +
 .../java/org/apache/kylin/rest/JobNodeFilter.java  |    112 +
 .../java/org/apache/kylin/rest/LoadBalanced.java   |     33 +
 .../kylin/rest/ProjectBasedLoadBalancer.java       |     74 +
 .../apache/kylin/rest/ProxyUriTemplateHandler.java |     29 +
 .../org/apache/kylin/rest/QueryNodeFilter.java     |    352 +
 .../apache/kylin/rest/ZookeeperClusterManager.java |     91 +
 .../kylin/rest/ZookeeperHostInfoFetcher.java       |     40 +
 .../rest/discovery/KylinServiceDiscovery.java      |     40 +
 .../rest/discovery/KylinServiceDiscoveryCache.java |    222 +
 .../discovery/KylinServiceDiscoveryClient.java     |     90 +
 .../rest/health/FileSystemHealthIndicator.java     |     85 +
 .../rest/health/MetaStoreHealthIndicator.java      |    181 +
 .../src/main/resources/META-INF/spring.factories   |      2 +
 src/server/src/main/resources/application.yaml     |    120 +
 src/server/src/main/resources/config/config.yaml   |     45 +
 .../src/main/resources/config/config_library.csv   |    566 +
 .../src/main/resources/config/init.properties      |    453 +
 src/server/src/main/resources/log4j.properties     |     31 +
 src/server/src/main/resources/log4j2.xml           |     26 +
 .../script/schema-session-attributes-h2.sql        |     24 +
 .../script/schema-session-attributes-mysql.sql     |     24 +
 .../script/schema-session-attributes-pg.sql        |     24 +
 .../main/resources/script/schema-session-h2.sql    |     31 +
 .../main/resources/script/schema-session-mysql.sql |     31 +
 .../main/resources/script/schema-session-pg.sql    |     31 +
 .../kap/rest/ProjectBasedLoadBalancerTest.java     |    156 +
 .../org/apache/kylin/rest/BootstrapServerTest.java |     53 +
 .../org/apache/kylin/rest/HAConfigurationTest.java |     71 +
 .../kylin/rest/KylinPrepareEnvListenerTest.java    |     83 +
 .../kylin/rest/ProjectBasedLoadBalancerTest.java   |    154 +
 .../rest/health/FileSystemHealthIndicatorTest.java |     67 +
 .../rest/health/MetaStoreHealthIndicatorTest.java  |     68 +
 .../health/SparkSqlContextHealthIndicatorTest.java |     91 +
 src/source-hive/pom.xml                            |     95 +
 .../kylin/source/hive/BeelineHiveClient.java       |    226 +
 .../kylin/source/hive/BeelineOptionsProcessor.java |     47 +
 .../apache/kylin/source/hive/CLIHiveClient.java    |    198 +
 .../kylin/source/hive/HiveClientFactory.java       |     52 +
 .../apache/kylin/source/hive/HiveCmdBuilder.java   |    105 +
 .../kylin/source/hive/HiveMetadataExplorer.java    |    254 +
 .../apache/kylin/source/hive/HiveTableMeta.java    |     99 +
 .../kylin/source/hive/HiveTableMetaBuilder.java    |    130 +
 .../apache/kylin/source/hive/HiveTableReader.java  |    193 +
 .../org/apache/kylin/source/hive/IHiveClient.java  |     57 +
 .../org/apache/kylin/source/jdbc/H2Database.java   |    208 +
 .../source/hive/BeelineOptionsProcessorTest.java   |     56 +
 .../kylin/source/hive/HiveCmdBuilderTest.java      |     91 +
 .../source/hive/HiveMetadataExplorerTest.java      |     91 +
 src/spark-project/engine-build-sdk/pom.xml         |     60 +
 .../kap/engine/spark/job/EnviromentAdaptor.java    |     29 +
 .../kap/engine/spark/job/IJobProgressReport.java   |     37 +
 .../kap/engine/spark/job/ISparkJobHandler.java     |     47 +
 .../kap/engine/spark/job/ParamsConstants.java      |     29 +
 .../kap/engine/spark/job/SparkAppDescription.java  |     53 +
 src/spark-project/engine-spark/pom.xml             |    225 +
 .../apache/kylin/engine/spark/ExecutableUtils.java |     85 +
 .../kylin/engine/spark/NSparkCubingEngine.java     |     61 +
 .../engine/spark/application/SparkApplication.java |    620 +
 .../kylin/engine/spark/application/SparkEntry.java |     27 +
 .../engine/spark/builder/NBuildSourceInfo.java     |    126 +
 .../builder/PartitionDictionaryBuilderHelper.java  |     62 +
 .../engine/spark/job/DefaultEnviromentAdaptor.java |     34 +
 .../spark/job/DefaultSparkBuildJobHandler.java     |    241 +
 .../engine/spark/job/EmptyPlaceholderJob.java      |     46 +
 .../spark/job/ExecutableAddCuboidHandler.java      |     89 +
 .../spark/job/ExecutableAddSegmentHandler.java     |    129 +
 .../engine/spark/job/ExecutableHandlerFactory.java |     51 +
 .../spark/job/ExecutableMergeOrRefreshHandler.java |     50 +
 .../apache/kylin/engine/spark/job/JobStepType.java |    236 +
 .../engine/spark/job/NResourceDetectStep.java      |     82 +
 .../spark/job/NSparkCleanupAfterMergeStep.java     |     83 +
 .../kylin/engine/spark/job/NSparkCubingJob.java    |    355 +
 .../kylin/engine/spark/job/NSparkCubingStep.java   |    110 +
 .../kylin/engine/spark/job/NSparkExecutable.java   |    862 +
 .../kylin/engine/spark/job/NSparkMergingJob.java   |    192 +
 .../kylin/engine/spark/job/NSparkMergingStep.java  |    103 +
 .../spark/job/NSparkSnapshotBuildingStep.java      |    160 +
 .../kylin/engine/spark/job/NSparkSnapshotJob.java  |     99 +
 .../engine/spark/job/NSparkUpdateMetadataStep.java |    108 +
 .../kylin/engine/spark/job/NTableSamplingJob.java  |    195 +
 .../engine/spark/job/RestfulJobProgressReport.java |    120 +
 .../spark/job/SnapshotBuildFinishedEvent.java      |     37 +
 .../job/SparkCleanupTransactionalTableStep.java    |    119 +
 .../apache/kylin/engine/spark/job/StageType.java   |    251 +
 .../engine/spark/job/step/NStageForBuild.java      |     42 +
 .../engine/spark/job/step/NStageForMerge.java      |     42 +
 .../engine/spark/job/step/NStageForSnapshot.java   |     42 +
 .../spark/job/step/NStageForTableSampling.java     |     42 +
 .../job/step/NStageForWaitingForYarnResource.java  |     42 +
 .../spark/merger/AfterBuildResourceMerger.java     |    236 +
 .../merger/AfterMergeOrRefreshResourceMerger.java  |    200 +
 .../kylin/engine/spark/merger/MetadataMerger.java  |     44 +
 .../spark/merger/SparkJobMetadataMerger.java       |    219 +
 .../kylin/engine/spark/mockup/CsvSource.java       |    207 +
 .../apache/kylin/engine/spark/mockup/CsvTable.java |     49 +
 .../kylin/engine/spark/mockup/CsvTableReader.java  |     58 +
 .../engine/spark/mockup/external/FileCatalog.java  |    289 +
 .../spark/source/NSparkCubingSourceInput.java      |     77 +
 .../engine/spark/source/NSparkDataSource.java      |     79 +
 .../spark/source/NSparkMetadataExplorer.java       |    313 +
 .../kylin/engine/spark/source/NSparkTable.java     |     65 +
 .../kylin/engine/spark/source/NSparkTableMeta.java |    111 +
 .../spark/source/NSparkTableMetaBuilder.java       |    140 +
 .../spark/source/NSparkTableMetaExplorer.java      |    203 +
 .../engine/spark/source/NSparkTableReader.java     |     87 +
 .../kylin/engine/spark/source/SparkSqlUtil.java    |     66 +
 .../spark/stats/analyzer/TableAnalyzerJob.java     |    168 +
 .../spark/stats/utils/DateTimeCheckUtils.java      |     79 +
 .../spark/stats/utils/HiveTableRefChecker.java     |     34 +
 .../engine/spark/utils/ComputedColumnEvalUtil.java |    219 +
 .../spark/utils/HiveTransactionTableHelper.java    |    332 +
 .../kylin/cluster/ClusterManagerFactory.scala      |     37 +
 .../apache/kylin/cluster/K8sClusterManager.scala   |     65 +
 .../kylin/cluster/SchedulerInfoCmdHelper.scala     |    167 +
 .../kylin/cluster/StandaloneClusterManager.scala   |     22 +
 .../apache/kylin/cluster/YarnClusterManager.scala  |    206 +
 .../cluster/parser/CapacitySchedulerParser.scala   |     92 +
 .../kylin/cluster/parser/FairSchedulerParser.scala |     64 +
 .../kylin/cluster/parser/SchedulerParser.scala     |     43 +
 .../cluster/parser/SchedulerParserFactory.scala    |     43 +
 .../engine/spark/builder/CreateFlatTable.scala     |    449 +
 .../engine/spark/builder/DFBuilderHelper.scala     |    114 +
 .../engine/spark/builder/DFDictionaryBuilder.scala |    130 +
 .../engine/spark/builder/DFLayoutMergeAssist.java  |    110 +
 .../engine/spark/builder/DFTableEncoder.scala      |     92 +
 .../spark/builder/DictionaryBuilderHelper.java     |    167 +
 .../builder/NonEquiJoinConditionBuilder.scala      |    219 +
 .../engine/spark/builder/PartitionFlatTable.scala  |     69 +
 .../engine/spark/builder/SegmentFlatTable.scala    |    677 +
 .../engine/spark/builder/SnapshotBuilder.scala     |    483 +
 .../spark/builder/SnapshotPartitionBuilder.scala   |    146 +
 .../engine/spark/builder/StepCheckpoint.scala      |      3 +
 .../spark/builder/StepCheckpointSnapshot.scala     |     40 +
 .../engine/spark/builder/ZKJaasConfiguration.scala |     88 +
 .../engine/spark/cleanup/HDFSResourceCheck.scala   |     31 +
 .../kylin/engine/spark/job/BuildJobInfos.scala     |    253 +
 .../engine/spark/job/BuildLayoutWithUpdate.java    |    263 +
 .../kylin/engine/spark/job/CuboidAggregator.scala  |    293 +
 .../apache/kylin/engine/spark/job/DFBuildJob.java  |    485 +
 .../apache/kylin/engine/spark/job/DFChooser.scala  |    334 +
 .../apache/kylin/engine/spark/job/DFMergeJob.java  |    337 +
 .../kylin/engine/spark/job/FiltersUtil.scala       |    104 +
 .../kylin/engine/spark/job/FlatTableHelper.scala   |     70 +
 .../kylin/engine/spark/job/KylinBuildEnv.scala     |     61 +
 .../kylin/engine/spark/job/LogJobInfoUtils.scala   |     89 +
 .../kylin/engine/spark/job/MeasureEncoder.scala    |     70 +
 .../kylin/engine/spark/job/MeasureUDAF.scala       |    188 +
 .../kylin/engine/spark/job/MockedDFBuildJob.java   |    155 +
 .../kylin/engine/spark/job/PartitionExec.scala     |    181 +
 .../engine/spark/job/RDPartitionBuildExec.scala    |     96 +
 .../engine/spark/job/RDSegmentBuildExec.scala      |     99 +
 .../kylin/engine/spark/job/RDSegmentBuildJob.java  |     67 +
 .../kylin/engine/spark/job/ResourceDetect.java     |     27 +
 .../spark/job/ResourceDetectBeforeCubingJob.java   |    127 +
 .../spark/job/ResourceDetectBeforeMergingJob.java  |     88 +
 .../spark/job/ResourceDetectBeforeSampling.java    |     61 +
 .../kylin/engine/spark/job/SanityChecker.scala     |     83 +
 .../kylin/engine/spark/job/SegmentBuildJob.java    |    216 +
 .../kylin/engine/spark/job/SegmentExec.scala       |    317 +
 .../apache/kylin/engine/spark/job/SegmentJob.java  |    171 +
 .../kylin/engine/spark/job/SegmentMergeJob.java    |     84 +
 .../kylin/engine/spark/job/SnapshotBuildJob.java   |    240 +
 .../kylin/engine/spark/job/SparkJobConstants.java  |      9 +
 .../kylin/engine/spark/job/TableAnalysisJob.scala  |    117 +
 .../apache/kylin/engine/spark/job/TopNUDAF.scala   |    112 +
 .../apache/kylin/engine/spark/job/UdfManager.scala |    108 +
 .../kylin/engine/spark/job/exec/BuildExec.scala    |     48 +
 .../kylin/engine/spark/job/exec/MergeExec.scala    |     42 +
 .../kylin/engine/spark/job/exec/SnapshotExec.scala |     42 +
 .../engine/spark/job/exec/TableAnalyzerExec.scala  |     40 +
 .../kylin/engine/spark/job/stage/BuildParam.scala  |    173 +
 .../engine/spark/job/stage/InferiorGroup.scala     |     29 +
 .../kylin/engine/spark/job/stage/StageExec.scala   |    142 +
 .../engine/spark/job/stage/WaiteForResource.scala  |     83 +
 .../engine/spark/job/stage/build/BuildDict.scala   |     34 +
 .../engine/spark/job/stage/build/BuildLayer.scala  |     34 +
 .../engine/spark/job/stage/build/BuildStage.scala  |    575 +
 .../job/stage/build/FlatTableAndDictBase.scala     |    705 +
 .../job/stage/build/GatherFlatTableStats.scala     |     51 +
 .../spark/job/stage/build/GenerateFlatTable.scala  |     41 +
 .../stage/build/MaterializedFactTableView.scala    |     57 +
 .../spark/job/stage/build/RefreshColumnBytes.scala |     38 +
 .../spark/job/stage/build/RefreshSnapshots.scala   |     47 +
 .../stage/build/partition/PartitionBuildDict.scala |     33 +
 .../build/partition/PartitionBuildLayer.scala      |     33 +
 .../build/partition/PartitionBuildStage.scala      |    318 +
 .../partition/PartitionFlatTableAndDictBase.scala  |    102 +
 .../partition/PartitionGatherFlatTableStats.scala  |     68 +
 .../partition/PartitionGenerateFlatTable.scala     |     40 +
 .../PartitionMaterializedFactTableView.scala       |     60 +
 .../partition/PartitionRefreshColumnBytes.scala    |     37 +
 .../spark/job/stage/merge/MergeColumnBytes.scala   |     32 +
 .../spark/job/stage/merge/MergeFlatTable.scala     |     32 +
 .../spark/job/stage/merge/MergeIndices.scala       |     32 +
 .../engine/spark/job/stage/merge/MergeStage.scala  |    269 +
 .../partition/PartitionMergeColumnBytes.scala      |     32 +
 .../merge/partition/PartitionMergeFlatTable.scala  |     32 +
 .../merge/partition/PartitionMergeIndices.scala    |     32 +
 .../merge/partition/PartitionMergeStage.scala      |    131 +
 .../spark/job/stage/snapshots/SnapshotsBuild.scala |     36 +
 .../job/stage/tablesampling/AnalyzerTable.scala    |     36 +
 .../engine/spark/model/PartitionFlatTableDesc.java |     92 +
 .../engine/spark/model/SegmentFlatTableDesc.java   |    305 +
 .../engine/spark/scheduler/ClusterMonitor.scala    |     82 +
 .../kylin/engine/spark/scheduler/JobRuntime.scala  |     59 +
 .../engine/spark/scheduler/KylinJobEvent.scala     |     44 +
 .../engine/spark/scheduler/KylinJobListener.scala  |     23 +
 .../engine/spark/smarter/BuildAppStatusStore.scala |     37 +
 .../kylin/engine/spark/smarter/BuildListener.scala |     25 +
 .../kylin/engine/spark/smarter/DFSmartBuild.scala  |    270 +
 .../spark/smarter/IndexDependencyParser.scala      |    216 +
 .../engine/spark/storage/ParquetStorage.scala      |     35 +
 .../spark/streaming/util/MetricsManager.java       |      0
 .../kylin/engine/spark/utils/FileNames.scala       |     38 +
 .../kylin/engine/spark/utils/HDFSUtils.scala       |    107 +
 .../kylin/engine/spark/utils/SparkConfHelper.java  |    118 +
 .../engine/spark/utils/SparkConfRuleConstants.java |      9 +
 .../kylin/engine/spark/utils/SparkDataSource.scala |     52 +
 .../kylin/engine/spark/utils/SparkUtils.scala      |     53 +
 .../kylin/engine/spark/utils/ThreadUtils.scala     |     67 +
 .../org/apache/spark/application/JobMonitor.scala  |     94 +
 .../apache/spark/application/JobWorkSpace.scala    |    153 +
 .../org/apache/spark/application/JobWorker.scala   |     71 +
 .../spark/autoheal/ExceptionTerminator.scala       |    158 +
 .../org/apache/spark/conf/rule/SparkConfRule.scala |    252 +
 .../deploy/master/StandaloneClusterManager.scala   |    157 +
 .../apache/spark/scheduler/KylinJobEventLoop.scala |     48 +
 .../columnar/ColumnarCachedBatchSerializer.scala   |    822 +
 .../parquet/ShadeParquetRecordMaterializer.scala   |     39 +
 .../spark/tracker/BuildAppStatusTracker.scala      |     83 +
 .../org/apache/spark/tracker/BuildContext.scala    |     77 +
 .../apache/spark/tracker/IndexTaskContext.scala    |     30 +
 .../apache/spark/tracker/IndexTaskScheduler.scala  |     42 +
 .../scala/org/apache/spark/utils/LOGUtils.scala    |     39 +
 .../org/apache/spark/utils/ProxyThreadUtils.scala  |     43 +
 .../org/apache/spark/utils/ResourceUtils.scala     |    123 +
 .../kylin/engine/spark/IndexDataConstructor.java   |    289 +
 .../kylin/engine/spark/IndexDataWarehouse.java     |    135 +
 .../engine/spark/NLocalWithSparkSessionTest.java   |    306 +
 .../spark/application/SparkApplicationTest.java    |    190 +
 .../engine/spark/dict/NGlobalDictionaryV2Test.java |    192 +
 .../engine/spark/job/InferiorBuildJobTest.java     |    159 +
 .../kylin/engine/spark/job/JobManagerTest.java     |    454 +
 .../kylin/engine/spark/job/JobStepFactoryTest.java |    214 +
 .../kylin/engine/spark/job/MockResumeBuildJob.java |     66 +
 .../engine/spark/job/MockSparkTestExecutable.java  |     63 +
 .../spark/job/NSparkCubingJobOnYarnTest.java       |    134 +
 .../engine/spark/job/NSparkCubingJobTest.java      |    963 +
 .../engine/spark/job/NSparkCubingUtilTest.java     |    124 +
 .../engine/spark/job/NSparkExecutableTest.java     |    178 +
 .../engine/spark/job/NSparkSnapshotJobTest.java    |    250 +
 .../engine/spark/job/NTableSamplingJobTest.java    |    213 +
 .../job/ResourceDetectBeforeCubingJobTest.java     |     99 +
 .../engine/spark/job/SparkBuildJobHandlerTest.java |     88 +
 .../SparkCleanupTransactionalTableStepTest.java    |     85 +
 .../kylin/engine/spark/mockup/CsvSourceTest.java   |    127 +
 .../spark/mockup/external/UBSViewCatalog.java      |     92 +
 ...parkCubingSourceInputBySparkDataSourceTest.java |     98 +
 .../spark/source/NSparkCubingSourceInputTest.java  |     68 +
 .../spark/source/NSparkMetadataExplorerTest.java   |    171 +
 .../engine/spark/source/NSparkSourceTest.java      |     99 +
 .../engine/spark/source/NSparkTableReaderTest.java |     45 +
 .../engine/spark/source/SparkSqlUtilTest.java      |     52 +
 .../spark/stats/analyzer/TableAnalyzerTest.java    |    152 +
 .../spark/stats/utils/DateTimeCheckUtilsTest.java  |     35 +
 .../spark/utils/ComputedColumnEvalUtilTest.java    |    262 +
 .../spark/utils/HiveTableRefCheckerTest.java       |     57 +
 .../utils/HiveTransactionTableHelperTest.java      |    292 +
 .../kylin/engine/spark/utils/NUtilsTest.java       |     51 +
 .../engine/spark/utils/SparkConfHelperTest.java    |    400 +
 .../engine-spark/src/test/resources/data/ssb.csv   |     10 +
 .../engine-spark/src/test/resources/flattable.csv  |      1 +
 .../schedulerInfo/capacitySchedulerInfo.json       |   1061 +
 .../resources/schedulerInfo/fairSchedulerInfo.json |    225 +
 .../schedulerInfo/mockCapacitySchedulerInfo.json   |   3870 +
 .../engine-spark/src/test/resources/ssb/UUID       |    Bin 0 -> 38 bytes
 .../src/test/resources/ssb/cube/ssb.json           |     15 +
 .../src/test/resources/ssb/cube_desc/ssb.json      |    239 +
 .../src/test/resources/ssb/model_desc/ssb.json     |     63 +
 .../src/test/resources/ssb/project/ssb.json        |     23 +
 .../src/test/resources/ssb/table/SSB.CUSTOMER.json |     41 +
 .../src/test/resources/ssb/table/SSB.DATES.json    |     77 +
 .../src/test/resources/ssb/table/SSB.PART.json     |     45 +
 .../test/resources/ssb/table/SSB.P_LINEORDER.json  |     82 +
 .../src/test/resources/ssb/table/SSB.SUPPLIER.json |     38 +
 .../engine-spark/src/test/resources/yarn-site.xml  |    558 +
 .../kylin/cluster/TestSchedulerInfoCmdHelper.scala |     55 +
 .../scala/org/apache/kylin/cluster/TestUtils.scala |     37 +
 .../parser/TestCapacitySchedulerParser.scala       |     68 +
 .../cluster/parser/TestFairSchedulerParser.scala   |     48 +
 .../parser/TestSchedulerParserFactory.scala        |     36 +
 .../engine/spark/builder/MockSnapshotBuilder.scala |     33 +
 .../engine/spark/builder/TestClusterMonitor.scala  |    198 +
 .../engine/spark/builder/TestCreateFlatTable.scala |    136 +
 .../kylin/engine/spark/builder/TestDFChooser.scala |    213 +
 .../spark/builder/TestDimensionTableStat.scala     |     66 +
 .../engine/spark/builder/TestGlobalDictBuild.scala |    208 +
 .../engine/spark/builder/TestInferFilters.scala    |    101 +
 .../TestPartitionDictionaryBuilderHelper.scala     |     55 +
 .../spark/builder/TestSegmentFlatTable.scala       |     98 +
 .../engine/spark/builder/TestSnapshotBuilder.scala |    132 +
 .../kylin/engine/spark/job/TestDFBuildJob.scala    |    150 +
 .../engine/spark/job/TestSparkCubingStep.scala     |     40 +
 .../kylin/engine/spark/job/TestTopNUDAF.scala      |     85 +
 .../kylin/engine/spark/job/TestUdfManager.scala    |     90 +
 .../engine/spark/job/stage/BuildParamTest.scala    |     61 +
 .../spark/scheduler/ClusterMonitorTest.scala       |    154 +
 .../spark/source/NSparkTableMetaExplorerTest.scala |    191 +
 .../kylin/engine/spark/utils/HDFSUtilsTest.scala   |     78 +
 .../kylin/engine/spark/utils/SparkUtilsTest.scala  |     46 +
 .../engine/spark/utils/TestJobMetricsUtils.scala   |    175 +
 .../kylin/engine/spark/utils/TestThreadUtils.scala |     70 +
 .../apache/spark/application/TestJobMonitor.scala  |    390 +
 .../spark/application/TestJobWorkSpace.scala       |     65 +
 .../apache/spark/application/TestJobWorker.scala   |    126 +
 .../sql/hive/utils/TestResourceDetectUtils.scala   |    113 +
 .../hive/utils/TestResourceDetectUtilsByMock.scala |     63 +
 ...estResourceDetectUtilsWithExternalCatalog.scala |     76 +
 .../spark/sql/newSession/KylinSessionTest2.scala   |     85 +
 .../spark/sql/newSession/MetaExplorerTest.scala    |    185 +
 .../sql/newSession/NSparkDataSourceSuite.scala     |    119 +
 .../spark/sql/newSession/OnlyBuildTest.scala       |     73 +
 .../apache/spark/sql/newSession/UBSViewTest.scala  |     75 +
 .../org/apache/spark/sql/newSession/V1Build.scala  |     25 +
 .../sql/newSession/WithKylinExternalCatalog.scala  |     86 +
 .../org/apache/spark/utils/TestResourceUtils.scala |    225 +
 src/spark-project/examples/buildKylinFact.zip      |    Bin 0 -> 12326261 bytes
 src/spark-project/source-jdbc/pom.xml              |    119 +
 .../kylin/source/jdbc/AbstractJdbcRelation.scala   |     98 +
 .../kylin/source/jdbc/DefaultSourceConnector.java  |     52 +
 .../apache/kylin/source/jdbc/ISourceConnector.java |     30 +
 .../org/apache/kylin/source/jdbc/JdbcExplorer.java |    185 +
 .../org/apache/kylin/source/jdbc/JdbcSource.java   |    103 +
 .../apache/kylin/source/jdbc/JdbcSourceInput.java  |     65 +
 .../org/apache/kylin/source/jdbc/JdbcTable.java    |     60 +
 .../apache/kylin/source/jdbc/JdbcTableReader.java  |    126 +
 .../src/main/resources/datasource/testing.xml      |    122 +
 .../apache/kylin/source/jdbc/JdbcExplorerTest.java |     82 +
 .../kylin/source/jdbc/JdbcSourceInputTest.java     |     66 +
 .../apache/kylin/source/jdbc/JdbcSourceTest.java   |     84 +
 .../org/apache/kylin/source/jdbc/JdbcTestBase.java |     53 +
 src/spark-project/sparder/pom.xml                  |    204 +
 .../kylin/query/asyncprofiler/AsyncProfiler.java   |     89 +
 .../query/mask/CompositeQueryResultMasks.java      |     55 +
 .../java/org/apache/kylin/query/mask/MaskUtil.java |     86 +
 .../kylin/query/mask/QueryDependentColumnMask.java |    411 +
 .../apache/kylin/query/mask/QueryResultMask.java   |     32 +
 .../apache/kylin/query/mask/QueryResultMasks.java  |     54 +
 .../kylin/query/mask/QuerySensitiveDataMask.java   |    314 +
 .../pushdown/JdbcPushDownConnectionManager.java    |     86 +
 .../query/pushdown/PushDownRunnerJdbcImpl.java     |    112 +
 .../query/pushdown/PushDownRunnerSparkImpl.java    |     80 +
 .../kylin/query/pushdown/PushdownResponse.java     |     47 +
 .../kylin/query/pushdown/SparkSubmitter.java       |     76 +
 .../org/apache/kylin/query/util/LoadCounter.java   |    110 +
 .../java/org/apache/kylin/query/util/LoadDesc.java |     43 +
 .../apache/kylin/query/util/PartitionsFilter.java  |     64 +
 .../kylin/query/util/SparkJobTraceMetric.java      |     52 +
 .../main/java/org/apache/spark/sql/DDLDesc.java    |     48 +
 .../async-profiler-lib/linux64/libasyncProfiler.so |    Bin 0 -> 314098 bytes
 .../async-profiler-lib/macOS/libasyncProfiler.so   |    Bin 0 -> 239460 bytes
 .../asyncprofiler/AsyncProfilerDriverPlugin.scala  |     43 +
 .../AsyncProfilerExecutorPlugin.scala              |     83 +
 .../asyncprofiler/AsyncProfilerSparkPlugin.scala   |     28 +
 .../query/asyncprofiler/AsyncProfilerTool.scala    |     82 +
 .../kylin/query/asyncprofiler/AsyncProfiling.scala |    163 +
 .../apache/kylin/query/asyncprofiler/Message.scala |     71 +
 .../scala/org/apache/kylin/query/package.scala     |     43 +
 .../kylin/query/pushdown/SparkSqlClient.scala      |    181 +
 .../kylin/query/runtime/CalciteToSparkPlaner.scala |    169 +
 .../kylin/query/runtime/ExpressionConverter.scala  |    481 +
 .../org/apache/kylin/query/runtime/MockEngine.java |     15 +
 .../kylin/query/runtime/SparderRexVisitor.scala    |    347 +
 .../apache/kylin/query/runtime/SparkEngine.java    |     73 +
 .../kylin/query/runtime/plan/AggregatePlan.scala   |    282 +
 .../kylin/query/runtime/plan/FilterPlan.scala      |     38 +
 .../apache/kylin/query/runtime/plan/JoinPlan.scala |    112 +
 .../kylin/query/runtime/plan/LimitPlan.scala       |     46 +
 .../kylin/query/runtime/plan/MinusPlan.scala       |     36 +
 .../kylin/query/runtime/plan/ProjectPlan.scala     |     67 +
 .../kylin/query/runtime/plan/ResultPlan.scala      |    405 +
 .../apache/kylin/query/runtime/plan/SortPlan.scala |     79 +
 .../kylin/query/runtime/plan/TableScanPlan.scala   |    440 +
 .../kylin/query/runtime/plan/UnionPlan.scala       |     45 +
 .../kylin/query/runtime/plan/ValuesPlan.scala      |     44 +
 .../kylin/query/runtime/plan/WindowPlan.scala      |    341 +
 .../org/apache/kylin/query/util/LogExtractor.scala |     88 +
 .../apache/kylin/query/util/RuntimeHelper.scala    |    145 +
 .../kylin/query/util/SparderDerivedUtil.scala      |    255 +
 .../apache/kylin/query/util/SparkJobTrace.scala    |    161 +
 .../kylin/query/util/SparkQueryJobManager.scala    |     39 +
 .../util/UnsupportedSparkFunctionException.java    |     41 +
 .../deploy/history/HistoryServerBuilder.scala      |     43 +
 .../scala/org/apache/spark/metrics/AppStatus.scala |    100 +
 .../spark/metrics/SparkPrometheusMetrics.scala     |    112 +
 .../spark/scheduler/SparkUIZombieJobCleaner.scala  |     90 +
 .../scala/org/apache/spark/sql/DdlOperation.scala  |    151 +
 .../scala/org/apache/spark/sql/KapFunctions.scala  |    278 +
 .../apache/spark/sql/KylinDataFrameManager.scala   |    122 +
 .../scala/org/apache/spark/sql/KylinSession.scala  |    408 +
 .../scala/org/apache/spark/sql/SparderEnv.scala    |    349 +
 .../org/apache/spark/sql/SparkOperation.scala      |    104 +
 .../sql/catalyst/expressions/ExpressionUtils.scala |    138 +
 .../sql/catalyst/expressions/KapExpresssions.scala |    790 +
 .../spark/sql/catalyst/util/KapDateTimeUtils.scala |    188 +
 .../org/apache/spark/sql/derived/DerivedInfo.scala |     40 +
 .../sql/execution/utils/SchemaProcessor.scala      |    213 +
 .../sql/hive/KylinHiveSessionStateBuilder.scala    |     74 +
 .../sql/hive/KylinHiveSessionStateBuilderV31.scala |     55 +
 .../apache/spark/sql/hive/QueryMetricUtils.scala   |     91 +
 .../spark/sql/manager/SparderLookupManager.scala   |    107 +
 .../org/apache/spark/sql/udf/DictEncodeImpl.scala  |     55 +
 .../spark/sql/udf/IntersectCountByColImpl.scala    |     36 +
 .../org/apache/spark/sql/udf/SparderAggFun.scala   |    179 +
 .../spark/sql/udf/SparderExternalAggFunc.scala     |    174 +
 .../org/apache/spark/sql/udf/SplitPartImpl.scala   |     35 +
 .../apache/spark/sql/udf/SubtractBitmapImpl.scala  |     67 +
 .../apache/spark/sql/udf/TimestampAddImpl.scala    |    111 +
 .../apache/spark/sql/udf/TimestampDiffImpl.scala   |     83 +
 .../org/apache/spark/sql/udf/TruncateImpl.scala    |     60 +
 .../org/apache/spark/sql/udf/UdfManager.scala      |     90 +
 .../org/apache/spark/util/KylinReflectUtils.scala  |     66 +
 .../query/pushdown/PushDownRunnerJdbcImplTest.java |    132 +
 .../pushdown/PushDownRunnerSparkImplTest.java      |    189 +
 .../query/pushdown/PushdownJobCancelTest.java      |    118 +
 .../kylin/query/pushdown/SparderTypeUtilTest.java  |    143 +
 .../kylin/query/runtime/plan/TestResultPlan.java   |    252 +
 .../apache/kylin/query/util/SparkJobTraceTest.java |     77 +
 .../sparder/src/test/resources/fairscheduler.xml   |     56 +
 ...0-cc932730-6c54-469e-a7ca-5c6e497a9c59-c000.csv |      3 +
 ...096-d1d6-4c3c-a398-20b9b8daadef-c000.snappy.orc |    Bin 0 -> 448 bytes
 ...8aa6-4cb6-94a6-71d167c428e8-c000.snappy.parquet |    Bin 0 -> 879 bytes
 ...0-f87e3fb7-c4fb-48c1-84e1-b148bf15746d-c000.csv |      3 +
 .../query-limit-fair-scheduler.xml.template        |     60 +
 .../resources/test-query-limit-fair-scheduler.xml  |     60 +
 .../kylin/query/runtime/plan/ResultTypeTest.scala  |     34 +
 .../deploy/history/HistoryServerBuilderTest.scala  |     35 +
 .../spark/metrics/SparkPrometheusMetricsTest.scala |     76 +
 .../org/apache/spark/sql/BooleanTypeTest.scala     |     34 +
 .../org/apache/spark/sql/ColumnBatchTest.scala     |     91 +
 .../org/apache/spark/sql/CountDistinctTest.scala   |    244 +
 .../org/apache/spark/sql/KapFunctionTest.scala     |     60 +
 .../scala/org/apache/spark/sql/KapQueryUtils.scala |     69 +
 .../org/apache/spark/sql/KylinSessionTest.scala    |    245 +
 .../org/apache/spark/sql/SparderEnvTest.scala      |    121 +
 .../org/apache/spark/sql/SparderTypeUtilTest.scala |    102 +
 .../org/apache/spark/sql/SparkTimezoneTest.scala   |     79 +
 .../spark/sql/execution/SparkJoinSuite.scala       |   1376 +
 .../sql/execution/SparkQueryMetricUtilsSuite.scala |    225 +
 .../sql/execution/utils/SchemaProcessorTest.scala  |     30 +
 .../spark/sql/hive/ReplaceLocationRuleTest.scala   |     99 +
 .../org/apache/spark/sql/udf/CeilFloorTest.scala   |    120 +
 .../apache/spark/sql/udf/TimestampAddTest.scala    |    163 +
 .../apache/spark/sql/udf/TimestampDiffTest.scala   |    221 +
 .../org/apache/spark/sql/udf/TruncateTest.scala    |     88 +
 src/spark-project/spark-common/pom.xml             |    163 +
 .../kylin/engine/spark/utils/Repartitioner.java    |    191 +
 .../common/logging/AbstractHdfsLogAppender.java    |    452 +
 .../common/logging/SparkDriverHdfsLogAppender.java |    138 +
 .../logging/SparkDriverHdfsRollingLogAppender.java |    150 +
 .../logging/SparkExecutorHdfsLogAppender.java      |    288 +
 .../SparkExecutorHdfsRollingLogAppender.java       |    272 +
 .../org/apache/kylin/cluster/IClusterManager.scala |     58 +
 .../kylin/engine/spark/job/NSparkCubingUtil.java   |    238 +
 .../kylin/engine/spark/job/TableMetaManager.scala  |     37 +
 .../kylin/engine/spark/utils/JavaOptionals.scala   |     43 +
 .../kylin/engine/spark/utils/JobMetrics.scala      |     46 +
 .../kylin/engine/spark/utils/JobMetricsUtils.scala |    154 +
 .../apache/kylin/engine/spark/utils/LogEx.scala    |     73 +
 .../kylin/engine/spark/utils/StorageUtils.scala    |    158 +
 .../apache/kylin/query/SQLPushDownExtensions.scala |     36 +
 .../src/main/scala/org/apache/spark/Summary.scala  |    215 +
 .../org/apache/spark/dict/NBucketDictionary.java   |    113 +
 .../spark/dict/NGlobalDictBuilderAssist.scala      |     72 +
 .../apache/spark/dict/NGlobalDictHDFSStore.java    |    310 +
 .../org/apache/spark/dict/NGlobalDictMetaInfo.java |     54 +
 .../org/apache/spark/dict/NGlobalDictS3Store.java  |    137 +
 .../org/apache/spark/dict/NGlobalDictStore.java    |     72 +
 .../apache/spark/dict/NGlobalDictStoreFactory.java |     66 +
 .../org/apache/spark/dict/NGlobalDictionaryV2.java |    138 +
 .../apache/spark/sql/DataFrameEnhancement.scala    |     31 +
 .../apache/spark/sql/LayoutEntityConverter.scala   |    167 +
 .../org/apache/spark/sql/SparderConstants.scala    |     48 +
 .../org/apache/spark/sql/SparderTypeUtil.scala     |    534 +
 .../optimizer/ConvertInnerJoinToSemiJoin.scala     |     75 +
 .../read/sqlpushdown/NotSupportPushDown.java       |     28 +
 .../connector/read/sqlpushdown/SQLStatement.java   |     25 +
 .../connector/read/sqlpushdown/SupportsSQL.java    |     33 +
 .../read/sqlpushdown/SupportsSQLPushDown.java      |     57 +
 .../sql/datasource/storage/StorageStore.scala      |    336 +
 .../datasource/storage/StorageStoreFactory.scala   |     28 +
 ...UnsafelyInsertIntoHadoopFsRelationCommand.scala |     67 +
 .../sql/execution/KylinFileSourceScanExec.scala    |    295 +
 .../sql/execution/LayoutFileSourceScanExec.scala   |    544 +
 .../execution/datasource/AlignmentTableStats.scala |     66 +
 .../sql/execution/datasource/FilePruner.scala      |    767 +
 .../execution/datasource/KylinSourceStrategy.scala |    150 +
 .../sql/execution/datasource/LayoutFileIndex.scala |    109 +
 .../datasource/LayoutFileSourceStrategy.scala      |    228 +
 .../datasource/ResetShufflePartition.scala         |     41 +
 .../datasource/ShardFileStatusCache.scala          |     45 +
 .../datasources/jdbc/ClickHouseDialect.scala       |    172 +
 .../execution/datasources/jdbc/ShardJDBCUtil.scala |     32 +
 .../jdbc/ShardJdbcRelationProvider.scala           |     44 +
 .../execution/datasources/jdbc/ShardOptions.scala  |     51 +
 .../v2/PostV2ScanRelationPushDown.scala            |     86 +
 .../datasources/v2/PreV2ScanRelationPushDown.scala |     32 +
 .../datasources/v2/jdbc/ShardJDBCScanBuilder.scala |     46 +
 .../datasources/v2/jdbc/ShardJDBCTable.scala       |     32 +
 .../v2/jdbc/ShardJDBCTableCatalog.scala            |     88 +
 .../datasources/v2/pushdown/PushQuery.scala        |      0
 .../v2/pushdown/sql/PushDownAggUtils.scala         |      0
 .../datasources/v2/pushdown/sql/SQLBuilder.scala   |      0
 .../v2/pushdown/sql/SingleSQLStatement.scala       |      0
 .../spark/sql/hive/utils/ResourceDetectUtils.scala |    260 +
 .../apache/spark/sql/sources/NBaseRelation.scala   |     24 +
 .../spark/sql/udaf/ApproxCountDistinct.scala       |    212 +
 .../apache/spark/sql/udaf/BitmapSerAndDeSer.scala  |     76 +
 .../spark/sql/udaf/IntersectBitmapCounter.scala    |     73 +
 .../org/apache/spark/sql/udaf/IntersectCount.scala |    223 +
 .../spark/sql/udaf/NullSafeValueSerializer.scala   |    169 +
 .../apache/spark/sql/udaf/OptIntersectCount.scala  |    195 +
 .../org/apache/spark/sql/udaf/Percentile.scala     |    129 +
 .../spark/sql/udaf/PreciseCountDistinct.scala      |    407 +
 .../org/apache/spark/sql/udaf/SingleValueAgg.scala |     91 +
 .../scala/org/apache/spark/sql/udaf/TopN.scala     |    221 +
 .../engine/spark/utils/RepartitionerTest.java      |     96 +
 .../apache/spark/sql/common/DebugFileSystem.scala  |    133 +
 .../apache/spark/sql/common/IndexRTPCHSource.scala |     29 +
 .../apache/spark/sql/common/LocalMetadata.scala    |     66 +
 .../apache/spark/sql/common/ParquetSSBSource.scala |    165 +
 .../spark/sql/common/ParquetTPCHSource.scala       |    245 +
 .../spark/sql/common/SharedSparkSession.scala      |    151 +
 .../spark/sql/common/SparderBaseFunSuite.scala     |    159 +
 .../apache/spark/sql/common/SparderQueryTest.scala |    244 +
 .../org/apache/spark/sql/common/TPCHSource.scala   |    204 +
 .../scala/org/apache/spark/MockDataEntity.scala    |    168 +
 .../scala/org/apache/spark/TestLocalLimit.scala    |     39 +
 .../test/scala/org/apache/spark/TestSummary.scala  |     79 +
 .../ConvertInnerJoinToSemiJoinSuite.scala          |    101 +
 .../sql/execution/AlignmentTableStatsSuite.scala   |     48 +
 .../sql/execution/ResourceDetectUtilsSuite.scala   |     50 +
 .../datasources/jdbc/ShardJDBCSuite.scala          |     74 +
 .../jdbc/ShardJDBCWithoutShardSuite.scala          |    106 +
 .../datasources/jdbc/v2/ShardJDBCSuite.scala       |     74 +
 .../jdbc/v2/ShardJDBCWithoutShardSuite.scala       |      0
 .../spark/sql/udaf/IntersectCountSuite.scala       |    150 +
 .../spark/sql/udaf/OptIntersectCountSuite.scala    |     57 +
 .../org/apache/spark/sql/udaf/UDAFFunSuite.scala   |    109 +
 src/streaming-service/pom.xml                      |    106 +
 .../kylin/rest/request/StreamingJobActionEnum.java |     42 +
 .../rest/request/StreamingJobExecuteRequest.java   |     35 +
 .../kylin/rest/request/StreamingJobFilter.java     |     57 +
 .../rest/request/StreamingJobParamsRequest.java    |     38 +
 .../response/StreamingJobDataStatsResponse.java    |     41 +
 .../kylin/rest/response/StreamingJobResponse.java  |     63 +
 .../kylin/rest/service/StreamingJobService.java    |    557 +
 .../rest/service/StreamingJobServiceTest.java      |   1023 +
 .../src/test/resources/applicationContext.xml      |     40 +
 .../src/test/resources/kylinSecurity.xml           |    623 +
 src/streaming/pom.xml                              |    193 +
 .../org/apache/kylin/kafka/CollectKafkaStats.java  |    209 +
 .../org/apache/kylin/kafka/KafkaTableUtil.java     |    159 +
 .../org/apache/kylin/kafka/util/KafkaClient.java   |    108 +
 .../apache/kylin/parser/AbstractTimeParser.java    |     36 +
 .../org/apache/kylin/parser/DateTimeParser.java    |     63 +
 .../org/apache/kylin/parser/DefaultTimeParser.java |     61 +
 .../org/apache/kylin/parser/StreamingParser.java   |    140 +
 .../apache/kylin/parser/TimedJsonStreamParser.java |    203 +
 .../kylin/streaming/app/StreamingApplication.java  |    335 +
 .../streaming/app/StreamingBuildApplication.java   |     52 +
 .../streaming/app/StreamingMergeApplication.java   |     96 +
 .../kylin/streaming/app/StreamingMergeEntry.java   |    341 +
 .../streaming/constants/StreamingConstants.java    |     94 +
 .../streaming/event/StreamingJobDropEvent.java     |     33 +
 .../streaming/event/StreamingJobKillEvent.java     |     33 +
 .../event/StreamingJobMetaCleanEvent.java          |     31 +
 .../streaming/jobs/AbstractSparkJobLauncher.java   |    102 +
 .../streaming/jobs/GracefulStopInterface.java      |     25 +
 .../kylin/streaming/jobs/SparkJobLauncher.java     |     31 +
 .../kylin/streaming/jobs/StreamingDFBuildJob.java  |    180 +
 .../kylin/streaming/jobs/StreamingDFMergeJob.java  |     69 +
 .../kylin/streaming/jobs/StreamingJobListener.java |    147 +
 .../kylin/streaming/jobs/StreamingJobUtils.java    |    110 +
 .../streaming/jobs/StreamingSegmentManager.java    |     98 +
 .../apache/kylin/streaming/jobs/SyncMerger.java    |    114 +
 .../streaming/jobs/impl/StreamingJobLauncher.java  |    398 +
 .../jobs/scheduler/StreamingJobStatusWatcher.java  |    186 +
 .../jobs/scheduler/StreamingScheduler.java         |    384 +
 .../streaming/jobs/thread/StreamingJobRunner.java  |     67 +
 .../streaming/manager/StreamingJobManager.java     |    123 +
 .../kylin/streaming/merge/CatchupMergePolicy.java  |     66 +
 .../apache/kylin/streaming/merge/MergePolicy.java  |     59 +
 .../kylin/streaming/merge/NormalMergePolicy.java   |     66 +
 .../kylin/streaming/merge/PeakMergePolicy.java     |     73 +
 .../metadata/BuildLayoutWithRestUpdate.java        |     82 +
 .../kylin/streaming/metadata/StreamingJobMeta.java |    140 +
 .../streaming/metadata/StreamingMessageRow.java    |     62 +
 .../streaming/request/LayoutUpdateRequest.java     |     48 +
 .../request/StreamingJobStatsRequest.java          |     73 +
 .../request/StreamingJobUpdateRequest.java         |     56 +
 .../streaming/request/StreamingRequestHeader.java  |     45 +
 .../streaming/request/StreamingSegmentRequest.java |     59 +
 .../apache/kylin/streaming/rest/RestSupport.java   |    216 +
 .../kylin/streaming/util/JobExecutionIdHolder.java |     56 +
 .../org/apache/kylin/streaming/util/JobKiller.java |    187 +
 .../kylin/streaming/util/MetaInfoUpdater.java      |    116 +
 .../apache/kylin/source/kafka/KafkaExplorer.java   |     35 +
 .../kylin/source/kafka/NSparkKafkaSource.scala     |    132 +
 .../kylin/streaming/CreateStreamingFlatTable.scala |    173 +
 .../org/apache/kylin/streaming/OffsetManager.scala |     67 +
 .../kylin/streaming/PartitionRowIterator.scala     |     97 +
 .../kylin/streaming/StreamingCommitter.scala       |     44 +
 .../kylin/streaming/app/StreamingEntry.scala       |    295 +
 .../kylin/streaming/common/BuildJobEntry.scala     |     42 +
 .../apache/kylin/streaming/common/JobEntry.scala   |     34 +
 .../kylin/streaming/common/MergeJobEntry.scala     |     46 +
 .../kylin/streaming/common/MicroBatchEntry.scala   |     36 +
 .../org/apache/kylin/kafka/KafkaTableUtilTest.java |    357 +
 .../apache/kylin/kafka/NSparkKafkaSourceTest.java  |    148 +
 .../apache/kylin/kafka/util/KafkaClientTest.java   |    141 +
 .../kylin/parser/AbstractTimeParserTestBase.java   |     31 +
 .../apache/kylin/parser/DateTimeParserTest.java    |    109 +
 .../apache/kylin/parser/DefaultTimeParserTest.java |     76 +
 .../kylin/parser/TimedJsonStreamParserTest.java    |    285 +
 .../streaming/app/StreamingApplicationTest.java    |    172 +
 .../kylin/streaming/app/StreamingEntryTest.java    |    551 +
 .../jobs/CreateStreamingFlatTableTest.java         |     89 +
 .../streaming/jobs/PartitionRowIteratorTest.java   |    125 +
 .../streaming/jobs/StreamingDFBuildJobTest.java    |    199 +
 .../streaming/jobs/StreamingDFMergeJobTest.java    |    210 +
 .../streaming/jobs/StreamingJobListenerTest.java   |    314 +
 .../streaming/jobs/StreamingJobUtilsTest.java      |    111 +
 .../jobs/StreamingSegmentManagerTest.java          |     73 +
 .../kylin/streaming/jobs/SyncMergerTest.java       |     86 +
 .../jobs/impl/StreamingJobLauncherTest.java        |    474 +
 .../scheduler/StreamingJobStatusWatcherTest.java   |    177 +
 .../jobs/scheduler/StreamingSchedulerTest.java     |    425 +
 .../jobs/thread/StreamingJobRunnerTest.java        |    120 +
 .../streaming/manager/StreamingJobManagerTest.java |    189 +
 .../streaming/merge/CatchupMergePolicyTest.java    |    153 +
 .../kylin/streaming/merge/MergePolicyTest.java     |    109 +
 .../streaming/merge/NormalMergePolicyTest.java     |    121 +
 .../kylin/streaming/merge/PeakMergePolicyTest.java |    112 +
 .../metadata/BuildLayoutWithRestUpdateTest.java    |     79 +
 .../streaming/metadata/StreamingJobMetaTest.java   |    122 +
 .../apache/kylin/streaming/util/AwaitUtils.java    |     43 +
 .../apache/kylin/streaming/util/CubeTestUtils.java |     46 +
 .../apache/kylin/streaming/util/JobKillerTest.java |    256 +
 .../kylin/streaming/util/MetaInfoUpdaterTest.java  |    126 +
 .../kylin/streaming/util/MockClusterManager.java   |     75 +
 .../kylin/streaming/util/ReflectionUtils.java      |    176 +
 .../kylin/streaming/util/RestSupportTest.java      |    318 +
 .../kylin/streaming/util/StreamingTestCase.java    |    207 +
 .../src/test/resources/count_distinct/Q1.sql       |     21 +
 src/streaming/src/test/resources/message.json      |     43 +
 .../src/test/resources/message_with_dup_key.json   |     45 +
 src/streaming/src/test/resources/ssb/Q1.1.sql      |     23 +
 src/streaming/src/test/resources/ssb/Q1.2.sql      |     23 +
 src/streaming/src/test/resources/ssb/Q1.3.sql      |     23 +
 src/streaming/src/test/resources/ssb/Q2.1.sql      |     25 +
 src/streaming/src/test/resources/ssb/Q2.2.sql      |     25 +
 src/streaming/src/test/resources/ssb/Q2.3.sql      |     25 +
 src/streaming/src/test/resources/ssb/Q3.1.sql      |     25 +
 src/streaming/src/test/resources/ssb/Q3.2.sql      |     25 +
 src/streaming/src/test/resources/ssb/Q3.3.sql      |     27 +
 src/streaming/src/test/resources/ssb/Q3.4.sql      |     25 +
 src/streaming/src/test/resources/ssb/Q4.1.sql      |     26 +
 src/streaming/src/test/resources/ssb/Q4.2.sql      |     28 +
 src/streaming/src/test/resources/ssb/Q4.3.sql      |     28 +
 .../org/apache/kylin/common/SparkSqlSource.scala   |     61 +
 .../kylin/common/StreamingDataGenerate.scala       |     88 +
 .../apache/kylin/common/StreamingJobSupport.scala  |     52 +
 .../kylin/common/StreamingTestConstant.scala       |     44 +
 .../kylin/streaming/TestDataSourceParser.scala     |     83 +
 .../org/apache/spark/utils/KafkaTestUtil.scala     |    344 +
 src/systools/pom.xml                               |    250 +
 .../apache/kylin/rest/aspect/EnableRateLimit.java  |     31 +
 .../kylin/rest/aspect/InsensitiveNameAspect.java   |    146 +
 .../apache/kylin/rest/aspect/RateLimitAspect.java  |     61 +
 .../kylin/rest/aspect/SchedulerEnhancer.java       |     42 +
 .../org/apache/kylin/rest/aspect/Transaction.java  |     34 +
 .../kylin/rest/aspect/TransactionAspect.java       |     81 +
 .../kylin/rest/aspect/TransactionProjectUnit.java  |     23 +
 .../org/apache/kylin/rest/cache/KylinCache.java    |     33 +
 .../org/apache/kylin/rest/cache/KylinEhCache.java  |    113 +
 .../apache/kylin/rest/cluster/ClusterManager.java  |     35 +
 .../kylin/rest/cluster/DefaultClusterManager.java  |     71 +
 .../org/apache/kylin/rest/config/CorsConfig.java   |     54 +
 .../config/KylinPropertySourceConfiguration.java   |     68 +
 .../rest/config/KylinRequestHandlerSelectors.java  |     45 +
 .../apache/kylin/rest/config/SecurityConfig.java   |    109 +
 .../apache/kylin/rest/config/SwaggerConfig.java    |     79 +
 .../org/apache/kylin/rest/config/WebMvcConfig.java |     33 +
 .../kylin/rest/exception/BadRequestException.java  |     78 +
 .../kylin/rest/exception/ForbiddenException.java   |     59 +
 .../rest/exception/InternalErrorException.java     |     81 +
 .../kylin/rest/exception/NotFoundException.java    |     53 +
 .../exception/PasswordDecryptionException.java     |     26 +
 .../rest/exception/UnauthorizedException.java      |     50 +
 .../rest/handler/KapNoOpResponseErrorHandler.java  |     36 +
 .../rest/health/AbstractKylinHealthIndicator.java  |     47 +
 .../rest/interceptor/HeaderMapRequestWrapper.java  |     78 +
 .../apache/kylin/rest/interceptor/KEFilter.java    |     68 +
 .../apache/kylin/rest/interceptor/V2ApiFilter.java |    103 +
 .../kylin/rest/request/OwnerChangeRequest.java     |     31 +
 .../apache/kylin/rest/response/AclTCRResponse.java |    161 +
 .../org/apache/kylin/rest/response/DataResult.java |     68 +
 .../kylin/rest/response/EnvelopeResponse.java      |     57 +
 .../apache/kylin/rest/response/ErrorResponse.java  |     95 +
 .../kylin/rest/response/ServerInfoResponse.java    |     32 +
 .../kylin/rest/response/UserGroupResponse.java     |     40 +
 .../kylin/rest/response/UserGroupResponseKI.java   |     37 +
 .../org/apache/kylin/rest/security/AceImpl.java    |    202 +
 .../kylin/rest/security/AclEntityFactory.java      |     66 +
 .../apache/kylin/rest/security/AclEntityType.java  |     46 +
 .../org/apache/kylin/rest/security/AclManager.java |    247 +
 .../apache/kylin/rest/security/AclPermission.java  |     57 +
 .../kylin/rest/security/AclPermissionEnum.java     |     68 +
 .../kylin/rest/security/AclPermissionFactory.java  |    104 +
 .../org/apache/kylin/rest/security/AclRecord.java  |    324 +
 .../kylin/rest/security/ExternalAclProvider.java   |    155 +
 .../security/FillEmptyAuthorizationFilter.java     |     50 +
 .../kylin/rest/security/KerberosLoginManager.java  |    143 +
 .../rest/security/KylinAclPermissionEvaluator.java |    143 +
 .../apache/kylin/rest/security/LegacyAceInfo.java  |     71 +
 .../apache/kylin/rest/security/LoginLogFilter.java |     88 +
 .../kylin/rest/security/MutableAclRecord.java      |    141 +
 .../rest/security/MutableHttpServletRequest.java   |     70 +
 .../rest/security/NoneBCryptPasswordEncoder.java   |     28 +
 .../kylin/rest/security/ObjectIdentityImpl.java    |    152 +
 .../security/PasswordPlaceholderConfigurer.java    |    143 +
 .../org/apache/kylin/rest/security/SidInfo.java    |     88 +
 .../rest/security/UnauthorisedEntryPoint.java      |     63 +
 .../kylin/rest/security/UserLockRuleUtil.java      |     78 +
 .../org/apache/kylin/rest/service/AclService.java  |    120 +
 .../kylin/rest/service/AclTCRServiceSupporter.java |     33 +
 .../kylin/rest/service/IUserGroupService.java      |     89 +
 .../org/apache/kylin/rest/util/AclEvaluate.java    |    138 +
 .../apache/kylin/rest/util/AclPermissionUtil.java  |    246 +
 .../java/org/apache/kylin/rest/util/AclUtil.java   |     89 +
 .../org/apache/kylin/rest/util/PagingUtil.java     |     72 +
 .../kylin/rest/util/SecurityLoggerUtils.java       |     62 +
 .../org/apache/kylin/rest/util/SerializeUtil.java  |     69 +
 .../org/apache/kylin/rest/util/SpringContext.java  |     70 +
 .../rest/util/TimestampedRollingFileOutputDir.java |    103 +
 .../apache/kylin/tool/restclient/RestClient.java   |    355 +
 .../kylin/rest/cluster/MockClusterManager.java     |     53 +
 .../rest/security/ExternalAclProviderTest.java     |     90 +
 .../rest/security/KerberosLoginManagerTest.java    |     51 +
 .../apache/kylin/rest/service/PagingUtilTest.java  |     52 +
 .../apache/kylin/rest/util/AclEvaluateTest.java    |     94 +
 .../kylin/rest/util/AclPermissionUtilTest.java     |     35 +
 .../kylin/rest/util/CreateTableFromJson.java       |     96 +
 .../util/TimestampedRollingFileOutputDirTest.java  |    121 +
 src/tool/pom.xml                                   |    189 +
 .../kylin/tool/AbstractInfoExtractorTool.java      |    795 +
 .../java/org/apache/kylin/tool/AuditLogTool.java   |    269 +
 .../org/apache/kylin/tool/ClickhouseDiagTool.java  |    239 +
 .../java/org/apache/kylin/tool/ClientEnvTool.java  |     78 +
 .../java/org/apache/kylin/tool/CommonInfoTool.java |     64 +
 .../main/java/org/apache/kylin/tool/ConfTool.java  |    101 +
 .../org/apache/kylin/tool/CuratorOperator.java     |    117 +
 .../java/org/apache/kylin/tool/DiagClientCLI.java  |     38 +
 .../java/org/apache/kylin/tool/DiagClientTool.java |    212 +
 .../apache/kylin/tool/DumpHadoopSystemProps.java   |    190 +
 .../org/apache/kylin/tool/HDFSMetadataTool.java    |     54 +
 .../org/apache/kylin/tool/ISparkLogExtractor.java  |     26 +
 .../java/org/apache/kylin/tool/InfluxDBTool.java   |     87 +
 .../java/org/apache/kylin/tool/JStackTool.java     |     46 +
 .../java/org/apache/kylin/tool/JobDiagInfoCLI.java |     39 +
 .../org/apache/kylin/tool/JobDiagInfoTool.java     |    242 +
 .../java/org/apache/kylin/tool/KylinConfigCLI.java |     85 +
 .../org/apache/kylin/tool/KylinConfigCheckCLI.java |     56 +
 .../java/org/apache/kylin/tool/KylinLogTool.java   |   1021 +
 .../org/apache/kylin/tool/KylinTableCCCleanup.java |    136 +
 .../apache/kylin/tool/KylinTableCCCleanupCLI.java  |    110 +
 .../org/apache/kylin/tool/MaintainModeTool.java    |    273 +
 .../java/org/apache/kylin/tool/MetadataTool.java   |    483 +
 .../org/apache/kylin/tool/MetricsInfoTool.java     |    212 +
 .../apache/kylin/tool/MountSparkLogExtractor.java  |     46 +
 .../org/apache/kylin/tool/QueryDiagInfoCLI.java    |     38 +
 .../org/apache/kylin/tool/QueryDiagInfoTool.java   |    132 +
 .../apache/kylin/tool/QueryHistoryAccessCLI.java   |    110 +
 .../org/apache/kylin/tool/RecCandidateTool.java    |    266 +
 .../java/org/apache/kylin/tool/RollbackTool.java   |    588 +
 .../org/apache/kylin/tool/SampleProjectTool.java   |     99 +
 .../kylin/tool/SparkLogExtractorFactory.java       |     35 +
 .../apache/kylin/tool/StreamingJobDiagInfoCLI.java |     40 +
 .../kylin/tool/StreamingJobDiagInfoTool.java       |    190 +
 .../apache/kylin/tool/StreamingSparkLogTool.java   |    422 +
 .../org/apache/kylin/tool/SystemUsageTool.java     |    152 +
 .../org/apache/kylin/tool/YarnApplicationTool.java |    150 +
 .../apache/kylin/tool/YarnSparkLogExtractor.java   |     34 +
 .../kylin/tool/constant/DiagSubTaskEnum.java       |     45 +
 .../apache/kylin/tool/constant/DiagTypeEnum.java   |     22 +
 .../tool/constant/SensitiveConfigKeysConstant.java |     31 +
 .../org/apache/kylin/tool/constant/StageEnum.java  |     22 +
 .../org/apache/kylin/tool/daemon/CheckResult.java  |     44 +
 .../apache/kylin/tool/daemon/CheckStateEnum.java   |     28 +
 .../kylin/tool/daemon/CheckStateHandler.java       |     22 +
 .../org/apache/kylin/tool/daemon/HandleResult.java |     33 +
 .../apache/kylin/tool/daemon/HandleStateEnum.java  |     30 +
 .../apache/kylin/tool/daemon/HealthChecker.java    |     25 +
 .../org/apache/kylin/tool/daemon/KapGuardian.java  |    167 +
 .../kylin/tool/daemon/KapGuardianHATask.java       |     85 +
 .../kylin/tool/daemon/ServiceOpLevelEnum.java      |     35 +
 .../java/org/apache/kylin/tool/daemon/Worker.java  |     68 +
 .../tool/daemon/checker/AbstractHealthChecker.java |     99 +
 .../tool/daemon/checker/FullGCDurationChecker.java |    138 +
 .../tool/daemon/checker/KEProcessChecker.java      |     66 +
 .../kylin/tool/daemon/checker/KEStatusChecker.java |    183 +
 .../daemon/handler/AbstractCheckStateHandler.java  |     90 +
 .../tool/daemon/handler/DownGradeStateHandler.java |     39 +
 .../tool/daemon/handler/NormalStateHandler.java    |     30 +
 .../tool/daemon/handler/RestartStateHandler.java   |     43 +
 .../tool/daemon/handler/SuicideStateHandler.java   |     54 +
 .../tool/daemon/handler/UpGradeStateHandler.java   |     39 +
 .../tool/daemon/handler/WarnStateHandler.java      |     30 +
 .../tool/discovery/ServiceInstanceSerializer.java  |     52 +
 .../kylin/tool/garbage/DataflowCleanerCLI.java     |     92 +
 .../kylin/tool/garbage/ExecutableCleaner.java      |     68 +
 .../apache/kylin/tool/garbage/GarbageCleaner.java  |     69 +
 .../apache/kylin/tool/garbage/IndexCleaner.java    |     99 +
 .../apache/kylin/tool/garbage/MetadataCleaner.java |     34 +
 .../apache/kylin/tool/garbage/SnapshotCleaner.java |     90 +
 .../kylin/tool/garbage/SourceUsageCleaner.java     |     52 +
 .../apache/kylin/tool/garbage/StorageCleaner.java  |    779 +
 .../kylin/tool/garbage/StorageCleanerCLI.java      |     40 +
 .../org/apache/kylin/tool/general/CryptTool.java   |     89 +
 .../kylin/tool/general/RollbackStatusEnum.java     |     23 +
 .../kylin/tool/hadoop/CheckHadoopConfDir.java      |     97 +
 .../KapGetPathWithoutSchemeAndAuthorityCLI.java    |     36 +
 .../kylin/tool/kerberos/KerberosLoginTask.java     |    169 +
 .../kylin/tool/kerberos/KerberosLoginUtil.java     |    510 +
 .../tool/metadata/CheckMetadataAccessCLI.java      |    140 +
 .../org/apache/kylin/tool/metrics/MetricsInfo.java |     56 +
 .../apache/kylin/tool/obf/AbstractObfuscator.java  |     30 +
 .../org/apache/kylin/tool/obf/FileObfuscator.java  |     87 +
 .../apache/kylin/tool/obf/KylinConfObfuscator.java |    110 +
 .../org/apache/kylin/tool/obf/MappingRecorder.java |     80 +
 .../java/org/apache/kylin/tool/obf/ObfCatalog.java |     40 +
 .../java/org/apache/kylin/tool/obf/ObfLevel.java   |     22 +
 .../kylin/tool/obf/PropertiesFileObfuscator.java   |     69 +
 .../org/apache/kylin/tool/obf/ResultRecorder.java  |     53 +
 .../apache/kylin/tool/routine/FastRoutineTool.java |     73 +
 .../org/apache/kylin/tool/routine/RoutineTool.java |    237 +
 .../kylin/tool/security/AdminUserInitCLI.java      |    122 +
 .../kylin/tool/security/KapPasswordResetCLI.java   |    122 +
 .../apache/kylin/tool/setup/KapGetClusterInfo.java |    121 +
 .../kylin/tool/setup/KapSparkTaskTestCLI.java      |     55 +
 .../kylin/tool/upgrade/AddInstanceColumnCLI.java   |     65 +
 .../kylin/tool/upgrade/CheckProjectModeCLI.java    |    103 +
 .../kylin/tool/upgrade/CreateTableEpochCLI.java    |    105 +
 .../upgrade/CreateTableLayoutCandidateCLI.java     |    103 +
 .../kylin/tool/upgrade/DeleteFavoriteQueryCLI.java |    113 +
 .../apache/kylin/tool/upgrade/MigrateJobTool.java  |    222 +
 .../apache/kylin/tool/upgrade/RenameEntity.java    |    134 +
 .../tool/upgrade/RenameProjectResourceTool.java    |    688 +
 .../kylin/tool/upgrade/RenameUserResourceTool.java |    439 +
 .../UpdateAuditLogTableColumnLengthCLI.java        |     96 +
 .../apache/kylin/tool/upgrade/UpdateModelCLI.java  |    142 +
 .../kylin/tool/upgrade/UpdateProjectCLI.java       |    126 +
 .../kylin/tool/upgrade/UpdateSessionTableCLI.java  |    210 +
 .../kylin/tool/upgrade/UpdateUserGroupCLI.java     |    113 +
 .../kylin/tool/util/DiagnosticFilesChecker.java    |     52 +
 .../kylin/tool/util/HadoopConfExtractor.java       |     85 +
 .../org/apache/kylin/tool/util/HashFunction.java   |     68 +
 .../org/apache/kylin/tool/util/MetadataUtil.java   |    110 +
 .../util/ProjectTemporaryTableCleanerHelper.java   |     93 +
 .../apache/kylin/tool/util/ScreenPrintUtil.java    |     66 +
 .../org/apache/kylin/tool/util/ServerInfoUtil.java |     87 +
 .../kylin/tool/util/ServiceDiscoveryUtil.java      |     45 +
 .../apache/kylin/tool/util/ToolMainWrapper.java    |     49 +
 .../java/org/apache/kylin/tool/util/ToolUtil.java  |    209 +
 .../bisync/tds/tableau.connector.template.xml      |     14 +
 .../main/resources/bisync/tds/tableau.mappings.xml |     59 +
 .../main/resources/bisync/tds/tableau.template.xml |     39 +
 .../kylin/tool/AbstractInfoExtractorToolTest.java  |    175 +
 .../org/apache/kylin/tool/AuditLogToolTest.java    |    320 +
 .../org/apache/kylin/tool/AuditLogWorkerTest.java  |    229 +
 .../apache/kylin/tool/ClickhouseDiagToolTest.java  |    212 +
 .../org/apache/kylin/tool/ClientEnvToolTest.java   |     78 +
 .../org/apache/kylin/tool/CommonInfoToolTest.java  |     86 +
 .../java/org/apache/kylin/tool/ConfToolTest.java   |    145 +
 .../apache/kylin/tool/DataflowCleanerCLITest.java  |     79 +
 .../org/apache/kylin/tool/DiagClientToolTest.java  |    140 +
 .../kylin/tool/DiagnosticFilesCheckerTest.java     |     64 +
 .../kylin/tool/DumpHadoopSystemPropsTest.java      |    108 +
 .../org/apache/kylin/tool/InfluxDBToolTest.java    |     93 +
 .../java/org/apache/kylin/tool/JStackToolTest.java |     75 +
 .../org/apache/kylin/tool/JobDiagInfoToolTest.java |    189 +
 .../org/apache/kylin/tool/KylinConfigCLITest.java  |     97 +
 .../apache/kylin/tool/KylinConfigCheckCLITest.java |     94 +
 .../org/apache/kylin/tool/KylinLogToolTest.java    |    604 +
 .../kylin/tool/KylinTableCCCleanupCLITest.java     |    115 +
 .../apache/kylin/tool/KylinTableCCCleanupTest.java |     64 +
 .../org/apache/kylin/tool/MetadataToolTest.java    |    725 +
 .../apache/kylin/tool/MetadataToolTestFixture.java |     57 +
 .../org/apache/kylin/tool/MetricsInfoToolTest.java |     86 +
 .../apache/kylin/tool/QueryDiagInfoToolTest.java   |    265 +
 .../apache/kylin/tool/RecCandidateToolTest.java    |    309 +
 .../org/apache/kylin/tool/RollbackToolTest.java    |    290 +
 .../apache/kylin/tool/SampleProjectToolTest.java   |     91 +
 .../org/apache/kylin/tool/StorageCleanerTest.java  |    279 +
 .../kylin/tool/StreamingJobDiagInfoToolTest.java   |    328 +
 .../org/apache/kylin/tool/SystemUsageToolTest.java |    126 +
 .../apache/kylin/tool/YarnApplicationToolTest.java |    114 +
 .../kylin/tool/bisync/SyncModelBuilderTest.java    |    546 +
 .../kylin/tool/bisync/SyncModelTestUtil.java       |     38 +
 .../tool/bisync/tableau/TableauDatasourceTest.java |    121 +
 .../tool/domain/FullGCDurationCheckerTest.java     |     71 +
 .../kylin/tool/domain/KEProcessCheckerTest.java    |     75 +
 .../kylin/tool/domain/KEStatusCheckerTest.java     |     85 +
 .../kylin/tool/garbage/ExecutableCleanerTest.java  |    100 +
 .../tool/garbage/MockCleanableExecutable.java      |     39 +
 .../kylin/tool/garbage/SnapshotCleanerTest.java    |     91 +
 .../kylin/tool/garbage/SourceUsageCleanerTest.java |    102 +
 .../apache/kylin/tool/general/CryptToolTest.java   |     64 +
 .../kylin/tool/kerberos/KerberosLoginUtilTest.java |     46 +
 .../kylin/tool/obf/KylinConfObfuscatorTest.java    |    111 +
 .../apache/kylin/tool/obf/MappingRecorderTest.java |     40 +
 .../kylin/tool/routine/MaintainModeToolTest.java   |     85 +
 .../apache/kylin/tool/routine/RoutineToolTest.java |    196 +
 .../kylin/tool/security/AdminUserInitCLITest.java  |    119 +
 .../tool/security/KapPasswordResetCLITest.java     |    127 +
 .../tool/upgrade/CheckProjectModeCLITest.java      |     52 +
 .../tool/upgrade/DeleteFavoriteQueryCLITest.java   |     53 +
 .../kylin/tool/upgrade/MigrateJobToolTest.java     |    115 +
 .../upgrade/RenameProjectResourceToolTest.java     |    121 +
 .../tool/upgrade/RenameUserResourceToolTest.java   |    165 +
 .../kylin/tool/upgrade/UpdateModelCLITest.java     |     58 +
 .../kylin/tool/upgrade/UpdateProjectCLITest.java   |     70 +
 .../tool/upgrade/UpdateSessionTableCLITest.java    |     59 +
 .../kylin/tool/upgrade/UpdateUserGroupCLITest.java |     69 +
 .../apache/kylin/tool/util/HashFunctionTest.java   |     57 +
 .../ProjectTemporaryTableCleanerHelperTest.java    |    115 +
 .../apache/kylin/tool/util/ServerInfoUtilTest.java |     73 +
 .../kylin/tool/util/ToolMainWrapperTest.java       |     39 +
 .../org/apache/kylin/tool/util/ToolUtilTest.java   |    102 +
 .../nmodel_full_measure_test.connector.tds         |    125 +
 .../nmodel_full_measure_test.connector_cc.tds      |    164 +
 ...nmodel_full_measure_test.connector_cc_admin.tds |    546 +
 ...del_full_measure_test.connector_hierarchies.tds |    143 +
 ..._full_measure_test.connector_no_hierarchies.tds |    137 +
 ...odel_full_measure_test.connector_permission.tds |    143 +
 ...ure_test.connector_permission_agg_index_col.tds |    519 +
 ...l_measure_test.connector_permission_all_col.tds |    519 +
 ...easure_test.connector_permission_no_measure.tds |    519 +
 ...del_full_measure_test.table_index_connector.tds |    549 +
 .../bisync_tableau/nmodel_full_measure_test.tds    |    125 +
 src/tool/src/test/resources/diag/eventlog          |      5 +
 .../src/test/resources/kerberos/invalid.keytab     |    Bin 0 -> 125 bytes
 src/tool/src/test/resources/kerberos/valid.keytab  |    Bin 0 -> 170 bytes
 src/tool/src/test/resources/obf/kylin.properties   |     23 +
 .../31e8a260-e44f-0e40-aae9-0634b7d6324c.json      |      9 +
 .../7e880e97-76be-cf1e-b6ab-6d48bd78b302.json      |     12 +
 .../7e880e97-76be-cf1e-b6ab-6d48bd78b302.json      |     21 +
 .../7e880e97-76be-cf1e-b6ab-6d48bd78b302.json      |    110 +
 .../metadata/AL_4144/table/CAP.ST.json             |     65 +
 .../metadata/AL_4144/table_exd/CAP.ST.json         |     29 +
 .../metadata/_global/project/AL_4144.json          |     35 +
 .../resources/ut_audit_log/ke_metadata_test.json   |   2248 +
 .../ut_audit_log/ke_metadata_test_audit_log.json   |   9032 +
 .../test/resources/ut_audit_log/test_restore.jsonl |      1 +
 .../DEFAULT.TEST_KYLIN_FACT/TRANS_ID/keep          |      0
 .../DEFAULT.TEST_KYLIN_FACT/invalid/keep           |      0
 .../default/dict/global_dict/invalid/keep          |      0
 .../working-dir/default/job_tmp/invalid/keep       |      0
 .../working-dir/default/job_tmp/job1/keep          |      0
 .../working-dir/default/job_tmp/job2/keep          |      0
 .../ef5e0663-feba-4ed2-b71c-21958122bbff/1/keep    |      0
 .../10001/keep                                     |      0
 .../10002/keep                                     |      0
 .../invalid2/keep                                  |      0
 .../11124840-b3e3-43db-bcab-2b78da666d00/1/keep    |      0
 .../10001/keep                                     |      0
 .../10002/keep                                     |      0
 .../invalid2/keep                                  |      0
 .../invalid/keep                                   |      0
 .../working-dir/default/parquet/invalid/keep       |      0
 .../d6ba492b-13bf-444d-b6e3-71bfa903344d/keep      |      0
 .../b4849638-4eb5-44f5-b776-0619813fb676/keep      |      0
 .../DEFAULT.TEST_COUNTRY/invalid/keep              |      0
 .../c1e8096e-4e7f-4387-b7c3-5147c1ce38d6/keep      |      0
 .../cf3eddab-4686-721c-ee1f-a502ed95163e/keep      |      0
 .../default/table_snapshot/invalid/keep            |      0
 .../DEFAULT.TEST_KYLIN_FACT/TRANS_ID/keep          |      0
 .../DEFAULT.TEST_KYLIN_FACT/invalid/keep           |      0
 .../table_index/dict/global_dict/invalid/keep      |      0
 .../working-dir/table_index/job_tmp/invalid/keep   |      0
 .../12124840-b3e3-43db-bcab-2b78da666d02/1/keep    |      0
 .../20000000001/keep                               |      0
 .../invalid2/keep                                  |      0
 .../4e64c021-066c-4d09-ab0c-c5e6a953ccb6/keep      |      0
 .../table_index/table_snapshot/invalid/keep        |      0
 .../default/dict/global_dict/invalid/keep          |      0
 .../ef783e4d-e35f-4bd9-8afd-efd64336f04d/1/keep    |      0
 .../10001/keep                                     |      0
 .../10002/keep                                     |      0
 .../invalid2/keep                                  |      0
 .../working-dir1/default/parquet/invalid/keep      |      0
 .../83447ff5-d8a5-40fb-aeae-47189e996a82/keep      |      0
 .../DEFAULT.TEST_COUNTRY/invalid/keep              |      0
 .../2ecee426-f0f3-467f-884c-9dfecbca52cc/keep      |      0
 .../resources/ut_storage/working-dir1/invalid/keep |      0
 .../acl/0547958f-37e0-440c-b6b4-ba79db5d07f5       |     20 +
 .../acl/71d38540-253b-410c-8291-f0dbc7079eaa       |     20 +
 .../acl/90f448b4-620a-483d-a22d-6565876511d0       |     20 +
 .../metadata/_global/project/rename_project_1.json |     31 +
 .../metadata/_global/project/rename_project_2.json |     32 +
 .../metadata/_global/project/version40.json        |     32 +
 .../metadata/_global/user/rename_user_1            |     19 +
 .../ut_upgrade_tool/metadata/_global/user_group    |     12 +
 .../rename_project_1/acl/user/rename_user_1.json   |      7 +
 .../29bc1bde-290d-4473-8d90-04c4be8cf90d.json      |      8 +
 .../rename_project_2/acl/user/rename_user_1.json   |      7 +
 .../25f7dcc0-0ddd-4a47-9e64-1fbd20cac4f5.json      |     18 +
 .../25f7dcc0-0ddd-4a47-9e64-1fbd20cac4f5.json      |     19 +
 .../25f7dcc0-0ddd-4a47-9e64-1fbd20cac4f5.json      |     74 +
 .../6150e84b-bbe5-46f5-af7a-119c455f34e5.json      |      8 +
 .../table/DEFAULT.KYLIN_ACCOUNT.json               |     41 +
 .../table/DEFAULT.KYLIN_CAL_DT.json                |    422 +
 .../table/DEFAULT.KYLIN_CATEGORY_GROUPINGS.json    |    170 +
 .../table/DEFAULT.KYLIN_COUNTRY.json               |     33 +
 .../table/DEFAULT.KYLIN_SALES.json                 |     75 +
 .../rename_project_2/table/DEFAULT.TMP_TABLE.json  |     21 +
 .../table_exd/DEFAULT.KYLIN_ACCOUNT.json           |     27 +
 .../table_exd/DEFAULT.KYLIN_CAL_DT.json            |     27 +
 .../DEFAULT.KYLIN_CATEGORY_GROUPINGS.json          |     27 +
 .../table_exd/DEFAULT.KYLIN_COUNTRY.json           |     27 +
 .../table_exd/DEFAULT.KYLIN_SALES.json             |     27 +
 .../table_exd/DEFAULT.TMP_TABLE.json               |     27 +
 .../b1d8d2b9-1d14-4148-bd42-8142e00beb76.json      |     59 +
 .../196443b7-19ab-4201-878f-79f421ff7a0c.json      |      8 +
 .../7e8268dc-2d2f-4ac7-a4fd-ebd9b430430b.json      |     19 +
 .../event/9574fb41-bdf0-4bdb-9445-510eebdf25e9     |     15 +
 .../event/ac3a2686-6c4d-4c73-b689-f873481dce9a     |     16 +
 .../event/af0ad5e6-d312-41a4-9638-ec6f548821da     |     17 +
 .../execute/0b990fb4-bbc6-4988-90c9-9e880cab499a   |    113 +
 .../execute/1462e627-0eb0-4c8c-ac6b-770b36cdeff0   |    113 +
 .../execute/28f9b317-be95-4f61-ab9d-4e84d5e42b4a   |    113 +
 .../execute/3712136d-201a-49b1-a632-54f223e9368d   |    105 +
 .../execute/3d183faf-e4d2-49e9-8652-4fb446b1529d   |    127 +
 .../execute/c4185ed9-bc37-46c6-8bb0-275c9568ca09   |    113 +
 .../execute/cd27acf6-8c2a-42a6-890c-bf813c665ef3   |    122 +
 .../execute/ed6d2147-1c97-43dd-bc97-3c25f947d104   |    113 +
 .../execute/ed962302-cc78-4507-84fb-54bfd22a8168   |    113 +
 .../b1d8d2b9-1d14-4148-bd42-8142e00beb76.json      |     59 +
 .../version40/job_stats/1585800000000.json         |     21 +
 .../b1d8d2b9-1d14-4148-bd42-8142e00beb76.json      |    225 +
 .../b71fee0c-9b0e-4d74-a0fc-a099f7b66e9c.json      |      8 +
 .../metadata/version40/table/SSB.CUSTOMER.json     |     46 +
 .../metadata/version40/table/SSB.DATES.json        |     82 +
 .../metadata/version40/table/SSB.LINEORDER.json    |     82 +
 .../metadata/version40/table/SSB.PART.json         |     50 +
 .../metadata/version40/table/SSB.P_LINEORDER.json  |     86 +
 .../metadata/version40/table/SSB.SUPPLIER.json     |     42 +
 .../metadata/version40/table_exd/SSB.CUSTOMER.json |    147 +
 .../metadata/version40/table_exd/SSB.DATES.json    |    282 +
 .../version40/table_exd/SSB.LINEORDER.json         |    282 +
 .../metadata/version40/table_exd/SSB.PART.json     |    162 +
 .../version40/table_exd/SSB.P_LINEORDER.json       |    297 +
 .../metadata/version40/table_exd/SSB.SUPPLIER.json |    132 +
 5743 files changed, 1792727 insertions(+)

diff --git a/.gitconfig b/.gitconfig
new file mode 100644
index 0000000000..6c29d4f49b
--- /dev/null
+++ b/.gitconfig
@@ -0,0 +1,3 @@
+[core]
+	ignorecase = false
+	autocrlf = false
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000..41b0364afb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,140 @@
+### Eclipse
+*.pydevproject
+.metadata
+.gradle
+tmp/
+*.tmp
+*.bak
+*.swp
+*~.nib
+*.versionsBackup
+local.properties
+release.properties
+.loadpath
+
+.cache-main
+.cache-tests
+
+#IDEA
+*.iml
+ci.log.*
+
+# External tool builders
+.externalToolBuilders/
+
+# Locally stored "Eclipse launch configurations"
+*.launch
+*.factorypath
+
+# CDT-specific
+.cproject
+
+# PDT-specific
+.buildpath
+
+# sbteclipse plugin
+.target
+
+# TeXlipse plugin
+.texlipse
+
+### Java
+*.class
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.ear
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
+
+### Origin
+# /
+.classpath
+.project
+.idea
+.DS_Store
+target
+logs
+*.releaseBackup
+*.log
+*.DS_Store
+
+# .settings
+org.eclipse.m2e.core.prefs
+org.eclipse.wst.common.component
+org.eclipse.wst.common.project.facet.core.xml
+org.eclipse.wst.validation.prefs
+org.eclipse.jdt.apt.core.prefs
+org.eclipse.jdt.core.prefs
+org.eclipse.core.resources.prefs
+org.scala-ide.sdt.core.prefs
+org.sonarlint.eclipse.core.prefs
+server/.settings/.jsdtscope
+server/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml
+server/.settings/org.eclipse.wst.jsdt.ui.superType.container
+server/.settings/org.eclipse.wst.jsdt.ui.superType.name
+#web
+webapp/app/WEB-INF/*
+webapp/dist
+webapp/node_modules:
+webapp/CHANGELOG.md
+
+# package file
+build/tomcat
+build/lib
+build/kybot
+build/tpch-benchmark
+*.tgz
+*.tar.gz
+webapp/app/components/*
+
+ebay*
+build/commit_SHA1
+dist/
+tomcat/
+webapp/app/kylin-servlet.xml
+webapp/app/web.xml
+
+#kylin
+src/examples/test_data/*
+src/spark-project/examples/test_data/*
+src/second-storage/examples/test_data/*
+
+#kybot
+kybot/
+.kyaccount
+
+# maven
+dependency-reduced-pom.xml
+server_mapping.txt
+
+#obfuscation
+cp.txt
+tmp.pro
+spark_client_pid
+
+meta_backups
+tmp_war
+
+#exclusion
+!pathfinder*.jar
+VERSION
+
+#hadoop files
+*.crc
+_SUCCESS
+metastore_db
+ci.log*
+
+appid
+child_process
+src/server-base/spark-warehouse/
+
+#streaming
+src/streaming/examples/*
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000000..6b0b1270ff
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,203 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000000..8598ae92aa
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,2 @@
+This product includes software developed by The Apache Software Foundation
+(http://www.apache.org/).
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000000..2a766304d7
--- /dev/null
+++ b/README.md
@@ -0,0 +1,30 @@
+## Intro to Kylin 5
+
+### Comparison with Kylin 4.0
+
+- New metadata design [Metadata definition](document/protocol-buffer/metadata.proto)
+- Support Table Index
+- Support schema change
+- Support computed column
+- New CuboidScheduler
+- New Job engine etc.
+
+### Quick Start
+
+1. Build maven artifact with following command:
+```shell
+mvn clean package
+```
+
+2. Run unit test with following command:
+
+```shell
+mvn clean test
+```
+
+3. Build a Kylin 5 binary
+
+```shell
+cd build/apache_release
+./release.sh
+```
\ No newline at end of file
diff --git a/build/apache_release/build.sh b/build/apache_release/build.sh
new file mode 100755
index 0000000000..35e635bde3
--- /dev/null
+++ b/build/apache_release/build.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+dir=$(dirname ${0})
+
+cd ${dir}/../..
+
+echo 'Build back-end'
+echo "-----SKIP------"
+## mvn clean install -DskipTests -Dcheckstyle.skip $@ || { exit 1; }
+
+#package webapp
+echo 'Build front-end'
+if [ "${WITH_FRONT}" = "1" ]; then
+    cd kystudio
+    echo 'Install front-end dependencies'
+    npm install  || { exit 1; }
+    echo 'Install front-end end'
+    npm run build		 || { exit 1; }
+    echo 'build front-end dist end'
+fi
+
diff --git a/build/apache_release/compress.sh b/build/apache_release/compress.sh
new file mode 100755
index 0000000000..263bbd7897
--- /dev/null
+++ b/build/apache_release/compress.sh
@@ -0,0 +1,103 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+dir=$(dirname ${0})
+cd ${dir}/../..
+
+source build/apache_release/functions.sh
+exportProjectVersions
+
+# get package name
+current_branch=${branch}
+if [[ "${current_branch}" = "" ]]; then
+    current_branch=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p')
+fi
+
+# package as *.tar.gz
+echo "package name: ${package_name}"
+cd build/
+rm -rf ${package_name}
+mkdir ${package_name}
+
+cp -rf VERSION commit_SHA1 lib ${package_name}/
+
+mkdir -p ${package_name}/lib/ext
+
+cp -rf spark ${package_name}/
+cp -rf sample_project ${package_name}/
+cp -rf samples ${package_name}/
+cp -rf influxdb ${package_name}/
+cp -rf grafana ${package_name}/
+cp -rf postgresql ${package_name}/
+
+# Add ssb data preparation files
+mkdir -p ${package_name}/tool/ssb
+cp -rf ../src/examples/sample_cube/data ${package_name}/tool/ssb/
+cp -rf ../src/examples/sample_cube/create_sample_ssb_tables.sql ${package_name}/tool/ssb/
+
+# Add ops_plan files
+cp -rf ../ops_plan ${package_name}/
+
+# Add conf profiles
+mkdir -p ${package_name}/conf
+mkdir -p ${package_name}/tool/conf
+mkdir -p ${package_name}/server/conf
+for log_conf in `find conf -name "*-log4j.xml"`; do
+    cp ${log_conf} ${package_name}/${log_conf}.template
+    if [[ ${log_conf} == *"tool"* ]]; then
+        cp ${log_conf} ${package_name}/tool/${log_conf}
+    else
+        cp ${log_conf} ${package_name}/server/${log_conf}
+    fi
+done
+cp -rf conf/kylin.properties ${package_name}/conf/kylin.properties
+cp -rf conf/setenv.sh ${package_name}/conf/setenv.sh.template
+cp -rf bin/ ${package_name}/bin/
+cp -rf sbin/ ${package_name}/sbin/
+
+rm -rf ext lib commit_SHA1 VERSION # keep the spark folder on purpose
+
+cp -rf server/webapp/dist ${package_name}/server/public
+cp -rf server/newten.jar ${package_name}/server/
+cp -rf server/jars ${package_name}/server/
+cp -rf deploy/.keystore ${package_name}/server/
+mv ${package_name}/server/jars/log4j* ${package_name}/spark/jars/
+rm -rf server/
+
+## comment all default properties, and append them to the user visible kylin.properties
+## first 16 lines are license, just skip them
+sed '1,21d' ../src/core-common/src/main/resources/kylin-defaults0.properties | awk '{print "#"$0}' >> ${package_name}/conf/kylin.properties
+
+find ${package_name} -type d -exec chmod 755 {} \;
+find ${package_name} -type f -exec chmod 644 {} \;
+find ${package_name} -type f -name "*.sh" -exec chmod 755 {} \;
+find ${package_name}/spark -type f -exec chmod 755 {} \;
+find ${package_name}/influxdb -type f -exec chmod 755 {} \;
+find ${package_name}/grafana -type f -exec chmod 755 {} \;
+find ${package_name}/postgresql -type f -exec chmod 755 {} \;
+
+rm -rf ../dist
+mkdir -p ../dist
+
+tar -czf ../dist/${package_name}.tar.gz ${package_name}
+rm -rf ${package_name}
+
+echo "Package ready."
+cd ../dist
+ls ${package_name}*.tar.gz
diff --git a/build/apache_release/download-grafana.sh b/build/apache_release/download-grafana.sh
new file mode 100755
index 0000000000..b82243b36b
--- /dev/null
+++ b/build/apache_release/download-grafana.sh
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+dir=$(dirname ${0})
+cd ${dir}/../..
+
+source build/apache_release/functions.sh
+
+rm -rf build/grafana
+
+grafana_version="6.2.4"
+grafana_pkg_md5="b0c5b1085db30914e128980b5fe5f553"
+
+if [ ! -f "build/grafana-${grafana_version}.linux-amd64.tar.gz" ]
+then
+    echo "no binary file found "
+    wget --directory-prefix=build/ https://dl.grafana.com/oss/release/grafana-${grafana_version}.linux-amd64.tar.gz || echo "Download grafana failed"
+else
+    if [ `calMd5 build/grafana-${grafana_version}.linux-amd64.tar.gz | awk '{print $1}'` != "${grafana_pkg_md5}" ]
+    then
+        echo "md5 check failed"
+        rm build/grafana-${grafana_version}.linux-amd64.tar.gz
+        wget --directory-prefix=build/ https://dl.grafana.com/oss/release/grafana-${grafana_version}.linux-amd64.tar.gz || echo "Download grafana failed"
+    fi
+fi
+
+tar -zxf build/grafana-${grafana_version}.linux-amd64.tar.gz -C build/ || { exit 1; }
+mv build/grafana-${grafana_version} build/grafana
+
+test -d 'build/grafana/conf/provisioning' && rm -rf build/grafana/conf/provisioning
+
+test -d 'build/grafana/public/test' && rm -rf build/grafana/public/test
+
+cp -rf build/deploy/grafana/dashboards build/grafana/
+cp -rf build/deploy/grafana/provisioning build/grafana/conf/
+cp -rf build/deploy/grafana/custom.ini build/grafana/conf/
diff --git a/build/apache_release/download-influxdb.sh b/build/apache_release/download-influxdb.sh
new file mode 100755
index 0000000000..7c67ecdc4e
--- /dev/null
+++ b/build/apache_release/download-influxdb.sh
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+dir=$(dirname ${0})
+cd ${dir}/../..
+
+source build/apache_release/functions.sh
+
+rm -rf build/influxdb
+
+influxdb_version="1.6.4.x86_64"
+influxdb_pkg_md5="e24a00fb3b41d2974f85def72035f9f2"
+
+if [ ! -f "build/influxdb-${influxdb_version}.rpm" ]
+then
+    echo "No binary file found."
+    wget --directory-prefix=build/ https://repos.influxdata.com/centos/6/x86_64/stable/influxdb-${influxdb_version}.rpm || { echo "Download InfluxDB failed." && exit 1; }
+else
+    if [ `calMd5 build/influxdb-${influxdb_version}.rpm | awk '{print $1}'` != "${influxdb_pkg_md5}" ]
+    then
+        echo "md5 check failed."
+        rm build/influxdb-${influxdb_version}.rpm
+        wget --directory-prefix=build/ https://repos.influxdata.com/centos/6/x86_64/stable/influxdb-${influxdb_version}.rpm || { echo "Download InfluxDB failed." && exit 1; }
+
+    fi
+fi
+
+mkdir -p build/influxdb
+cp build/influxdb-${influxdb_version}.rpm build/influxdb
+
+#cp build/deploy/licenses/influxdb-license build/influxdb/LICENSE || { echo "No license for InfluxDB found, please check build/deploy/licenses" && exit 1; }
diff --git a/build/apache_release/download-postgresql.sh b/build/apache_release/download-postgresql.sh
new file mode 100755
index 0000000000..2593a6a8b9
--- /dev/null
+++ b/build/apache_release/download-postgresql.sh
@@ -0,0 +1,72 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+dir=$(dirname ${0})
+cd ${dir}/../..
+
+source build/apache_release/functions.sh
+
+mkdir -p build/postgresql
+
+
+pg_urls=(
+    "https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-6-x86_64/postgresql10-libs-10.7-1PGDG.rhel6.x86_64.rpm"
+    "https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-6-x86_64/postgresql10-10.7-1PGDG.rhel6.x86_64.rpm"
+    "https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-6-x86_64/postgresql10-server-10.7-1PGDG.rhel6.x86_64.rpm"
+    "https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/postgresql10-libs-10.7-1PGDG.rhel7.x86_64.rpm"
+    "https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/postgresql10-10.7-1PGDG.rhel7.x86_64.rpm"
+    "https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/postgresql10-server-10.7-1PGDG.rhel7.x86_64.rpm"
+    "https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-8-x86_64/postgresql10-libs-10.8-1PGDG.rhel8.x86_64.rpm"
+    "https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-8-x86_64/postgresql10-10.8-1PGDG.rhel8.x86_64.rpm"
+    "https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-8-x86_64/postgresql10-server-10.8-1PGDG.rhel8.x86_64.rpm"
+)
+
+pg_file_md5=(
+    "28f75cae7734a0f62cb6ae774d2a1378"
+    "0b681ba97a9ddc478f820d2287de3b2d"
+    "34cb34bcaf5388c96ffc758da4ed8a2a"
+    "648a350f2421a8320cebe40a812909e9"
+    "62a2915053f5f2ffd5ef1bbbc106e7be"
+    "5ef931ddedeca1c81a998763292aafad"
+    "23cea91ae23d4f30802d2d3f5b47eac4"
+    "dae27bb23602348d593a731968f23331"
+    "a5f563d7bf7fd0444250bb4bba6f3d4d"
+)
+
+for ((i=0;i<${#pg_urls[@]};i++))
+do
+    url=${pg_urls[$i]}
+    file_name=${url##*/}
+    if [ ! -f "build/postgresql/$file_name" ]
+    then
+        echo "No binary file found "
+        wget --no-check-certificate --directory-prefix=build/postgresql/ $url || { echo "Download $file_name failed." && exit 1; }
+    else
+        if [ `calMd5 build/postgresql/$file_name | awk '{print $1}'` != "${pg_file_md5[$i]}" ]
+        then
+            echo "md5 check failed"
+            rm build/$file_name
+            wget --no-check-certificate --directory-prefix=build/postgresql/ $url || { echo "Download $file_name failed." && exit 1; }
+        fi
+    fi
+done
+
+
+
+#cp build/deploy/licenses/postgresql-license build/postgresql/LICENSE || { echo "No license for PostgreSQL found, please check build/deploy/licenses" && exit 1; }
diff --git a/build/apache_release/download-spark.sh b/build/apache_release/download-spark.sh
new file mode 100755
index 0000000000..f54c1fd5fb
--- /dev/null
+++ b/build/apache_release/download-spark.sh
@@ -0,0 +1,73 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+dir=$(dirname ${0})
+cd ${dir}/../..
+
+source build/apache_release/functions.sh
+
+rm -rf build/spark
+
+spark_pkg_name="spark-newten-3.2.0-4.x-r56"
+spark_pkg_file_name="${spark_pkg_name}.tgz"
+spark_pkg_md5="d3042a545690f85b2b8f90695df7f5b7"
+
+checkDownloadSparkVersion ${spark_pkg_name}
+
+if [ ! -f "build/${spark_pkg_file_name}" ]
+then
+    echo "no binary file found"
+    wget --directory-prefix=build/ https://s3.cn-north-1.amazonaws.com.cn/download-resource/kyspark/${spark_pkg_file_name} || echo "Download spark failed"
+else
+    if [ `calMd5 build/${spark_pkg_file_name} | awk '{print $1}'` != "${spark_pkg_md5}" ]
+    then
+        echo "md5 check failed"
+        rm build/${spark_pkg_file_name}
+        wget --directory-prefix=build/ https://s3.cn-north-1.amazonaws.com.cn/download-resource/kyspark/${spark_pkg_file_name}  || echo "Download spark failed"
+    fi
+fi
+
+mkdir -p  build/${spark_pkg_name}
+tar -zxf build/${spark_pkg_file_name} -C build/${spark_pkg_name} --strip-components 1 || { exit 1; }
+mv build/${spark_pkg_name} build/spark
+
+# Remove unused components in Spark
+rm -rf build/spark/lib/spark-examples-*
+rm -rf build/spark/examples
+rm -rf build/spark/data
+rm -rf build/spark/R
+rm -rf build/spark/hive_1_2_2
+
+cp -rf build/hadoop3 build/spark/
+
+if [[ "${WITH_HIVE1}" != "0" ]]; then
+    if [ ! -f "build/hive_1_2_2.tar.gz" ]
+    then
+        echo "no binary file found"
+        wget --directory-prefix=build/ https://s3.cn-north-1.amazonaws.com.cn/download-resource/kyspark/hive_1_2_2.tar.gz || echo "Download hive1 failed"
+    else
+        if [ `calMd5 build/hive_1_2_2.tar.gz | awk '{print $1}'` != "e8e86e086fb7e821d724ad0c19457a36" ]
+        then
+            echo "md5 check failed"
+            rm build/hive_1_2_2.tar.gz
+            wget --directory-prefix=build/ https://s3.cn-north-1.amazonaws.com.cn/download-resource/kyspark/hive_1_2_2.tar.gz  || echo "Download hive1 failed"
+        fi
+    fi
+    tar -zxf build/hive_1_2_2.tar.gz -C build/spark/ || { exit 1; }
+fi
diff --git a/build/apache_release/functions.sh b/build/apache_release/functions.sh
new file mode 100755
index 0000000000..234eaf21e9
--- /dev/null
+++ b/build/apache_release/functions.sh
@@ -0,0 +1,78 @@
+#!/usr/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+function checkCommandExists() {
+    echo "Checking ${1}..."
+    if [ -z "$(command -v ${1})" ]
+    then
+        echo "Please install ${1} first so that Kylin packaging can proceed"
+        exit 1
+    else
+        echo "${1} check passed"
+    fi
+}
+
+function exportProjectVersions() {
+    if [ -z "${kylin_version}" ]; then
+        export kylin_version=`mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version | grep -E '^[0-9]+\.[0-9]+\.[0-9]+' `
+        echo "Kylin Version: ${kylin_version}"
+    fi
+    if [ -z "${release_version}" ]; then
+        export release_version=$kylin_version
+    fi
+}
+
+function detectOSType() {
+    OS_TYPE="linux"
+    if [[ `uname -a` =~ "Darwin" ]]; then
+        OS_TYPE="mac"
+    elif [[ `uname -a` =~ "Cygwin" ]]; then
+        OS_TYPE="windows"
+    fi
+    echo $OS_TYPE
+}
+
+function calMd5() {
+    OS_TYPE=`detectOSType`
+    if [[ "$OS_TYPE" == "mac" ]]; then
+        md5 -q $1
+    elif [[ "$OS_TYPE" == "windows" ]]; then
+        md5sum $1
+    else
+        md5sum $1
+    fi
+}
+
+function checkDownloadSparkVersion() {
+    if [[ -z $1 ]];
+    then
+        echo "spark version check failed, download spark version parameter is null"
+        exit 1
+    fi
+
+    download_spark_release_version=$1
+    spark_version_pom=`mvn help:evaluate -Dexpression=spark.version | grep -E '^[0-9]+\.[0-9]+\.[0-9]+' `
+    pom_spark_release_version=spark-newten-"`echo ${spark_version_pom}| sed "s/-kylin//g"`"
+
+    if [[ $download_spark_release_version != $pom_spark_release_version ]];
+    then
+        echo "spark version check failed, download version is ${download_spark_release_version}, but ${pom_spark_release_version} in pom file"
+        exit 1
+    fi
+}
diff --git a/build/apache_release/package.sh b/build/apache_release/package.sh
new file mode 100755
index 0000000000..83ed85c243
--- /dev/null
+++ b/build/apache_release/package.sh
@@ -0,0 +1,78 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+dir=$(dirname ${0})
+cd ${dir}/../..
+
+source build/apache_release/functions.sh
+
+echo "Packing for KE..."
+
+# Make share commands exist in environment
+echo "BUILD STAGE 1 - Checking environment..."
+checkCommandExists mvn
+checkCommandExists git
+checkCommandExists npm
+
+exportProjectVersions
+
+kap_commit_sha1=`git rev-parse HEAD`
+echo "${kap_commit_sha1}@KAP" > build/commit_SHA1
+if [ -z "$BUILD_SYSTEM" ]; then
+    BUILD_SYSTEM="MANUAL"
+fi
+echo "Build with ${BUILD_SYSTEM} at" `date "+%Y-%m-%d %H:%M:%S"` >> build/commit_SHA1
+
+KYLIN_VERSION_NAME="Kylin 5 ${release_version}"
+
+echo "${KYLIN_VERSION_NAME}" > build/VERSION
+echo "VERSION file content:" ${KYLIN_VERSION_NAME}
+
+echo "BUILD STAGE 2 - Build binaries..."
+sh build/apache_release/build.sh $@             || { exit 1; }
+
+if [[ "${WITH_SPARK}" = "1" ]]; then
+    echo "BUILD STAGE 3 - Prepare spark..."
+    sh -x build/apache_release/download-spark.sh      || { exit 1; }
+else
+    rm -rf build/spark
+fi
+
+if [[ "${WITH_THIRDPARTY}" = "1" ]]; then
+    #echo "BUILD STAGE 4 - Prepare influxdb..."
+    #sh build/apache_release/download-influxdb.sh      || { exit 1; }
+
+    #echo "BUILD STAGE 5 - Prepare grafana..."
+    #sh build/apache_release/download-grafana.sh      || { exit 1; }
+
+    echo "BUILD STAGE 6 - Prepare postgresql..."
+    sh build/apache_release/download-postgresql.sh      || { exit 1; }
+else
+    rm -rf build/influxdb
+    rm -rf build/grafana
+    rm -rf build/postgresql
+fi
+
+echo "BUILD STAGE 7 - Prepare and compress package..."
+sh build/apache_release/prepare.sh ${MVN_PROFILE} || { exit 1; }
+sh build/apache_release/compress.sh               || { exit 1; }
+
+echo "BUILD STAGE 8 - Clean up..."
+    
+echo "BUILD FINISHED!"
diff --git a/build/apache_release/prepare-libs.sh b/build/apache_release/prepare-libs.sh
new file mode 100755
index 0000000000..b6fb19902f
--- /dev/null
+++ b/build/apache_release/prepare-libs.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+dir=$(dirname ${0})
+cd ${dir}/../..
+
+source build/apache_release/functions.sh
+exportProjectVersions
+
+echo "copy lib file"
+rm -rf build/lib build/tool
+mkdir build/lib build/tool
+cp src/assembly/target/kylin-assembly-${kylin_version}-job.jar build/lib/newten-job.jar
+mkdir -p build/lib/ext
diff --git a/build/apache_release/prepare.sh b/build/apache_release/prepare.sh
new file mode 100755
index 0000000000..513713239c
--- /dev/null
+++ b/build/apache_release/prepare.sh
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+dir=$(dirname ${0})
+cd ${dir}/../..
+
+
+source build/apache_release/functions.sh
+exportProjectVersions
+
+sh build/apache_release/prepare-libs.sh || { exit 1; }
+
+#create ext dir
+mkdir -p build/ext
+
+mkdir -p build/server
+chmod -R 755 build/server
+
+cp src/server/target/kylin-server-${kylin_version}.jar build/server/newten.jar
+cp -r src/server/target/jars build/server/
+
+if [[ ${WITH_FRONT} == 0 ]]; then
+  echo "Skip frontend packing..."
+else
+  echo "Start to add js & css..."
+  if [ ! -d "kystudio/dist" ]; then
+      echo "Failed to generate js files!"
+      exit 1
+  fi
+
+  cd kystudio
+  mkdir -p ../build/server/webapp
+
+  cp -rf ./dist ../build/server/webapp
+
+  echo "End frontend packing..."
+fi
+
diff --git a/build/apache_release/release.sh b/build/apache_release/release.sh
new file mode 100755
index 0000000000..09209dc2a9
--- /dev/null
+++ b/build/apache_release/release.sh
@@ -0,0 +1,77 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+dir=$(dirname ${0})
+cd ${dir}/../..
+
+export PACKAGE_TIMESTAMP=1
+export WITH_SPARK=1
+export WITH_HIVE1=1
+export WITH_THIRDPARTY=1
+export WITH_FRONT=1
+
+for PARAM in $@; do
+    if [[ "$PARAM" == "-noTimestamp" ]]; then
+        echo "Package without timestamp..."
+        export PACKAGE_TIMESTAMP=0
+        shift
+    fi
+
+    if [[ "$PARAM" == "-noSpark" ]]; then
+        echo "Skip packaging Spark..."
+        export WITH_SPARK=0
+        shift
+    fi
+
+    if [[ "$PARAM" == "-noHive1" ]]; then
+        echo "Package without Hive 1.2.2..."
+        export WITH_HIVE1=0
+        shift
+    fi
+
+    if [[ "$PARAM" == "-noThirdParty" ]]; then
+        echo "Package without Third Party..."
+        export WITH_THIRDPARTY=0
+        shift
+    fi
+
+    if [[ "$PARAM" == "-skipFront" ]]; then
+        echo 'Skip install front-end dependencies...'
+        export WITH_FRONT=0
+        shift
+    fi
+done
+
+if [[ -z ${release_version} ]]; then
+    release_version='staging'
+fi
+if [[ "${PACKAGE_TIMESTAMP}" = "1" ]]; then
+    timestamp=`date '+%Y%m%d%H%M%S'`
+    export release_version=${release_version}.${timestamp}
+fi
+export package_name="Kylin5-beta-${release_version}"
+
+sh build/apache_release/package.sh $@ || { echo "package failed!"; exit 1; }
+
+echo "Release Version: ${release_version}"
+
+package_name="Kylin5-beta-${release_version}.tar.gz"
+sha256sum dist/$package_name > dist/${package_name}.sha256sum
+
+echo "sha256: `cat dist/${package_name}.sha256sum`"
\ No newline at end of file
diff --git a/build/bin/admin-tool.sh b/build/bin/admin-tool.sh
new file mode 100644
index 0000000000..50c80dc059
--- /dev/null
+++ b/build/bin/admin-tool.sh
@@ -0,0 +1,56 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+RESTORE='\033[0m'
+YELLOW='\033[00;33m'
+
+if [[ -z $KYLIN_HOME ]];then
+    export KYLIN_HOME=$(cd -P -- "$(dirname -- "$0")"/../ && pwd -P)
+fi
+
+function help {
+    echo "Usage: 'admin-tool.sh admin-password-reset'"
+    return 1
+}
+
+function printAdminPasswordResetResult() {
+    error=$1
+
+    if [[ $error != 0 ]]; then
+        echo -e "${YELLOW}Reset the ADMIN password failed, for more details please refer to \"\$KYLIN_HOME/logs/shell.stderr\".${RESTORE}"
+    fi
+}
+
+ret=0
+if [[ "$1" == "admin-password-reset" ]]; then
+    read -p "You are resetting the password of [ADMIN], please enter [Y/N] to continue.: " input
+    if [[ ${input} != [Yy] ]]; then
+        echo "Reset password of [ADMIN] failed."
+        exit 1
+    fi
+
+    ${KYLIN_HOME}/bin/kylin.sh org.apache.kylin.tool.security.KapPasswordResetCLI
+    ret=$?
+    printAdminPasswordResetResult ${ret}
+else
+    help
+    ret=$?
+fi
+
+exit ${ret}
diff --git a/build/bin/check-env.sh b/build/bin/check-env.sh
new file mode 100755
index 0000000000..78ea6109d2
--- /dev/null
+++ b/build/bin/check-env.sh
@@ -0,0 +1,97 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+source $(cd -P -- "$(dirname -- "$0")" && pwd -P)/../sbin/header.sh
+if [ "$1" == "-v" ]; then
+    shift
+fi
+
+mkdir -p ${KYLIN_HOME}/logs
+
+KYLIN_ENV_CHANNEL=`$KYLIN_HOME/bin/get-properties.sh kylin.env.channel`
+export KYLIN_CONFIG_FILE="${KYLIN_HOME}/conf/kylin.properties"
+export SPARK_HOME=${KYLIN_HOME}/spark
+
+# avoid re-entering
+if [[ "$CHECKENV_ING" == "" ]]; then
+    export CHECKENV_ING=true
+
+    mkdir -p ${KYLIN_HOME}/logs
+    LOG=${KYLIN_HOME}/logs/check-env.out
+    ERRORS=${KYLIN_HOME}/logs/check-env.error
+    BYPASS=${KYLIN_HOME}/bin/check-env-bypass
+    TITLE="#title"
+
+    if [[ "$1" != "if-not-yet" || ! -f ${BYPASS} ]]; then
+
+        echo ""
+        echo `setColor 33 "Kyligence Enterprise is checking installation environment, log is at ${LOG}"`
+        echo ""
+
+        rm -rf ${KYLIN_HOME}/logs/tmp
+        rm -f ${ERRORS}
+        touch ${ERRORS}
+
+        export CHECKENV_REPORT_PFX=">   "
+        export QUIT_MESSAGE_LOG=${ERRORS}
+
+        CHECK_FILES=
+        if [[ ${KYLIN_ENV_CHANNEL} == "on-premises" || -z ${KYLIN_ENV_CHANNEL} ]]; then
+            CHECK_FILES=`ls ${KYLIN_HOME}/sbin/check-*.sh`
+        else
+            CHECK_FILES=("${KYLIN_HOME}/sbin/check-1400-java.sh"
+                         "${KYLIN_HOME}/sbin/check-1500-ports.sh")
+        fi
+        for f in ${CHECK_FILES}
+        do
+            if [[ ! $f == *check-env.sh ]]; then
+                echo `getValueByKey ${TITLE} ${f}`
+                echo ""                                                                             >>${LOG}
+                echo "============================================================================" >>${LOG}
+                echo "Checking $(basename $f)"                                                      >>${LOG}
+                echo "----------------------------------------------------------------------------" >>${LOG}
+                bash $f >>${LOG} 2>&1
+                rtn=$?
+                if [[ $rtn == 0 ]]; then
+                    echo "...................................................[`setColor 32 PASS`]"
+                elif [[ $rtn == 3 ]]; then
+                    echo "...................................................[`setColor 33 SKIP`]"
+                elif [[ $rtn == 4 ]];then
+                    echo "...................................................[`setColor 33 WARN`]"
+                    WARN_INFO=`tail -n 3 ${LOG}`
+                    echo `setColor 33 "WARNING:"`
+                    echo -e "$WARN_INFO"  | sed 's/^/    &/g'
+                else
+                    echo "...................................................[`setColor 31 FAIL`]"
+                    cat  ${ERRORS} >> ${LOG}
+                    tail ${ERRORS}
+                    echo `setColor 33 "Full log is at: ${LOG}"`
+                    exit 1
+                fi
+            fi
+        done
+        echo ""
+        cat ${LOG} | grep "^${CHECKENV_REPORT_PFX}"
+        touch ${BYPASS}
+        echo `setColor 33 "Checking environment finished successfully. To check again, run 'bin/check-env.sh' manually."`
+        echo ""
+    fi
+
+    export CHECKENV_ING=
+fi
\ No newline at end of file
diff --git a/build/bin/diag.sh b/build/bin/diag.sh
new file mode 100755
index 0000000000..26ffaf3e6a
--- /dev/null
+++ b/build/bin/diag.sh
@@ -0,0 +1,132 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+if [[ -z ${KYLIN_HOME} ]];then
+    export KYLIN_HOME=$(cd -P -- "$(dirname -- "$0")"/../ && pwd -P)
+fi
+
+version=`cat ${KYLIN_HOME}/VERSION | awk '{print $3}'`
+
+function help {
+    echo "usage: diag.sh [-help] | [{diag_options}]"
+    echo "Example:"
+    echo "1. extract 3 days(default value) diagnosis info to default export folder:"
+    echo "> diag.sh"
+    echo "2. generate full diagnosis packages"
+    echo "> diag.sh -startTime 1567267200000 -endTime 1567353600000"
+    echo "3. generate job diagnosis packages"
+    echo "> diag.sh -job job_id"
+    echo "4. skip extract metadata in diagnosis packages"
+    echo "> diag.sh -includeMeta false (default true)"
+    echo "5. show this usage:"
+    echo "> diag.sh -help"
+    return 1
+}
+
+function retrieveDependency() {
+    # get kylin_hadoop_conf_dir
+    if [[ -z ${kylin_hadoop_conf_dir} ]]; then
+       source ${KYLIN_HOME}/sbin/prepare-hadoop-conf-dir.sh
+    fi
+
+    #retrive $KYLIN_EXTRA_START_OPTS
+    source ${KYLIN_HOME}/sbin/setenv.sh
+
+    DIAG_JAVA_OPTS="-Dkylin.home=${KYLIN_HOME}"
+}
+
+function prepareEnv {
+    export KYLIN_CONFIG_FILE="${KYLIN_HOME}/conf/kylin.properties"
+    export SPARK_HOME=${KYLIN_HOME}/spark
+
+    echo "KYLIN_HOME is:${KYLIN_HOME}"
+    echo "KYLIN_CONFIG_FILE is:${KYLIN_CONFIG_FILE}"
+    echo "SPARK_HOME is:${SPARK_HOME}"
+
+    retrieveDependency
+
+    mkdir -p ${KYLIN_HOME}/logs
+    source ${KYLIN_HOME}/sbin/do-check-and-prepare-spark.sh
+
+    # init kerberos
+    source ${KYLIN_HOME}/sbin/init-kerberos.sh
+    initKerberosIfNeeded
+    prepareKerberosOpts
+
+    if [[ ! -f "/usr/bin/influxd" && ! -f "${KYLIN_HOME}/influxdb/usr/bin/influxd" ]];then
+        INFLUXDB_HOME="${KYLIN_HOME}/influxdb"
+        cd ${INFLUXDB_HOME}
+        influx_files=(`ls influxdb-*.rpm`)
+        if [[ ${#influx_files} -gt 0 ]]; then
+            rpm2cpio ${influx_files[0]} | cpio -div
+        fi
+        cd -
+    fi
+}
+
+function runTool() {
+    prepareEnv
+
+    if [[ -f ${KYLIN_HOME}/conf/kylin-tools-diag-log4j.xml ]]; then
+        diag_log4j="file:${KYLIN_HOME}/conf/kylin-tools-diag-log4j.xml"
+    else
+        diag_log4j="file:${KYLIN_HOME}/tool/conf/kylin-tools-diag-log4j.xml"
+    fi
+
+    TIME_ZONE=`${KYLIN_HOME}/bin/get-properties.sh kylin.web.timezone`
+    if [[ -n ${TIME_ZONE} ]]; then
+        TIME_ZONE="-Duser.timezone=${TIME_ZONE}"
+    fi
+    java -Xms${JAVA_VM_TOOL_XMS} -Xmx${JAVA_VM_TOOL_XMX} ${DIAG_JAVA_OPTS} ${KYLIN_KERBEROS_OPTS} ${TIME_ZONE} -Dfile.encoding=UTF-8 -Dlog4j.configurationFile=${diag_log4j} -Dkylin.hadoop.conf.dir=${kylin_hadoop_conf_dir} -Dhdp.version=current -cp "${kylin_hadoop_conf_dir}:${KYLIN_HOME}/lib/ext/*:${KYLIN_HOME}/server/jars/*:${SPARK_HOME}/jars/*" $@
+    exit $?
+}
+
+USER_OPTS=" $@"
+if [[ ${USER_OPTS} == *" -help"* ]]; then
+    help
+    exit 1
+fi
+
+DIAG_OPTS="${USER_OPTS}"
+if [[ ${DIAG_OPTS} != *" -destDir"* ]]; then
+    destDir="${KYLIN_HOME}/diag_dump/"
+    mkdir -p ${destDir}
+
+    DIAG_OPTS="${DIAG_OPTS} -destDir ${destDir}"
+fi
+
+if ([[ ${DIAG_OPTS} != *" -project"* ]] && [[ ${DIAG_OPTS} != *" -job"* ]] && [[ ${DIAG_OPTS} != *" -query"* ]]); then
+    project="-all"
+    DIAG_OPTS="${DIAG_OPTS} -project ${project}"
+fi
+
+INCLUDE_AUDIT_LOG=`${KYLIN_HOME}/bin/get-properties.sh kylin.diag.include-auditlog`
+if [[ ${INCLUDE_AUDIT_LOG} == "false" ]]; then
+    DIAG_OPTS="${DIAG_OPTS} -includeAuditLog false"
+fi
+
+if [[ ${DIAG_OPTS} == *" -job"* ]]; then
+    runTool io.kyligence.kap.tool.JobDiagInfoCLI ${DIAG_OPTS}
+elif [[ ${DIAG_OPTS} == *" -streamingJob"* ]]; then
+    runTool io.kyligence.kap.tool.StreamingJobDiagInfoCLI ${DIAG_OPTS}
+elif [[ ${DIAG_OPTS} == *" -query"* ]]; then
+    runTool io.kyligence.kap.tool.QueryDiagInfoCLI ${DIAG_OPTS}
+else
+    runTool io.kyligence.kap.tool.DiagClientCLI ${DIAG_OPTS}
+fi
\ No newline at end of file
diff --git a/build/bin/get-properties.sh b/build/bin/get-properties.sh
new file mode 100755
index 0000000000..6962bf1f4a
--- /dev/null
+++ b/build/bin/get-properties.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+if [ $# != 1 ]
+then
+    if [[ $# < 2 || $2 != 'DEC' ]]
+        then
+            echo 'invalid input'
+            exit 1
+    fi
+fi
+
+if [ -z $KYLIN_HOME ];then
+    export KYLIN_HOME=$(cd -P -- "$(dirname -- "$0")"/../ && pwd -P)
+fi
+
+if [ -z $MAPR_HOME ];then
+    export MAPR_HOME="/opt/mapr"
+fi
+
+if [ -z ${kylin_hadoop_conf_dir} ]; then
+    export kylin_hadoop_conf_dir=$KYLIN_HOME/hadoop_conf
+fi
+
+export KYLIN_KERBEROS_OPTS=""
+if [ -f ${KYLIN_HOME}/conf/krb5.conf ];then
+    KYLIN_KERBEROS_OPTS="-Djava.security.krb5.conf=${KYLIN_HOME}/conf/krb5.conf"
+fi
+
+export SPARK_HOME=$KYLIN_HOME/spark
+
+if [[ -f ${KYLIN_HOME}/conf/kylin-tools-log4j.xml ]]; then
+    kylin_tools_log4j="file:${KYLIN_HOME}/conf/kylin-tools-log4j.xml"
+    else
+    kylin_tools_log4j="file:${KYLIN_HOME}/tool/conf/kylin-tools-log4j.xml"
+fi
+
+mkdir -p ${KYLIN_HOME}/logs
+result=`java ${KYLIN_KERBEROS_OPTS} -Dlog4j.configurationFile=${kylin_tools_log4j} -Dkylin.hadoop.conf.dir=${kylin_hadoop_conf_dir} -Dhdp.version=current -cp "${kylin_hadoop_conf_dir}:${KYLIN_HOME}/lib/ext/*:${KYLIN_HOME}/server/jars/*:${SPARK_HOME}/jars/*" org.apache.kylin.tool.KylinConfigCLI $@ 2>>${KYLIN_HOME}/logs/shell.stderr`
+
+echo "$result"
diff --git a/build/bin/grafana.sh b/build/bin/grafana.sh
new file mode 100755
index 0000000000..5c28a94c62
--- /dev/null
+++ b/build/bin/grafana.sh
@@ -0,0 +1,142 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+if [[ -z $KYLIN_HOME ]];then
+    export KYLIN_HOME=$(cd -P -- "$(dirname -- "$0")"/../ && pwd -P)
+fi
+
+cd $KYLIN_HOME/grafana
+
+function startGrafana(){
+    if [[ -f "${KYLIN_HOME}/grafana/pid" ]]; then
+        PID=`cat ${KYLIN_HOME}/grafana/pid`
+        if ps -p $PID > /dev/null; then
+          echo "Grafana is running, stop it first, PID is $PID"
+          exit 1
+        fi
+    fi
+    PORT=$(grep -w "http_port =" conf/defaults.ini |tr -d '[:space:]' | cut -d'=' -f2)
+
+    used=`netstat -tpln | grep "\<$PORT\>" | awk '{print $7}' | sed "s/\// /g"`
+    if [[ ! -z "$used" ]]; then
+        echo "<$used> already listen on $PORT"
+        exit 1
+    fi
+
+    echo "Grafana port is ${PORT}"
+
+    metadata_url_prefix=`$KYLIN_HOME/bin/get-properties.sh kylin.metadata.url`
+    ## check whether it contain '@' mark,if it exists, extract the content before it
+    mark=`echo ${metadata_url_prefix} | grep "@"`
+    if [ ${#mark} -ne 0 ]
+    then
+        metadata_url_prefix=`echo ${metadata_url_prefix} | awk -F'@' '{print $1}'`
+    fi
+    metrics_db_suffix=`$KYLIN_HOME/bin/get-properties.sh kylin.metrics.influx-db`
+    metrics_daily_db_suffix=`$KYLIN_HOME/bin/get-properties.sh kylin.metrics.daily-influx-db`
+    influxdb_https_enabled=`$KYLIN_HOME/bin/get-properties.sh kylin.influxdb.https.enabled`
+    influxdb_unsafe_ssl_enabled=`$KYLIN_HOME/bin/get-properties.sh kylin.influxdb.https.unsafe-ssl.enabled`
+    influxdb_unsafe_ssl_enabled=$([[ "${influxdb_https_enabled}" == "true" ]] && [[ "${influxdb_unsafe_ssl_enabled}" == "true" || -z "${influxdb_unsafe_ssl_enabled}" ]] && echo "true" || echo "false")
+
+    export KE_METRICS_DATABASE=${metadata_url_prefix}_${metrics_db_suffix}
+    export KE_METRICS_DAILY_DATABASE=${metadata_url_prefix}_${metrics_daily_db_suffix}
+    export INFLUXDB_PROTOCOL=$([[ "$influxdb_https_enabled" == "true" ]] && echo "https" || echo "http")
+    export INFLUXDB_ADDRESS=`$KYLIN_HOME/bin/get-properties.sh kylin.influxdb.address`
+    export INFLUXDB_USERNAME=`$KYLIN_HOME/bin/get-properties.sh kylin.influxdb.username`
+    export INFLUXDB_PASSWORD=`$KYLIN_HOME/bin/get-properties.sh kylin.influxdb.password DEC`
+
+    ## The environment variable is a string, so use the sed command.
+    sed -i "s/tlsSkipVerify: .*/tlsSkipVerify: ${influxdb_unsafe_ssl_enabled}/g" ${KYLIN_HOME}/grafana/conf/provisioning/datasources/kylin-influxdb.yaml
+    sed -i "s/tlsSkipVerify: .*/tlsSkipVerify: ${influxdb_unsafe_ssl_enabled}/g" ${KYLIN_HOME}/grafana/conf/provisioning/datasources/kylin-influxdb-daily.yaml
+
+    echo "Influxdb Connect Protocol: $INFLUXDB_PROTOCOL"
+    echo "Influxdb Address: $INFLUXDB_ADDRESS"
+    echo "Metrics Database: $KE_METRICS_DATABASE"
+
+    if [[ -f "${KYLIN_HOME}/conf/grafana.ini" ]]; then
+        nohup bin/grafana-server --config ${KYLIN_HOME}/conf/grafana.ini web > /dev/null 2>&1 &
+    else
+        nohup bin/grafana-server web > /dev/null 2>&1 &
+    fi
+
+    try_times=30
+    while [[ ${try_times} -gt 0 ]];do
+        sleep 3
+        PID=`netstat -tpln 2>/dev/null | grep "\<$PORT\>" | awk '{print $7}' | sed "s/\// /g" | awk '{print $1}'`
+        if [[ ! -z "${PID}" ]];then
+            break
+        fi
+        let try_times-=1
+    done
+
+    if [[ ${try_times} -le 0 ]];then
+        echo "Grafana start timeout."
+        exit 1
+    fi
+
+    echo "$PID" > ${KYLIN_HOME}/grafana/pid
+
+    echo "Grafana started, PID is $PID"
+}
+
+function stopGrafana(){
+    if [[ -f "${KYLIN_HOME}/grafana/pid" ]]; then
+        PID=`cat ${KYLIN_HOME}/grafana/pid`
+        if ps -p "$PID" > /dev/null; then
+           echo "Stopping Grafana: $PID"
+           kill "$PID"
+           for i in {1..10}; do
+              sleep 3
+              if ps -p "$PID" -f | grep grafana > /dev/null; then
+                 if [[ "$i" == "10" ]]; then
+                    echo "Killing Grafana: $PID"
+                    kill -9 "$PID"
+                 fi
+                 continue
+              fi
+              break
+           done
+           rm ${KYLIN_HOME}/grafana/pid
+
+           return 0
+        else
+           return 1
+        fi
+    else
+        return 1
+    fi
+
+}
+
+if [[ "$1" == "start" ]]; then
+    echo "Starting Grafana..."
+    startGrafana
+elif [[ "$1" == "stop" ]]; then
+    echo "Stopping Grafana..."
+    stopGrafana
+    if [[ $? == 0 ]]; then
+        exit 0
+    else
+        echo "Grafana is not running."
+        exit 1
+    fi
+else
+    echo "Usage: 'grafana.sh start' or 'grafana.sh stop'"
+    exit 1
+fi
\ No newline at end of file
diff --git a/build/bin/guardian.sh b/build/bin/guardian.sh
new file mode 100755
index 0000000000..18c314dbe4
--- /dev/null
+++ b/build/bin/guardian.sh
@@ -0,0 +1,153 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+source $(cd -P -- "$(dirname -- "$0")" && pwd -P)/../sbin/header.sh $@
+guardian_enable=`${KYLIN_HOME}/bin/get-properties.sh kylin.guardian.enabled`
+
+time_format='+%Y-%m-%d %H:%M:%S %Z'
+
+function startKG() {
+    if [[ ${guardian_enable} != "true" ]]; then
+        return 0
+    fi
+
+    mkdir -p ${KYLIN_HOME}/logs
+
+    echo `date "${time_format} "`"Starting KE guardian process..."
+
+    ### lock the start process
+    LOCK_NAME="$KYLIN_HOME/bin/kg-start.lock"
+    if ( set -o noclobber; echo "$$" > "$LOCK_NAME") 2> /dev/null
+    then
+    trap 'rm -f "$LOCK_NAME"; exit $?' INT TERM EXIT
+
+    KGID_FILE=${KYLIN_HOME}/kgid
+    if [[ -f ${KGID_FILE} ]]; then
+        PID=`cat ${KGID_FILE}`
+        if ps -p ${PID} > /dev/null; then
+            quit "KE guardian process is running, stop it first"
+        fi
+    fi
+
+    KE_PID_FILE=${KYLIN_HOME}/pid
+    if [[ ! -f ${KE_PID_FILE} ]]; then
+        quit "Kyligence Enterprise is not running, will not start guardian process"
+    fi
+
+    if [[ -f ${KYLIN_HOME}/conf/kylin-guardian-log4j.xml ]]; then
+        guardian_log4j="file:${KYLIN_HOME}/conf/kylin-guardian-log4j.xml"
+    else
+        guardian_log4j="file:${KYLIN_HOME}/server/conf/kylin-guardian-log4j.xml"
+    fi
+
+    TIME_ZONE=`${KYLIN_HOME}/bin/get-properties.sh kylin.web.timezone`
+    if [[ -n ${TIME_ZONE} ]]; then
+        TIME_ZONE="-Duser.timezone=${TIME_ZONE}"
+    fi
+
+    TOOL_OPTS="-Dfile.encoding=UTF-8 -Dkylin.home=${KYLIN_HOME} -Dlog4j.configurationFile=${guardian_log4j} ${TIME_ZONE}"
+    TOOL_CLASSPATH=${KYLIN_HOME}/conf:${KYLIN_HOME}/lib/ext/*:${KYLIN_HOME}/server/jars/*:${SPARK_HOME}/jars/*
+
+    nohup java -Xms128m -Xmx1g ${TOOL_OPTS} -classpath ${TOOL_CLASSPATH} io.kyligence.kap.tool.daemon.KapGuardian > /dev/null 2>&1 & echo $! > ${KYLIN_HOME}/kgid &
+
+    PID=`cat ${KYLIN_HOME}/kgid`
+    echo `date "${time_format} "`" new guardian process pid is "${PID} >> ${KYLIN_HOME}/logs/guardian.log
+
+    echo `date "${time_format} "`"KE guardian process is started"
+    echo `date "${time_format} "`"Check log in ${KYLIN_HOME}/logs/guardian.log"
+
+    ### Removing lock
+    rm -f ${LOCK_NAME}
+    trap - INT TERM EXIT
+    else
+        quit "Failed to acquire lockfile: ${LOCK_NAME}. It might have been starting in another shell."
+    fi
+
+    return 0
+}
+
+function stopKG() {
+    if [[ ${guardian_enable} != "true" ]]; then
+        return 0
+    fi
+
+    echo `date "${time_format} "`"Stopping KE guardian process..."
+
+    PID_FILE=${KYLIN_HOME}/kgid
+
+    if [[ -f ${PID_FILE} ]]; then
+        PID=`cat ${PID_FILE}`
+        if ps -p ${PID} > /dev/null; then
+            echo `date "${time_format} "`"Stopping KG process: ${PID}"
+            kill ${PID}
+
+            for i in {1..10}; do
+              sleep 3
+              if ps -p ${PID} > /dev/null; then
+                 if [[ "$i" == "10" ]]; then
+                    echo `date "${time_format} "`"Killing KG process: ${PID}"
+                    kill -9 ${PID}
+                 fi
+                 continue
+              fi
+              break
+           done
+
+           rm ${PID_FILE}
+           return 0
+        fi
+    fi
+
+    echo `date "${time_format} "`"KE guardian process is not running"
+    return 1
+}
+
+if [[ $1 == "start" ]]; then
+    startKG
+elif [[ $1 == "stop" ]]; then
+    stopKG
+elif [[ $1 == "kill" ]]; then
+    echo `date "${time_format} "`"Killing Kyligence Enterprise, caused by OOM!"
+
+    # stop KE
+    PID_FILE=${KYLIN_HOME}/pid
+    if [[ -f ${PID_FILE} ]]; then
+        PID=`cat ${PID_FILE}`
+        if ps -p ${PID} > /dev/null; then
+           echo `date "${time_format} "`"Stopping Kylin: $PID"
+           kill ${PID}
+           for i in {1..10}; do
+              sleep 3
+              if ps -p ${PID} -f | grep kylin > /dev/null; then
+                 if [[ "$i" == "10" ]]
+                 then
+                    echo `date "${time_format} "`"Killing Kylin: $PID"
+                    kill -9 ${PID}
+                 fi
+                 continue
+              fi
+              break
+           done
+           exit 0
+        fi
+    fi
+    quit `date "${time_format} "`"Kyligence Enterprise is not running"
+else
+    quit "Usage: 'guardian.sh start' or 'guardian.sh stop' or 'guardian.sh kill'"
+fi
\ No newline at end of file
diff --git a/build/bin/kylin.sh b/build/bin/kylin.sh
new file mode 100755
index 0000000000..654096dc9e
--- /dev/null
+++ b/build/bin/kylin.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+source $(cd -P -- "$(dirname -- "$0")" && pwd -P)/../sbin/header.sh "$@"
+mkdir -p ${KYLIN_HOME}/logs
+ERR_LOG=${KYLIN_HOME}/logs/shell.stderr
+OUT_LOG=${KYLIN_HOME}/logs/shell.stdout
+echo "-----------------------  log start  -----------------------" >>${ERR_LOG}
+echo "-----------------------  log start  -----------------------" >>${OUT_LOG}
+bash -x ${KYLIN_HOME}/sbin/bootstrap.sh "$@" 2>>${ERR_LOG}  | tee -a ${OUT_LOG}
+ret=${PIPESTATUS[0]}
+echo "-----------------------  log end  -------------------------" >>${ERR_LOG}
+echo "-----------------------  log end  -------------------------" >>${OUT_LOG}
+exit ${ret}
\ No newline at end of file
diff --git a/build/bin/metastore.sh b/build/bin/metastore.sh
new file mode 100755
index 0000000000..0b46474f57
--- /dev/null
+++ b/build/bin/metastore.sh
@@ -0,0 +1,174 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+RESTORE='\033[0m'
+YELLOW='\033[00;33m'
+
+if [ -z $KYLIN_HOME ];then
+    export KYLIN_HOME=$(cd -P -- "$(dirname -- "$0")"/../ && pwd -P)
+fi
+
+function help {
+    echo "usage: metastore.sh backup METADATA_BACKUP_PATH(the default path is KYLIN_HOME/meta_backups/)"
+    echo "       metastore.sh restore METADATA_RESTORE_PATH [--after-truncate]"
+    echo "       metastore.sh backup-project PROJECT_NAME METADATA_BACKUP_PATH(the default path is KYLIN_HOME/meta_backups/)"
+    echo "       metastore.sh restore-project PROJECT_NAME METADATA_RESTORE_PATH [--after-truncate]"
+    exit 1
+}
+
+function printBackupResult() {
+    error=$1
+    if [[ $error == 0 ]]; then
+        if [[ -z "${path}" ]]; then
+            path="\${KYLIN_HOME}/meta_backups"
+        fi
+        echo -e "${YELLOW}Backup at local disk succeed.${RESTORE}"
+    else
+        echo -e "${YELLOW}Backup failed. Detailed Message is at \"logs/shell.stderr\".${RESTORE}"
+    fi
+}
+
+function printRestoreResult() {
+    error=$1
+
+    if [[ $error == 0 ]]; then
+        echo -e "${YELLOW}Restore succeed. Detailed Message is at \"logs/shell.stderr\".${RESTORE}"
+    else
+        echo -e "${YELLOW}Restore failed. Detailed Message is at \"logs/shell.stderr\".${RESTORE}"
+    fi
+}
+
+function printEnterMaintainModeResult() {
+    echo -e "${YELLOW}Enter Maintain Mode succeed. Detailed Message is at \"logs/shell.stderr\".${RESTORE}"
+}
+
+function printExitMaintainModeResult() {
+    echo -e "${YELLOW}Exit Maintain Mode succeed. Detailed Message is at \"logs/shell.stderr\".${RESTORE}"
+}
+
+function check_path_empty() {
+  # this function is to check whether the path is an empty str.
+    if [ -z "$1" ]; then
+          exit 1
+    fi
+}
+
+function check_path_empty_dir() {
+  # this function is to check whether the path is an empty directory.
+    if [ -z "$(ls -A "$1")" ]; then
+        echo -e "${YELLOW}The directory \"$1\" is an empty directory, please check.${RESTORE}"
+        exit 1
+    fi
+}
+
+function turn_on_maintain_mode() {
+  ${KYLIN_HOME}/bin/kylin.sh io.kyligence.kap.tool.MaintainModeTool -on -reason 'metastore tool' -hidden-output true
+  local ret=$?
+  if [[ $ret != 0 ]]; then
+      echo -e "${YELLOW}Enter Maintain Mode failed. Detailed Message is at \"logs/shell.stderr\".${RESTORE}"
+      exit $ret
+  fi
+}
+
+function turn_off_maintain_mode() {
+    ${KYLIN_HOME}/bin/kylin.sh io.kyligence.kap.tool.MaintainModeTool -off -hidden-output true
+    local ret=$?
+    if [[ $ret != 0 ]]; then
+        echo -e "${YELLOW}Exit Maintain Mode failed. Detailed Message is at \"logs/shell.stderr\".${RESTORE}"
+        exit $ret
+    fi
+}
+
+function restore_all() {
+        local path=`cd $1 && pwd -P`
+        check_path_empty ${path}
+        check_path_empty_dir ${path}
+        turn_on_maintain_mode
+        printEnterMaintainModeResult
+        ${KYLIN_HOME}/bin/kylin.sh io.kyligence.kap.tool.MetadataTool -restore -dir ${path} ${2}
+        printRestoreResult $?
+        turn_off_maintain_mode
+        printExitMaintainModeResult
+}
+
+function restore_project() {
+        local path=`cd $1 && pwd -P`
+        check_path_empty ${path}
+        check_path_empty_dir ${path}
+        turn_on_maintain_mode
+        printEnterMaintainModeResult
+        ${KYLIN_HOME}/bin/kylin.sh io.kyligence.kap.tool.MetadataTool -restore -dir ${path} -project ${2} ${3}
+        printRestoreResult $?
+        turn_off_maintain_mode
+        printExitMaintainModeResult
+}
+
+
+if [ "$1" == "backup" ]
+then
+    BACKUP_OPTS="-backup"
+    if [ $# -eq 2 ]; then
+        path=`cd $2 && pwd -P`
+        check_path_empty ${path}
+        BACKUP_OPTS="${BACKUP_OPTS} -dir ${path}"
+    elif [ $# -ne 1 ]; then
+        help
+    fi
+
+    ${KYLIN_HOME}/bin/kylin.sh io.kyligence.kap.tool.MetadataTool ${BACKUP_OPTS}
+    printBackupResult $?
+
+elif [ "$1" == "restore" ]
+then
+    if [ $# -eq 2 ]; then
+        restore_all ${2}
+    elif [ $# -eq 3 -a "$3" == "--after-truncate" ]; then
+        restore_all ${2} "--after-truncate"
+    else
+       help
+    fi
+
+elif [ "$1" == "backup-project" ]
+then
+    BACKUP_OPTS="-backup"
+    if [ $# -eq 3 ]; then
+        path=`cd $3 && pwd -P`
+        check_path_empty ${path}
+        BACKUP_OPTS="${BACKUP_OPTS} -dir ${path}"
+    elif [ $# -ne 2 ]; then
+        help
+    fi
+    BACKUP_OPTS="${BACKUP_OPTS} -project $2"
+    ${KYLIN_HOME}/bin/kylin.sh io.kyligence.kap.tool.MetadataTool ${BACKUP_OPTS}
+    printBackupResult $?
+
+elif [ "$1" == "restore-project" ]
+then
+    if [ $# -eq 3 ]; then
+        restore_project ${3} ${2}
+    elif [ $# -eq 4 -a "$4" == "--after-truncate" ]; then
+        restore_project ${3} ${2} "--after-truncate"
+    else
+        help
+    fi
+else
+    help
+fi
+
+
diff --git a/build/bin/rollback.sh b/build/bin/rollback.sh
new file mode 100644
index 0000000000..300fcb9361
--- /dev/null
+++ b/build/bin/rollback.sh
@@ -0,0 +1,83 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+if [ -z $KYLIN_HOME ];then
+    export KYLIN_HOME=$(cd -P -- "$(dirname -- "$0")"/../ && pwd -P)
+fi
+
+
+function help(){
+    echo "Usage: $0  [--time <travel_time(must required)>] [--project <project_name>] [--skip-check-data <skip_check_storage_data> ]"
+    exit 1
+}
+
+function printBackupResult() {
+    error=$1
+    if [[ $error == 0 ]]; then
+        echo "rollback success"
+    else
+        echo -e "rollback failed please check logs/shell.stderr and  logs/shell.stdout for reason"
+    fi
+}
+
+
+mkdir -p ${KYLIN_HOME}/logs
+ERR_LOG=${KYLIN_HOME}/logs/shell.stderr
+OUT_LOG=${KYLIN_HOME}/logs/shell.stdout
+
+PROJECT_SECTION=
+SKIP_CHECK_DATA_SECTION=
+TIME=
+function main() {
+    while [[ $# != 0 ]]; do
+        if [[ $1 == "-t" || $1 == "--time" ]]; then
+            TIME="$2"
+        elif [[ $1 == "-p" || $1 == "--project"  ]]; then
+            PROJECT_SECTION="-project $2"
+        elif [[ $1 == "--skip-check-data" ]]; then
+            SKIP_CHECK_DATA_SECTION="-skipCheckData true"
+        fi
+        shift
+    done
+    if [[ -z $TIME ]]; then
+      echo "Specify the travel time(must required)"
+        help
+    fi
+    echo $PROJECT_SECTION
+    echo $SKIP_CHECK_DATA_SECTION
+    echo "org.apache.kylin.tool.RollbackTool -time '$TIME' $PROJECT_SECTION $SKIP_CHECK_DATA_SECTION"
+
+    source $(cd -P -- "$(dirname -- "$0")" && pwd -P)/../sbin/header.sh "$@"
+    version=`cat ${KYLIN_HOME}/VERSION | awk '{print $3}'`
+    ${KYLIN_HOME}/sbin/rotate-logs.sh "$@"
+
+    if [ "$1" == "-v" ]; then
+        shift
+    fi
+
+    source ${KYLIN_HOME}/sbin/setenv.sh
+    source ${KYLIN_HOME}/sbin/prepare-hadoop-conf-dir.sh
+    export SPARK_HOME=${KYLIN_HOME}/spark
+
+    java -Xms${JAVA_VM_TOOL_XMS} -Xmx${JAVA_VM_TOOL_XMX} -cp "${kylin_hadoop_conf_dir}:${KYLIN_HOME}/lib/ext/*:${KYLIN_HOME}/server/jars/*:${SPARK_HOME}/jars/*" io.kyligence.kap.tool.RollbackTool -time "$TIME"  $PROJECT_SECTION $SKIP_CHECK_DATA_SECTION 2>>${ERR_LOG}  | tee -a ${OUT_LOG}
+
+    printBackupResult ${PIPESTATUS[0]}
+}
+
+main "$@"
diff --git a/build/bin/sample.sh b/build/bin/sample.sh
new file mode 100644
index 0000000000..6bd4990156
--- /dev/null
+++ b/build/bin/sample.sh
@@ -0,0 +1,157 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+function help(){
+    echo "Usage: $0  [--client <hive_client_mode>] [--dir <hdfs_tmp_dir> ] [--params <beeline_params>] [--conf <hive_conf_properties> ]"
+    exit 1
+}
+
+while [[ $# != 0 ]]; do
+    if [[ $# != 1 ]]; then
+        if [[ $1 == "--client" ]]; then
+            hive_client_mode=$2
+        elif [[ $1 == "--dir" ]]; then
+            hdfs_tmp_dir=$2
+        elif [[ $1 == "--params" ]]; then
+            beeline_params=$2
+        elif [[ $1 == "--conf" ]]; then
+            hive_conf_properties=$2
+        else
+            help
+        fi
+        shift
+    else
+        case $1 in
+            --client|--dir|--params|--conf) break
+            ;;
+            *)
+            help
+            ;;
+        esac
+    fi
+    shift
+done
+
+source $(cd -P -- "$(dirname -- "$0")" && pwd -P)/../sbin/header.sh
+
+source ${KYLIN_HOME}/sbin/prepare-hadoop-conf-dir.sh
+
+cd ${KYLIN_HOME}/tool/ssb/data
+
+if [[ -z "${kylin_hadoop_conf_dir}" ]]; then
+    hadoop_conf_param=
+else
+    hadoop_conf_param="--config ${kylin_hadoop_conf_dir}"
+fi
+
+
+#judge hive_client for FusionInsight or default
+## FusionInsight platform C60.
+if [[ -z $hive_client_mode && -n "$FI_ENV_PLATFORM" ]]; then
+    hive_client_mode=beeline
+elif [[ -z $hive_client_mode && -z "$FI_ENV_PLATFORM" ]]; then
+    hive_client_mode=hive
+fi
+
+#set default properties
+if [[ -z $hdfs_tmp_dir ]]; then
+    hdfs_tmp_dir=/tmp/kylin
+fi
+
+echo "Loading sample data into HDFS tmp path: ${hdfs_tmp_dir}/sample_cube/data"
+
+hadoop ${hadoop_conf_param} fs -mkdir -p ${hdfs_tmp_dir}/sample_cube/data
+
+if [[ $? != 0 ]]; then
+    quit "Failed to create ${hdfs_tmp_dir}/sample_cube/data. Please make sure the user has right to access ${hdfs_tmp_dir}/sample_cube/data or usage: sample.sh --dir hdfs_tmp_dir"
+fi
+
+hadoop ${hadoop_conf_param} fs -put * ${hdfs_tmp_dir}/sample_cube/data/
+
+sample_database=SSB
+
+echo "Going to create sample tables in hive to database "$sample_database" by "$hive_client_mode
+
+if [[ "${hive_client_mode}" == "beeline" ]]; then
+    beeline ${hive_conf_properties} ${beeline_params} -e "CREATE DATABASE IF NOT EXISTS "$sample_database
+    hive2_url=`expr match "${beeline_params}" '.*\(hive2:.*:[0-9]\{4,6\}\/\)'`
+    if [[ -z ${hive2_url} ]]; then
+        hive2_url=`expr match "${beeline_params}" '.*\(hive2:.*:[0-9]\{4,6\}\)'`
+        beeline_params=${beeline_params/${hive2_url}/${hive2_url}/${sample_database}}
+    else
+        beeline_params=${beeline_params/${hive2_url}/${hive2_url}${sample_database}}
+    fi
+    beeline ${hive_conf_properties} --hivevar hdfs_tmp_dir=${hdfs_tmp_dir} ${beeline_params} -f ${KYLIN_HOME}/tool/ssb/create_sample_ssb_tables.sql  || { exit 1; }
+elif [[ "${hive_client_mode}" == "hive" ]]; then
+    hive ${hive_conf_properties} -e "CREATE DATABASE IF NOT EXISTS "$sample_database
+    hive ${hive_conf_properties} --hivevar hdfs_tmp_dir=${hdfs_tmp_dir} --database $sample_database -f ${KYLIN_HOME}/tool/ssb/create_sample_ssb_tables.sql  || { exit 1; }
+else
+    echo "Now $hive_client_mode is not supported, please use hive or beeline."
+fi
+
+echo "Sample hive tables are created successfully; Going to create sample project..."
+
+mkdir -p ${KYLIN_HOME}/sample_project/sample_model/metadata
+cp -rf ${KYLIN_HOME}/sample_project/template/* ${KYLIN_HOME}/sample_project/sample_model/metadata
+
+#### Add version info into model
+kylin_version=4.0.0.0
+echo "kylin version is "$kylin_version
+sed -i "s/%default_version%/${kylin_version}/g" ${KYLIN_HOME}/sample_project/sample_model/metadata/_global/project/learn_kylin.json
+sed -i "s/%default_version%/${kylin_version}/g" ${KYLIN_HOME}/sample_project/sample_model/metadata/learn_kylin/dataflow/2d07e878-da28-a203-2d2c-185b4c6656f1.json
+sed -i "s/%default_version%/${kylin_version}/g" ${KYLIN_HOME}/sample_project/sample_model/metadata/learn_kylin/index_plan/2d07e878-da28-a203-2d2c-185b4c6656f1.json
+sed -i "s/%default_version%/${kylin_version}/g" ${KYLIN_HOME}/sample_project/sample_model/metadata/learn_kylin/model_desc/2d07e878-da28-a203-2d2c-185b4c6656f1.json
+
+sed -i "s/%default_version%/${kylin_version}/g" ${KYLIN_HOME}/sample_project/sample_model/metadata/learn_kylin/table/SSB.CUSTOMER.json
+sed -i "s/%default_version%/${kylin_version}/g" ${KYLIN_HOME}/sample_project/sample_model/metadata/learn_kylin/table/SSB.DATES.json
+sed -i "s/%default_version%/${kylin_version}/g" ${KYLIN_HOME}/sample_project/sample_model/metadata/learn_kylin/table/SSB.P_LINEORDER.json
+sed -i "s/%default_version%/${kylin_version}/g" ${KYLIN_HOME}/sample_project/sample_model/metadata/learn_kylin/table/SSB.PART.json
+sed -i "s/%default_version%/${kylin_version}/g" ${KYLIN_HOME}/sample_project/sample_model/metadata/learn_kylin/table/SSB.SUPPLIER.json
+
+function turn_on_maintain_mode() {
+  echo "enter maintenance mode."
+  ${KYLIN_HOME}/bin/kylin.sh org.apache.kylin.tool.MaintainModeTool -on -reason 'metastore tool' -hidden-output true
+  ret=$?
+  if [[ $ret != 0 ]]; then
+    exit $ret
+  fi
+}
+
+function turn_off_maintain_mode() {
+  echo "exit maintenance mode."
+  ${KYLIN_HOME}/bin/kylin.sh org.apache.kylin.tool.MaintainModeTool -off -hidden-output true
+}
+
+function printImportResult() {
+  error=$1
+  if [[ $error == 0 ]]; then
+    echo -e "${YELLOW}Sample model is created successfully in project 'learn_kylin'. Detailed Message is at \"logs/shell.stderr\".${RESTORE}"
+  else
+    echo -e "${YELLOW}Sample model is created failed in project 'learn_kylin'. Detailed Message is at \"logs/shell.stderr\".${RESTORE}"
+  fi
+}
+
+function importProject() {
+  turn_on_maintain_mode
+  ${KYLIN_HOME}/bin/kylin.sh org.apache.kylin.tool.SampleProjectTool -dir ${KYLIN_HOME}/sample_project/sample_model/metadata -project learn_kylin -model sample_ssb
+  printImportResult $?
+  turn_off_maintain_mode
+}
+
+importProject
diff --git a/build/bin/sql-extract-tool.sh b/build/bin/sql-extract-tool.sh
new file mode 100755
index 0000000000..0a5a6f21bb
--- /dev/null
+++ b/build/bin/sql-extract-tool.sh
@@ -0,0 +1,97 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+function verbose() {
+    (>&2 echo `date '+%F %H:%M:%S'` $@)
+}
+
+function help() {
+    echo "Example usage:"
+    echo "  sql-extract-tool.sh -file <LOG_FILE_PATH> "
+    exit 1
+}
+
+function extract_sql() {
+    log_file=$2
+    log_file_dir=`dirname ${log_file}`
+    sql_file=${log_file_dir}/kylin_sql_`date '+%F_%H:%M:%S'`.txt
+    sql_file_tmp=${sql_file}.tmp
+    if [ -f ${sql_file} ];then
+        rm -rf ${sql_file}
+    fi
+
+    if [ -f ${sql_file_tmp} ];then
+        rm -rf ${sql_file_tmp}
+    fi
+
+    verbose "start to extract sql from [${log_file}] to [${sql_file}]"
+
+    sql=""
+    sql_start=0
+    sql_end=0
+    while read line
+    do
+
+    if [[ $line == SQL:* ]];then
+        sql_start=1
+        sql=${line:4}
+    elif [[ $line == User:* ]];then
+        sql_end=1
+    elif [ $sql_start == 1 ] && [ $sql_end == 0 ];then
+        sql="$sql $line"
+    elif [[ $line == "Success: true" ]];then
+        echo "$sql;" >> ${sql_file_tmp}
+        sql_start=0
+        sql_end=0
+        sql=""
+    else
+        sql_start=0
+        sql_end=0
+        sql=""
+    fi
+    done < ${log_file}
+
+    row_count=$(cat ${log_file} | wc -l)
+    verbose "file [${log_file}] total scan row count : ${row_count}"
+
+    sort -u ${sql_file_tmp} >> ${sql_file}
+
+    sql_count=$(cat ${sql_file} | wc -l)
+    verbose "file [${log_file}] total extract sql num : ${sql_count}"
+
+    rm -rf ${sql_file_tmp}
+    sql_file_size=$(ls -lah ${sql_file} | awk '{ print $5}')
+    verbose "extract sql succeed, the sql file size is ${sql_file_size}"
+    split -d -C 4M ${sql_file} "${sql_file}-"
+}
+
+function main() {
+    if [[ $# -lt 2 ]]; then
+        help
+    fi
+
+    if [[ $1 == "-file" ]]; then
+        extract_sql $@
+        exit $?
+    else
+        help
+    fi
+}
+
+main $@
diff --git a/build/bin/upgrade.sh b/build/bin/upgrade.sh
new file mode 100644
index 0000000000..cd172b9080
--- /dev/null
+++ b/build/bin/upgrade.sh
@@ -0,0 +1,321 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+function help() {
+    echo "Usage: upgrade.sh <OLD_KYLIN_HOME> [--silent]"
+    echo
+    echo "<OLD_KYLIN_HOME>    Specify the old version of the Kyligence Enterprise"
+    echo "                    installation directory."
+    echo
+    echo "--silent            Optional, don't enter interactive mode, automatically complete the upgrade."
+    exit 1
+}
+
+function info() {
+    echo -e "\033[32m$@\033[0m"
+}
+
+function warn() {
+    echo -e "\033[33m$@\033[0m"
+}
+
+function error() {
+    echo -e "\033[31m$@\033[0m"
+}
+
+function logging() {
+    case $1 in
+        "info") shift; info $@ ;;
+        "warn") shift; warn $@ ;;
+        "error") shift; error $@ ;;
+        *) echo -e $@ ;;
+    esac
+
+    (echo -e `date '+%F %H:%M:%S'` $@ >> $upgrade_log)
+}
+
+function fail() {
+    error "...................................................[FAIL]"
+    error "Upgrade Kyligence Enterprise failed."
+    recordKylinUpgradeResult "${START_TIME}" "false" "${NEW_KYLIN_HOME}"
+    exit 1
+}
+
+function prompt() {
+    if [[ $silent -eq 0 ]]; then
+        return 0
+    fi
+
+    read -p "$@ (y/n) > " answer
+    if [[ -z $answer ]] || [[ $answer == "y" ]]; then
+        return 0
+    else
+        return 1
+    fi
+}
+
+function check_kylin_query_transformers() {
+    query_transformers=""
+    if [[ -f ${OLD_KYLIN_HOME}/conf/kylin.properties.override ]]; then
+        query_transformers=$(sed -n '/^kylin.query.transformers/p' ${OLD_KYLIN_HOME}/conf/kylin.properties.override)
+    fi
+
+    if [[ -z "${query_transformers}" && -f ${OLD_KYLIN_HOME}/conf/kylin.properties ]]; then
+        query_transformers=$(sed -n '/^kylin.query.transformers/p' ${OLD_KYLIN_HOME}/conf/kylin.properties)
+    fi
+
+    if [[ -n "${query_transformers}" && (! ${query_transformers} =~ io.kyligence.kap.query.security.RowFilter) ]]; then
+          error "Please check the value of the configuration item [kylin.query.transformers] in kylin.properties or kylin.properties.override, which needs to include [org.apache.kylin.query.security.RowFilter] class."
+          exit 1
+    fi
+}
+
+function upgrade() {
+
+    check_kylin_query_transformers
+
+    # needed by km
+    if [[ -f ${OLD_KYLIN_HOME}/pid ]]; then
+        PID=`cat ${OLD_KYLIN_HOME}/pid`
+        if ps -p $PID > /dev/null; then
+          error "Please stop the Kyligence Enterprise during the upgrade process."
+          exit 1
+        fi
+    fi
+
+    if [[ -f ${OLD_KYLIN_HOME}/grafana/pid ]]; then
+        PID=`cat ${OLD_KYLIN_HOME}/grafana/pid`
+        if ps -p $PID > /dev/null; then
+          error "Please stop the Grafana during the upgrade process."
+          exit 1
+        fi
+    fi
+
+    echo `date '+%Y-%m-%d %H:%M:%S '`"INFO : [Operation: upgrade] user:`whoami`, upgrade time:${START_TIME}" >> ${NEW_KYLIN_HOME}/logs/security.log
+    origin_version=$(awk '{print $NF}' ${OLD_KYLIN_HOME}/VERSION)
+    target_version=$(awk '{print $NF}' ${NEW_KYLIN_HOME}/VERSION)
+    echo
+    logging "warn" "Upgrade Kyligence Enterprise from ${origin_version} to ${target_version}"
+    warn "Old KYLIN_HOME is ${OLD_KYLIN_HOME}, log is at ${upgrade_log}"
+    echo
+
+    # copy LICENSE
+    logging "Copy LICENSE"
+    if [[ -f ${OLD_KYLIN_HOME}/LICENSE ]]; then
+        if prompt "'${OLD_KYLIN_HOME}/LICENSE' -> '${NEW_KYLIN_HOME}/'"; then
+            \cp -vf ${OLD_KYLIN_HOME}/LICENSE ${NEW_KYLIN_HOME}/ >> $upgrade_log || fail
+        fi
+    fi
+    info "...................................................[DONE]"
+
+    # copy kylin conf
+    # exclude 'profile*' directory
+    logging "Copy Kylin Conf"
+    for conf_file in $(ls $OLD_KYLIN_HOME/conf); do
+        if prompt "'${OLD_KYLIN_HOME}/conf/${conf_file}' -> '${NEW_KYLIN_HOME}/conf/'"; then
+            if [[ -d ${OLD_KYLIN_HOME}/conf/${conf_file} ]]; then
+                # silent copy directory
+                \cp -rfv ${OLD_KYLIN_HOME}/conf/${conf_file} ${NEW_KYLIN_HOME}/conf/ >> $upgrade_log || fail
+            else
+                # need to delete the symbolic link first
+                \cp -vf --remove-destination ${OLD_KYLIN_HOME}/conf/${conf_file} ${NEW_KYLIN_HOME}/conf/ >> $upgrade_log || fail
+            fi
+
+        fi
+    done
+    info "...................................................[DONE]"
+
+    # copy ext jars
+    # copy ext/mysql*.jar to spark/jars
+    logging "Copy Ext Jars"
+    for jar_file in $(ls $OLD_KYLIN_HOME/lib/ext); do
+        if prompt "'${OLD_KYLIN_HOME}/lib/ext/${jar_file}' -> '${NEW_KYLIN_HOME}/lib/ext/'"; then
+            \cp -vf ${OLD_KYLIN_HOME}/lib/ext/${jar_file} ${NEW_KYLIN_HOME}/lib/ext/ >> $upgrade_log || fail
+        fi
+
+        if [[ ${jar_file}} == mysql* ]];
+        then
+          if prompt "'${OLD_KYLIN_HOME}/lib/ext/${jar_file}' -> '${NEW_KYLIN_HOME}/spark/jars/'"; then
+            \cp -vf ${OLD_KYLIN_HOME}/lib/ext/${jar_file} ${NEW_KYLIN_HOME}/spark/jars/ >> $upgrade_log || fail
+          fi
+        fi
+    done
+    info "...................................................[DONE]"
+
+    # copy mysql connector jar to spark jars dir for apache hadoop platform
+    APACHE_HADOOP_CONF_DIR=`${NEW_KYLIN_HOME}/bin/get-properties.sh kylin.env.apache-hadoop-conf-dir`
+    if [ -n "${APACHE_HADOOP_CONF_DIR}" ]; then
+      logging "Copy mysql connector jar to spark jars dir for apache hadoop platform"
+      \cp -vf ${OLD_KYLIN_HOME}/lib/ext/mysql-connector-*.jar ${NEW_KYLIN_HOME}/spark/jars/ >> $upgrade_log || fail
+      info "...................................................[DONE]"
+    fi
+
+    # copy the customize directory under old kylin home
+    # such as hadoop_conf
+    logging "Copy Customize Directory"
+    OLDIFS=$IFS
+    IFS=$'\n'
+    for diff_log in $(diff -qr $OLD_KYLIN_HOME $NEW_KYLIN_HOME); do
+        if [[ $diff_log =~ (^Only in ${OLD_KYLIN_HOME}: )(.*) ]]; then
+            diff_file=${BASH_REMATCH[2]}
+            if [[ $diff_file == "meta_backups" || $diff_file == "appid" || $diff_file == "work" ]]; then
+                continue
+            fi
+            if prompt "'${OLD_KYLIN_HOME}/${diff_file}' -> '${NEW_KYLIN_HOME}/'"; then
+                cp -rfv ${OLD_KYLIN_HOME}/${diff_file} ${NEW_KYLIN_HOME}/ >> $upgrade_log || fail
+            fi
+        fi
+    done
+    IFS=$OLDIFS
+    info "...................................................[DONE]"
+
+    # Ensure krb5.conf underlying hadoop_conf if kerberos enabled
+    logging "Copy krb5.conf"
+    if [[ -f ${OLD_KYLIN_HOME}/conf/krb5.conf ]]; then
+        if [[ -d ${NEW_KYLIN_HOME}/hadoop_conf ]]; then
+          cp -rfv ${OLD_KYLIN_HOME}/conf/krb5.conf ${NEW_KYLIN_HOME}/hadoop_conf
+        fi
+
+        if [[ -d ${NEW_KYLIN_HOME}/write_hadoop_conf ]]; then
+          cp -rfv ${OLD_KYLIN_HOME}/conf/krb5.conf ${NEW_KYLIN_HOME}/write_hadoop_conf
+        fi
+    fi
+    info "...................................................[DONE]"
+
+    logging "Copy hive*-site.xml for spark3"
+    if [[ -f ${OLD_KYLIN_HOME}/hadoop_conf/hive-site.xml ]]; then
+        if [[ -d ${NEW_KYLIN_HOME}/hadoop_conf ]]; then
+          cp -rfv ${OLD_KYLIN_HOME}/hadoop_conf/hive-site.xml ${NEW_KYLIN_HOME}/hadoop_conf/hiveserver2-site.xml
+          cp -rfv ${OLD_KYLIN_HOME}/hadoop_conf/hive-site.xml ${NEW_KYLIN_HOME}/hadoop_conf/hivemetastore-site.xml
+        fi
+
+        if [[ -d ${NEW_KYLIN_HOME}/write_hadoop_conf ]]; then
+          cp -rfv ${OLD_KYLIN_HOME}/write_hadoop_conf/hive-site.xml ${NEW_KYLIN_HOME}/write_hadoop_conf/hiveserver2-site.xml
+          cp -rfv ${OLD_KYLIN_HOME}/write_hadoop_conf/hive-site.xml ${NEW_KYLIN_HOME}/write_hadoop_conf/hivemetastore-site.xml
+        fi
+    fi
+    info "...................................................[DONE]"
+
+    # copy spark-env for spark3
+    logging "Copy spark-env for spark3"
+    if [[ -f ${OLD_KYLIN_HOME}/spark/conf/spark-env.sh ]]; then
+        if prompt "'${OLD_KYLIN_HOME}/spark/conf/spark-env.sh' -> '${NEW_KYLIN_HOME}/spark/conf/'"; then
+            \cp -vf ${OLD_KYLIN_HOME}/spark/conf/spark-env.sh ${NEW_KYLIN_HOME}/spark/conf/ >> $upgrade_log || fail
+        fi
+    fi
+    info "...................................................[DONE]"
+
+    # sed -nE 's/^([#\t ]*)(kylin\..*|kap\..*)/\2/p' kylin.properties | awk '{kv[substr($0,0,index($0,"=")-1)]=substr($0,index($0,"=")+1)} END{print kv["kylin.metadata.url"]}'
+    logging "Checking Kylin Conf"
+python <<PY
+from __future__ import print_function
+import os
+import sys
+try:
+    import commands as cmd
+except ImportError:
+    import subprocess as cmd
+
+def printer(msg, *outs):
+    for o in outs: print(msg, file=o)
+
+def getProp(prop_file):
+    if not os.path.exists(prop_file):
+        return dict()
+
+    output = cmd.getoutput("sed -nE 's/^([#\\\\t ]*)(kylin\\..*=.*|kap\\..*=.*)/\\\\2/p' %s" % prop_file)
+    prop = dict()
+    for x in output.split('\n'):
+        if x.strip() == '':
+            continue
+        prop[x[0: x.index('=')]] = x[x.index('=') + 1:]
+    return prop
+
+with open('${upgrade_log}', 'a+') as upgrade_log:
+    origin_prop = getProp('${NEW_KYLIN_HOME}/conf/kylin.properties')
+    prod_prop = dict(getProp('${NEW_KYLIN_HOME}/conf/kylin.properties'), **getProp('${NEW_KYLIN_HOME}/conf/kylin.properties.override'))
+    diffs = set(prod_prop.items()) - set(origin_prop.items())
+
+    def logging(msg):
+        printer(msg, sys.stdout, upgrade_log)
+
+    for diff in diffs:
+        logging(diff)
+PY
+    info "...................................................[DONE]"
+
+    logging "Install"
+    if prompt "'${NEW_KYLIN_HOME}' -> '${OLD_KYLIN_HOME}'"; then
+        install_dir=$(dirname $OLD_KYLIN_HOME)
+        home_name=$(basename $OLD_KYLIN_HOME)
+
+        # backup
+        now=`date '+%Y%m%d%H%M'`
+        backup_file=${home_name}_${now}.tar.gz
+        cd $install_dir && tar -zcvf ${backup_file} ${home_name} >> $upgrade_log || fail
+
+        # install
+        rm -rfv ${OLD_KYLIN_HOME} >> $upgrade_log || fail
+        mv -vf ${NEW_KYLIN_HOME} ${OLD_KYLIN_HOME} >> $upgrade_log || fail
+        info "...................................................[DONE]"
+        recordKylinUpgradeResult "${START_TIME}" "true" "${OLD_KYLIN_HOME}"
+        info "Upgrade finished!"
+        # needed by km
+        info "Backup location:${install_dir}/${backup_file}"
+    else
+        warn "...................................................[SKIP]"
+        recordKylinUpgradeResult "${START_TIME}" "true" "${NEW_KYLIN_HOME}"
+        info "Upgrade aborted because you chose to stop"
+    fi
+
+}
+
+function recordKylinUpgradeResult() {
+    logLevel=`[ "$2" == "true" ] && echo INFO || echo ERROR`
+    echo `date '+%Y-%m-%d %H:%M:%S '`"${logLevel} : [Operation: upgrade result] user:`whoami`, upgrade time:$1, success:$2" >> $3/logs/security.log
+}
+
+NEW_KYLIN_HOME=$(cd `dirname -- $0` && cd ../ && pwd -P)
+silent=1
+while [[ $# != 0 ]]; do
+    if [[ $1 == "--silent" ]]; then
+        silent=0
+    else
+        OLD_KYLIN_HOME=$(cd $1 && pwd)
+    fi
+    shift
+done
+
+if [[ -z $OLD_KYLIN_HOME ]] || [[ ! -d $OLD_KYLIN_HOME ]]; then
+    help
+fi
+
+if [[ $OLD_KYLIN_HOME == $NEW_KYLIN_HOME ]]; then
+    error "Please specify the old version of the Kyligence Enterprise installation directory."
+    help
+fi
+
+mkdir -p ${NEW_KYLIN_HOME}/logs
+upgrade_log=${NEW_KYLIN_HOME}/logs/upgrade-$(date '+%Y_%m_%d_%H_%M_%S').log
+
+set -o errexit
+set -o pipefail
+START_TIME=$(date "+%Y-%m-%d %H:%M:%S")
+upgrade
+
diff --git a/build/conf/kylin-guardian-log4j.xml b/build/conf/kylin-guardian-log4j.xml
new file mode 100644
index 0000000000..23f80a95eb
--- /dev/null
+++ b/build/conf/kylin-guardian-log4j.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration name="Log4j1">
+    <Appenders>
+        <RollingFile name="file" fileName="${env:KYLIN_HOME}/logs/guardian.log" append="true"
+                     filePattern="${env:KYLIN_HOME}/logs/guardian.log.%i">
+            <PatternLayout pattern="%d{ISO8601} %-5p [%t] %c{2} : %m%n"/>
+            <Policies>
+                <SizeBasedTriggeringPolicy size="268435456"/>
+            </Policies>
+            <DefaultRolloverStrategy max="10"/>
+        </RollingFile>
+        <PatternLayout pattern="%d{ISO8601} %-5p %X{request.project}[%t] %c{2} : %mask{%m}%n"/>
+    </Appenders>
+    <Loggers>
+        <Root level="INFO">
+            <AppenderRef ref="file"/>
+        </Root>
+        <Logger name="org.apache.kylin.ext" level="INFO"/>
+        <Logger name="org.springframework" level="WARN"/>
+        <Logger name="org.springframework.security" level="INFO"/>
+        <Logger name="io.kyligence" level="INFO"/>
+        <Logger name="org.apache.kylin" level="INFO"/>
+    </Loggers>
+</Configuration>
diff --git a/build/conf/kylin-server-log4j.xml b/build/conf/kylin-server-log4j.xml
new file mode 100644
index 0000000000..64632fe7b2
--- /dev/null
+++ b/build/conf/kylin-server-log4j.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration name="Log4j1">
+    <Appenders>
+        <RollingRandomAccessFile name="server" fileName="${env:KYLIN_HOME}/logs/kylin.log" append="true"
+                                 filePattern="${env:KYLIN_HOME}/logs/kylin.log.%i" immediateFlush="false" >
+            <Policies>
+                <SizeBasedTriggeringPolicy size="268435456"/>
+            </Policies>
+            <DefaultRolloverStrategy max="10"/>
+            <PatternLayout pattern="%d{ISO8601} %-5p %X{request.project}[%t] %c{2} : %mask{%m}%n"/>
+        </RollingRandomAccessFile>
+        <Routing name="routing">
+            <Routes pattern="${ctx:logCategory}">
+                <Route>
+                    <RollingFile name="rolling-${ctx:logCategory}"
+                                 fileName="${env:KYLIN_HOME}/logs/kylin.${ctx:logCategory}.log"
+                                 filePattern="${env:KYLIN_HOME}/logs/kylin.${ctx:logCategory}.log.%i">
+                        <Policies>
+                            <SizeBasedTriggeringPolicy size="268435456"/>
+                        </Policies>
+                        <DefaultRolloverStrategy max="10"/>
+                        <PatternLayout pattern="%d{ISO8601} %-5p %X{request.project}[%t] %c{2} : %mask{%m}%n"/>
+                    </RollingFile>
+                </Route>
+
+                <Route ref="server" key="${ctx:logCategory}"/>
+            </Routes>
+        </Routing>
+        <RollingFile name="query-log-spark" fileName="${env:KYLIN_HOME}/logs/kylin.query.log" append="true"
+                     filePattern="${env:KYLIN_HOME}/logs/kylin.query.log.%i">
+            <Policies>
+                <SizeBasedTriggeringPolicy size="268435456"/>
+            </Policies>
+            <DefaultRolloverStrategy max="10"/>
+            <PatternLayout pattern="%d{ISO8601} %-5p %X{request.project}[%t] %c{2} : %mask{%m}%n"/>
+        </RollingFile>
+    </Appenders>
+    <Loggers>
+        <Root level="INFO">
+            <AppenderRef ref="routing"/>
+        </Root>
+        <Logger name="org.apache.spark.scheduler.TaskSetManager" level="INFO" additivity="false">
+            <AppenderRef ref="query-log-spark"/>
+        </Logger>
+        <Logger name="org.apache.spark.scheduler.DAGScheduler" level="INFO" additivity="false">
+            <AppenderRef ref="query-log-spark"/>
+        </Logger>
+        <Logger name="org.apache.spark.scheduler.YarnScheduler" level="INFO" additivity="false">
+            <AppenderRef ref="query-log-spark"/>
+        </Logger>
+        <Logger name="io.kyligence" level="DEBUG"/>
+        <Logger name="org.springframework" level="WARN"/>
+        <Logger name="org.apache.kylin" level="DEBUG"/>
+        <Logger name="org.apache.spark.ui" level="WARN"/>
+        <Logger name="org.apache.spark.sql.execution.ui" level="WARN"/>
+        <Logger name="org.springframework.security" level="INFO"/>
+        <Logger name="org.apache.spark.ContextCleaner" level="WARN"/>
+        <Logger name="org.apache.kylin.ext" level="INFO"/>
+        <!--  Query log  -->
+        <Logger name="org.apache.kylin.query" level="INFO"/>
+        <Logger name="org.apache.kylin.query" level="INFO"/>
+        <Logger name="NDataflowCapabilityChecker" level="INFO" />
+        <Logger name="org.apache.kylin.common.util.CheckUtil" level="INFO" />
+        <Logger name="NQueryLayoutChooser" level="INFO" />
+        <Logger name="org.apache.kylin.query.runtime.plan.ResultPlan" level="INFO" />
+        <Logger name="org.apache.spark.sql.kylin.external.LogEx" level="INFO" />
+        <Logger name="org.apache.kylin.engine.spark.utils.LogEx" level="INFO" />
+    </Loggers>
+</Configuration>
diff --git a/build/conf/kylin-tools-diag-log4j.xml b/build/conf/kylin-tools-diag-log4j.xml
new file mode 100644
index 0000000000..06b179fd9b
--- /dev/null
+++ b/build/conf/kylin-tools-diag-log4j.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration name="Log4j1">
+    <Appenders>
+        <RollingFile name="file" fileName="${env:KYLIN_HOME}/logs/diag.log" append="true"
+                     filePattern="${env:KYLIN_HOME}/logs/diag.log.%i">
+            <Policies>
+                <SizeBasedTriggeringPolicy size="10485760"/>
+            </Policies>
+            <DefaultRolloverStrategy max="1"/>
+            <PatternLayout pattern="%d{ISO8601} %-5p %X{request.project}[%t] %c{2} : %mask{%m}%n"/>
+        </RollingFile>
+        <Console name="stdout" target="SYSTEM_OUT">
+            <PatternLayout pattern="%d{ISO8601} %-5p %X{request.project}[%t] %c{2} : %mask{%m}%n"/>
+        </Console>
+    </Appenders>
+    <Loggers>
+        <Root level="DEBUG">
+            <AppenderRef ref="file" level="INFO"/>
+            <AppenderRef ref="stdout" level="INFO"/>
+        </Root>
+        <Logger name="org.springframework" level="WARN"/>
+        <Logger name="org.springframework.security" level="INFO"/>
+        <Logger name="io.kyligence" level="DEBUG"/>
+        <Logger name="org.apache.kylin" level="DEBUG"/>
+    </Loggers>
+</Configuration>
diff --git a/build/conf/kylin-tools-log4j.xml b/build/conf/kylin-tools-log4j.xml
new file mode 100644
index 0000000000..7148525108
--- /dev/null
+++ b/build/conf/kylin-tools-log4j.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration name="Log4j1">
+    <Appenders>
+        <Console name="stderr" target="SYSTEM_ERR">
+            <PatternLayout pattern="%d{ISO8601} %-5p %X{request.project}[%t] %c{2} : %mask{%m}%n"/>
+        </Console>
+    </Appenders>
+    <Loggers>
+        <Root level="INFO">
+            <AppenderRef ref="stderr"/>
+        </Root>
+        <Logger name="org.apache.spark" level="WARN"/>
+        <Logger name="org.apache.kylin.ext" level="INFO"/>
+        <Logger name="org.springframework" level="WARN"/>
+        <Logger name="org.apache.zookeeper" level="WARN"/>
+        <Logger name="io.kyligence" level="DEBUG"/>
+        <Logger name="org.apache.kylin.tool.shaded" level="INFO"/>
+        <Logger name="org.apache.kylin" level="DEBUG"/>
+    </Loggers>
+</Configuration>
diff --git a/build/conf/kylin.properties b/build/conf/kylin.properties
new file mode 100644
index 0000000000..2ad7b09670
--- /dev/null
+++ b/build/conf/kylin.properties
@@ -0,0 +1,27 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# KAP provides two configuration profiles: minimal and production(by default).
+# To switch to minimal: uncomment the properties
+#kylin.storage.columnar.spark-conf.spark.driver.memory=512m
+#kylin.storage.columnar.spark-conf.spark.executor.memory=512m
+#kylin.storage.columnar.spark-conf.spark.executor.memoryOverhead=512m
+#kylin.storage.columnar.spark-conf.spark.executor.extraJavaOptions=-Dhdp.version=current -Dlog4j.configurationFile=spark-executor-log4j.xml -Dlog4j.debug -Dkylin.hdfs.working.dir=${kylin.env.hdfs-working-dir} -Dkap.metadata.identifier=${kylin.metadata.url.identifier} -Dkap.spark.category=sparder -Dkap.spark.project=${job.project} -XX:MaxDirectMemorySize=512M
+#kylin.storage.columnar.spark-conf.spark.yarn.am.memory=512m
+#kylin.storage.columnar.spark-conf.spark.executor.cores=1
+#kylin.storage.columnar.spark-conf.spark.executor.instances=1
+#kylin.storage.columnar.spark-conf.spark.sql.adaptive.coalescePartitions.minPartitionNum=1
diff --git a/build/conf/setenv.sh b/build/conf/setenv.sh
new file mode 100755
index 0000000000..c78a06e416
--- /dev/null
+++ b/build/conf/setenv.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+export JAVA_VM_XMS=1g
+export JAVA_VM_XMX=8g
+
+export JAVA_VM_TOOL_XMS=1g
+export JAVA_VM_TOOL_XMX=8g
+
+# uncomment following to for it to take effect(the values need adjusting to fit your env)
+#export KYLIN_DEBUG_SETTINGS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
+
+# uncomment following to for it to take effect(the values need adjusting to fit your env)
+#export KYLIN_LD_LIBRARY_SETTINGS="-Djava.library.path=/apache/hadoop/lib/native/Linux-amd64-64"
+
+# Newer versions of glibc use an arena memory allocator that causes virtual
+# memory usage to explode. Tune the variable down to prevent vmem explosion.
+# See HADOOP-7154.
+export MALLOC_ARENA_MAX=4
+export KYLIN_JVM_SETTINGS="-server -Xms${JAVA_VM_XMS} -Xmx${JAVA_VM_XMX} -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:G1HeapRegionSize=16m -XX:+PrintFlagsFinal -XX:+PrintReferenceGC -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintAdaptiveSizePolicy -XX:+UnlockDiagnosticVMOptions -XX:+G1SummarizeConcMark -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${KYLIN_HOME}/logs -Xloggc:${KYLIN_HOME}/logs/kylin.gc.%p  -XX:+UseGCLogFileRotation -XX:NumberOfGCLo [...]
diff --git a/build/conf/spark-appmaster-log4j.xml b/build/conf/spark-appmaster-log4j.xml
new file mode 100644
index 0000000000..8879c7c673
--- /dev/null
+++ b/build/conf/spark-appmaster-log4j.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration name="Log4j1">
+    <Appenders>
+        <Console name="stderr" target="SYSTEM_OUT" layout="org.apache.spark.log4j.SensitivePatternLayout">
+            <PatternLayout pattern="%d{ISO8601} %-5p %X{request.project}[%t] %c{2} : %mask{%m}%n"/>
+        </Console>
+    </Appenders>
+    <Loggers>
+        <Root level="INFO">
+            <AppenderRef ref="stderr"/>
+        </Root>
+    </Loggers>
+</Configuration>
diff --git a/build/conf/spark-driver-log4j.xml b/build/conf/spark-driver-log4j.xml
new file mode 100644
index 0000000000..73a51209dc
--- /dev/null
+++ b/build/conf/spark-driver-log4j.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration name="Log4j1">
+    <Appenders>
+        <DriverHdfsAppender name="hdfs"
+                            kerberosEnabled="${sys:kylin.kerberos.enabled}"
+                            kerberosPrincipal="${sys:kylin.kerberos.principal}"
+                            kerberosKeytab="${sys:kylin.kerberos.keytab}"
+                            workingDir="${sys:kylin.hdfs.working.dir}"
+                            logPath="${sys:spark.driver.log4j.appender.hdfs.File}"
+                            logQueueCapacity="5000"
+                            flushInterval="5000">
+            <PatternLayout pattern="%d{ISO8601} %-5p %X{request.project}[%t] %c{2} : %mask{%m}%n"/>
+        </DriverHdfsAppender>
+    </Appenders>
+    <Loggers>
+        <Root level="INFO">
+            <AppenderRef ref="hdfs"/>
+        </Root>
+        <Logger name="org.springframework" level="WARN"/>
+        <Logger name="org.apache.kylin" level="INFO"/>
+        <Logger name="org.springframework.security" level="INFO"/>
+        <Logger name="io.kyligence" level="INFO"/>
+    </Loggers>
+</Configuration>
diff --git a/build/conf/spark-executor-cloud-log4j.properties b/build/conf/spark-executor-cloud-log4j.properties
new file mode 100644
index 0000000000..cdd49bbbcc
--- /dev/null
+++ b/build/conf/spark-executor-cloud-log4j.properties
@@ -0,0 +1,46 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# It's called spark-executor-log4j.xml so that it won't distract users from the other more important log4j config file: kylin-server-log4j.xml
+# enable this by -Dlog4j.configurationFile=spark-executor-log4j.xml
+log4j.rootLogger=INFO,stderr,local
+
+log4j.appender.stderr=org.apache.log4j.ConsoleAppender
+log4j.appender.stderr.layout=org.apache.spark.log4j.SensitivePatternLayout
+log4j.appender.stderr.target=System.err
+#Don't add line number (%L) as it's too costly!
+log4j.appender.stderr.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c{2} : %m%n
+
+
+log4j.appender.local=org.apache.spark.log4j.LocalFileAppender
+
+log4j.appender.local.hdfsWorkingDir=${kylin.hdfs.working.dir}
+log4j.appender.local.metadataIdentifier=${kap.metadata.identifier}
+log4j.appender.local.category=${kap.spark.category}
+log4j.appender.local.identifier=${kap.spark.identifier}
+log4j.appender.local.jobName=${kap.spark.jobName}
+log4j.appender.local.project=${kap.spark.project}
+log4j.appender.local.mountDir=${kap.spark.mountDir}
+
+log4j.appender.local.rollingPeriod=5
+log4j.appender.local.logQueueCapacity=5000
+#flushPeriod count as millis
+log4j.appender.local.flushInterval=5000
+
+log4j.appender.local.layout=org.apache.spark.log4j.SensitivePatternLayout
+#Don't add line number (%L) as it's too costly!
+log4j.appender.local.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c{2} : %m%n
\ No newline at end of file
diff --git a/build/conf/spark-executor-cloud-log4j.xml b/build/conf/spark-executor-cloud-log4j.xml
new file mode 100644
index 0000000000..284b399426
--- /dev/null
+++ b/build/conf/spark-executor-cloud-log4j.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration name="Log4j1">
+    <Appenders>
+        <Console name="stderr" target="SYSTEM_OUT">
+            <PatternLayout pattern="%d{ISO8601} %-5p %X{request.project}[%t] %c{2} : %mask{%m}%n"/>
+        </Console>
+    </Appenders>
+    <Loggers>
+        <Root level="INFO">
+            <AppenderRef ref="local"/>
+            <AppenderRef ref="stderr"/>
+        </Root>
+    </Loggers>
+</Configuration>
diff --git a/build/conf/spark-executor-log4j.xml b/build/conf/spark-executor-log4j.xml
new file mode 100644
index 0000000000..4dad16322f
--- /dev/null
+++ b/build/conf/spark-executor-log4j.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration name="Log4j1">
+    <Appenders>
+        <Console name="stderr" target="SYSTEM_OUT">
+            <PatternLayout pattern="%d{ISO8601} %-5p %X{request.project}[%t] %c{2} : %m%n"/>
+        </Console>
+        <ExecutorHdfsAppender name="hdfs"
+                              workingDir="${sys:kylin.hdfs.working.dir:-}"
+                              metadataId="${sys:kap.metadata.identifier:-}"
+                              category="${sys:kap.spark.category:-}"
+                              identifier="${sys:kap.spark.identifier:-}"
+                              jobName="${sys:kap.spark.jobName:-}"
+                              project="${sys:kap.spark.project:-}"
+                              rollingPeriod="5"
+                              logQueueCapacity="5000"
+                              flushInterval="5000">
+            <PatternLayout pattern="%d{ISO8601} %-5p %X{request.project}[%t] %c{2} : %m%n"/>
+        </ExecutorHdfsAppender>
+    </Appenders>
+    <Loggers>
+        <Root level="INFO">
+            <AppenderRef ref="hdfs"/>
+            <AppenderRef ref="stderr"/>
+        </Root>
+    </Loggers>
+</Configuration>
diff --git a/build/conf/spark-streaming-driver-log4j.xml b/build/conf/spark-streaming-driver-log4j.xml
new file mode 100644
index 0000000000..f335e821f7
--- /dev/null
+++ b/build/conf/spark-streaming-driver-log4j.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration name="Log4j1">
+    <Appenders>
+        <DriverHdfsRollingAppender name="hdfs"
+                                   kerberosEnabled="${sys:kylin.kerberos.enabled}"
+                                   kerberosPrincipal="${sys:kylin.kerberos.principal}"
+                                   kerberosKeytab="${sys:kylin.kerberos.keytab}"
+                                   workingDir="${sys:kylin.hdfs.working.dir}"
+                                   logPath="${sys:spark.driver.log4j.appender.hdfs.File}"
+                                   rollingByteSize="${sys:kap.spark.log4j.appender.rolling.size}"
+                                   logQueueCapacity="5000"
+                                   flushInterval="5000">
+            <PatternLayout pattern="%d{ISO8601} %-5p %X{request.project}[%t] %c{2} : %mask{%m}%n"/>
+        </DriverHdfsRollingAppender>
+    </Appenders>
+    <Loggers>
+        <Root level="INFO">
+            <AppenderRef ref="hdfs"/>
+        </Root>
+        <Logger name="org.springframework" level="WARN"/>
+        <Logger name="org.apache.kylin" level="INFO"/>
+        <Logger name="org.springframework.security" level="INFO"/>
+        <Logger name="io.kyligence" level="INFO"/>
+    </Loggers>
+</Configuration>
diff --git a/build/conf/spark-streaming-executor-log4j.xml b/build/conf/spark-streaming-executor-log4j.xml
new file mode 100644
index 0000000000..33bbf0b5e2
--- /dev/null
+++ b/build/conf/spark-streaming-executor-log4j.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration name="Log4j1">
+    <Appenders>
+        <Console name="stderr" target="SYSTEM_OUT">
+            <PatternLayout pattern="%d{ISO8601} %-5p %X{request.project}[%t] %c{2} : %m%n"/>
+        </Console>
+        <ExecutorHdfsRollingAppender name="hdfs"
+                                     workingDir="${sys:kylin.hdfs.working.dir:-}"
+                                     metadataId="${sys:kap.metadata.identifier:-}"
+                                     category="${sys:kap.spark.category:-}"
+                                     identifier="${sys:kap.spark.identifier:-}"
+                                     jobName="${sys:kap.spark.jobName:-}"
+                                     project="${sys:kap.spark.project:-}"
+                                     jobTimeStamp="${sys:kap.spark.jobTimeStamp:-}"
+                                     rollingByteSize="${sys:kap.spark.log4j.appender.rolling.size:-}"
+                                     rollingPeriod="5"
+                                     logQueueCapacity="5000"
+                                     flushInterval="5000">
+            <PatternLayout pattern="%d{ISO8601} %-5p %X{request.project}[%t] %c{2} : %m%n"/>
+        </ExecutorHdfsRollingAppender>
+    </Appenders>
+    <Loggers>
+        <Root level="INFO">
+            <AppenderRef ref="hdfs"/>
+            <AppenderRef ref="stderr"/>
+        </Root>
+    </Loggers>
+</Configuration>
diff --git a/build/postgresql/postgresql10-10.7-1PGDG.rhel6.x86_64.rpm b/build/postgresql/postgresql10-10.7-1PGDG.rhel6.x86_64.rpm
new file mode 100644
index 0000000000..f6e36186a1
Binary files /dev/null and b/build/postgresql/postgresql10-10.7-1PGDG.rhel6.x86_64.rpm differ
diff --git a/build/postgresql/postgresql10-10.7-1PGDG.rhel7.x86_64.rpm b/build/postgresql/postgresql10-10.7-1PGDG.rhel7.x86_64.rpm
new file mode 100644
index 0000000000..1f059378d4
Binary files /dev/null and b/build/postgresql/postgresql10-10.7-1PGDG.rhel7.x86_64.rpm differ
diff --git a/build/postgresql/postgresql10-10.8-1PGDG.rhel8.x86_64.rpm b/build/postgresql/postgresql10-10.8-1PGDG.rhel8.x86_64.rpm
new file mode 100644
index 0000000000..a74036e41c
Binary files /dev/null and b/build/postgresql/postgresql10-10.8-1PGDG.rhel8.x86_64.rpm differ
diff --git a/build/postgresql/postgresql10-libs-10.7-1PGDG.rhel6.x86_64.rpm b/build/postgresql/postgresql10-libs-10.7-1PGDG.rhel6.x86_64.rpm
new file mode 100644
index 0000000000..108da149de
Binary files /dev/null and b/build/postgresql/postgresql10-libs-10.7-1PGDG.rhel6.x86_64.rpm differ
diff --git a/build/postgresql/postgresql10-libs-10.7-1PGDG.rhel7.x86_64.rpm b/build/postgresql/postgresql10-libs-10.7-1PGDG.rhel7.x86_64.rpm
new file mode 100644
index 0000000000..50ae493ea4
Binary files /dev/null and b/build/postgresql/postgresql10-libs-10.7-1PGDG.rhel7.x86_64.rpm differ
diff --git a/build/postgresql/postgresql10-libs-10.8-1PGDG.rhel8.x86_64.rpm b/build/postgresql/postgresql10-libs-10.8-1PGDG.rhel8.x86_64.rpm
new file mode 100644
index 0000000000..0dd8447e59
Binary files /dev/null and b/build/postgresql/postgresql10-libs-10.8-1PGDG.rhel8.x86_64.rpm differ
diff --git a/build/postgresql/postgresql10-server-10.7-1PGDG.rhel6.x86_64.rpm b/build/postgresql/postgresql10-server-10.7-1PGDG.rhel6.x86_64.rpm
new file mode 100644
index 0000000000..75de3f6a64
Binary files /dev/null and b/build/postgresql/postgresql10-server-10.7-1PGDG.rhel6.x86_64.rpm differ
diff --git a/build/postgresql/postgresql10-server-10.7-1PGDG.rhel7.x86_64.rpm b/build/postgresql/postgresql10-server-10.7-1PGDG.rhel7.x86_64.rpm
new file mode 100644
index 0000000000..14698f92aa
Binary files /dev/null and b/build/postgresql/postgresql10-server-10.7-1PGDG.rhel7.x86_64.rpm differ
diff --git a/build/postgresql/postgresql10-server-10.8-1PGDG.rhel8.x86_64.rpm b/build/postgresql/postgresql10-server-10.8-1PGDG.rhel8.x86_64.rpm
new file mode 100644
index 0000000000..89e41c0d36
Binary files /dev/null and b/build/postgresql/postgresql10-server-10.8-1PGDG.rhel8.x86_64.rpm differ
diff --git a/build/sample_project/template/UUID b/build/sample_project/template/UUID
new file mode 100644
index 0000000000..9713b74ecb
Binary files /dev/null and b/build/sample_project/template/UUID differ
diff --git a/build/sample_project/template/_global/project/learn_kylin.json b/build/sample_project/template/_global/project/learn_kylin.json
new file mode 100644
index 0000000000..6b68c5e60c
--- /dev/null
+++ b/build/sample_project/template/_global/project/learn_kylin.json
@@ -0,0 +1,35 @@
+{
+  "uuid" : "cc087b95-78b9-f3f6-ee2d-8b4bdc4fbb2b",
+  "last_modified" : 1632293787433,
+  "create_time" : 1632293787433,
+  "version" : "%default_version%",
+  "name" : "learn_kylin",
+  "owner" : "ADMIN",
+  "status" : "ENABLED",
+  "create_time_utc" : 1632293787433,
+  "default_database" : "DEFAULT",
+  "description" : "",
+  "principal" : null,
+  "keytab" : null,
+  "maintain_model_type" : "MANUAL_MAINTAIN",
+  "override_kylin_properties" : {
+    "kylin.metadata.semi-automatic-mode" : "false",
+    "kylin.query.metadata.expose-computed-column" : "true",
+    "kylin.source.default" : "9"
+  },
+  "segment_config" : {
+    "auto_merge_enabled" : false,
+    "auto_merge_time_ranges" : [ "WEEK", "MONTH", "QUARTER", "YEAR" ],
+    "volatile_range" : {
+      "volatile_range_number" : 0,
+      "volatile_range_enabled" : false,
+      "volatile_range_type" : "DAY"
+    },
+    "retention_range" : {
+      "retention_range_number" : 1,
+      "retention_range_enabled" : false,
+      "retention_range_type" : "MONTH"
+    },
+    "create_empty_segment_enabled" : false
+  }
+}
\ No newline at end of file
diff --git a/build/sample_project/template/learn_kylin/dataflow/2d07e878-da28-a203-2d2c-185b4c6656f1.json b/build/sample_project/template/learn_kylin/dataflow/2d07e878-da28-a203-2d2c-185b4c6656f1.json
new file mode 100644
index 0000000000..3d9bc1ae26
--- /dev/null
+++ b/build/sample_project/template/learn_kylin/dataflow/2d07e878-da28-a203-2d2c-185b4c6656f1.json
@@ -0,0 +1,12 @@
+{
+  "uuid" : "2d07e878-da28-a203-2d2c-185b4c6656f1",
+  "last_modified" : 0,
+  "create_time" : 1632293938767,
+  "version" : "%default_version%",
+  "status" : "OFFLINE",
+  "cost" : 50,
+  "query_hit_count" : 0,
+  "last_query_time" : 0,
+  "layout_query_hit_count" : { },
+  "segments" : [ ]
+}
\ No newline at end of file
diff --git a/build/sample_project/template/learn_kylin/index_plan/2d07e878-da28-a203-2d2c-185b4c6656f1.json b/build/sample_project/template/learn_kylin/index_plan/2d07e878-da28-a203-2d2c-185b4c6656f1.json
new file mode 100644
index 0000000000..1e6cc57302
--- /dev/null
+++ b/build/sample_project/template/learn_kylin/index_plan/2d07e878-da28-a203-2d2c-185b4c6656f1.json
@@ -0,0 +1,111 @@
+{
+  "uuid" : "2d07e878-da28-a203-2d2c-185b4c6656f1",
+  "last_modified" : 1632293938767,
+  "create_time" : 1632293938765,
+  "version" : "%default_version%",
+  "description" : null,
+  "rule_based_index" : {
+    "dimensions" : [ 53, 55, 46, 43, 40, 42, 32 ],
+    "measures" : [ 100000 ],
+    "global_dim_cap" : null,
+    "aggregation_groups" : [ {
+      "includes" : [ 53, 55 ],
+      "measures" : [ 100000 ],
+      "select_rule" : {
+        "hierarchy_dims" : [ ],
+        "mandatory_dims" : [ 53 ],
+        "joint_dims" : [ ]
+      },
+      "index_range" : "EMPTY"
+    }, {
+      "includes" : [ 46, 43 ],
+      "measures" : [ 100000 ],
+      "select_rule" : {
+        "hierarchy_dims" : [ ],
+        "mandatory_dims" : [ 46 ],
+        "joint_dims" : [ ]
+      },
+      "index_range" : "EMPTY"
+    }, {
+      "includes" : [ 40, 42 ],
+      "measures" : [ 100000 ],
+      "select_rule" : {
+        "hierarchy_dims" : [ ],
+        "mandatory_dims" : [ 40 ],
+        "joint_dims" : [ ]
+      },
+      "index_range" : "EMPTY"
+    }, {
+      "includes" : [ 32 ],
+      "measures" : [ 100000 ],
+      "select_rule" : {
+        "hierarchy_dims" : [ ],
+        "mandatory_dims" : [ ],
+        "joint_dims" : [ ]
+      },
+      "index_range" : "EMPTY"
+    } ],
+    "layout_id_mapping" : [ 10001, 20001, 30001, 40001, 50001, 60001, 70001, 80001 ],
+    "parent_forward" : 3,
+    "index_start_id" : 10000,
+    "last_modify_time" : 1632294041099,
+    "layout_black_list" : [ ],
+    "scheduler_version" : 2,
+    "index_update_enabled" : true
+  },
+  "indexes" : [ {
+    "id" : 0,
+    "dimensions" : [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 32, 34, 40, 42, 43, 46, 53, 55 ],
+    "measures" : [ 100000 ],
+    "layouts" : [ {
+      "id" : 1,
+      "name" : null,
+      "owner" : null,
+      "col_order" : [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 32, 34, 40, 42, 43, 46, 53, 55, 100000 ],
+      "shard_by_columns" : [ ],
+      "partition_by_columns" : [ ],
+      "sort_by_columns" : [ ],
+      "storage_type" : 20,
+      "update_time" : 1632293938765,
+      "manual" : false,
+      "auto" : false,
+      "base" : true,
+      "draft_version" : null,
+      "index_range" : null
+    } ],
+    "next_layout_offset" : 2
+  }, {
+    "id" : 20000000000,
+    "dimensions" : [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 32, 34, 40, 42, 43, 46, 53, 55 ],
+    "measures" : [ ],
+    "layouts" : [ {
+      "id" : 20000000001,
+      "name" : null,
+      "owner" : null,
+      "col_order" : [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 32, 34, 40, 42, 43, 46, 53, 55 ],
+      "shard_by_columns" : [ ],
+      "partition_by_columns" : [ ],
+      "sort_by_columns" : [ ],
+      "storage_type" : 20,
+      "update_time" : 1632293938765,
+      "manual" : false,
+      "auto" : false,
+      "base" : true,
+      "draft_version" : null,
+      "index_range" : null
+    } ],
+    "next_layout_offset" : 2
+  } ],
+  "override_properties" : { },
+  "to_be_deleted_indexes" : [ ],
+  "auto_merge_time_ranges" : null,
+  "retention_range" : 0,
+  "engine_type" : 80,
+  "next_aggregation_index_id" : 90000,
+  "next_table_index_id" : 20000010000,
+  "agg_shard_by_columns" : [ ],
+  "extend_partition_columns" : [ ],
+  "layout_bucket_num" : { },
+  "approved_additional_recs" : 0,
+  "approved_removal_recs" : 0
+}
\ No newline at end of file
diff --git a/build/sample_project/template/learn_kylin/model_desc/2d07e878-da28-a203-2d2c-185b4c6656f1.json b/build/sample_project/template/learn_kylin/model_desc/2d07e878-da28-a203-2d2c-185b4c6656f1.json
new file mode 100644
index 0000000000..cdfb569eed
--- /dev/null
+++ b/build/sample_project/template/learn_kylin/model_desc/2d07e878-da28-a203-2d2c-185b4c6656f1.json
@@ -0,0 +1,408 @@
+{
+  "uuid" : "2d07e878-da28-a203-2d2c-185b4c6656f1",
+  "last_modified" : 1632293938765,
+  "create_time" : 1632293935226,
+  "version" :  "%default_version%",
+  "alias" : "sample_ssb",
+  "owner" : "ADMIN",
+  "config_last_modifier" : null,
+  "config_last_modified" : 0,
+  "description" : "",
+  "fact_table" : "SSB.P_LINEORDER",
+  "fact_table_alias" : null,
+  "management_type" : "MODEL_BASED",
+  "join_tables" : [ {
+    "table" : "SSB.DATES",
+    "kind" : "LOOKUP",
+    "alias" : "DATES",
+    "join" : {
+      "type" : "INNER",
+      "primary_key" : [ "DATES.D_DATEKEY" ],
+      "foreign_key" : [ "P_LINEORDER.LO_ORDERDATE" ],
+      "non_equi_join_condition" : null,
+      "primary_table" : null,
+      "foreign_table" : null
+    },
+    "flattenable" : "flatten",
+    "join_relation_type" : "MANY_TO_ONE"
+  }, {
+    "table" : "SSB.CUSTOMER",
+    "kind" : "LOOKUP",
+    "alias" : "CUSTOMER",
+    "join" : {
+      "type" : "INNER",
+      "primary_key" : [ "CUSTOMER.C_CUSTKEY" ],
+      "foreign_key" : [ "P_LINEORDER.LO_CUSTKEY" ],
+      "non_equi_join_condition" : null,
+      "primary_table" : null,
+      "foreign_table" : null
+    },
+    "flattenable" : "flatten",
+    "join_relation_type" : "MANY_TO_ONE"
+  }, {
+    "table" : "SSB.PART",
+    "kind" : "LOOKUP",
+    "alias" : "PART",
+    "join" : {
+      "type" : "INNER",
+      "primary_key" : [ "PART.P_PARTKEY" ],
+      "foreign_key" : [ "P_LINEORDER.LO_PARTKEY" ],
+      "non_equi_join_condition" : null,
+      "primary_table" : null,
+      "foreign_table" : null
+    },
+    "flattenable" : "flatten",
+    "join_relation_type" : "MANY_TO_ONE"
+  }, {
+    "table" : "SSB.SUPPLIER",
+    "kind" : "LOOKUP",
+    "alias" : "SUPPLIER",
+    "join" : {
+      "type" : "INNER",
+      "primary_key" : [ "SUPPLIER.S_SUPPKEY" ],
+      "foreign_key" : [ "P_LINEORDER.LO_SUPPKEY" ],
+      "non_equi_join_condition" : null,
+      "primary_table" : null,
+      "foreign_table" : null
+    },
+    "flattenable" : "flatten",
+    "join_relation_type" : "MANY_TO_ONE"
+  } ],
+  "filter_condition" : "",
+  "partition_desc" : {
+    "partition_date_column" : "P_LINEORDER.LO_ORDERDATE",
+    "partition_date_start" : 0,
+    "partition_date_format" : "yyyy-MM-dd",
+    "partition_type" : "APPEND",
+    "partition_condition_builder" : "org.apache.kylin.metadata.model.PartitionDesc$DefaultPartitionConditionBuilder"
+  },
+  "capacity" : "MEDIUM",
+  "segment_config" : {
+    "auto_merge_enabled" : null,
+    "auto_merge_time_ranges" : null,
+    "volatile_range" : null,
+    "retention_range" : null,
+    "create_empty_segment_enabled" : false
+  },
+  "data_check_desc" : null,
+  "semantic_version" : 0,
+  "storage_type" : 0,
+  "model_type" : "BATCH",
+  "all_named_columns" : [ {
+    "id" : 0,
+    "name" : "LO_SHIPMODE",
+    "column" : "P_LINEORDER.LO_SHIPMODE",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 1,
+    "name" : "LO_LINENUMBER",
+    "column" : "P_LINEORDER.LO_LINENUMBER",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 2,
+    "name" : "LO_ORDTOTALPRICE",
+    "column" : "P_LINEORDER.LO_ORDTOTALPRICE",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 3,
+    "name" : "LO_SUPPLYCOST",
+    "column" : "P_LINEORDER.LO_SUPPLYCOST",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 4,
+    "name" : "LO_SUPPKEY",
+    "column" : "P_LINEORDER.LO_SUPPKEY",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 5,
+    "name" : "LO_QUANTITY",
+    "column" : "P_LINEORDER.LO_QUANTITY",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 6,
+    "name" : "LO_PARTKEY",
+    "column" : "P_LINEORDER.LO_PARTKEY",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 7,
+    "name" : "LO_ORDERKEY",
+    "column" : "P_LINEORDER.LO_ORDERKEY",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 8,
+    "name" : "LO_CUSTKEY",
+    "column" : "P_LINEORDER.LO_CUSTKEY",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 9,
+    "name" : "LO_SHIPPRIOTITY",
+    "column" : "P_LINEORDER.LO_SHIPPRIOTITY",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 10,
+    "name" : "LO_DISCOUNT",
+    "column" : "P_LINEORDER.LO_DISCOUNT",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 11,
+    "name" : "LO_ORDERPRIOTITY",
+    "column" : "P_LINEORDER.LO_ORDERPRIOTITY",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 12,
+    "name" : "LO_ORDERDATE",
+    "column" : "P_LINEORDER.LO_ORDERDATE",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 13,
+    "name" : "LO_REVENUE",
+    "column" : "P_LINEORDER.LO_REVENUE",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 14,
+    "name" : "V_REVENUE",
+    "column" : "P_LINEORDER.V_REVENUE",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 15,
+    "name" : "LO_COMMITDATE",
+    "column" : "P_LINEORDER.LO_COMMITDATE",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 16,
+    "name" : "LO_EXTENDEDPRICE",
+    "column" : "P_LINEORDER.LO_EXTENDEDPRICE",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 17,
+    "name" : "LO_TAX",
+    "column" : "P_LINEORDER.LO_TAX",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 18,
+    "name" : "D_WEEKNUMINYEAR",
+    "column" : "DATES.D_WEEKNUMINYEAR"
+  }, {
+    "id" : 19,
+    "name" : "D_LASTDAYINWEEKFL",
+    "column" : "DATES.D_LASTDAYINWEEKFL"
+  }, {
+    "id" : 20,
+    "name" : "D_LASTDAYINMONTHFL",
+    "column" : "DATES.D_LASTDAYINMONTHFL"
+  }, {
+    "id" : 21,
+    "name" : "D_DAYOFWEEK",
+    "column" : "DATES.D_DAYOFWEEK"
+  }, {
+    "id" : 22,
+    "name" : "D_MONTHNUMINYEAR",
+    "column" : "DATES.D_MONTHNUMINYEAR"
+  }, {
+    "id" : 23,
+    "name" : "D_YEARMONTHNUM",
+    "column" : "DATES.D_YEARMONTHNUM"
+  }, {
+    "id" : 24,
+    "name" : "D_YEARMONTH",
+    "column" : "DATES.D_YEARMONTH"
+  }, {
+    "id" : 25,
+    "name" : "D_DAYNUMINMONTH",
+    "column" : "DATES.D_DAYNUMINMONTH"
+  }, {
+    "id" : 26,
+    "name" : "D_SELLINGSEASON",
+    "column" : "DATES.D_SELLINGSEASON"
+  }, {
+    "id" : 27,
+    "name" : "D_WEEKDAYFL",
+    "column" : "DATES.D_WEEKDAYFL"
+  }, {
+    "id" : 28,
+    "name" : "D_YEAR",
+    "column" : "DATES.D_YEAR"
+  }, {
+    "id" : 29,
+    "name" : "D_HOLIDAYFL",
+    "column" : "DATES.D_HOLIDAYFL"
+  }, {
+    "id" : 30,
+    "name" : "D_DAYNUMINWEEK",
+    "column" : "DATES.D_DAYNUMINWEEK"
+  }, {
+    "id" : 31,
+    "name" : "D_DAYNUMINYEAR",
+    "column" : "DATES.D_DAYNUMINYEAR"
+  }, {
+    "id" : 32,
+    "name" : "D_DATE",
+    "column" : "DATES.D_DATE",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 33,
+    "name" : "D_MONTH",
+    "column" : "DATES.D_MONTH"
+  }, {
+    "id" : 34,
+    "name" : "D_DATEKEY",
+    "column" : "DATES.D_DATEKEY",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 35,
+    "name" : "C_ADDRESS",
+    "column" : "CUSTOMER.C_ADDRESS"
+  }, {
+    "id" : 36,
+    "name" : "C_NATION",
+    "column" : "CUSTOMER.C_NATION"
+  }, {
+    "id" : 37,
+    "name" : "C_CITY",
+    "column" : "CUSTOMER.C_CITY"
+  }, {
+    "id" : 38,
+    "name" : "C_PHONE",
+    "column" : "CUSTOMER.C_PHONE"
+  }, {
+    "id" : 39,
+    "name" : "C_REGION",
+    "column" : "CUSTOMER.C_REGION"
+  }, {
+    "id" : 40,
+    "name" : "C_NAME",
+    "column" : "CUSTOMER.C_NAME",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 41,
+    "name" : "C_MKTSEGMENT",
+    "column" : "CUSTOMER.C_MKTSEGMENT"
+  }, {
+    "id" : 42,
+    "name" : "C_CUSTKEY",
+    "column" : "CUSTOMER.C_CUSTKEY",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 43,
+    "name" : "P_PARTKEY",
+    "column" : "PART.P_PARTKEY",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 44,
+    "name" : "P_CONTAINER",
+    "column" : "PART.P_CONTAINER"
+  }, {
+    "id" : 45,
+    "name" : "P_SIZE",
+    "column" : "PART.P_SIZE"
+  }, {
+    "id" : 46,
+    "name" : "P_NAME",
+    "column" : "PART.P_NAME",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 47,
+    "name" : "P_CATEGORY",
+    "column" : "PART.P_CATEGORY"
+  }, {
+    "id" : 48,
+    "name" : "P_TYPE",
+    "column" : "PART.P_TYPE"
+  }, {
+    "id" : 49,
+    "name" : "P_MFGR",
+    "column" : "PART.P_MFGR"
+  }, {
+    "id" : 50,
+    "name" : "P_BRAND",
+    "column" : "PART.P_BRAND"
+  }, {
+    "id" : 51,
+    "name" : "P_COLOR",
+    "column" : "PART.P_COLOR"
+  }, {
+    "id" : 52,
+    "name" : "S_ADDRESS",
+    "column" : "SUPPLIER.S_ADDRESS"
+  }, {
+    "id" : 53,
+    "name" : "S_NAME",
+    "column" : "SUPPLIER.S_NAME",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 54,
+    "name" : "S_NATION",
+    "column" : "SUPPLIER.S_NATION"
+  }, {
+    "id" : 55,
+    "name" : "S_SUPPKEY",
+    "column" : "SUPPLIER.S_SUPPKEY",
+    "status" : "DIMENSION"
+  }, {
+    "id" : 56,
+    "name" : "S_REGION",
+    "column" : "SUPPLIER.S_REGION"
+  }, {
+    "id" : 57,
+    "name" : "S_PHONE",
+    "column" : "SUPPLIER.S_PHONE"
+  }, {
+    "id" : 58,
+    "name" : "S_CITY",
+    "column" : "SUPPLIER.S_CITY"
+  } ],
+  "all_measures" : [ {
+    "name" : "COUNT_ALL",
+    "function" : {
+      "expression" : "COUNT",
+      "parameters" : [ {
+        "type" : "constant",
+        "value" : "1"
+      } ],
+      "returntype" : "bigint"
+    },
+    "column" : null,
+    "comment" : null,
+    "id" : 100000
+  } ],
+  "recommendations_count" : 0,
+  "computed_columns" : [ ],
+  "canvas" : {
+    "coordinate" : {
+      "P_LINEORDER" : {
+        "x" : 625.388895670573,
+        "y" : 272.38889058430993,
+        "width" : 220.0,
+        "height" : 200.0
+      },
+      "CUSTOMER" : {
+        "x" : 315.38889567057305,
+        "y" : 72.3888905843099,
+        "width" : 220.0,
+        "height" : 200.0
+      },
+      "DATES" : {
+        "x" : 275.38889567057294,
+        "y" : 556.8333350287544,
+        "width" : 220.0,
+        "height" : 200.0
+      },
+      "PART" : {
+        "x" : 774.2777845594618,
+        "y" : 605.7222239176433,
+        "width" : 220.0,
+        "height" : 200.0
+      },
+      "SUPPLIER" : {
+        "x" : 1055.388895670573,
+        "y" : 122.3888905843099,
+        "width" : 220.0,
+        "height" : 200.0
+      }
+    },
+    "zoom" : 9.0
+  },
+  "multi_partition_desc" : null,
+  "multi_partition_key_mapping" : null,
+  "fusion_id" : null
+}
\ No newline at end of file
diff --git a/build/sample_project/template/learn_kylin/table/SSB.CUSTOMER.json b/build/sample_project/template/learn_kylin/table/SSB.CUSTOMER.json
new file mode 100644
index 0000000000..2522c05dd1
--- /dev/null
+++ b/build/sample_project/template/learn_kylin/table/SSB.CUSTOMER.json
@@ -0,0 +1,63 @@
+{
+  "uuid" : "6ce4718b-ef9d-18ae-a1bf-5df2578eaa03",
+  "last_modified" : 0,
+  "create_time" : 1632293818428,
+  "version" : "%default_version%",
+  "name" : "CUSTOMER",
+  "columns" : [ {
+    "id" : "1",
+    "name" : "C_CUSTKEY",
+    "datatype" : "integer",
+    "case_sensitive_name" : "c_custkey"
+  }, {
+    "id" : "2",
+    "name" : "C_NAME",
+    "datatype" : "varchar(4096)",
+    "case_sensitive_name" : "c_name"
+  }, {
+    "id" : "3",
+    "name" : "C_ADDRESS",
+    "datatype" : "varchar(4096)",
+    "case_sensitive_name" : "c_address"
+  }, {
+    "id" : "4",
+    "name" : "C_CITY",
+    "datatype" : "varchar(4096)",
+    "case_sensitive_name" : "c_city"
+  }, {
+    "id" : "5",
+    "name" : "C_NATION",
+    "datatype" : "varchar(4096)",
+    "case_sensitive_name" : "c_nation"
+  }, {
+    "id" : "6",
+    "name" : "C_REGION",
+    "datatype" : "varchar(4096)",
+    "case_sensitive_name" : "c_region"
+  }, {
+    "id" : "7",
+    "name" : "C_PHONE",
+    "datatype" : "varchar(4096)",
+    "case_sensitive_name" : "c_phone"
+  }, {
+    "id" : "8",
+    "name" : "C_MKTSEGMENT",
+    "datatype" : "varchar(4096)",
+    "case_sensitive_name" : "c_mktsegment"
+  } ],
+  "source_type" : 9,
+  "table_type" : "EXTERNAL",
+  "top" : false,
+  "increment_loading" : false,
+  "last_snapshot_path" : null,
+  "last_snapshot_size" : 0,
+  "snapshot_last_modified" : 0,
+  "query_hit_count" : 0,
+  "partition_column" : null,
+  "snapshot_partitions" : { },
+  "snapshot_partition_col" : null,
+  "selected_snapshot_partition_col" : null,
+  "temp_snapshot_path" : null,
+  "snapshot_has_broken" : false,
+  "database" : "SSB"
+}
\ No newline at end of file
diff --git a/build/sample_project/template/learn_kylin/table/SSB.DATES.json b/build/sample_project/template/learn_kylin/table/SSB.DATES.json
new file mode 100644
index 0000000000..dcd9335a27
--- /dev/null
+++ b/build/sample_project/template/learn_kylin/table/SSB.DATES.json
@@ -0,0 +1,108 @@
+{
+  "uuid" : "f4385049-4983-b222-060e-a488297b58f7",
+  "last_modified" : 0,
+  "create_time" : 1632293817278,
+  "version" : "%default_version%",
+  "name" : "DATES",
+  "columns" : [ {
+    "id" : "1",
+    "name" : "D_DATEKEY",
+    "datatype" : "date",
+    "case_sensitive_name" : "d_datekey"
+  }, {
+    "id" : "2",
+    "name" : "D_DATE",
+    "datatype" : "varchar(4096)",
+    "case_sensitive_name" : "d_date"
+  }, {
+    "id" : "3",
+    "name" : "D_DAYOFWEEK",
+    "datatype" : "varchar(4096)",
+    "case_sensitive_name" : "d_dayofweek"
+  }, {
+    "id" : "4",
+    "name" : "D_MONTH",
+    "datatype" : "varchar(4096)",
+    "case_sensitive_name" : "d_month"
+  }, {
+    "id" : "5",
+    "name" : "D_YEAR",
+    "datatype" : "integer",
+    "case_sensitive_name" : "d_year"
+  }, {
+    "id" : "6",
+    "name" : "D_YEARMONTHNUM",
+    "datatype" : "integer",
+    "case_sensitive_name" : "d_yearmonthnum"
+  }, {
+    "id" : "7",
+    "name" : "D_YEARMONTH",
+    "datatype" : "varchar(4096)",
+    "case_sensitive_name" : "d_yearmonth"
+  }, {
+    "id" : "8",
+    "name" : "D_DAYNUMINWEEK",
+    "datatype" : "integer",
+    "case_sensitive_name" : "d_daynuminweek"
+  }, {
+    "id" : "9",
+    "name" : "D_DAYNUMINMONTH",
+    "datatype" : "integer",
+    "case_sensitive_name" : "d_daynuminmonth"
+  }, {
+    "id" : "10",
+    "name" : "D_DAYNUMINYEAR",
+    "datatype" : "integer",
+    "case_sensitive_name" : "d_daynuminyear"
+  }, {
+    "id" : "11",
+    "name" : "D_MONTHNUMINYEAR",
+    "datatype" : "integer",
+    "case_sensitive_name" : "d_monthnuminyear"
+  }, {
+    "id" : "12",
+    "name" : "D_WEEKNUMINYEAR",
+    "datatype" : "integer",
+    "case_sensitive_name" : "d_weeknuminyear"
+  }, {
+    "id" : "13",
+    "name" : "D_SELLINGSEASON",
+    "datatype" : "varchar(4096)",
+    "case_sensitive_name" : "d_sellingseason"
+  }, {
+    "id" : "14",
+    "name" : "D_LASTDAYINWEEKFL",
+    "datatype" : "integer",
+    "case_sensitive_name" : "d_lastdayinweekfl"
+  }, {
+    "id" : "15",
+    "name" : "D_LASTDAYINMONTHFL",
+    "datatype" : "integer",
+    "case_sensitive_name" : "d_lastdayinmonthfl"
+  }, {
+    "id" : "16",
+    "name" : "D_HOLIDAYFL",
+    "datatype" : "integer",
+    "case_sensitive_name" : "d_holidayfl"
+  }, {
+    "id" : "17",
+    "name" : "D_WEEKDAYFL",
+    "datatype" : "integer",
+    "case_sensitive_name" : "d_weekdayfl"
+  } ],
+  "source_type" : 9,
+  "table_type" : "EXTERNAL",
+  "top" : false,
+  "increment_loading" : false,
+  "last_snapshot_path" : null,
+  "last_snapshot_size" : 0,
+  "snapshot_last_modified" : 0,
+  "query_hit_count" : 0,
+  "partition_column" : null,
+  "snapshot_partitions" : { },
+  "snapshot_partition_col" : null,
+  "selected_snapshot_partition_col" : null,
+  "temp_snapshot_path" : null,
+  "snapshot_has_broken" : false,
+  "database" : "SSB"
+}
\ No newline at end of file
diff --git a/build/sample_project/template/learn_kylin/table/SSB.PART.json b/build/sample_project/template/learn_kylin/table/SSB.PART.json
new file mode 100644
index 0000000000..e628057eb5
--- /dev/null
+++ b/build/sample_project/template/learn_kylin/table/SSB.PART.json
@@ -0,0 +1,68 @@
+{
+  "uuid" : "99f57020-140a-95df-5b92-d41459f3a99b",
+  "last_modified" : 0,
+  "create_time" : 1632293817614,
+  "version" : "%default_version%",
+  "name" : "PART",
+  "columns" : [ {
+    "id" : "1",
+    "name" : "P_PARTKEY",
+    "datatype" : "integer",
+    "case_sensitive_name" : "p_partkey"
+  }, {
+    "id" : "2",
+    "name" : "P_NAME",
+    "datatype" : "varchar(4096)",
+    "case_sensitive_name" : "p_name"
+  }, {
+    "id" : "3",
+    "name" : "P_MFGR",
+    "datatype" : "varchar(4096)",
+    "case_sensitive_name" : "p_mfgr"
+  }, {
+    "id" : "4",
+    "name" : "P_CATEGORY",
+    "datatype" : "varchar(4096)",
+    "case_sensitive_name" : "p_category"
+  }, {
+    "id" : "5",
+    "name" : "P_BRAND",
+    "datatype" : "varchar(4096)",
+    "case_sensitive_name" : "p_brand"
+  }, {
+    "id" : "6",
+    "name" : "P_COLOR",
+    "datatype" : "varchar(4096)",
+    "case_sensitive_name" : "p_color"
+  }, {
+    "id" : "7",
+    "name" : "P_TYPE",
+    "datatype" : "varchar(4096)",
+    "case_sensitive_name" : "p_type"
+  }, {
+    "id" : "8",
+    "name" : "P_SIZE",
+    "datatype" : "integer",
+    "case_sensitive_name" : "p_size"
+  }, {
+    "id" : "9",
+    "name" : "P_CONTAINER",
+    "datatype" : "varchar(4096)",
+    "case_sensitive_name" : "p_container"
+  } ],
+  "source_type" : 9,
+  "table_type" : "EXTERNAL",
+  "top" : false,
+  "increment_loading" : false,
+  "last_snapshot_path" : null,
+  "last_snapshot_size" : 0,
+  "snapshot_last_modified" : 0,
+  "query_hit_count" : 0,
+  "partition_column" : null,
+  "snapshot_partitions" : { },
+  "snapshot_partition_col" : null,
+  "selected_snapshot_partition_col" : null,
+  "temp_snapshot_path" : null,
+  "snapshot_has_broken" : false,
+  "database" : "SSB"
+}
\ No newline at end of file
diff --git a/build/sample_project/template/learn_kylin/table/SSB.P_LINEORDER.json b/build/sample_project/template/learn_kylin/table/SSB.P_LINEORDER.json
new file mode 100644
index 0000000000..9320e26b85
--- /dev/null
+++ b/build/sample_project/template/learn_kylin/table/SSB.P_LINEORDER.json
@@ -0,0 +1,113 @@
+{
+  "uuid" : "f077883d-5700-9305-988c-a1f0438f2c83",
+  "last_modified" : 0,
+  "create_time" : 1632293818812,
+  "version" : "%default_version%",
+  "name" : "P_LINEORDER",
+  "columns" : [ {
+    "id" : "1",
+    "name" : "LO_ORDERKEY",
+    "datatype" : "bigint",
+    "case_sensitive_name" : "lo_orderkey"
+  }, {
+    "id" : "2",
+    "name" : "LO_LINENUMBER",
+    "datatype" : "bigint",
+    "case_sensitive_name" : "lo_linenumber"
+  }, {
+    "id" : "3",
+    "name" : "LO_CUSTKEY",
+    "datatype" : "integer",
+    "case_sensitive_name" : "lo_custkey"
+  }, {
+    "id" : "4",
+    "name" : "LO_PARTKEY",
+    "datatype" : "integer",
+    "case_sensitive_name" : "lo_partkey"
+  }, {
+    "id" : "5",
+    "name" : "LO_SUPPKEY",
+    "datatype" : "integer",
+    "case_sensitive_name" : "lo_suppkey"
+  }, {
+    "id" : "6",
+    "name" : "LO_ORDERDATE",
+    "datatype" : "date",
+    "case_sensitive_name" : "lo_orderdate"
+  }, {
+    "id" : "7",
+    "name" : "LO_ORDERPRIOTITY",
+    "datatype" : "varchar(4096)",
+    "case_sensitive_name" : "lo_orderpriotity"
+  }, {
+    "id" : "8",
+    "name" : "LO_SHIPPRIOTITY",
+    "datatype" : "integer",
+    "case_sensitive_name" : "lo_shippriotity"
+  }, {
+    "id" : "9",
+    "name" : "LO_QUANTITY",
+    "datatype" : "bigint",
+    "case_sensitive_name" : "lo_quantity"
+  }, {
+    "id" : "10",
+    "name" : "LO_EXTENDEDPRICE",
+    "datatype" : "bigint",
+    "case_sensitive_name" : "lo_extendedprice"
+  }, {
+    "id" : "11",
+    "name" : "LO_ORDTOTALPRICE",
+    "datatype" : "bigint",
+    "case_sensitive_name" : "lo_ordtotalprice"
+  }, {
+    "id" : "12",
+    "name" : "LO_DISCOUNT",
+    "datatype" : "bigint",
+    "case_sensitive_name" : "lo_discount"
+  }, {
+    "id" : "13",
+    "name" : "LO_REVENUE",
+    "datatype" : "bigint",
+    "case_sensitive_name" : "lo_revenue"
+  }, {
+    "id" : "14",
+    "name" : "LO_SUPPLYCOST",
+    "datatype" : "bigint",
+    "case_sensitive_name" : "lo_supplycost"
+  }, {
+    "id" : "15",
+    "name" : "LO_TAX",
+    "datatype" : "bigint",
+    "case_sensitive_name" : "lo_tax"
+  }, {
+    "id" : "16",
+    "name" : "LO_COMMITDATE",
... 1823382 lines suppressed ...