This is an automated email from the ASF dual-hosted git repository. liyang pushed a commit to branch sync in repository https://gitbox.apache.org/repos/asf/kylin.git
commit a05a4d0058976f7a940fdf840643ab7c820ff6e4 Author: Jiatao Tao <245915...@qq.com> AuthorDate: Tue Feb 27 16:56:50 2018 +0800 KYLIN-3251, add a hook that can customize test_case_data and add MetadataCleanupJob UT. minor, refine test. minor, refine test. --- .../common/util/LocalFileMetadataTestCase.java | 77 ++- .../org/apache/kylin/tool/MetadataCleanupJob.java | 56 +- .../apache/kylin/tool/MetadataCleanupJobTest.java | 76 +++ tool/src/test/resources/test_meta/UUID | Bin 0 -> 38 bytes .../test_meta/cube/ci_inner_join_cube.json | 60 +++ .../test_meta/cube_desc/ci_inner_join_cube.json | 574 +++++++++++++++++++++ .../04b6db34-b243-4780-855a-4c7ea4cee817.seq | Bin 0 -> 2605183 bytes .../NAME/b58ce89d-3df6-46d1-8cff-2a9cfc8b7510.dict | Bin 0 -> 823 bytes .../NAME/64ca8fea-b859-4e63-aea3-bfb4c6ee0c9d.dict | Bin 0 -> 844 bytes .../execute/d861b8b7-c773-47ab-bb1e-c8782ae8d930 | 41 ++ .../d861b8b7-c773-47ab-bb1e-c8782ae8d930 | 13 + .../d861b8b7-c773-47ab-bb1e-c8782ae8d930-00 | 13 + .../d861b8b7-c773-47ab-bb1e-c8782ae8d930-01 | 13 + tool/src/test/resources/test_meta/kylin.properties | 0 .../test_meta/model_desc/ci_inner_join_model.json | 231 +++++++++ .../test/resources/test_meta/project/default.json | 35 ++ .../test_meta/table/DEFAULT.TEST_ACCOUNT.json | 36 ++ .../table/DEFAULT.TEST_CATEGORY_GROUPINGS.json | 155 ++++++ .../test_meta/table/DEFAULT.TEST_COUNTRY.json | 26 + .../test_meta/table/DEFAULT.TEST_KYLIN_FACT.json | 68 +++ .../test_meta/table/DEFAULT.TEST_ORDER.json | 35 ++ .../resources/test_meta/table/EDW.TEST_CAL_DT.json | 413 +++++++++++++++ .../test_meta/table/EDW.TEST_SELLER_TYPE_DIM.json | 46 ++ .../resources/test_meta/table/EDW.TEST_SITES.json | 51 ++ .../92456efe-9b79-4385-a5a3-e7f37b677bf7.snapshot | Bin 0 -> 16063 bytes .../7ecdb07b-a8d0-49d8-892b-fe2dd75512ca.snapshot | Bin 0 -> 16061 bytes 26 files changed, 1968 insertions(+), 51 deletions(-) diff --git a/core-common/src/test/java/org/apache/kylin/common/util/LocalFileMetadataTestCase.java b/core-common/src/test/java/org/apache/kylin/common/util/LocalFileMetadataTestCase.java index 5e6b840..20e1df7 100644 --- a/core-common/src/test/java/org/apache/kylin/common/util/LocalFileMetadataTestCase.java +++ b/core-common/src/test/java/org/apache/kylin/common/util/LocalFileMetadataTestCase.java @@ -27,37 +27,40 @@ import org.apache.kylin.common.persistence.ResourceStore; public class LocalFileMetadataTestCase extends AbstractKylinTestCase { - public static String LOCALMETA_TEST_DATA = "../examples/test_case_data/localmeta"; - public static String LOCALMETA_TEMP_DATA = "../examples/test_metadata/"; + public static final String LOCALMETA_TEST_DATA = "../examples/test_case_data/localmeta"; + public static final String LOCALMETA_TEMP_DATA = "../examples/test_metadata/"; @Override public void createTestMetadata(String... overlayMetadataDirs) { - //overlayMetadataDirs is useless yet - staticCreateTestMetadata(overlayMetadataDirs); + staticCreateTestMetadata(true, new OverlayMetaHook(overlayMetadataDirs)); } public static void staticCreateTestMetadata(String... overlayMetadataDirs) { - String testDataFolder = LOCALMETA_TEST_DATA; - KylinConfig.destroyInstance(); + staticCreateTestMetadata(true, new OverlayMetaHook(overlayMetadataDirs)); + } - String tempTestMetadataUrl = LOCALMETA_TEMP_DATA; + public static void staticCreateTestMetadata(boolean useTestMeta, MetadataTestCaseHook hook) { try { - FileUtils.deleteDirectory(new File(tempTestMetadataUrl)); - FileUtils.copyDirectory(new File(testDataFolder), new File(tempTestMetadataUrl)); + KylinConfig.destroyInstance(); - for (String overlay : overlayMetadataDirs) { - FileUtils.copyDirectory(new File(overlay), new File(tempTestMetadataUrl)); + FileUtils.deleteDirectory(new File(LOCALMETA_TEMP_DATA)); + if (useTestMeta) { + FileUtils.copyDirectory(new File(LOCALMETA_TEST_DATA), new File(LOCALMETA_TEMP_DATA)); } - } catch (IOException e) { - e.printStackTrace(); - } - if (System.getProperty(KylinConfig.KYLIN_CONF) == null && System.getenv(KylinConfig.KYLIN_CONF) == null) - System.setProperty(KylinConfig.KYLIN_CONF, tempTestMetadataUrl); + if (System.getProperty(KylinConfig.KYLIN_CONF) == null && System.getenv(KylinConfig.KYLIN_CONF) == null) { + System.setProperty(KylinConfig.KYLIN_CONF, LOCALMETA_TEMP_DATA); + } - KylinConfig config = KylinConfig.getInstanceFromEnv(); - config.setMetadataUrl(tempTestMetadataUrl); - config.setProperty("kylin.env.hdfs-working-dir", "file:///tmp/kylin"); + if (hook != null) { + hook.hook(); + } + KylinConfig config = KylinConfig.getInstanceFromEnv(); + config.setMetadataUrl(LOCALMETA_TEMP_DATA); + config.setProperty("kylin.env.hdfs-working-dir", "file:///tmp/kylin"); + } catch (IOException e) { + throw new RuntimeException(e); + } } public static void cleanAfterClass() { @@ -90,4 +93,40 @@ public class LocalFileMetadataTestCase extends AbstractKylinTestCase { protected ResourceStore getStore() { return ResourceStore.getStore(KylinConfig.getInstanceFromEnv()); } + + public interface MetadataTestCaseHook { + void hook() throws IOException; + } + + public static class OverlayMetaHook implements MetadataTestCaseHook { + private String[] overlayMetadataDirs; + + public OverlayMetaHook(String... overlayMetadataDirs) { + this.overlayMetadataDirs = overlayMetadataDirs; + } + + @Override + public void hook() throws IOException { + //some test cases may require additional metadata entries besides standard test metadata in test_case_data/localmeta + for (String overlay : overlayMetadataDirs) { + FileUtils.copyDirectory(new File(overlay), new File(LOCALMETA_TEMP_DATA)); + } + } + } + + public static class ExcludeMetaHook implements MetadataTestCaseHook { + private String[] excludeMetadataDirs; + + public ExcludeMetaHook(String... excludeMetadataDirs) { + this.excludeMetadataDirs = excludeMetadataDirs; + } + + @Override + public void hook() throws IOException { + //some test cases may want exclude metadata entries besides standard test metadata in test_case_data/localmeta + for (String exclude : excludeMetadataDirs) { + FileUtils.deleteQuietly(new File(exclude)); + } + } + } } diff --git a/tool/src/main/java/org/apache/kylin/tool/MetadataCleanupJob.java b/tool/src/main/java/org/apache/kylin/tool/MetadataCleanupJob.java index 8e17645..d1c8423 100644 --- a/tool/src/main/java/org/apache/kylin/tool/MetadataCleanupJob.java +++ b/tool/src/main/java/org/apache/kylin/tool/MetadataCleanupJob.java @@ -41,30 +41,23 @@ import org.slf4j.LoggerFactory; import com.google.common.collect.Lists; import com.google.common.collect.Sets; -/** - */ public class MetadataCleanupJob extends AbstractHadoopJob { @SuppressWarnings("static-access") - private static final Option OPTION_DELETE = OptionBuilder.withArgName("delete").hasArg().isRequired(false).withDescription("Delete the unused metadata").create("delete"); + private static final Option OPTION_DELETE = OptionBuilder.withArgName("delete").hasArg().isRequired(false) + .withDescription("Delete the unused metadata").create("delete"); @SuppressWarnings("static-access") - private static final Option OPTION_THRESHOLD_FOR_JOB = OptionBuilder.withArgName("jobThreshold").hasArg().isRequired(false).withDescription("Specify how many days of job metadata keeping. Default 30 days").create("jobThreshold"); + private static final Option OPTION_THRESHOLD_FOR_JOB = OptionBuilder.withArgName("jobThreshold").hasArg() + .isRequired(false).withDescription("Specify how many days of job metadata keeping. Default 30 days") + .create("jobThreshold"); protected static final Logger logger = LoggerFactory.getLogger(MetadataCleanupJob.class); - - boolean delete = false; - + private boolean delete = false; private KylinConfig config = null; - private static final long TIME_THREADSHOLD = 1 * 3600 * 1000L; // 1 hour - private static final int DEFAULT_DAY_THREADSHOLD_FOR_JOB = 30 ; // 30 days + private static final int DEFAULT_DAY_THREADSHOLD_FOR_JOB = 30; // 30 days - /* - * (non-Javadoc) - * - * @see org.apache.hadoop.util.Tool#run(java.lang.String[]) - */ @Override public int run(String[] args) throws Exception { Options options = new Options(); @@ -78,11 +71,10 @@ public class MetadataCleanupJob extends AbstractHadoopJob { logger.info("delete option value: '" + getOptionValue(OPTION_DELETE) + "'"); logger.info("jobThreshold option value: '" + getOptionValue(OPTION_THRESHOLD_FOR_JOB) + "'"); delete = Boolean.parseBoolean(getOptionValue(OPTION_DELETE)); - - config = KylinConfig.getInstanceFromEnv(); - - cleanup(); - + int jobThresholdDay = optionsHelper.hasOption(OPTION_THRESHOLD_FOR_JOB) + ? Integer.valueOf(optionsHelper.getOptionValue(OPTION_THRESHOLD_FOR_JOB)) + : DEFAULT_DAY_THREADSHOLD_FOR_JOB; + cleanup(delete, jobThresholdDay); return 0; } @@ -92,19 +84,17 @@ public class MetadataCleanupJob extends AbstractHadoopJob { private boolean isOlderThanThreshold(long resourceTime) { long currentTime = System.currentTimeMillis(); - - if (currentTime - resourceTime > TIME_THREADSHOLD) - return true; - return false; + return currentTime - resourceTime > TIME_THREADSHOLD; } - public void cleanup() throws Exception { - CubeManager cubeManager = CubeManager.getInstance(config); - + public List<String> cleanup(boolean delete, int jobThresholdDay) throws Exception { + config = KylinConfig.getInstanceFromEnv(); + CubeManager cubeManager = CubeManager.getInstance(KylinConfig.getInstanceFromEnv()); List<String> toDeleteResource = Lists.newArrayList(); // two level resources, snapshot tables and cube statistics - for (String resourceRoot : new String[] { ResourceStore.SNAPSHOT_RESOURCE_ROOT, ResourceStore.CUBE_STATISTICS_ROOT }) { + for (String resourceRoot : new String[]{ResourceStore.SNAPSHOT_RESOURCE_ROOT, + ResourceStore.CUBE_STATISTICS_ROOT}) { NavigableSet<String> snapshotTables = getStore().listResources(resourceRoot); if (snapshotTables != null) { @@ -153,10 +143,11 @@ public class MetadataCleanupJob extends AbstractHadoopJob { for (ExecutablePO executable : allExecutable) { long lastModified = executable.getLastModified(); ExecutableOutputPO output = executableDao.getJobOutput(executable.getUuid()); - int jobThresholdDay = optionsHelper.hasOption(OPTION_THRESHOLD_FOR_JOB) ? Integer.valueOf(optionsHelper.getOptionValue(OPTION_THRESHOLD_FOR_JOB)) : DEFAULT_DAY_THREADSHOLD_FOR_JOB; long jobThresholdTime = jobThresholdDay * 24 * 3600 * 1000L; - if (System.currentTimeMillis() - lastModified > jobThresholdTime && (ExecutableState.SUCCEED.toString().equals(output.getStatus()) || ExecutableState.DISCARDED.toString().equals(output.getStatus()))) { + if (System.currentTimeMillis() - lastModified > jobThresholdTime + && (ExecutableState.SUCCEED.toString().equals(output.getStatus()) + || ExecutableState.DISCARDED.toString().equals(output.getStatus()))) { toDeleteResource.add(ResourceStore.EXECUTE_RESOURCE_ROOT + "/" + executable.getUuid()); toDeleteResource.add(ResourceStore.EXECUTE_OUTPUT_RESOURCE_ROOT + "/" + executable.getUuid()); @@ -167,18 +158,19 @@ public class MetadataCleanupJob extends AbstractHadoopJob { } if (toDeleteResource.size() > 0) { - logger.info("The following resources have no reference or is too old, will be cleaned from metadata store: \n"); + logger.info( + "The following resources have no reference or is too old, will be cleaned from metadata store: \n"); for (String s : toDeleteResource) { logger.info(s); - if (delete == true) { + if (delete) { getStore().deleteResource(s); } } } else { logger.info("No resource to be cleaned up from metadata store;"); } - + return toDeleteResource; } public static void main(String[] args) throws Exception { diff --git a/tool/src/test/java/org/apache/kylin/tool/MetadataCleanupJobTest.java b/tool/src/test/java/org/apache/kylin/tool/MetadataCleanupJobTest.java new file mode 100644 index 0000000..ae3bef4 --- /dev/null +++ b/tool/src/test/java/org/apache/kylin/tool/MetadataCleanupJobTest.java @@ -0,0 +1,76 @@ +/* + * 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. + */ + +package org.apache.kylin.tool; + +import static org.apache.kylin.common.util.LocalFileMetadataTestCase.LOCALMETA_TEMP_DATA; +import static org.apache.kylin.common.util.LocalFileMetadataTestCase.cleanAfterClass; +import static org.apache.kylin.common.util.LocalFileMetadataTestCase.staticCreateTestMetadata; + +import java.io.File; +import java.io.IOException; +import java.util.Collection; +import java.util.List; + +import org.apache.commons.io.FileUtils; +import org.apache.kylin.common.util.LocalFileMetadataTestCase; +import org.junit.After; +import org.junit.Assert; +import org.junit.Test; + +public class MetadataCleanupJobTest { + + @After + public void after() throws Exception { + cleanAfterClass(); + } + + @Test + public void testCleanUp() throws Exception { + staticCreateTestMetadata(false, new ResetTimeHook(1, "src/test/resources/test_meta")); + MetadataCleanupJob metadataCleanupJob = new MetadataCleanupJob(); + List<String> cleanupList = metadataCleanupJob.cleanup(false, 30); + Assert.assertEquals(7, cleanupList.size()); + } + + @Test + public void testNotCleanUp() throws Exception { + staticCreateTestMetadata(false, new ResetTimeHook(System.currentTimeMillis(), "src/test/resources/test_meta")); + MetadataCleanupJob metadataCleanupJob = new MetadataCleanupJob(); + List<String> cleanupList = metadataCleanupJob.cleanup(false, 30); + Assert.assertEquals(0, cleanupList.size()); + } + + private class ResetTimeHook extends LocalFileMetadataTestCase.OverlayMetaHook { + private long lastModified; + + ResetTimeHook(long lastModified, String... overlayMetadataDirs) { + super(overlayMetadataDirs); + this.lastModified = lastModified; + } + + @Override + public void hook() throws IOException { + super.hook(); + Collection<File> files = FileUtils.listFiles(new File(LOCALMETA_TEMP_DATA), null, true); + for (File file : files) { + file.setLastModified(lastModified); + } + } + } +} diff --git a/tool/src/test/resources/test_meta/UUID b/tool/src/test/resources/test_meta/UUID new file mode 100644 index 0000000..981981c Binary files /dev/null and b/tool/src/test/resources/test_meta/UUID differ diff --git a/tool/src/test/resources/test_meta/cube/ci_inner_join_cube.json b/tool/src/test/resources/test_meta/cube/ci_inner_join_cube.json new file mode 100644 index 0000000..0b074b6 --- /dev/null +++ b/tool/src/test/resources/test_meta/cube/ci_inner_join_cube.json @@ -0,0 +1,60 @@ +{ + "uuid" : "8372c3b7-a33e-4b69-83dd-0bb8b1f8117e", + "last_modified" : 0, + "name" : "ci_inner_join_cube", + "owner" : null, + "descriptor" : "ci_inner_join_cube", + "display_name" : "ci_inner_join_cube", + "cost" : 50, + "status" : "READY", + "segments" : [{ + "uuid" : "adb2275e-c1d5-498b-b8ea-0201586868aa", + "name" : "19700101000000_20220701000000", + "storage_location_identifier" : "KYLIN_J9TE08D9IA", + "date_range_start" : 0, + "date_range_end" : 1656633600000, + "source_offset_start" : 0, + "source_offset_end" : 0, + "status" : "READY", + "size_kb" : 78965, + "input_records" : 9911, + "input_records_size" : 3955601, + "last_build_time" : 1511364122982, + "last_build_job_id" : "b58ed952-3041-4431-b560-09b78fa1fca0", + "create_time_utc" : 1511363249614, + "cuboid_shard_nums" : { + "7864320" : 2, + "8847375" : 6, + "41943504" : 6, + "458784" : 2, + "3145728" : 2, + "8323104" : 4, + "2097152" : 2, + "8388608" : 2, + "16252928" : 6, + "25230848" : 6, + "3670016" : 2, + "67108863" : 6 + }, + "total_shards" : 0, + "blackout_cuboids" : [ ], + "binary_signature" : null, + "dictionaries" : { + "BUYER_COUNTRY.NAME" : "/dict/DEFAULT.TEST_COUNTRY/NAME/64ca8fea-b859-4e63-aea3-bfb4c6ee0c9d.dict" + }, + "snapshots" : { + "DEFAULT.TEST_COUNTRY" : "/table_snapshot/DEFAULT.TEST_COUNTRY/7ecdb07b-a8d0-49d8-892b-fe2dd75512ca.snapshot" + }, + "rowkey_stats" : [ [ "TEST_KYLIN_FACT.LEAF_CATEG_ID", 134, 1 ], [ "TEST_CATEGORY_GROUPINGS.META_CATEG_NAME", 44, 1 ], [ "TEST_CATEGORY_GROUPINGS.CATEG_LVL2_NAME", 94, 1 ], [ "TEST_CATEGORY_GROUPINGS.CATEG_LVL3_NAME", 127, 1 ], [ "TEST_KYLIN_FACT.LSTG_SITE_ID", 8, 1 ], [ "TEST_KYLIN_FACT.SLR_SEGMENT_CD", 8, 1 ], [ "BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL", 5, 1 ], [ "BUYER_ACCOUNT.ACCOUNT_SELLER_LEVEL", 5, 1 ], [ "BUYER_ACCOUNT.ACCOUNT_COUNTRY", 8, 1 ], [ "BUYER_COUNTRY.NAME", 8, 1 ], [ "SE [...] + "additionalInfo" : { + "storageType" : "99", + "segmentPath" : "file:///Users/imad/mock_kylin/metastore/ci_cube/parquet/8372c3b7-a33e-4b69-83dd-0bb8b1f8117e/adb2275e-c1d5-498b-b8ea-0201586868aa/", + "storageFileCount" : "30", + "storageSizeBytes" : "80860160", + "tableIndexSegmentPath" : "file:///Users/imad/mock_kylin/metastore/ci_cube/parquet/2993d0d2-ee05-4e3a-8247-b121a1bdf7bc/adb2275e-c1d5-498b-b8ea-0201586868aa/", + "tableIndexFileCount" : "7", + "tableIndexStorageSizeBytes" : "8700293" + } + }], + "create_time" : null +} \ No newline at end of file diff --git a/tool/src/test/resources/test_meta/cube_desc/ci_inner_join_cube.json b/tool/src/test/resources/test_meta/cube_desc/ci_inner_join_cube.json new file mode 100644 index 0000000..809e188 --- /dev/null +++ b/tool/src/test/resources/test_meta/cube_desc/ci_inner_join_cube.json @@ -0,0 +1,574 @@ +{ + "uuid": "3819ad72-3929-4dff-b59d-cd89a01238af", + "name": "ci_inner_join_cube", + "model_name": "ci_inner_join_model", + "description": null, + "dimensions": [ + { + "name": "CAL_DT", + "table": "TEST_CAL_DT", + "column": "{FK}", + "derived": [ + "WEEK_BEG_DT" + ] + }, + { + "name": "ORDER_ID", + "table": "TEST_KYLIN_FACT", + "column": "ORDER_ID" + }, + { + "name": "TEST_DATE_ENC", + "table": "TEST_ORDER", + "column": "TEST_DATE_ENC" + }, + { + "name": "TEST_TIME_ENC", + "table": "TEST_ORDER", + "column": "TEST_TIME_ENC" + }, + { + "name": "CATEGORY", + "table": "TEST_CATEGORY_GROUPINGS", + "column": "{FK}", + "derived": [ + "USER_DEFINED_FIELD1", + "USER_DEFINED_FIELD3", + "UPD_DATE", + "UPD_USER" + ] + }, + { + "name": "CATEGORY_HIERARCHY", + "table": "TEST_CATEGORY_GROUPINGS", + "column": "META_CATEG_NAME", + "derived": null + }, + { + "name": "CATEGORY_HIERARCHY", + "table": "TEST_CATEGORY_GROUPINGS", + "column": "CATEG_LVL2_NAME", + "derived": null + }, + { + "name": "CATEGORY_HIERARCHY", + "table": "TEST_CATEGORY_GROUPINGS", + "column": "CATEG_LVL3_NAME", + "derived": null + }, + { + "name": "LSTG_FORMAT_NAME", + "table": "TEST_KYLIN_FACT", + "column": "LSTG_FORMAT_NAME", + "derived": null + }, + { + "name": "SITE_ID", + "table": "TEST_SITES", + "column": "{FK}", + "derived": [ + "SITE_NAME", + "CRE_USER" + ] + }, + { + "name": "SELLER_TYPE_CD", + "table": "TEST_SELLER_TYPE_DIM", + "column": "{FK}", + "derived": [ + "SELLER_TYPE_DESC" + ] + }, + { + "name": "SELLER_ID", + "table": "TEST_KYLIN_FACT", + "column": "SELLER_ID" + }, + { + "name": "SELLER_BUYER_LEVEL", + "table": "SELLER_ACCOUNT", + "column": "ACCOUNT_BUYER_LEVEL" + }, + { + "name": "SELLER_SELLER_LEVEL", + "table": "SELLER_ACCOUNT", + "column": "ACCOUNT_SELLER_LEVEL" + }, + { + "name": "SELLER_COUNTRY", + "table": "SELLER_ACCOUNT", + "column": "ACCOUNT_COUNTRY" + }, + { + "name": "SELLER_COUNTRY_NAME", + "table": "SELLER_COUNTRY", + "column": "NAME" + }, + { + "name": "BUYER_ID", + "table": "TEST_ORDER", + "column": "BUYER_ID" + }, + { + "name": "BUYER_BUYER_LEVEL", + "table": "BUYER_ACCOUNT", + "column": "ACCOUNT_BUYER_LEVEL" + }, + { + "name": "BUYER_SELLER_LEVEL", + "table": "BUYER_ACCOUNT", + "column": "ACCOUNT_SELLER_LEVEL" + }, + { + "name": "BUYER_COUNTRY", + "table": "BUYER_ACCOUNT", + "column": "ACCOUNT_COUNTRY" + }, + { + "name": "BUYER_COUNTRY_NAME", + "table": "BUYER_COUNTRY", + "column": "NAME" + } + ], + "measures": [ + { + "name": "TRANS_CNT", + "function": { + "expression": "COUNT", + "parameter": { + "type": "constant", + "value": "1" + }, + "returntype": "bigint" + } + }, + { + "name": "ITEM_COUNT_SUM", + "function": { + "expression": "SUM", + "parameter": { + "type": "column", + "value": "TEST_KYLIN_FACT.ITEM_COUNT" + }, + "returntype": "bigint" + } + }, + { + "name": "GMV_SUM", + "function": { + "expression": "SUM", + "parameter": { + "type": "column", + "value": "TEST_KYLIN_FACT.PRICE" + }, + "returntype": "decimal(19,4)" + } + }, + { + "name": "GMV_MIN", + "function": { + "expression": "MIN", + "parameter": { + "type": "column", + "value": "TEST_KYLIN_FACT.PRICE" + }, + "returntype": "decimal(19,4)" + } + }, + { + "name": "GMV_MAX", + "function": { + "expression": "MAX", + "parameter": { + "type": "column", + "value": "TEST_KYLIN_FACT.PRICE" + }, + "returntype": "decimal(19,4)" + } + }, + { + "name": "SELLER_HLL", + "function": { + "expression": "COUNT_DISTINCT", + "parameter": { + "type": "column", + "value": "TEST_KYLIN_FACT.SELLER_ID" + }, + "returntype": "hllc(10)" + } + }, + { + "name": "SELLER_FORMAT_HLL", + "function": { + "expression": "COUNT_DISTINCT", + "parameter": { + "type": "column", + "value": "TEST_KYLIN_FACT.LSTG_FORMAT_NAME", + "next_parameter": { + "type": "column", + "value": "TEST_KYLIN_FACT.SELLER_ID" + } + }, + "returntype": "hllc(10)" + } + }, + { + "name": "TOP_SELLER", + "function": { + "expression": "TOP_N", + "parameter": { + "type": "column", + "value": "TEST_KYLIN_FACT.PRICE", + "next_parameter": { + "type": "column", + "value": "TEST_KYLIN_FACT.SELLER_ID" + } + }, + "returntype": "topn(100, 4)", + "configuration": { + "topn.encoding.TEST_KYLIN_FACT.SELLER_ID": "int:4" + } + } + }, + { + "name": "TEST_COUNT_DISTINCT_BITMAP", + "function": { + "expression": "COUNT_DISTINCT", + "parameter": { + "type": "column", + "value": "TEST_KYLIN_FACT.TEST_COUNT_DISTINCT_BITMAP" + }, + "returntype": "bitmap" + } + }, + { + "name": "TEST_EXTENDED_COLUMN", + "function": { + "expression": "EXTENDED_COLUMN", + "parameter": { + "type": "column", + "value": "TEST_KYLIN_FACT.ORDER_ID", + "next_parameter": { + "type": "column", + "value": "TEST_ORDER.TEST_EXTENDED_COLUMN" + } + }, + "returntype": "extendedcolumn(100)" + } + }, + { + "name": "BUYER_CONTACT", + "function": { + "expression": "EXTENDED_COLUMN", + "parameter": { + "type": "column", + "value": "TEST_ORDER.BUYER_ID", + "next_parameter": { + "type": "column", + "value": "BUYER_ACCOUNT.ACCOUNT_CONTACT" + } + }, + "returntype": "extendedcolumn(100)" + } + }, + { + "name": "SELLER_CONTACT", + "function": { + "expression": "EXTENDED_COLUMN", + "parameter": { + "type": "column", + "value": "TEST_KYLIN_FACT.SELLER_ID", + "next_parameter": { + "type": "column", + "value": "SELLER_ACCOUNT.ACCOUNT_CONTACT" + } + }, + "returntype": "extendedcolumn(100)" + } + }, + { + "name": "TRANS_ID_RAW", + "function": { + "expression": "RAW", + "parameter": { + "type": "column", + "value": "TEST_KYLIN_FACT.TRANS_ID" + }, + "returntype": "raw" + } + }, + { + "name": "PRICE_RAW", + "function": { + "expression": "RAW", + "parameter": { + "type": "column", + "value": "TEST_KYLIN_FACT.PRICE" + }, + "returntype": "raw" + } + }, + { + "name": "CAL_DT_RAW", + "function": { + "expression": "RAW", + "parameter": { + "type": "column", + "value": "TEST_KYLIN_FACT.CAL_DT" + }, + "returntype": "raw" + } + } + ], + "dictionaries": [ + { + "column": "TEST_KYLIN_FACT.TEST_COUNT_DISTINCT_BITMAP", + "builder": "org.apache.kylin.dict.global.SegmentAppendTrieDictBuilder" + } + ], + "rowkey": { + "rowkey_columns": [ + { + "column": "TEST_KYLIN_FACT.SELLER_ID", + "encoding": "int:4" + }, + { + "column": "TEST_KYLIN_FACT.ORDER_ID", + "encoding": "int:4" + }, + { + "column": "TEST_KYLIN_FACT.CAL_DT", + "encoding": "dict" + }, + { + "column": "TEST_KYLIN_FACT.LEAF_CATEG_ID", + "encoding": "dict" + }, + { + "column": "TEST_CATEGORY_GROUPINGS.META_CATEG_NAME", + "encoding": "dict" + }, + { + "column": "TEST_CATEGORY_GROUPINGS.CATEG_LVL2_NAME", + "encoding": "dict" + }, + { + "column": "TEST_CATEGORY_GROUPINGS.CATEG_LVL3_NAME", + "encoding": "dict" + }, + { + "column": "TEST_KYLIN_FACT.LSTG_FORMAT_NAME", + "encoding": "fixed_length:12" + }, + { + "column": "TEST_KYLIN_FACT.LSTG_SITE_ID", + "encoding": "dict" + }, + { + "column": "TEST_KYLIN_FACT.SLR_SEGMENT_CD", + "encoding": "dict" + }, + { + "column": "TEST_ORDER.TEST_TIME_ENC", + "encoding": "time" + }, + { + "column": "TEST_ORDER.TEST_DATE_ENC", + "encoding": "date" + }, + { + "column": "TEST_ORDER.BUYER_ID", + "encoding": "int:4" + }, + { + "column": "BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL", + "encoding": "dict" + }, + { + "column": "BUYER_ACCOUNT.ACCOUNT_SELLER_LEVEL", + "encoding": "dict" + }, + { + "column": "BUYER_ACCOUNT.ACCOUNT_COUNTRY", + "encoding": "dict" + }, + { + "column": "BUYER_COUNTRY.NAME", + "encoding": "dict" + }, + { + "column": "SELLER_ACCOUNT.ACCOUNT_BUYER_LEVEL", + "encoding": "dict" + }, + { + "column": "SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL", + "encoding": "dict" + }, + { + "column": "SELLER_ACCOUNT.ACCOUNT_COUNTRY", + "encoding": "dict" + }, + { + "column": "SELLER_COUNTRY.NAME", + "encoding": "dict" + } + ] + }, + "signature": null, + "last_modified": 1448959801311, + "null_string": null, + "hbase_mapping": { + "column_family": [ + { + "name": "f1", + "columns": [ + { + "qualifier": "m", + "measure_refs": [ + "TRANS_CNT", + "ITEM_COUNT_SUM", + "GMV_SUM", + "GMV_MIN", + "GMV_MAX" + ] + } + ] + }, + { + "name": "f2", + "columns": [ + { + "qualifier": "m", + "measure_refs": [ + "SELLER_HLL", + "SELLER_FORMAT_HLL", + "TOP_SELLER", + "TEST_COUNT_DISTINCT_BITMAP" + ] + } + ] + }, + { + "name": "f3", + "columns": [ + { + "qualifier": "m", + "measure_refs": [ + "TEST_EXTENDED_COLUMN", + "BUYER_CONTACT", + "SELLER_CONTACT", + "TRANS_ID_RAW", + "PRICE_RAW", + "CAL_DT_RAW" + ] + } + ] + } + ] + }, + "aggregation_groups": [ + { + "includes": [ + "TEST_KYLIN_FACT.CAL_DT", + "TEST_KYLIN_FACT.LEAF_CATEG_ID", + "TEST_KYLIN_FACT.LSTG_FORMAT_NAME", + "TEST_KYLIN_FACT.LSTG_SITE_ID", + "TEST_KYLIN_FACT.SLR_SEGMENT_CD", + "TEST_CATEGORY_GROUPINGS.META_CATEG_NAME", + "TEST_CATEGORY_GROUPINGS.CATEG_LVL2_NAME", + "TEST_CATEGORY_GROUPINGS.CATEG_LVL3_NAME" + ], + "select_rule": { + "hierarchy_dims": [ + [ + "TEST_CATEGORY_GROUPINGS.META_CATEG_NAME", + "TEST_CATEGORY_GROUPINGS.CATEG_LVL2_NAME", + "TEST_CATEGORY_GROUPINGS.CATEG_LVL3_NAME", + "TEST_KYLIN_FACT.LEAF_CATEG_ID" + ] + ], + "mandatory_dims": [], + "joint_dims": [ + [ + "TEST_KYLIN_FACT.LSTG_FORMAT_NAME", + "TEST_KYLIN_FACT.LSTG_SITE_ID", + "TEST_KYLIN_FACT.SLR_SEGMENT_CD" + ] + ], + "dim_cap": 3 + } + }, + { + "includes": [ + "TEST_KYLIN_FACT.CAL_DT", + "TEST_KYLIN_FACT.LEAF_CATEG_ID", + "TEST_KYLIN_FACT.LSTG_FORMAT_NAME", + "TEST_KYLIN_FACT.LSTG_SITE_ID", + "TEST_KYLIN_FACT.SLR_SEGMENT_CD", + "TEST_CATEGORY_GROUPINGS.META_CATEG_NAME", + "TEST_CATEGORY_GROUPINGS.CATEG_LVL2_NAME", + "TEST_CATEGORY_GROUPINGS.CATEG_LVL3_NAME", + "TEST_KYLIN_FACT.SELLER_ID", + "SELLER_ACCOUNT.ACCOUNT_BUYER_LEVEL", + "SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL", + "SELLER_ACCOUNT.ACCOUNT_COUNTRY", + "SELLER_COUNTRY.NAME", + "TEST_KYLIN_FACT.ORDER_ID", + "TEST_ORDER.TEST_DATE_ENC", + "TEST_ORDER.TEST_TIME_ENC", + "TEST_ORDER.BUYER_ID", + "BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL", + "BUYER_ACCOUNT.ACCOUNT_SELLER_LEVEL", + "BUYER_ACCOUNT.ACCOUNT_COUNTRY", + "BUYER_COUNTRY.NAME" + ], + "select_rule": { + "hierarchy_dims": [], + "mandatory_dims": [ + "TEST_KYLIN_FACT.CAL_DT" + ], + "joint_dims": [ + [ + "TEST_CATEGORY_GROUPINGS.META_CATEG_NAME", + "TEST_CATEGORY_GROUPINGS.CATEG_LVL2_NAME", + "TEST_CATEGORY_GROUPINGS.CATEG_LVL3_NAME", + "TEST_KYLIN_FACT.LEAF_CATEG_ID" + ], + [ + "TEST_KYLIN_FACT.LSTG_FORMAT_NAME", + "TEST_KYLIN_FACT.LSTG_SITE_ID", + "TEST_KYLIN_FACT.SLR_SEGMENT_CD" + ], + [ + "TEST_KYLIN_FACT.SELLER_ID", + "SELLER_ACCOUNT.ACCOUNT_BUYER_LEVEL", + "SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL", + "SELLER_ACCOUNT.ACCOUNT_COUNTRY", + "SELLER_COUNTRY.NAME" + ], + [ + "TEST_KYLIN_FACT.ORDER_ID", + "TEST_ORDER.TEST_DATE_ENC", + "TEST_ORDER.TEST_TIME_ENC", + "TEST_ORDER.BUYER_ID", + "BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL", + "BUYER_ACCOUNT.ACCOUNT_SELLER_LEVEL", + "BUYER_ACCOUNT.ACCOUNT_COUNTRY", + "BUYER_COUNTRY.NAME" + ] + ], + "dim_cap": 5 + } + } + ], + "notify_list": null, + "status_need_notify": [], + "auto_merge_time_ranges": null, + "retention_range": 0, + "engine_type": 4, + "storage_type": 2, + "override_kylin_properties": { + "kylin.cube.algorithm": "LAYER" + }, + "partition_date_start": 0 +} diff --git a/tool/src/test/resources/test_meta/cube_statistics/kylin_sales_cube/04b6db34-b243-4780-855a-4c7ea4cee817.seq b/tool/src/test/resources/test_meta/cube_statistics/kylin_sales_cube/04b6db34-b243-4780-855a-4c7ea4cee817.seq new file mode 100644 index 0000000..5dc08b8 Binary files /dev/null and b/tool/src/test/resources/test_meta/cube_statistics/kylin_sales_cube/04b6db34-b243-4780-855a-4c7ea4cee817.seq differ diff --git a/tool/src/test/resources/test_meta/dict/DEFAULT.KYLIN_COUNTRY/NAME/b58ce89d-3df6-46d1-8cff-2a9cfc8b7510.dict b/tool/src/test/resources/test_meta/dict/DEFAULT.KYLIN_COUNTRY/NAME/b58ce89d-3df6-46d1-8cff-2a9cfc8b7510.dict new file mode 100644 index 0000000..7dcca2a Binary files /dev/null and b/tool/src/test/resources/test_meta/dict/DEFAULT.KYLIN_COUNTRY/NAME/b58ce89d-3df6-46d1-8cff-2a9cfc8b7510.dict differ diff --git a/tool/src/test/resources/test_meta/dict/DEFAULT.TEST_COUNTRY/NAME/64ca8fea-b859-4e63-aea3-bfb4c6ee0c9d.dict b/tool/src/test/resources/test_meta/dict/DEFAULT.TEST_COUNTRY/NAME/64ca8fea-b859-4e63-aea3-bfb4c6ee0c9d.dict new file mode 100644 index 0000000..86a5154 Binary files /dev/null and b/tool/src/test/resources/test_meta/dict/DEFAULT.TEST_COUNTRY/NAME/64ca8fea-b859-4e63-aea3-bfb4c6ee0c9d.dict differ diff --git a/tool/src/test/resources/test_meta/execute/d861b8b7-c773-47ab-bb1e-c8782ae8d930 b/tool/src/test/resources/test_meta/execute/d861b8b7-c773-47ab-bb1e-c8782ae8d930 new file mode 100644 index 0000000..ed6d6fa --- /dev/null +++ b/tool/src/test/resources/test_meta/execute/d861b8b7-c773-47ab-bb1e-c8782ae8d930 @@ -0,0 +1,41 @@ +{ + "uuid" : "d861b8b7-c773-47ab-bb1e-c8782ae8d930", + "last_modified" : 0, + "version" : "2.3.0.20500", + "name" : "BUILD CUBE - ss - FULL_BUILD - GMT+08:00 2017-10-13 10:57:22", + "tasks" : [ { +"uuid" : "d861b8b7-c773-47ab-bb1e-c8782ae8d930-00", + "last_modified" : 0, + "version" : "2.3.0.20500", + "name" : "Create Intermediate Flat Hive Table", + "tasks" : null, + "type" : "org.apache.kylin.source.hive.CreateFlatHiveTableStep", + "params" : { + "HiveInit" : "USE default;\n", + "HiveRedistributeData" : "DROP TABLE IF EXISTS kylin_intermediate_ss_a110ac52_9a91_49fe_944a_346d61e54115;\nCREATE EXTERNAL TABLE IF NOT EXISTS kylin_intermediate_ss_a110ac52_9a91_49fe_944a_346d61e54115\n(\nKYLIN_SALES_LSTG_FORMAT_NAME string\n,KYLIN_SALES_PRICE decimal(19,4)\n)\nSTORED AS SEQUENCEFILE\nLOCATION 'hdfs://sandbox.hortonworks.com:8020/Users/jiatao.tao/Documents/meta5/kylin-d861b8b7-c773-47ab-bb1e-c8782ae8d930/kylin_intermediate_ss_a110ac52_9a91_49fe_944a_346d61e54115' [...] + "cubeName" : "ss" + } + }, { + "uuid" : "d861b8b7-c773-47ab-bb1e-c8782ae8d930-01", + "last_modified" : 0, + "version" : "2.3.0.20500", + "name" : "Redistribute Flat Hive Table", + "tasks" : null, + "type" : "org.apache.kylin.source.hive.HiveMRInput$RedistributeFlatHiveTableStep", + "params" : { + "HiveInit" : "USE default;\n", + "HiveRedistributeData" : "INSERT OVERWRITE TABLE kylin_intermediate_ss_a110ac52_9a91_49fe_944a_346d61e54115 SELECT * FROM kylin_intermediate_ss_a110ac52_9a91_49fe_944a_346d61e54115 DISTRIBUTE BY RAND();\n", + "cubeName" : "ss", + "intermediateTable" : "kylin_intermediate_ss_a110ac52_9a91_49fe_944a_346d61e54115" + } + }], + "type" : "org.apache.kylin.engine.mr.CubingJob", + "params" : { + "submitter" : "ADMIN", + "envName" : "DEV", + "segmentId" : "a110ac52-9a91-49fe-944a-346d61e54115", + "notify_list" : "", + "projectName" : "learn_kylin", + "cubeName" : "ss" + } +} \ No newline at end of file diff --git a/tool/src/test/resources/test_meta/execute_output/d861b8b7-c773-47ab-bb1e-c8782ae8d930 b/tool/src/test/resources/test_meta/execute_output/d861b8b7-c773-47ab-bb1e-c8782ae8d930 new file mode 100644 index 0000000..fab62b5 --- /dev/null +++ b/tool/src/test/resources/test_meta/execute_output/d861b8b7-c773-47ab-bb1e-c8782ae8d930 @@ -0,0 +1,13 @@ +{ + "uuid" : "d861b8b7-c773-47ab-bb1e-c8782ae8d930", + "last_modified" : 1507863555561, + "version" : "2.2.0.20500", + "content" : null, + "status" : "SUCCEED", + "info" : { + "startTime" : "1505914710093", + "mapReduceWaitTime" : "243712", + "algorithm" : "LAYER", + "endTime" : "1507863555561" + } +} \ No newline at end of file diff --git a/tool/src/test/resources/test_meta/execute_output/d861b8b7-c773-47ab-bb1e-c8782ae8d930-00 b/tool/src/test/resources/test_meta/execute_output/d861b8b7-c773-47ab-bb1e-c8782ae8d930-00 new file mode 100644 index 0000000..19e88f7 --- /dev/null +++ b/tool/src/test/resources/test_meta/execute_output/d861b8b7-c773-47ab-bb1e-c8782ae8d930-00 @@ -0,0 +1,13 @@ +{ + "uuid" : "d861b8b7-c773-47ab-bb1e-c8782ae8d930-00", + "last_modified" : 1507863555561, + "version" : "2.2.0.20500", + "content" : null, + "status" : "SUCCEED", + "info" : { + "startTime" : "1505914710093", + "mapReduceWaitTime" : "243712", + "algorithm" : "LAYER", + "endTime" : "1507863555561" + } +} \ No newline at end of file diff --git a/tool/src/test/resources/test_meta/execute_output/d861b8b7-c773-47ab-bb1e-c8782ae8d930-01 b/tool/src/test/resources/test_meta/execute_output/d861b8b7-c773-47ab-bb1e-c8782ae8d930-01 new file mode 100644 index 0000000..0759ee3 --- /dev/null +++ b/tool/src/test/resources/test_meta/execute_output/d861b8b7-c773-47ab-bb1e-c8782ae8d930-01 @@ -0,0 +1,13 @@ +{ + "uuid" : "d861b8b7-c773-47ab-bb1e-c8782ae8d930-01", + "last_modified" : 1507863555561, + "version" : "2.2.0.20500", + "content" : null, + "status" : "SUCCEED", + "info" : { + "startTime" : "1505914710093", + "mapReduceWaitTime" : "243712", + "algorithm" : "LAYER", + "endTime" : "1507863555561" + } +} \ No newline at end of file diff --git a/tool/src/test/resources/test_meta/kylin.properties b/tool/src/test/resources/test_meta/kylin.properties new file mode 100644 index 0000000..e69de29 diff --git a/tool/src/test/resources/test_meta/model_desc/ci_inner_join_model.json b/tool/src/test/resources/test_meta/model_desc/ci_inner_join_model.json new file mode 100644 index 0000000..a3c3c05 --- /dev/null +++ b/tool/src/test/resources/test_meta/model_desc/ci_inner_join_model.json @@ -0,0 +1,231 @@ +{ + "uuid": "72ab4ee2-2cdb-4b07-b39e-4c298563ae27", + "name": "ci_inner_join_model", + "fact_table": "DEFAULT.TEST_KYLIN_FACT", + "join_tables": [ + { + "table": "DEFAULT.TEST_ORDER", + "kind": "FACT", + "join": { + "type": "INNER", + "primary_key": [ + "TEST_ORDER.ORDER_ID" + ], + "foreign_key": [ + "TEST_KYLIN_FACT.ORDER_ID" + ] + } + }, + { + "table": "DEFAULT.TEST_ACCOUNT", + "alias": "BUYER_ACCOUNT", + "kind": "FACT", + "join": { + "type": "INNER", + "primary_key": [ + "BUYER_ACCOUNT.ACCOUNT_ID" + ], + "foreign_key": [ + "TEST_ORDER.BUYER_ID" + ] + } + }, + { + "table": "EDW.TEST_CAL_DT", + "join": { + "type": "INNER", + "primary_key": [ + "TEST_CAL_DT.CAL_DT" + ], + "foreign_key": [ + "TEST_KYLIN_FACT.CAL_DT" + ] + } + }, + { + "table": "DEFAULT.TEST_CATEGORY_GROUPINGS", + "join": { + "type": "INNER", + "primary_key": [ + "TEST_CATEGORY_GROUPINGS.LEAF_CATEG_ID", + "TEST_CATEGORY_GROUPINGS.SITE_ID" + ], + "foreign_key": [ + "TEST_KYLIN_FACT.LEAF_CATEG_ID", + "TEST_KYLIN_FACT.LSTG_SITE_ID" + ] + } + }, + { + "table": "EDW.TEST_SITES", + "join": { + "type": "INNER", + "primary_key": [ + "TEST_SITES.SITE_ID" + ], + "foreign_key": [ + "TEST_KYLIN_FACT.LSTG_SITE_ID" + ] + } + }, + { + "table": "EDW.TEST_SELLER_TYPE_DIM", + "join": { + "type": "INNER", + "primary_key": [ + "TEST_SELLER_TYPE_DIM.SELLER_TYPE_CD" + ], + "foreign_key": [ + "TEST_KYLIN_FACT.SLR_SEGMENT_CD" + ] + } + }, + { + "table": "DEFAULT.TEST_COUNTRY", + "alias": "BUYER_COUNTRY", + "join": { + "type": "INNER", + "primary_key": [ + "BUYER_COUNTRY.COUNTRY" + ], + "foreign_key": [ + "BUYER_ACCOUNT.ACCOUNT_COUNTRY" + ] + } + }, + { + "table": "DEFAULT.TEST_COUNTRY", + "alias": "SELLER_COUNTRY", + "join": { + "type": "INNER", + "primary_key": [ + "SELLER_COUNTRY.COUNTRY" + ], + "foreign_key": [ + "SELLER_ACCOUNT.ACCOUNT_COUNTRY" + ] + } + }, + { + "table": "DEFAULT.TEST_ACCOUNT", + "alias": "SELLER_ACCOUNT", + "kind": "FACT", + "join": { + "type": "INNER", + "primary_key": [ + "SELLER_ACCOUNT.ACCOUNT_ID" + ], + "foreign_key": [ + "TEST_KYLIN_FACT.SELLER_ID" + ] + } + } + ], + "dimensions": [ + { + "table": "TEST_KYLIN_FACT", + "columns": [ + "TRANS_ID", + "ORDER_ID", + "CAL_DT", + "LSTG_FORMAT_NAME", + "LSTG_SITE_ID", + "LEAF_CATEG_ID", + "SLR_SEGMENT_CD", + "SELLER_ID", + "TEST_COUNT_DISTINCT_BITMAP" + ] + }, + { + "table": "TEST_ORDER", + "columns": [ + "ORDER_ID", + "BUYER_ID", + "TEST_DATE_ENC", + "TEST_TIME_ENC", + "TEST_EXTENDED_COLUMN" + ] + }, + { + "table": "BUYER_ACCOUNT", + "columns": [ + "ACCOUNT_ID", + "ACCOUNT_BUYER_LEVEL", + "ACCOUNT_SELLER_LEVEL", + "ACCOUNT_COUNTRY", + "ACCOUNT_CONTACT" + ] + }, + { + "table": "SELLER_ACCOUNT", + "columns": [ + "ACCOUNT_ID", + "ACCOUNT_BUYER_LEVEL", + "ACCOUNT_SELLER_LEVEL", + "ACCOUNT_COUNTRY", + "ACCOUNT_CONTACT" + ] + }, + { + "table": "TEST_CATEGORY_GROUPINGS", + "columns": [ + "LEAF_CATEG_ID", + "SITE_ID", + "META_CATEG_NAME", + "CATEG_LVL2_NAME", + "CATEG_LVL3_NAME", + "USER_DEFINED_FIELD1", + "USER_DEFINED_FIELD3", + "UPD_DATE", + "UPD_USER" + ] + }, + { + "table": "TEST_SITES", + "columns": [ + "SITE_ID", + "SITE_NAME", + "CRE_USER" + ] + }, + { + "table": "TEST_SELLER_TYPE_DIM", + "columns": [ + "SELLER_TYPE_CD", + "SELLER_TYPE_DESC" + ] + }, + { + "table": "TEST_CAL_DT", + "columns": [ + "CAL_DT", + "WEEK_BEG_DT" + ] + }, + { + "table": "BUYER_COUNTRY", + "columns": [ + "COUNTRY", + "NAME" + ] + }, + { + "table": "SELLER_COUNTRY", + "columns": [ + "COUNTRY", + "NAME" + ] + } + ], + "metrics": [ + "TEST_KYLIN_FACT.PRICE", + "TEST_KYLIN_FACT.ITEM_COUNT" + ], + "last_modified": 1422435345352, + "filter_condition": null, + "partition_desc": { + "partition_date_column": "DEFAULT.TEST_KYLIN_FACT.CAL_DT", + "partition_date_start": 0, + "partition_type": "APPEND" + } +} diff --git a/tool/src/test/resources/test_meta/project/default.json b/tool/src/test/resources/test_meta/project/default.json new file mode 100644 index 0000000..f2fd757 --- /dev/null +++ b/tool/src/test/resources/test_meta/project/default.json @@ -0,0 +1,35 @@ +{ + "uuid": "1eaca32a-a33e-4b69-83dd-0bb8b1f8c91b", + "name": "default", + "realizations": [ + { + "name": "ci_inner_join_cube", + "type": "CUBE", + "realization": "ci_inner_join_cube" + } + ], + "tables": [ + "DEFAULT.TEST_KYLIN_FACT", + "DEFAULT.TEST_ORDER", + "DEFAULT.TEST_ACCOUNT", + "DEFAULT.TEST_COUNTRY", + "EDW.TEST_CAL_DT", + "DEFAULT.TEST_CATEGORY_GROUPINGS", + "EDW.TEST_SITES", + "EDW.TEST_SELLER_TYPE_DIM", + "DEFAULT.STREAMING_TABLE", + "SSB.CUSTOMER", + "SSB.DATES", + "SSB.PART", + "SSB.SUPPLIER", + "SSB.V_LINEORDER", + "DEFAULT.FIFTY_DIM", + "DEFAULT.WIDE_TABLE" + ], + "models": [ + "ci_inner_join_model" + ], + "override_kylin_properties" :{ + "kylin.storage.hbase.owner-tag": "ky...@kylin.apache.org" + } +} diff --git a/tool/src/test/resources/test_meta/table/DEFAULT.TEST_ACCOUNT.json b/tool/src/test/resources/test_meta/table/DEFAULT.TEST_ACCOUNT.json new file mode 100644 index 0000000..5945713 --- /dev/null +++ b/tool/src/test/resources/test_meta/table/DEFAULT.TEST_ACCOUNT.json @@ -0,0 +1,36 @@ +{ + "uuid" : "f386e39e-40d7-44c2-9eb3-41b365632231", + + "name" : "TEST_ACCOUNT", + "data_gen" : "2000", + + "columns" : [ { + "id" : "1", + "name" : "ACCOUNT_ID", + "datatype" : "bigint", + "data_gen" : "ID|10000000", + "index": "T" + }, { + "id" : "2", + "name" : "ACCOUNT_BUYER_LEVEL", + "datatype" : "int", + "data_gen" : "RAND||0|5" + }, { + "id" : "3", + "name" : "ACCOUNT_SELLER_LEVEL", + "datatype" : "int", + "data_gen" : "RAND||0|5" + }, { + "id" : "4", + "name" : "ACCOUNT_COUNTRY", + "datatype" : "string", + "data_gen" : "CN|FR|GB|GE|JP|IT|RU|US", + "index": "T" + }, { + "id" : "5", + "name" : "ACCOUNT_CONTACT", + "datatype" : "string" + } ], + "database" : "DEFAULT", + "last_modified" : 0 +} \ No newline at end of file diff --git a/tool/src/test/resources/test_meta/table/DEFAULT.TEST_CATEGORY_GROUPINGS.json b/tool/src/test/resources/test_meta/table/DEFAULT.TEST_CATEGORY_GROUPINGS.json new file mode 100644 index 0000000..adaf987 --- /dev/null +++ b/tool/src/test/resources/test_meta/table/DEFAULT.TEST_CATEGORY_GROUPINGS.json @@ -0,0 +1,155 @@ +{ + + "uuid" : "952d11b5-69d9-45d1-92af-227489485e3f", + "name" : "TEST_CATEGORY_GROUPINGS", + "columns" : [ { + "id" : "1", + "name" : "LEAF_CATEG_ID", + "datatype" : "bigint", + "index": "T" + }, { + "id" : "2", + "name" : "LEAF_CATEG_NAME", + "datatype" : "string", + "index": "T" + }, { + "id" : "3", + "name" : "SITE_ID", + "datatype" : "int", + "index": "T" + }, { + "id" : "4", + "name" : "CATEG_BUSN_MGR", + "datatype" : "string" + }, { + "id" : "5", + "name" : "CATEG_BUSN_UNIT", + "datatype" : "string" + }, { + "id" : "6", + "name" : "REGN_CATEG", + "datatype" : "string" + }, { + "id" : "7", + "name" : "USER_DEFINED_FIELD1", + "datatype" : "string" + }, { + "id" : "8", + "name" : "USER_DEFINED_FIELD3", + "datatype" : "string" + }, { + "id" : "9", + "name" : "GROUPINGS_CRE_DATE", + "datatype" : "string" + }, { + "id" : "10", + "name" : "UPD_DATE", + "datatype" : "string" + }, { + "id" : "11", + "name" : "GROUPINGS_CRE_USER", + "datatype" : "string" + }, { + "id" : "12", + "name" : "UPD_USER", + "datatype" : "string" + }, { + "id" : "13", + "name" : "META_CATEG_ID", + "datatype" : "decimal" + }, { + "id" : "14", + "name" : "META_CATEG_NAME", + "datatype" : "string" + }, { + "id" : "15", + "name" : "CATEG_LVL2_ID", + "datatype" : "decimal" + }, { + "id" : "16", + "name" : "CATEG_LVL3_ID", + "datatype" : "decimal" + }, { + "id" : "17", + "name" : "CATEG_LVL4_ID", + "datatype" : "decimal" + }, { + "id" : "18", + "name" : "CATEG_LVL5_ID", + "datatype" : "decimal" + }, { + "id" : "19", + "name" : "CATEG_LVL6_ID", + "datatype" : "decimal" + }, { + "id" : "20", + "name" : "CATEG_LVL7_ID", + "datatype" : "decimal" + }, { + "id" : "21", + "name" : "CATEG_LVL2_NAME", + "datatype" : "string" + }, { + "id" : "22", + "name" : "CATEG_LVL3_NAME", + "datatype" : "string" + }, { + "id" : "23", + "name" : "CATEG_LVL4_NAME", + "datatype" : "string" + }, { + "id" : "24", + "name" : "CATEG_LVL5_NAME", + "datatype" : "string" + }, { + "id" : "25", + "name" : "CATEG_LVL6_NAME", + "datatype" : "string" + }, { + "id" : "26", + "name" : "CATEG_LVL7_NAME", + "datatype" : "string" + }, { + "id" : "27", + "name" : "CATEG_FLAGS", + "datatype" : "decimal" + }, { + "id" : "28", + "name" : "ADULT_CATEG_YN", + "datatype" : "string" + }, { + "id" : "29", + "name" : "DOMAIN_ID", + "datatype" : "decimal" + }, { + "id" : "30", + "name" : "USER_DEFINED_FIELD5", + "datatype" : "string" + }, { + "id" : "31", + "name" : "VCS_ID", + "datatype" : "decimal" + }, { + "id" : "32", + "name" : "GCS_ID", + "datatype" : "decimal" + }, { + "id" : "33", + "name" : "MOVE_TO", + "datatype" : "decimal" + }, { + "id" : "34", + "name" : "SAP_CATEGORY_ID", + "datatype" : "decimal" + }, { + "id" : "35", + "name" : "SRC_ID", + "datatype" : "tinyint" + }, { + "id" : "36", + "name" : "BSNS_VRTCL_NAME", + "datatype" : "string" + } ], + "database" : "DEFAULT", + "last_modified" : 0 +} \ No newline at end of file diff --git a/tool/src/test/resources/test_meta/table/DEFAULT.TEST_COUNTRY.json b/tool/src/test/resources/test_meta/table/DEFAULT.TEST_COUNTRY.json new file mode 100644 index 0000000..870cb2d --- /dev/null +++ b/tool/src/test/resources/test_meta/table/DEFAULT.TEST_COUNTRY.json @@ -0,0 +1,26 @@ +{ + "uuid" : "e286e39e-40d7-44c2-8fa2-41b365632882", + + "name" : "TEST_COUNTRY", + "columns" : [ { + "id" : "1", + "name" : "COUNTRY", + "datatype" : "string", + "index": "T" + }, { + "id" : "2", + "name" : "LATITUDE", + "datatype" : "double" + }, { + "id" : "3", + "name" : "LONGITUDE", + "datatype" : "double" + }, { + "id" : "4", + "name" : "NAME", + "datatype" : "string", + "index": "T" + } ], + "database" : "DEFAULT", + "last_modified" : 0 +} \ No newline at end of file diff --git a/tool/src/test/resources/test_meta/table/DEFAULT.TEST_KYLIN_FACT.json b/tool/src/test/resources/test_meta/table/DEFAULT.TEST_KYLIN_FACT.json new file mode 100644 index 0000000..4be05f2 --- /dev/null +++ b/tool/src/test/resources/test_meta/table/DEFAULT.TEST_KYLIN_FACT.json @@ -0,0 +1,68 @@ +{ + "uuid" : "e286e39e-40d7-44c2-8fa2-41b365522771", + "name" : "TEST_KYLIN_FACT", + "data_gen" : "1", + "columns" : [ { + "id" : "1", + "name" : "TRANS_ID", + "datatype" : "bigint", + "data_gen" : "ID" + }, { + "id" : "2", + "name" : "ORDER_ID", + "datatype" : "bigint", + "index": "T" + }, { + "id" : "3", + "name" : "CAL_DT", + "datatype" : "date", + "data_gen" : "FK,order", + "index": "T" + }, { + "id" : "4", + "name" : "LSTG_FORMAT_NAME", + "datatype" : "string", + "data_gen" : "FP-GTC|FP-non GTC|ABIN|Auction|Others", + "index": "T" + }, { + "id" : "5", + "name" : "LEAF_CATEG_ID", + "datatype" : "bigint", + "data_gen" : "FK,null,nullstr=0", + "index": "T" + }, { + "id" : "6", + "name" : "LSTG_SITE_ID", + "datatype" : "int", + "index": "T" + }, { + "id" : "7", + "name" : "SLR_SEGMENT_CD", + "datatype" : "smallint", + "data_gen" : "FK,pk=EDW.TEST_SELLER_TYPE_DIM_TABLE.SELLER_TYPE_CD", + "index": "T" + }, { + "id" : "8", + "name" : "SELLER_ID", + "datatype" : "int", + "data_gen" : "RAND||10000000|10001000", + "index": "T" + }, { + "id" : "9", + "name" : "PRICE", + "datatype" : "decimal", + "data_gen" : "RAND|.##|-100|1000" + }, { + "id" : "10", + "name" : "ITEM_COUNT", + "datatype" : "int", + "data_gen" : "RAND" + }, { + "id" : "11", + "name" : "TEST_COUNT_DISTINCT_BITMAP", + "datatype" : "string", + "data_gen" : "RAND" + } ], + "database" : "DEFAULT", + "last_modified" : 0 +} diff --git a/tool/src/test/resources/test_meta/table/DEFAULT.TEST_ORDER.json b/tool/src/test/resources/test_meta/table/DEFAULT.TEST_ORDER.json new file mode 100644 index 0000000..7232492 --- /dev/null +++ b/tool/src/test/resources/test_meta/table/DEFAULT.TEST_ORDER.json @@ -0,0 +1,35 @@ +{ + "uuid" : "f216e39e-40d7-44c2-8fa2-41b3656398ae", + "name" : "TEST_ORDER", + "data_gen" : "0.5", + "columns" : [ { + "id" : "1", + "name" : "ORDER_ID", + "datatype" : "bigint", + "data_gen" : "ID", + "index": "T" + }, { + "id" : "2", + "name" : "BUYER_ID", + "datatype" : "bigint", + "data_gen" : "RAND||10000500|10001500", + "index": "T" + }, { + "id" : "3", + "name" : "TEST_DATE_ENC", + "datatype" : "date", + "data_gen" : "RAND" + }, { + "id" : "4", + "name" : "TEST_TIME_ENC", + "datatype" : "timestamp", + "data_gen" : "RAND" + }, { + "id" : "5", + "name" : "TEST_EXTENDED_COLUMN", + "datatype" : "string", + "data_gen" : "RAND" + } ], + "database" : "DEFAULT", + "last_modified" : 0 +} \ No newline at end of file diff --git a/tool/src/test/resources/test_meta/table/EDW.TEST_CAL_DT.json b/tool/src/test/resources/test_meta/table/EDW.TEST_CAL_DT.json new file mode 100644 index 0000000..1230649 --- /dev/null +++ b/tool/src/test/resources/test_meta/table/EDW.TEST_CAL_DT.json @@ -0,0 +1,413 @@ +{ + + "uuid" : "0ff420eb-79ad-40bd-bca9-12d8cd05c60a", + "name" : "TEST_CAL_DT", + "columns" : [ { + "id" : "1", + "name" : "CAL_DT", + "datatype" : "date", + "index": "T" + }, { + "id" : "2", + "name" : "YEAR_BEG_DT", + "datatype" : "date", + "index": "T" + }, { + "id" : "3", + "name" : "QTR_BEG_DT", + "datatype" : "date", + "index": "T" + }, { + "id" : "4", + "name" : "MONTH_BEG_DT", + "datatype" : "date", + "index": "T" + }, { + "id" : "5", + "name" : "WEEK_BEG_DT", + "datatype" : "date", + "index": "T" + }, { + "id" : "6", + "name" : "AGE_FOR_YEAR_ID", + "datatype" : "smallint" + }, { + "id" : "7", + "name" : "AGE_FOR_QTR_ID", + "datatype" : "smallint" + }, { + "id" : "8", + "name" : "AGE_FOR_MONTH_ID", + "datatype" : "smallint" + }, { + "id" : "9", + "name" : "AGE_FOR_WEEK_ID", + "datatype" : "smallint" + }, { + "id" : "10", + "name" : "AGE_FOR_DT_ID", + "datatype" : "smallint" + }, { + "id" : "11", + "name" : "AGE_FOR_RTL_YEAR_ID", + "datatype" : "smallint" + }, { + "id" : "12", + "name" : "AGE_FOR_RTL_QTR_ID", + "datatype" : "smallint" + }, { + "id" : "13", + "name" : "AGE_FOR_RTL_MONTH_ID", + "datatype" : "smallint" + }, { + "id" : "14", + "name" : "AGE_FOR_RTL_WEEK_ID", + "datatype" : "smallint" + }, { + "id" : "15", + "name" : "AGE_FOR_CS_WEEK_ID", + "datatype" : "smallint" + }, { + "id" : "16", + "name" : "DAY_OF_CAL_ID", + "datatype" : "int" + }, { + "id" : "17", + "name" : "DAY_OF_YEAR_ID", + "datatype" : "smallint" + }, { + "id" : "18", + "name" : "DAY_OF_QTR_ID", + "datatype" : "smallint" + }, { + "id" : "19", + "name" : "DAY_OF_MONTH_ID", + "datatype" : "smallint" + }, { + "id" : "20", + "name" : "DAY_OF_WEEK_ID", + "datatype" : "int" + }, { + "id" : "21", + "name" : "WEEK_OF_YEAR_ID", + "datatype" : "tinyint" + }, { + "id" : "22", + "name" : "WEEK_OF_CAL_ID", + "datatype" : "int" + }, { + "id" : "23", + "name" : "MONTH_OF_QTR_ID", + "datatype" : "tinyint" + }, { + "id" : "24", + "name" : "MONTH_OF_YEAR_ID", + "datatype" : "tinyint" + }, { + "id" : "25", + "name" : "MONTH_OF_CAL_ID", + "datatype" : "smallint" + }, { + "id" : "26", + "name" : "QTR_OF_YEAR_ID", + "datatype" : "tinyint" + }, { + "id" : "27", + "name" : "QTR_OF_CAL_ID", + "datatype" : "smallint" + }, { + "id" : "28", + "name" : "YEAR_OF_CAL_ID", + "datatype" : "smallint" + }, { + "id" : "29", + "name" : "YEAR_END_DT", + "datatype" : "string" + }, { + "id" : "30", + "name" : "QTR_END_DT", + "datatype" : "string" + }, { + "id" : "31", + "name" : "MONTH_END_DT", + "datatype" : "string" + }, { + "id" : "32", + "name" : "WEEK_END_DT", + "datatype" : "string" + }, { + "id" : "33", + "name" : "CAL_DT_NAME", + "datatype" : "string" + }, { + "id" : "34", + "name" : "CAL_DT_DESC", + "datatype" : "string" + }, { + "id" : "35", + "name" : "CAL_DT_SHORT_NAME", + "datatype" : "string" + }, { + "id" : "36", + "name" : "YTD_YN_ID", + "datatype" : "tinyint" + }, { + "id" : "37", + "name" : "QTD_YN_ID", + "datatype" : "tinyint" + }, { + "id" : "38", + "name" : "MTD_YN_ID", + "datatype" : "tinyint" + }, { + "id" : "39", + "name" : "WTD_YN_ID", + "datatype" : "tinyint" + }, { + "id" : "40", + "name" : "SEASON_BEG_DT", + "datatype" : "string" + }, { + "id" : "41", + "name" : "DAY_IN_YEAR_COUNT", + "datatype" : "smallint" + }, { + "id" : "42", + "name" : "DAY_IN_QTR_COUNT", + "datatype" : "tinyint" + }, { + "id" : "43", + "name" : "DAY_IN_MONTH_COUNT", + "datatype" : "tinyint" + }, { + "id" : "44", + "name" : "DAY_IN_WEEK_COUNT", + "datatype" : "tinyint" + }, { + "id" : "45", + "name" : "RTL_YEAR_BEG_DT", + "datatype" : "string" + }, { + "id" : "46", + "name" : "RTL_QTR_BEG_DT", + "datatype" : "string" + }, { + "id" : "47", + "name" : "RTL_MONTH_BEG_DT", + "datatype" : "string" + }, { + "id" : "48", + "name" : "RTL_WEEK_BEG_DT", + "datatype" : "string" + }, { + "id" : "49", + "name" : "CS_WEEK_BEG_DT", + "datatype" : "string" + }, { + "id" : "50", + "name" : "CAL_DATE", + "datatype" : "string" + }, { + "id" : "51", + "name" : "DAY_OF_WEEK", + "datatype" : "string" + }, { + "id" : "52", + "name" : "MONTH_ID", + "datatype" : "string" + }, { + "id" : "53", + "name" : "PRD_DESC", + "datatype" : "string" + }, { + "id" : "54", + "name" : "PRD_FLAG", + "datatype" : "string" + }, { + "id" : "55", + "name" : "PRD_ID", + "datatype" : "string" + }, { + "id" : "56", + "name" : "PRD_IND", + "datatype" : "string" + }, { + "id" : "57", + "name" : "QTR_DESC", + "datatype" : "string" + }, { + "id" : "58", + "name" : "QTR_ID", + "datatype" : "string" + }, { + "id" : "59", + "name" : "QTR_IND", + "datatype" : "string" + }, { + "id" : "60", + "name" : "RETAIL_WEEK", + "datatype" : "string" + }, { + "id" : "61", + "name" : "RETAIL_YEAR", + "datatype" : "string" + }, { + "id" : "62", + "name" : "RETAIL_START_DATE", + "datatype" : "string" + }, { + "id" : "63", + "name" : "RETAIL_WK_END_DATE", + "datatype" : "string" + }, { + "id" : "64", + "name" : "WEEK_IND", + "datatype" : "string" + }, { + "id" : "65", + "name" : "WEEK_NUM_DESC", + "datatype" : "string" + }, { + "id" : "66", + "name" : "WEEK_BEG_DATE", + "datatype" : "string" + }, { + "id" : "67", + "name" : "WEEK_END_DATE", + "datatype" : "string" + }, { + "id" : "68", + "name" : "WEEK_IN_YEAR_ID", + "datatype" : "string" + }, { + "id" : "69", + "name" : "WEEK_ID", + "datatype" : "string" + }, { + "id" : "70", + "name" : "WEEK_BEG_END_DESC_MDY", + "datatype" : "string" + }, { + "id" : "71", + "name" : "WEEK_BEG_END_DESC_MD", + "datatype" : "string" + }, { + "id" : "72", + "name" : "YEAR_ID", + "datatype" : "string" + }, { + "id" : "73", + "name" : "YEAR_IND", + "datatype" : "string" + }, { + "id" : "74", + "name" : "CAL_DT_MNS_1YEAR_DT", + "datatype" : "string" + }, { + "id" : "75", + "name" : "CAL_DT_MNS_2YEAR_DT", + "datatype" : "string" + }, { + "id" : "76", + "name" : "CAL_DT_MNS_1QTR_DT", + "datatype" : "string" + }, { + "id" : "77", + "name" : "CAL_DT_MNS_2QTR_DT", + "datatype" : "string" + }, { + "id" : "78", + "name" : "CAL_DT_MNS_1MONTH_DT", + "datatype" : "string" + }, { + "id" : "79", + "name" : "CAL_DT_MNS_2MONTH_DT", + "datatype" : "string" + }, { + "id" : "80", + "name" : "CAL_DT_MNS_1WEEK_DT", + "datatype" : "string" + }, { + "id" : "81", + "name" : "CAL_DT_MNS_2WEEK_DT", + "datatype" : "string" + }, { + "id" : "82", + "name" : "CURR_CAL_DT_MNS_1YEAR_YN_ID", + "datatype" : "tinyint" + }, { + "id" : "83", + "name" : "CURR_CAL_DT_MNS_2YEAR_YN_ID", + "datatype" : "tinyint" + }, { + "id" : "84", + "name" : "CURR_CAL_DT_MNS_1QTR_YN_ID", + "datatype" : "tinyint" + }, { + "id" : "85", + "name" : "CURR_CAL_DT_MNS_2QTR_YN_ID", + "datatype" : "tinyint" + }, { + "id" : "86", + "name" : "CURR_CAL_DT_MNS_1MONTH_YN_ID", + "datatype" : "tinyint" + }, { + "id" : "87", + "name" : "CURR_CAL_DT_MNS_2MONTH_YN_ID", + "datatype" : "tinyint" + }, { + "id" : "88", + "name" : "CURR_CAL_DT_MNS_1WEEK_YN_IND", + "datatype" : "tinyint" + }, { + "id" : "89", + "name" : "CURR_CAL_DT_MNS_2WEEK_YN_IND", + "datatype" : "tinyint" + }, { + "id" : "90", + "name" : "RTL_MONTH_OF_RTL_YEAR_ID", + "datatype" : "string" + }, { + "id" : "91", + "name" : "RTL_QTR_OF_RTL_YEAR_ID", + "datatype" : "tinyint" + }, { + "id" : "92", + "name" : "RTL_WEEK_OF_RTL_YEAR_ID", + "datatype" : "tinyint" + }, { + "id" : "93", + "name" : "SEASON_OF_YEAR_ID", + "datatype" : "tinyint" + }, { + "id" : "94", + "name" : "YTM_YN_ID", + "datatype" : "tinyint" + }, { + "id" : "95", + "name" : "YTQ_YN_ID", + "datatype" : "tinyint" + }, { + "id" : "96", + "name" : "YTW_YN_ID", + "datatype" : "tinyint" + }, { + "id" : "97", + "name" : "CAL_DT_CRE_DATE", + "datatype" : "string" + }, { + "id" : "98", + "name" : "CAL_DT_CRE_USER", + "datatype" : "string" + }, { + "id" : "99", + "name" : "CAL_DT_UPD_DATE", + "datatype" : "string" + }, { + "id" : "100", + "name" : "CAL_DT_UPD_USER", + "datatype" : "string" + } ], + "database" : "edw", + "last_modified" : 0 +} \ No newline at end of file diff --git a/tool/src/test/resources/test_meta/table/EDW.TEST_SELLER_TYPE_DIM.json b/tool/src/test/resources/test_meta/table/EDW.TEST_SELLER_TYPE_DIM.json new file mode 100644 index 0000000..136ae57 --- /dev/null +++ b/tool/src/test/resources/test_meta/table/EDW.TEST_SELLER_TYPE_DIM.json @@ -0,0 +1,46 @@ +{ + "uuid" : "9ecc90c4-55df-436f-8602-2fbd4bca72e1", + "name" : "TEST_SELLER_TYPE_DIM", + "columns" : [ { + "id" : "1", + "name" : "SELLER_TYPE_CD", + "datatype" : "smallint", + "index": "T" + }, { + "id" : "2", + "name" : "SELLER_TYPE_DESC", + "datatype" : "string" + }, { + "id" : "3", + "name" : "GLBL_RPRT_SLR_SGMNT_CD", + "datatype" : "tinyint" + }, { + "id" : "4", + "name" : "SELLER_GROUP_CD", + "datatype" : "tinyint", + "index": "T" + }, { + "id" : "5", + "name" : "SELLER_GROUP_DESC", + "datatype" : "string" + }, { + "id" : "6", + "name" : "DIM_CRE_DATE", + "datatype" : "string" + }, { + "id" : "7", + "name" : "DIM_CRE_USER", + "datatype" : "string" + }, { + "id" : "8", + "name" : "DIM_UPD_DATE", + "datatype" : "string" + }, { + "id" : "9", + "name" : "DIM_UPD_USER", + "datatype" : "string" + } ], + "database" : "edw", + "table_type" : "VIRTUAL_VIEW", + "last_modified" : 0 +} \ No newline at end of file diff --git a/tool/src/test/resources/test_meta/table/EDW.TEST_SITES.json b/tool/src/test/resources/test_meta/table/EDW.TEST_SITES.json new file mode 100644 index 0000000..4c2d727 --- /dev/null +++ b/tool/src/test/resources/test_meta/table/EDW.TEST_SITES.json @@ -0,0 +1,51 @@ +{ + + "uuid" : "338a3325-a947-46d1-9ece-e079b3b8d4a6", + "name" : "TEST_SITES", + "columns" : [ { + "id" : "1", + "name" : "SITE_ID", + "datatype" : "int", + "index": "T" + }, { + "id" : "2", + "name" : "SITE_NAME", + "datatype" : "string", + "index": "T" + }, { + "id" : "3", + "name" : "SITE_DOMAIN_CODE", + "datatype" : "string" + }, { + "id" : "4", + "name" : "DFAULT_LSTG_CURNCY", + "datatype" : "int" + }, { + "id" : "5", + "name" : "EOA_EMAIL_CSTMZBL_SITE_YN_ID", + "datatype" : "tinyint" + }, { + "id" : "6", + "name" : "SITE_CNTRY_ID", + "datatype" : "int", + "index": "T" + }, { + "id" : "7", + "name" : "CRE_DATE", + "datatype" : "string" + }, { + "id" : "8", + "name" : "SITES_UPD_DATE", + "datatype" : "string" + }, { + "id" : "9", + "name" : "CRE_USER", + "datatype" : "string" + }, { + "id" : "10", + "name" : "SITES_UPD_USER", + "datatype" : "string" + } ], + "database" : "edw", + "last_modified" : 0 +} \ No newline at end of file diff --git a/tool/src/test/resources/test_meta/table_snapshot/DEFAULT.KYLIN_COUNTRY/92456efe-9b79-4385-a5a3-e7f37b677bf7.snapshot b/tool/src/test/resources/test_meta/table_snapshot/DEFAULT.KYLIN_COUNTRY/92456efe-9b79-4385-a5a3-e7f37b677bf7.snapshot new file mode 100644 index 0000000..58ca104 Binary files /dev/null and b/tool/src/test/resources/test_meta/table_snapshot/DEFAULT.KYLIN_COUNTRY/92456efe-9b79-4385-a5a3-e7f37b677bf7.snapshot differ diff --git a/tool/src/test/resources/test_meta/table_snapshot/DEFAULT.TEST_COUNTRY/7ecdb07b-a8d0-49d8-892b-fe2dd75512ca.snapshot b/tool/src/test/resources/test_meta/table_snapshot/DEFAULT.TEST_COUNTRY/7ecdb07b-a8d0-49d8-892b-fe2dd75512ca.snapshot new file mode 100644 index 0000000..4f24fe8 Binary files /dev/null and b/tool/src/test/resources/test_meta/table_snapshot/DEFAULT.TEST_COUNTRY/7ecdb07b-a8d0-49d8-892b-fe2dd75512ca.snapshot differ -- To stop receiving notification emails like this one, please contact liy...@apache.org.