You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2016/12/17 00:03:28 UTC

[1/4] kylin git commit: KYLIN-2291 Collect hive table property skip-header-line-count [Forced Update!]

Repository: kylin
Updated Branches:
  refs/heads/KYLIN-2283 5a27f0331 -> 8c1add806 (forced update)


KYLIN-2291 Collect hive table property skip-header-line-count

Signed-off-by: Li Yang <li...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/d79d9374
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/d79d9374
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/d79d9374

Branch: refs/heads/KYLIN-2283
Commit: d79d9374cd8411518ee8eafc7640910826f6838c
Parents: f2377db
Author: Cheng Wang <ch...@kyligence.io>
Authored: Fri Dec 16 17:23:15 2016 +0800
Committer: Li Yang <li...@apache.org>
Committed: Fri Dec 16 17:45:16 2016 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/source/hive/BeelineHiveClient.java  |  3 +++
 .../java/org/apache/kylin/source/hive/CLIHiveClient.java |  2 +-
 .../apache/kylin/source/hive/HiveSourceTableLoader.java  |  1 +
 .../java/org/apache/kylin/source/hive/HiveTableMeta.java |  4 +++-
 .../apache/kylin/source/hive/HiveTableMetaBuilder.java   | 11 ++++++++++-
 5 files changed, 18 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/d79d9374/source-hive/src/main/java/org/apache/kylin/source/hive/BeelineHiveClient.java
----------------------------------------------------------------------
diff --git a/source-hive/src/main/java/org/apache/kylin/source/hive/BeelineHiveClient.java b/source-hive/src/main/java/org/apache/kylin/source/hive/BeelineHiveClient.java
index 47b551b..468ccb1 100644
--- a/source-hive/src/main/java/org/apache/kylin/source/hive/BeelineHiveClient.java
+++ b/source-hive/src/main/java/org/apache/kylin/source/hive/BeelineHiveClient.java
@@ -193,6 +193,9 @@ public class BeelineHiveClient implements IHiveClient {
                     if ("numFiles".equals(resultSet.getString(2).trim())) {
                         builder.setFileNum(Long.parseLong(resultSet.getString(3).trim()));
                     }
+                    if ("skip.header.line.count".equals(resultSet.getString(2).trim())) {
+                        builder.setSkipHeaderLineCount(resultSet.getString(3).trim());
+                    }
                 }
             }
             if ("InputFormat:".equals(resultSet.getString(1).trim())) {

http://git-wip-us.apache.org/repos/asf/kylin/blob/d79d9374/source-hive/src/main/java/org/apache/kylin/source/hive/CLIHiveClient.java
----------------------------------------------------------------------
diff --git a/source-hive/src/main/java/org/apache/kylin/source/hive/CLIHiveClient.java b/source-hive/src/main/java/org/apache/kylin/source/hive/CLIHiveClient.java
index 5a17f1f..e8a93bd 100644
--- a/source-hive/src/main/java/org/apache/kylin/source/hive/CLIHiveClient.java
+++ b/source-hive/src/main/java/org/apache/kylin/source/hive/CLIHiveClient.java
@@ -42,7 +42,6 @@ import com.google.common.collect.Lists;
  *
  */
 public class CLIHiveClient implements IHiveClient {
-
     protected HiveConf hiveConf = null;
     protected Driver driver = null;
     protected HiveMetaStoreClient metaStoreClient = null;
@@ -109,6 +108,7 @@ public class CLIHiveClient implements IHiveClient {
         builder.setOwner(table.getOwner());
         builder.setLastAccessTime(table.getLastAccessTime());
         builder.setTableType(table.getTableType());
+        builder.setSkipHeaderLineCount(table.getParameters().get("skip.header.line.count"));
 
         return builder.createHiveTableMeta();
     }

http://git-wip-us.apache.org/repos/asf/kylin/blob/d79d9374/source-hive/src/main/java/org/apache/kylin/source/hive/HiveSourceTableLoader.java
----------------------------------------------------------------------
diff --git a/source-hive/src/main/java/org/apache/kylin/source/hive/HiveSourceTableLoader.java b/source-hive/src/main/java/org/apache/kylin/source/hive/HiveSourceTableLoader.java
index 57292dc..77e1084 100644
--- a/source-hive/src/main/java/org/apache/kylin/source/hive/HiveSourceTableLoader.java
+++ b/source-hive/src/main/java/org/apache/kylin/source/hive/HiveSourceTableLoader.java
@@ -140,6 +140,7 @@ public class HiveSourceTableLoader {
             tableExtDesc.addDataSourceProp("total_file_number", String.valueOf(hiveTableMeta.fileNum));
             tableExtDesc.addDataSourceProp("hive_inputFormat", hiveTableMeta.sdInputFormat);
             tableExtDesc.addDataSourceProp("hive_outputFormat", hiveTableMeta.sdOutputFormat);
+            tableExtDesc.addDataSourceProp("skip_header_line_count", String.valueOf(hiveTableMeta.skipHeaderLineCount));
 
             metaMgr.saveTableExt(tableExtDesc);
             metaMgr.saveSourceTable(tableDesc);

http://git-wip-us.apache.org/repos/asf/kylin/blob/d79d9374/source-hive/src/main/java/org/apache/kylin/source/hive/HiveTableMeta.java
----------------------------------------------------------------------
diff --git a/source-hive/src/main/java/org/apache/kylin/source/hive/HiveTableMeta.java b/source-hive/src/main/java/org/apache/kylin/source/hive/HiveTableMeta.java
index 784a0bb..fa9eb29 100644
--- a/source-hive/src/main/java/org/apache/kylin/source/hive/HiveTableMeta.java
+++ b/source-hive/src/main/java/org/apache/kylin/source/hive/HiveTableMeta.java
@@ -44,6 +44,7 @@ class HiveTableMeta {
     String sdOutputFormat;
     String owner;
     String tableType;
+    int skipHeaderLineCount;
     int lastAccessTime;
     long fileSize;
     long fileNum;
@@ -51,7 +52,7 @@ class HiveTableMeta {
     List<HiveTableColumnMeta> allColumns;
     List<HiveTableColumnMeta> partitionColumns;
 
-    public HiveTableMeta(String tableName, String sdLocation, String sdInputFormat, String sdOutputFormat, String owner, String tableType, int lastAccessTime, long fileSize, long fileNum, boolean isNative, List<HiveTableColumnMeta> allColumns, List<HiveTableColumnMeta> partitionColumns) {
+    public HiveTableMeta(String tableName, String sdLocation, String sdInputFormat, String sdOutputFormat, String owner, String tableType, int lastAccessTime, long fileSize, long fileNum, int skipHeaderLineCount, boolean isNative, List<HiveTableColumnMeta> allColumns, List<HiveTableColumnMeta> partitionColumns) {
         this.tableName = tableName;
         this.sdLocation = sdLocation;
         this.sdInputFormat = sdInputFormat;
@@ -64,6 +65,7 @@ class HiveTableMeta {
         this.isNative = isNative;
         this.allColumns = allColumns;
         this.partitionColumns = partitionColumns;
+        this.skipHeaderLineCount = skipHeaderLineCount;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/kylin/blob/d79d9374/source-hive/src/main/java/org/apache/kylin/source/hive/HiveTableMetaBuilder.java
----------------------------------------------------------------------
diff --git a/source-hive/src/main/java/org/apache/kylin/source/hive/HiveTableMetaBuilder.java b/source-hive/src/main/java/org/apache/kylin/source/hive/HiveTableMetaBuilder.java
index 7a3e5d6..073ded5 100644
--- a/source-hive/src/main/java/org/apache/kylin/source/hive/HiveTableMetaBuilder.java
+++ b/source-hive/src/main/java/org/apache/kylin/source/hive/HiveTableMetaBuilder.java
@@ -32,6 +32,7 @@ public class HiveTableMetaBuilder {
     private int lastAccessTime;
     private long fileSize;
     private long fileNum;
+    private int skipHeaderLineCount;
     private boolean isNative = true;
     private List<HiveTableMeta.HiveTableColumnMeta> allColumns = Lists.newArrayList();
     private List<HiveTableMeta.HiveTableColumnMeta> partitionColumns = Lists.newArrayList();
@@ -81,6 +82,14 @@ public class HiveTableMetaBuilder {
         return this;
     }
 
+    public HiveTableMetaBuilder setSkipHeaderLineCount(String skipHeaderLineCount) {
+        if (null == skipHeaderLineCount)
+            this.skipHeaderLineCount = 0;
+        else
+            this.skipHeaderLineCount = Integer.parseInt(skipHeaderLineCount);
+        return this;
+    }
+
     public HiveTableMetaBuilder setIsNative(boolean isNative) {
         this.isNative = isNative;
         return this;
@@ -97,6 +106,6 @@ public class HiveTableMetaBuilder {
     }
 
     public HiveTableMeta createHiveTableMeta() {
-        return new HiveTableMeta(tableName, sdLocation, sdInputFormat, sdOutputFormat, owner, tableType, lastAccessTime, fileSize, fileNum, isNative, allColumns, partitionColumns);
+        return new HiveTableMeta(tableName, sdLocation, sdInputFormat, sdOutputFormat, owner, tableType, lastAccessTime, fileSize, fileNum, skipHeaderLineCount, isNative, allColumns, partitionColumns);
     }
 }
\ No newline at end of file


[4/4] kylin git commit: KYLIN-2283 replace old with new

Posted by li...@apache.org.
KYLIN-2283 replace old with new


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/8c1add80
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/8c1add80
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/8c1add80

Branch: refs/heads/KYLIN-2283
Commit: 8c1add80622ff722555840e526f8fcf9a7d04ca3
Parents: f0fcbc0
Author: Yang Li <li...@apache.org>
Authored: Sat Dec 17 08:03:10 2016 +0800
Committer: Yang Li <li...@apache.org>
Committed: Sat Dec 17 08:03:10 2016 +0800

----------------------------------------------------------------------
 .../java/org/apache/kylin/job/DataGenTest.java  |  56 --
 .../java/org/apache/kylin/job/DeployUtil.java   |  27 +-
 .../apache/kylin/job/dataGen/ColumnConfig.java  |  80 ---
 .../kylin/job/dataGen/FactTableGenerator.java   | 696 -------------------
 .../org/apache/kylin/job/dataGen/GenConfig.java |  92 ---
 .../localmeta/data/data_gen_config.json         |  65 --
 6 files changed, 8 insertions(+), 1008 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/8c1add80/assembly/src/test/java/org/apache/kylin/job/DataGenTest.java
----------------------------------------------------------------------
diff --git a/assembly/src/test/java/org/apache/kylin/job/DataGenTest.java b/assembly/src/test/java/org/apache/kylin/job/DataGenTest.java
deleted file mode 100644
index af4f9fb..0000000
--- a/assembly/src/test/java/org/apache/kylin/job/DataGenTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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.job;
-
-import static org.junit.Assert.assertTrue;
-
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-import org.apache.kylin.job.dataGen.FactTableGenerator;
-import org.apache.kylin.metadata.MetadataManager;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- *
- */
-public class DataGenTest extends LocalFileMetadataTestCase {
-
-    @Before
-    public void before() throws Exception {
-        this.createTestMetadata();
-        MetadataManager.clearCache();
-    }
-
-    @After
-    public void after() throws Exception {
-        this.cleanupTestMetadata();
-    }
-
-    @Test
-    public void testBasics() throws Exception {
-        String content = FactTableGenerator.generate("test_kylin_cube_with_slr_ready", "10000", "1", null);// default  settings
-        //System.out.println(content);
-        assertTrue(content.contains("FP-non GTC"));
-        assertTrue(content.contains("ABIN"));
-
-        //DeployUtil.overrideFactTableData(content, "default.test_kylin_fact");
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/kylin/blob/8c1add80/assembly/src/test/java/org/apache/kylin/job/DeployUtil.java
----------------------------------------------------------------------
diff --git a/assembly/src/test/java/org/apache/kylin/job/DeployUtil.java b/assembly/src/test/java/org/apache/kylin/job/DeployUtil.java
index 23b3670..f65d2a4 100644
--- a/assembly/src/test/java/org/apache/kylin/job/DeployUtil.java
+++ b/assembly/src/test/java/org/apache/kylin/job/DeployUtil.java
@@ -33,20 +33,21 @@ import org.apache.commons.lang.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.common.persistence.ResourceTool;
+import org.apache.kylin.common.util.HiveCmdBuilder;
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.cube.CubeDescManager;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
-import org.apache.kylin.job.dataGen.FactTableGenerator;
 import org.apache.kylin.job.streaming.StreamDataLoader;
 import org.apache.kylin.job.streaming.StreamingTableDataGenerator;
 import org.apache.kylin.metadata.MetadataManager;
 import org.apache.kylin.metadata.model.ColumnDesc;
+import org.apache.kylin.metadata.model.DataModelDesc;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.metadata.model.TableRef;
 import org.apache.kylin.metadata.model.TblColRef;
+import org.apache.kylin.source.datagen.ModelDataGenerator;
 import org.apache.kylin.source.hive.HiveClientFactory;
-import org.apache.kylin.common.util.HiveCmdBuilder;
 import org.apache.kylin.source.hive.IHiveClient;
 import org.apache.kylin.source.kafka.TimedJsonStreamParser;
 import org.apache.maven.model.Model;
@@ -131,16 +132,15 @@ public class DeployUtil {
 
     public static void prepareTestDataForNormalCubes(String cubeName) throws Exception {
 
-        String factTableName = TABLE_KYLIN_FACT.toUpperCase();
-        String content = null;
-
         boolean buildCubeUsingProvidedData = Boolean.parseBoolean(System.getProperty("buildCubeUsingProvidedData"));
         if (!buildCubeUsingProvidedData) {
             System.out.println("build cube with random dataset");
+            
             // data is generated according to cube descriptor and saved in resource store
-            content = FactTableGenerator.generate(cubeName, "10000", "0.6", null);
-            assert content != null;
-            overrideFactTableData(content, factTableName);
+            MetadataManager mgr = MetadataManager.getInstance(KylinConfig.getInstanceFromEnv());
+            DataModelDesc model = mgr.getDataModelDesc("test_kylin_inner_join_model_desc");
+            ModelDataGenerator gen = new ModelDataGenerator(model, 1000);
+            gen.generate();
         } else {
             System.out.println("build normal cubes with provided dataset");
         }
@@ -168,17 +168,6 @@ public class DeployUtil {
         appendFactTableData(sb.toString(), cubeInstance.getRootFactTable());
     }
 
-    public static void overrideFactTableData(String factTableContent, String factTableName) throws IOException {
-        // Write to resource store
-        ResourceStore store = ResourceStore.getStore(config());
-
-        InputStream in = new ByteArrayInputStream(factTableContent.getBytes("UTF-8"));
-        String factTablePath = "/data/" + factTableName + ".csv";
-        store.deleteResource(factTablePath);
-        store.putResource(factTablePath, in, System.currentTimeMillis());
-        in.close();
-    }
-
     public static void appendFactTableData(String factTableContent, String factTableName) throws IOException {
         // Write to resource store
         ResourceStore store = ResourceStore.getStore(config());

http://git-wip-us.apache.org/repos/asf/kylin/blob/8c1add80/assembly/src/test/java/org/apache/kylin/job/dataGen/ColumnConfig.java
----------------------------------------------------------------------
diff --git a/assembly/src/test/java/org/apache/kylin/job/dataGen/ColumnConfig.java b/assembly/src/test/java/org/apache/kylin/job/dataGen/ColumnConfig.java
deleted file mode 100644
index 5e1c09f..0000000
--- a/assembly/src/test/java/org/apache/kylin/job/dataGen/ColumnConfig.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * 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.job.dataGen;
-
-import java.util.ArrayList;
-
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-/**
- */
-@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE)
-public class ColumnConfig {
-    @JsonProperty("columnName")
-    private String columnName;
-    @JsonProperty("valueSet")
-    private ArrayList<String> valueSet;
-    @JsonProperty("exclusive")
-    private boolean exclusive;
-    @JsonProperty("asRange")
-    private boolean asRange;
-    @JsonProperty("differentiateByDateBoundary")
-    private boolean differentiateByDateBoundary;
-
-    public boolean isAsRange() {
-        return asRange;
-    }
-
-    public void setAsRange(boolean asRange) {
-        this.asRange = asRange;
-    }
-
-    public boolean isExclusive() {
-        return exclusive;
-    }
-
-    public void setExclusive(boolean exclusive) {
-        this.exclusive = exclusive;
-    }
-
-    public String getColumnName() {
-        return columnName;
-    }
-
-    public void setColumnName(String columnName) {
-        this.columnName = columnName;
-    }
-
-    public ArrayList<String> getValueSet() {
-        return valueSet;
-    }
-
-    public void setValueSet(ArrayList<String> valueSet) {
-        this.valueSet = valueSet;
-    }
-
-    public boolean isDifferentiateByDateBoundary() {
-        return differentiateByDateBoundary;
-    }
-
-    public void setDifferentiateByDateBoundary(boolean differentiateByDateBoundary) {
-        this.differentiateByDateBoundary = differentiateByDateBoundary;
-    }
-}

http://git-wip-us.apache.org/repos/asf/kylin/blob/8c1add80/assembly/src/test/java/org/apache/kylin/job/dataGen/FactTableGenerator.java
----------------------------------------------------------------------
diff --git a/assembly/src/test/java/org/apache/kylin/job/dataGen/FactTableGenerator.java b/assembly/src/test/java/org/apache/kylin/job/dataGen/FactTableGenerator.java
deleted file mode 100644
index 011035b..0000000
--- a/assembly/src/test/java/org/apache/kylin/job/dataGen/FactTableGenerator.java
+++ /dev/null
@@ -1,696 +0,0 @@
-/*
- * 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.job.dataGen;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-import java.util.TreeMap;
-import java.util.TreeSet;
-
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.persistence.ResourceStore;
-import org.apache.kylin.common.util.Array;
-import org.apache.kylin.cube.CubeInstance;
-import org.apache.kylin.cube.CubeManager;
-import org.apache.kylin.cube.model.CubeDesc;
-import org.apache.kylin.cube.model.DimensionDesc;
-import org.apache.kylin.metadata.MetadataManager;
-import org.apache.kylin.metadata.datatype.DataType;
-import org.apache.kylin.metadata.model.ColumnDesc;
-import org.apache.kylin.metadata.model.JoinDesc;
-import org.apache.kylin.metadata.model.MeasureDesc;
-import org.apache.kylin.metadata.model.TblColRef;
-
-import com.google.common.collect.Lists;
-
-/**
- */
-public class FactTableGenerator {
-    CubeInstance cube = null;
-    CubeDesc desc = null;
-    ResourceStore store = null;
-    String factTableName = null;
-
-    GenConfig genConf = null;
-
-    Random r = null;
-
-    String cubeName;
-    long randomSeed;
-    int rowCount;
-    int unlinkableRowCount;
-    int unlinkableRowCountMax;
-    double conflictRatio;
-    double linkableRatio;
-
-    long differentiateBoundary = -1;
-    List<Integer> differentiateColumns = Lists.newArrayList();
-
-    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-
-    // the names of lookup table columns which is in relation with fact
-    // table(appear as fk in fact table)
-    TreeMap<String, LinkedList<String>> lookupTableKeys = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
-
-    // possible values of lookupTableKeys, extracted from existing lookup tables.
-    // The key is in the format of tablename/columnname
-    TreeMap<String, ArrayList<String>> feasibleValues = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
-
-    // lookup table name -> sets of all composite keys
-    TreeMap<String, HashSet<Array<String>>> lookupTableCompositeKeyValues = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
-
-    private void init(String cubeName, int rowCount, double conflictRaio, double linkableRatio, long randomSeed) {
-        this.rowCount = rowCount;
-        this.conflictRatio = conflictRaio;
-        this.cubeName = cubeName;
-        this.randomSeed = randomSeed;
-        this.linkableRatio = linkableRatio;
-
-        this.unlinkableRowCountMax = (int) (this.rowCount * (1 - linkableRatio));
-        this.unlinkableRowCount = 0;
-
-        r = new Random(randomSeed);
-
-        KylinConfig config = KylinConfig.getInstanceFromEnv();
-        cube = CubeManager.getInstance(config).getCube(cubeName);
-        desc = cube.getDescriptor();
-        factTableName = cube.getRootFactTable();
-        store = ResourceStore.getStore(config);
-    }
-
-    /*
-     * users can specify the value preference for each column
-     */
-    private void loadConfig() {
-        try {
-            InputStream configStream = store.getResource("/data/data_gen_config.json").inputStream;
-            this.genConf = GenConfig.loadConfig(configStream);
-
-            if (configStream != null)
-                configStream.close();
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-    }
-
-    private void loadLookupTableValues(String lookupTableName, LinkedList<String> columnNames, int distinctRowCount) throws Exception {
-        KylinConfig config = KylinConfig.getInstanceFromEnv();
-
-        // only deal with composite keys
-        if (columnNames.size() > 1 && !lookupTableCompositeKeyValues.containsKey(lookupTableName)) {
-            lookupTableCompositeKeyValues.put(lookupTableName, new HashSet<Array<String>>());
-        }
-
-        InputStream tableStream = null;
-        BufferedReader tableReader = null;
-        try {
-            TreeMap<String, Integer> zeroBasedInice = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
-            for (String columnName : columnNames) {
-                ColumnDesc cDesc = MetadataManager.getInstance(config).getTableDesc(lookupTableName).findColumnByName(columnName);
-                zeroBasedInice.put(columnName, cDesc.getZeroBasedIndex());
-            }
-
-            String path = "/data/" + lookupTableName + ".csv";
-            tableStream = store.getResource(path).inputStream;
-            tableReader = new BufferedReader(new InputStreamReader(tableStream));
-            tableReader.mark(0);
-            int rowCount = 0;
-            int curRowNum = 0;
-            String curRow;
-
-            while (tableReader.readLine() != null)
-                rowCount++;
-
-            HashSet<Integer> rows = new HashSet<Integer>();
-            distinctRowCount = (distinctRowCount < rowCount) ? distinctRowCount : rowCount;
-            while (rows.size() < distinctRowCount) {
-                rows.add(r.nextInt(rowCount));
-            }
-
-            // reopen the stream
-            tableReader.close();
-            tableStream.close();
-            tableStream = null;
-            tableReader = null;
-
-            tableStream = store.getResource(path).inputStream;
-            tableReader = new BufferedReader(new InputStreamReader(tableStream));
-
-            while ((curRow = tableReader.readLine()) != null) {
-                if (rows.contains(curRowNum)) {
-                    String[] tokens = curRow.split(",");
-
-                    String[] comboKeys = null;
-                    int index = 0;
-                    if (columnNames.size() > 1)
-                        comboKeys = new String[columnNames.size()];
-
-                    for (String columnName : columnNames) {
-                        int zeroBasedIndex = zeroBasedInice.get(columnName);
-                        if (!feasibleValues.containsKey(lookupTableName + "/" + columnName))
-                            feasibleValues.put(lookupTableName + "/" + columnName, new ArrayList<String>());
-                        feasibleValues.get(lookupTableName + "/" + columnName).add(tokens[zeroBasedIndex]);
-
-                        if (columnNames.size() > 1) {
-                            comboKeys[index] = tokens[zeroBasedIndex];
-                            index++;
-                        }
-                    }
-
-                    if (columnNames.size() > 1) {
-                        Array<String> wrap = new Array<String>(comboKeys);
-                        if (lookupTableCompositeKeyValues.get(lookupTableName).contains(wrap)) {
-                            throw new Exception("The composite key already exist in the lookup table");
-                        }
-                        lookupTableCompositeKeyValues.get(lookupTableName).add(wrap);
-                    }
-                }
-                curRowNum++;
-            }
-
-        } catch (IOException e) {
-            e.printStackTrace();
-            System.exit(1);
-        } finally {
-            if (tableStream != null)
-                tableStream.close();
-            if (tableReader != null)
-                tableReader.close();
-        }
-    }
-
-    // prepare the candidate values for each joined column
-    private void prepare() throws Exception {
-        // load config
-        loadConfig();
-
-        int index = 0;
-        for (ColumnDesc cDesc : MetadataManager.getInstance(KylinConfig.getInstanceFromEnv()).getTableDesc(factTableName).getColumns()) {
-            ColumnConfig cConfig = genConf.getColumnConfigByName(cDesc.getName());
-
-            if (cConfig != null && cConfig.isDifferentiateByDateBoundary()) {
-                if (!cDesc.getType().isStringFamily()) {
-                    throw new IllegalStateException("differentiateByDateBoundary only applies to text types, actual:" + cDesc.getType());
-                }
-                if (genConf.getDifferentiateBoundary() == null) {
-                    throw new IllegalStateException("differentiateBoundary not provided");
-                }
-                if (differentiateBoundary == -1) {
-                    differentiateBoundary = format.parse(genConf.getDifferentiateBoundary()).getTime();
-                }
-                differentiateColumns.add(index);
-            }
-            index++;
-        }
-
-        TreeSet<String> factTableColumns = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
-
-        for (DimensionDesc dim : desc.getDimensions()) {
-            for (TblColRef col : dim.getColumnRefs()) {
-                if (col.getTable().equals(factTableName))
-                    factTableColumns.add(col.getName());
-            }
-
-            JoinDesc join = dim.getJoin();
-            if (join != null) {
-                String lookupTable = dim.getTableRef().getTableIdentity();
-                for (String column : dropAlias(join.getPrimaryKey())) {
-                    if (!lookupTableKeys.containsKey(lookupTable)) {
-                        lookupTableKeys.put(lookupTable, new LinkedList<String>());
-                    }
-
-                    if (!lookupTableKeys.get(lookupTable).contains(column))
-                        lookupTableKeys.get(lookupTable).add(column);
-                }
-            }
-        }
-
-        int distinctRowCount = (int) (this.rowCount / this.conflictRatio);
-        distinctRowCount = (distinctRowCount == 0) ? 1 : distinctRowCount;
-        // lookup tables
-        for (String lookupTable : lookupTableKeys.keySet()) {
-            this.loadLookupTableValues(lookupTable, lookupTableKeys.get(lookupTable), distinctRowCount);
-        }
-    }
-
-    private List<DimensionDesc> getSortedDimentsionDescs() {
-        List<DimensionDesc> dimensions = desc.getDimensions();
-        Collections.sort(dimensions, new Comparator<DimensionDesc>() {
-            @Override
-            public int compare(DimensionDesc o1, DimensionDesc o2) {
-                JoinDesc j1 = o2.getJoin();
-                JoinDesc j2 = o1.getJoin();
-                return Integer.valueOf(j1 != null ? j1.getPrimaryKey().length : 0).compareTo(j2 != null ? j2.getPrimaryKey().length : 0);
-            }
-        });
-        return dimensions;
-    }
-
-    /**
-     * Generate the fact table and return it as text
-     *
-     * @return
-     * @throws Exception
-     */
-    private String cookData() throws Exception {
-        // the columns on the fact table can be classified into three groups:
-        // 1. foreign keys
-        TreeMap<String, String> factTableCol2LookupCol = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
-        // 2. metrics or directly used dimensions
-        TreeSet<String> usedCols = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
-        // 3. others, not referenced anywhere
-
-        TreeMap<String, String> lookupCol2factTableCol = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
-
-        // find fact table columns in fks
-        List<DimensionDesc> dimensions = getSortedDimentsionDescs();
-        for (DimensionDesc dim : dimensions) {
-            JoinDesc jDesc = dim.getJoin();
-            if (jDesc != null) {
-                String[] fks = dropAlias(jDesc.getForeignKey());
-                String[] pks = dropAlias(jDesc.getPrimaryKey());
-                int num = fks.length;
-                for (int i = 0; i < num; ++i) {
-                    String value = dim.getTableRef().getTableIdentity() + "/" + pks[i];
-
-                    lookupCol2factTableCol.put(value, fks[i]);
-
-                    if (factTableCol2LookupCol.containsKey(fks[i])) {
-                        if (!factTableCol2LookupCol.get(fks[i]).equals(value)) {
-                            System.out.println("Warning: Disambiguation on the mapping of column " + fks[i] + ", " + factTableCol2LookupCol.get(fks[i]) + "(chosen) or " + value);
-                            continue;
-                        }
-                    }
-                    factTableCol2LookupCol.put(fks[i], value);
-                }
-            }
-            //else, deal with it in next roung
-        }
-
-        // find fact table columns in direct dimension
-        // DO NOT merge this with the previous loop
-        for (DimensionDesc dim : dimensions) {
-            JoinDesc jDesc = dim.getJoin();
-            if (jDesc == null) {
-                // column on fact table used directly as a dimension
-                String aColumn = dim.getColumn();
-                if (!factTableCol2LookupCol.containsKey(aColumn))
-                    usedCols.add(aColumn);
-            }
-        }
-
-        // find fact table columns in measures
-        for (MeasureDesc mDesc : desc.getMeasures()) {
-            List<TblColRef> pcols = mDesc.getFunction().getParameter().getColRefs();
-            if (pcols != null) {
-                for (TblColRef col : pcols) {
-                    if (!factTableCol2LookupCol.containsKey(col.getName()))
-                        usedCols.add(col.getName());
-                }
-            }
-        }
-
-        return createTable(this.rowCount, factTableCol2LookupCol, lookupCol2factTableCol, usedCols);
-    }
-
-    private String[] dropAlias(String[] aliasDotCol) {
-        String[] result = new String[aliasDotCol.length];
-        for (int i = 0; i < aliasDotCol.length; i++) {
-            String str = aliasDotCol[i];
-            int cut = str.lastIndexOf('.');
-            if (cut >= 0) {
-                str = str.substring(cut + 1);
-            }
-            result[i] = str;
-        }
-        return result;
-    }
-
-    private String normToTwoDigits(int v) {
-        if (v < 10)
-            return "0" + v;
-        else
-            return Integer.toString(v);
-    }
-
-    private String randomPick(ArrayList<String> candidates) {
-        int index = r.nextInt(candidates.size());
-        return candidates.get(index);
-    }
-
-    private String createRandomCell(ColumnDesc cDesc, ArrayList<String> range) throws Exception {
-        DataType type = cDesc.getType();
-        if (type.isStringFamily()) {
-            throw new Exception("Can't handle range values for string");
-
-        } else if (type.isIntegerFamily()) {
-            int low = Integer.parseInt(range.get(0));
-            int high = Integer.parseInt(range.get(1));
-            return Integer.toString(r.nextInt(high - low) + low);
-
-        } else if (type.isDouble()) {
-            double low = Double.parseDouble(range.get(0));
-            double high = Double.parseDouble(range.get(1));
-            return String.format("%.4f", r.nextDouble() * (high - low) + low);
-
-        } else if (type.isFloat()) {
-            float low = Float.parseFloat(range.get(0));
-            float high = Float.parseFloat(range.get(1));
-            return String.format("%.4f", r.nextFloat() * (high - low) + low);
-
-        } else if (type.isDecimal()) {
-            double low = Double.parseDouble(range.get(0));
-            double high = Double.parseDouble(range.get(1));
-            return String.format("%.4f", r.nextDouble() * (high - low) + low);
-
-        } else if (type.isDateTimeFamily()) {
-            if (!type.isDate()) {
-                throw new RuntimeException("Does not support " + type);
-            }
-
-            Date start = format.parse(range.get(0));
-            Date end = format.parse(range.get(1));
-            long diff = end.getTime() - start.getTime();
-            Date temp = new Date(start.getTime() + (long) (diff * r.nextDouble()));
-            Calendar cal = Calendar.getInstance();
-            cal.setTime(temp);
-            // first day
-            cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());
-
-            return cal.get(Calendar.YEAR) + "-" + normToTwoDigits(cal.get(Calendar.MONTH) + 1) + "-" + normToTwoDigits(cal.get(Calendar.DAY_OF_MONTH));
-        } else {
-            System.out.println("The data type " + type + "is not recognized");
-            System.exit(1);
-        }
-        return null;
-    }
-
-    private String createRandomCell(ColumnDesc cDesc) {
-        DataType type =cDesc.getType();
-        String s = type.getName();
-        if (s.equals("char") || s.equals("varchar")) {
-            StringBuilder sb = new StringBuilder();
-            int len = Math.min(type.getPrecision(), 3);
-            for (int i = 0; i < len; i++) {
-                sb.append((char) ('a' + r.nextInt(10)));  // cardinality at most 10x10x10
-            }
-            return sb.toString();
-        } else if (s.equals("bigint") || s.equals("int") || s.equals("tinyint") || s.equals("smallint")) {
-            return Integer.toString(r.nextInt(128));
-        } else if (s.equals("double")) {
-            return String.format("%.4f", r.nextDouble() * 100);
-        } else if (s.equals("float")) {
-            return String.format("%.4f", r.nextFloat() * 100);
-        } else if (s.equals("decimal")) {
-            return String.format("%.4f", r.nextDouble() * 100);
-        } else if (s.equals("date")) {
-            long date20131231 = 61349312153265L;
-            long date20010101 = 60939158400000L;
-            long diff = date20131231 - date20010101;
-            Date temp = new Date(date20010101 + (long) (diff * r.nextDouble()));
-            Calendar cal = Calendar.getInstance();
-            cal.setTime(temp);
-            // first day
-            cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());
-
-            return cal.get(Calendar.YEAR) + "-" + normToTwoDigits(cal.get(Calendar.MONTH) + 1) + "-" + normToTwoDigits(cal.get(Calendar.DAY_OF_MONTH));
-        } else {
-            System.out.println("The data type " + type + "is not recognized");
-            System.exit(1);
-        }
-        return null;
-    }
-
-    private String createDefaultsCell(String type) {
-        String s = type.toLowerCase();
-        if (s.equals("string") || s.equals("char") || s.equals("varchar")) {
-            return "abcde";
-        } else if (s.equals("bigint") || s.equals("int") || s.equals("tinyint") || s.equals("smallint")) {
-            return "0";
-        } else if (s.equals("double")) {
-            return "0";
-        } else if (s.equals("float")) {
-            return "0";
-        } else if (s.equals("decimal")) {
-            return "0";
-        } else if (s.equals("date")) {
-            return "1970-01-01";
-        } else {
-            System.out.println("The data type " + type + "is not recognized");
-            System.exit(1);
-        }
-        return null;
-    }
-
-    private void printColumnMappings(TreeMap<String, String> factTableCol2LookupCol, TreeSet<String> usedCols, TreeSet<String> defaultColumns) {
-
-        System.out.println("=======================================================================");
-        System.out.format("%-30s %s", "FACT_TABLE_COLUMN", "MAPPING");
-        System.out.println();
-        System.out.println();
-        for (Map.Entry<String, String> entry : factTableCol2LookupCol.entrySet()) {
-            System.out.format("%-30s %s", entry.getKey(), entry.getValue());
-            System.out.println();
-        }
-        for (String key : usedCols) {
-            System.out.format("%-30s %s", key, "Random Values");
-            System.out.println();
-        }
-        for (String key : defaultColumns) {
-            System.out.format("%-30s %s", key, "Default Values");
-            System.out.println();
-        }
-        System.out.println("=======================================================================");
-
-        System.out.println("Parameters:");
-        System.out.println();
-        System.out.println("CubeName:        " + cubeName);
-        System.out.println("RowCount:        " + rowCount);
-        System.out.println("ConflictRatio:   " + conflictRatio);
-        System.out.println("LinkableRatio:   " + linkableRatio);
-        System.out.println("Seed:            " + randomSeed);
-        System.out.println();
-        System.out.println("The number of actual unlinkable fact rows is: " + this.unlinkableRowCount);
-        System.out.println("You can vary the above parameters to generate different datasets.");
-        System.out.println();
-    }
-
-    // Any row in the column must finally appear in the flatten big table.
-    // for single-column joins the generated row is guaranteed to have a match
-    // in lookup table
-    // for composite keys we'll need an extra check
-    private boolean matchAllCompositeKeys(TreeMap<String, String> lookupCol2FactTableCol, LinkedList<String> columnValues) {
-        KylinConfig config = KylinConfig.getInstanceFromEnv();
-
-        for (String lookupTable : lookupTableKeys.keySet()) {
-            if (lookupTableKeys.get(lookupTable).size() == 1)
-                continue;
-
-            String[] comboKey = new String[lookupTableKeys.get(lookupTable).size()];
-            int index = 0;
-            for (String column : lookupTableKeys.get(lookupTable)) {
-                String key = lookupTable + "/" + column;
-                String factTableCol = lookupCol2FactTableCol.get(key);
-                int cardinal = MetadataManager.getInstance(config).getTableDesc(factTableName).findColumnByName(factTableCol).getZeroBasedIndex();
-                comboKey[index] = columnValues.get(cardinal);
-
-                index++;
-            }
-            Array<String> wrap = new Array<String>(comboKey);
-            if (!lookupTableCompositeKeyValues.get(lookupTable).contains(wrap)) {
-                // System.out.println("Try " + wrap + " Failed, continue...");
-                return false;
-            }
-        }
-        return true;
-    }
-
-    private String createCell(ColumnDesc cDesc) throws Exception {
-        ColumnConfig cConfig = null;
-
-        if ((cConfig = genConf.getColumnConfigByName(cDesc.getName())) == null) {
-            // if the column is not configured, use random values
-            return (createRandomCell(cDesc));
-
-        } else {
-            // the column has a configuration
-            if (!cConfig.isAsRange() && !cConfig.isExclusive() && r.nextBoolean()) {
-                // if the column still allows random values
-                return (createRandomCell(cDesc));
-
-            } else {
-                // use specified values
-                ArrayList<String> valueSet = cConfig.getValueSet();
-                if (valueSet == null || valueSet.size() == 0)
-                    throw new Exception("Did you forget to specify value set for " + cDesc.getName());
-
-                if (!cConfig.isAsRange()) {
-                    return (randomPick(valueSet));
-                } else {
-                    if (valueSet.size() != 2)
-                        throw new Exception("Only two values can be set for range values, the column: " + cDesc.getName());
-
-                    return (createRandomCell(cDesc, valueSet));
-                }
-            }
-
-        }
-    }
-
-    private LinkedList<String> createRow(TreeMap<String, String> factTableCol2LookupCol, TreeSet<String> usedCols, TreeSet<String> defaultColumns) throws Exception {
-        LinkedList<String> columnValues = new LinkedList<String>();
-
-        long currentRowTime = -1;
-
-        for (TblColRef col : cube.getModel().getRootFactTable().getColumns()) {
-
-            String colName = col.getName();
-
-            if (factTableCol2LookupCol.containsKey(colName)) {
-
-                // if the current column is a fk column in fact table
-                ArrayList<String> candidates = this.feasibleValues.get(factTableCol2LookupCol.get(colName));
-
-                columnValues.add(candidates.get(r.nextInt(candidates.size())));
-            } else if (usedCols.contains(colName)) {
-                // if the current column is a metric or dimension column in fact table
-                columnValues.add(createCell(col.getColumnDesc()));
-            } else {
-
-                // otherwise this column is not useful in OLAP
-                columnValues.add(createDefaultsCell(col.getColumnDesc().getTypeName()));
-                defaultColumns.add(colName);
-            }
-
-            if (col.equals(cube.getModel().getPartitionDesc().getPartitionDateColumnRef())) {
-                currentRowTime = format.parse(columnValues.get(columnValues.size() - 1)).getTime();
-            }
-        }
-
-        for (Integer index : differentiateColumns) {
-            if (r.nextBoolean()) {//only change half of data
-                if (currentRowTime >= differentiateBoundary) {
-                    columnValues.set(index, columnValues.get(index) + "_B");
-                } else {
-                    columnValues.set(index, columnValues.get(index) + "_A");
-                }
-            }
-        }
-
-        return columnValues;
-    }
-
-    /**
-     * return the text of table contents(one line one row)
-     *
-     * @param rowCount
-     * @param factTableCol2LookupCol
-     * @param lookupCol2FactTableCol
-     * @param usedCols
-     * @return
-     * @throws Exception
-     */
-    private String createTable(int rowCount, TreeMap<String, String> factTableCol2LookupCol, TreeMap<String, String> lookupCol2FactTableCol, TreeSet<String> usedCols) throws Exception {
-        try {
-            TreeSet<String> defaultColumns = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
-
-            StringBuffer sb = new StringBuffer();
-            for (int i = 0; i < rowCount;) {
-
-                LinkedList<String> columnValues = createRow(factTableCol2LookupCol, usedCols, defaultColumns);
-
-                if (!matchAllCompositeKeys(lookupCol2FactTableCol, columnValues)) {
-                    if (unlinkableRowCount < unlinkableRowCountMax) {
-                        unlinkableRowCount++;
-                    } else {
-                        continue;
-                    }
-                }
-
-                for (String c : columnValues)
-                    sb.append(c + ",");
-                sb.deleteCharAt(sb.length() - 1);
-                sb.append(System.getProperty("line.separator"));
-
-                i++;
-
-                // System.out.println("Just generated the " + i + "th record");
-            }
-
-            printColumnMappings(factTableCol2LookupCol, usedCols, defaultColumns);
-
-            return sb.toString();
-
-        } catch (IOException e) {
-            e.printStackTrace();
-            System.exit(1);
-        }
-
-        return null;
-    }
-
-    /**
-     * Randomly create a fact table and return the table content
-     *
-     * @param cubeName      name of the cube
-     * @param rowCount      expected row count generated
-     * @param linkableRatio the percentage of fact table rows that can be linked with all
-     *                      lookup table by INNER join
-     * @param randomSeed    random seed
-     */
-    public static String generate(String cubeName, String rowCount, String linkableRatio, String randomSeed) throws Exception {
-
-        if (rowCount == null)
-            rowCount = "10000";
-        if (linkableRatio == null)
-            linkableRatio = "0.6";
-
-        //if (randomSeed == null)
-        // don't give it value
-
-        // String conflictRatio = "5";//this parameter do not allow configuring
-        // any more
-
-        FactTableGenerator generator = new FactTableGenerator();
-        long seed;
-        if (randomSeed != null) {
-            seed = Long.parseLong(randomSeed);
-        } else {
-            Random r = new Random();
-            seed = r.nextLong();
-        }
-
-        generator.init(cubeName, Integer.parseInt(rowCount), 5, Double.parseDouble(linkableRatio), seed);
-        generator.prepare();
-        return generator.cookData();
-    }
-}

http://git-wip-us.apache.org/repos/asf/kylin/blob/8c1add80/assembly/src/test/java/org/apache/kylin/job/dataGen/GenConfig.java
----------------------------------------------------------------------
diff --git a/assembly/src/test/java/org/apache/kylin/job/dataGen/GenConfig.java b/assembly/src/test/java/org/apache/kylin/job/dataGen/GenConfig.java
deleted file mode 100644
index 5204d2a..0000000
--- a/assembly/src/test/java/org/apache/kylin/job/dataGen/GenConfig.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * 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.job.dataGen;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-
-import org.apache.kylin.common.util.JsonUtil;
-
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.core.JsonParseException;
-import com.fasterxml.jackson.databind.JsonMappingException;
-
-/**
- */
-@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE)
-public class GenConfig {
-
-    @JsonProperty("columnConfigs")
-    private ArrayList<ColumnConfig> columnConfigs;
-
-    @JsonProperty("differentiateBoundary")
-    private String differentiateBoundary; //data before and after the provided date will be different, so that different segments will have different segments
-
-    private HashMap<String, ColumnConfig> cache = new HashMap<String, ColumnConfig>();
-
-    public String getDifferentiateBoundary() {
-        return differentiateBoundary;
-    }
-
-    public void setDifferentiateBoundary(String differentiateBoundary) {
-        this.differentiateBoundary = differentiateBoundary;
-    }
-
-    public ArrayList<ColumnConfig> getColumnConfigs() {
-        return columnConfigs;
-    }
-
-    public void setColumnConfigs(ArrayList<ColumnConfig> columnConfigs) {
-        this.columnConfigs = columnConfigs;
-    }
-
-    public ColumnConfig getColumnConfigByName(String columnName) {
-        columnName = columnName.toLowerCase();
-
-        if (cache.containsKey(columnName))
-            return cache.get(columnName);
-
-        for (ColumnConfig cConfig : columnConfigs) {
-            if (cConfig.getColumnName().toLowerCase().equals(columnName)) {
-                cache.put(columnName, cConfig);
-                return cConfig;
-            }
-        }
-        cache.put(columnName, null);
-        return null;
-    }
-
-    public static GenConfig loadConfig(InputStream stream) {
-        try {
-            GenConfig config = JsonUtil.readValue(stream, GenConfig.class);
-            return config;
-        } catch (JsonMappingException e) {
-            e.printStackTrace();
-        } catch (JsonParseException e) {
-            e.printStackTrace();
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-
-        return null;
-    }
-}

http://git-wip-us.apache.org/repos/asf/kylin/blob/8c1add80/examples/test_case_data/localmeta/data/data_gen_config.json
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/data/data_gen_config.json b/examples/test_case_data/localmeta/data/data_gen_config.json
deleted file mode 100644
index 15b3fd0..0000000
--- a/examples/test_case_data/localmeta/data/data_gen_config.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
-  "differentiateBoundary": "2013-07-01",
-  "columnConfigs": [
-    {
-      "columnName": "lstg_format_name",
-      "valueSet": [
-        "FP-GTC",
-        "FP-non GTC",
-        "ABIN",
-        "Auction",
-        "Others"
-      ],
-      "exclusive": true,
-      "differentiateByDateBoundary": true
-    },
-    {
-      "columnName": "BUYER_COUNTRY",
-      "valueSet": [
-        "CN",
-        "DE",
-        "FR",
-        "JP",
-        "UK",
-        "US"
-      ],
-      "exclusive": true
-    },
-    {
-      "columnName": "SELLER_COUNTRY",
-      "valueSet": [
-        "CN",
-        "DE",
-        "FR",
-        "JP",
-        "UK",
-        "US"
-      ],
-      "exclusive": true
-    },
-    {
-      "columnName": "SELLER_ID",
-      "valueSet": [
-        "10000000",
-        "10001000"
-      ],
-      "asRange": true
-    },
-    {
-      "columnName": "ITEM_COUNT",
-      "valueSet": [
-        "0",
-        "2000000"
-      ],
-      "asRange": true
-    },
-    {
-      "columnName": "PRICE",
-      "valueSet": [
-        "0",
-        "1000"
-      ],
-      "asRange": true
-    }
-  ]
-}


[2/4] kylin git commit: KYLIN-2283 New datagen done, UT pass, pending replace CI

Posted by li...@apache.org.
http://git-wip-us.apache.org/repos/asf/kylin/blob/f0fcbc06/examples/test_case_data/localmeta/data/flatten_data_for_ii.csv
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/data/flatten_data_for_ii.csv b/examples/test_case_data/localmeta/data/flatten_data_for_ii.csv
deleted file mode 100644
index 07756c6..0000000
--- a/examples/test_case_data/localmeta/data/flatten_data_for_ii.csv
+++ /dev/null
@@ -1,402 +0,0 @@
-Auction,0,12,48027,0,10,Coins,2013-07-16 08:23:09,USER_Y,Coins & Paper Money,Paper Money: World,Asia,0,Ebay,USER_S,12,Merchant,2013-03-31,2013-03-31,10000000157,2013-03-31,48027,10000001,184.21,1
-Others,0,5,164261,0,17,JewelrGemWatches,2012-09-11 20:26:04,USER_Y,Jewelry & Watches,Fashion Jewelry,Earrings,0,Ebay,USER_S,5,Occasional,2013-11-12,2013-11-10,10000000158,2013-11-12,164261,10000002,172.03,1
-Auction,15,14,82494,15,3,Books,2010-09-13 07:05:54,USER_Y,BookMagazines,NULL,Comic Books,15,Australia,USER_S,14,Regular,2013-04-06,2013-03-31,10000000161,2013-04-06,82494,10000003,66.6,1
-Auction,15,12,66767,15,16,Home & Garden,2011-06-14 07:48:40,USER_Y,Home & Garden,NULL,Dogs,15,Australia,USER_S,12,Merchant,2013-05-17,2013-05-12,10000000137,2013-05-17,66767,10000004,92.98,1
-FP-GTC,0,5,152801,0,17,JewelrGemWatches,2012-09-11 20:26:04,USER_Y,Jewelry & Watches,NULL,Earrings,0,Ebay,USER_S,5,Occasional,2013-05-20,2013-05-19,10000000147,2013-05-20,152801,10000005,132.33,1
-FP-GTC,0,13,43398,0,36,Home & Living,2013-02-20 23:11:43,USER_Y,Home & Garden,NULL,Cheese & Crackers,0,Ebay,USER_S,13,Entrepreneur,2013-06-16,2013-06-16,10000000155,2013-06-16,43398,10000006,7.12,1
-Auction,0,14,95173,0,37,Health & Beauty,2008-06-03 13:36:00,USER_Y,Health & Beauty,Bath & Body,Bath Sets & Kits,0,Ebay,USER_S,14,Regular,2013-06-14,2013-06-09,10000000170,2013-06-14,95173,10000007,204.28,1
-Auction,15,13,158666,15,28,Toys,2012-09-11 20:27:22,USER_Y,ToyHobbies,Action Figures,Anime & Manga,15,Australia,USER_S,13,Entrepreneur,2013-03-22,2013-03-17,10000000173,2013-03-22,158666,10000008,35.72,1
-Auction,0,12,12688,0,57,Sothebys,2008-06-03 13:36:00,USER_Y,eBay Premier,Books & Manuscripts,Books: Other,0,Ebay,USER_S,12,Merchant,2013-03-10,2013-03-10,10000000178,2013-03-10,12688,10000009,4.13,1
-FP-GTC,15,5,103324,15,9,Clothing & Accessories,2012-05-01 08:54:26,USER_Y,ClothinShoeAccessories,Women's Shoes,Mixed Items,15,Australia,USER_S,5,Occasional,2013-11-01,2013-10-27,10000000163,2013-11-01,103324,10000010,27.48,1
-FP-GTC,15,14,108782,15,8,Auto Parts,2013-09-10 16:52:46,USER_Y,Vehicle Parts & Accessories,CaTruck Parts,Car Care & Cleaning,15,Australia,USER_S,14,Regular,2013-06-16,2013-06-16,10000000166,2013-06-16,108782,10000011,9.26,1
-Auction,0,12,80287,0,12,Computers,2012-05-01 08:54:26,USER_Y,Computers/Tablets & Networking,Software,Office & Business,0,Ebay,USER_S,12,Merchant,2013-09-12,2013-09-08,10000000167,2013-09-12,80287,10000012,3.18,1
-Others,100,13,140746,100,8,Auto - Parts,2012-06-19 21:15:09,USER_Y,eBay Motors,Parts & Accessories,Vintage Car & Truck Parts,100,Ebaymotors,USER_S,13,Entrepreneur,2013-09-28,2013-09-22,10000000086,2013-09-28,140746,10000013,3.18,1
-ABIN,0,14,87118,0,24,Sporting Goods,2013-04-28 20:37:19,USER_Y,Sporting Goods,Outdoor Sports,Paintball,0,Ebay,USER_S,14,Regular,2013-06-15,2013-06-09,10000000110,2013-06-15,87118,10000014,377.94,1
-Auction,0,12,25147,0,25,Sports Memorabilia,2010-02-08 10:51:44,USER_Y,Sports MeCards & Fan Shop,Fan Apparel & Souvenirs,Baseball-MLB,0,Ebay,USER_S,12,Merchant,2013-03-14,2013-03-10,10000000113,2013-03-14,25147,10000015,146.33,1
-FP-GTC,15,5,170302,15,15,Crafts,2010-09-13 07:13:34,USER_Y,Crafts,Embroidery,Design CDs,15,Australia,USER_S,5,Occasional,2013-09-01,2013-09-01,10000000069,2013-09-01,170302,10000016,51.23,1
-FP-non GTC,0,13,53064,0,4,Business (Office & Industrial),2013-04-28 20:37:19,USER_Y,Business & Industrial,Heavy Equipment,Antique & Vintage Farm Equip,0,Ebay,USER_S,13,Entrepreneur,2013-05-29,2013-05-26,10000000079,2013-05-29,53064,10000017,72.65,1
-Auction,0,13,132939,0,17,JewelrGemWatches,2012-09-11 20:26:04,USER_Y,Jewelry & Watches,Fashion Jewelry,Other,0,Ebay,USER_S,13,Entrepreneur,2013-05-31,2013-05-26,10000000080,2013-05-31,132939,10000018,66.6,1
-Auction,15,12,113593,15,40,Cell Phones & Portable Electro,2012-09-11 20:26:04,USER_Y,Phones,Mobile Phones,Mobile Phones,15,Australia,USER_S,12,Merchant,2013-03-18,2013-03-17,10000000130,2013-03-18,113593,10000019,9.26,1
-Auction,100,14,34273,100,8,Auto - Parts,2008-06-03 13:36:00,USER_Y,eBay Motors,Parts & Accessories,Motorcycle,100,Ebaymotors,USER_S,14,Regular,2013-07-19,2013-07-14,10000000268,2013-07-19,34273,10000020,583.44,1
-FP-GTC,15,14,106340,15,16,Home & Garden,2012-09-11 20:26:04,USER_Y,Home & Garden,Gardening,Hand Tools,15,Australia,USER_S,14,Regular,2013-06-23,2013-06-23,10000000132,2013-06-23,106340,10000021,638.72,1
-FP-GTC,15,14,150265,15,2,Baby,2011-04-05 08:25:25,USER_Y,Baby,Baby Clothing,Boys,15,Australia,USER_S,14,Regular,2013-05-20,2013-05-19,10000000115,2013-05-20,150265,10000022,4.54,1
-FP-GTC,0,12,24760,0,25,Sports Memorabilia,2010-02-08 10:51:44,USER_Y,Sports MeCards & Fan Shop,Fan Apparel & Souvenirs,Hockey-NHL,0,Ebay,USER_S,12,Merchant,2013-05-17,2013-05-12,10000000117,2013-05-17,24760,10000023,319.79,1
-Auction,0,12,37831,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Advertising,Merchandise & Memorabilia,0,Ebay,USER_S,12,Merchant,2013-03-11,2013-03-10,10000000118,2013-03-11,37831,10000024,20.35,1
-FP-non GTC,3,5,1120,3,3,BookComics & Magazines,2008-06-03 13:36:00,USER_Y,Books,First Editions,Other,3,\u82f1\u56fd,USER_S,5,Occasional,2013-01-30,2013-01-27,10000000223,2013-01-30,1120,10000025,223.63,1
-FP-GTC,100,13,43972,100,8,Auto - Parts,2012-06-19 21:15:09,USER_Y,eBay Motors,Parts & Accessories,ATV Parts,100,Ebaymotors,USER_S,13,Entrepreneur,2013-01-26,2013-01-20,10000000224,2013-01-26,43972,10000026,204.28,1
-Auction,15,14,166013,15,12,Computers,2012-05-01 08:54:26,USER_Y,Computers,Computer Components & Parts,Video Capture & TV Tuner Cards,15,Australia,USER_S,14,Regular,2013-03-22,2013-03-17,10000000243,2013-03-22,166013,10000027,5.48,1
-Auction,15,14,15568,15,2,Baby,2011-04-05 08:25:25,USER_Y,Baby,Baby Clothing,Unisex,15,Australia,USER_S,14,Regular,2013-07-23,2013-07-21,10000000217,2013-07-23,15568,10000028,27.48,1
-FP-GTC,15,5,103178,15,9,Clothing & Accessories,2012-05-01 08:54:26,USER_Y,ClothinShoeAccessories,Women's Bags,Women's Bags,15,Australia,USER_S,5,Occasional,2013-07-27,2013-07-21,10000000218,2013-07-27,103178,10000029,21.72,1
-ABIN,0,12,2023,0,24,Sporting Goods,2013-04-28 20:37:19,USER_Y,Sporting Goods,Team Sports,Basketball,0,Ebay,USER_S,12,Merchant,2013-10-29,2013-10-27,10000000221,2013-10-29,2023,10000030,3.18,1
-FP-GTC,0,11,94847,0,13,Consumer Electronics - Other,2012-05-01 08:54:26,USER_Y,Consumer Electronics,Vehicle Electronics & GPS,Car Video,0,Ebay,USER_S,11,Large Merchant,2013-10-08,2013-10-06,10000000256,2013-10-08,94847,10000031,491.32,1
-Auction,0,14,15868,0,23,Real Estate,2008-06-03 13:36:00,USER_Y,Real Estate,Land,Land,0,Ebay,USER_S,14,Regular,2013-04-26,2013-04-21,10000000257,2013-04-26,15868,10000032,448.8,1
-Auction,0,13,32876,0,36,Home & Living,2012-09-11 20:26:04,USER_Y,Home & Garden,Home Improvement,Plumbing & Fixtures,0,Ebay,USER_S,13,Entrepreneur,2013-01-01,2013-01-01,10000000263,2013-01-01,32876,10000033,415.73,1
-Auction,0,13,62179,0,9,Apparel,2008-06-03 13:36:00,USER_Y,ClothinShoes & Accessories,Women's Clothing,Athletic Apparel,0,Ebay,USER_S,13,Entrepreneur,2013-01-15,2013-01-13,10000000245,2013-01-15,62179,10000034,377.94,1
-FP-GTC,15,14,33038,15,30,Musical Instruments,2010-06-14 07:48:40,USER_Y,Musical Instruments,Instruments,Guitars (Electric),15,Australia,USER_S,14,Regular,2013-05-27,2013-05-26,10000000248,2013-05-27,33038,10000035,146.33,1
-FP-GTC,0,5,156614,0,28,Toys,2010-03-22 10:34:30,USER_Y,Toys & Hobbies,Diecast & Toy Vehicles,Cars: RacinNASCAR,0,Ebay,USER_S,5,Occasional,2013-11-11,2013-11-10,10000000254,2013-11-11,156614,10000036,7.12,1
-Auction,0,13,106246,0,37,Health & Beauty,2013-04-28 20:37:19,USER_Y,Health & Beauty,Hair Care & Styling,Shampoo & Conditioning,0,Ebay,USER_S,13,Entrepreneur,2013-03-08,2013-03-03,10000000192,2013-03-08,106246,10000037,42.99,1
-Auction,0,13,20865,0,9,Apparel,2008-06-03 13:36:00,USER_Y,ClothinShoes & Accessories,Men's Clothing,Athletic Apparel,0,Ebay,USER_S,13,Entrepreneur,2013-03-25,2013-03-24,10000000196,2013-03-25,20865,10000038,12.85,1
-FP-GTC,0,13,15115,0,32,Video Games,2012-06-19 21:15:09,USER_Y,Video Games & Consoles,Video Games,Video Games,0,Ebay,USER_S,13,Entrepreneur,2013-08-20,2013-08-18,10000000203,2013-08-20,15115,10000039,55.89,1
-FP-GTC,0,14,3838,0,17,JewelrGemWatches,2012-09-11 20:26:04,USER_Y,Jewelry & Watches,Fashion Jewelry,Charms & Charm Bracelets,0,Ebay,USER_S,14,Regular,2013-05-17,2013-05-12,10000000179,2013-05-17,3838,10000040,73.26,1
-Auction,0,11,759,0,28,Toys,2010-03-22 10:34:30,USER_Y,Toys & Hobbies,Diecast & Toy Vehicles,CarTrucks & Vans,0,Ebay,USER_S,11,Large Merchant,2013-06-05,2013-06-02,10000000183,2013-06-05,759,10000041,112.56,1
-FP-non GTC,0,11,61323,0,13,Consumer Electronics - Other,2012-05-01 08:54:26,USER_Y,Consumer Electronics,TVideo & Home Audio,TVideo & Audio Accessories,0,Ebay,USER_S,11,Large Merchant,2013-10-08,2013-10-06,10000000185,2013-10-08,61323,10000042,3.49,1
-Auction,0,13,121153,0,2,Baby,2012-09-11 20:26:04,USER_Y,Baby,Nursery Decor,Night Lights,0,Ebay,USER_S,13,Entrepreneur,2013-08-14,2013-08-11,10000000211,2013-08-14,121153,10000043,184.21,1
-Auction,0,13,88750,0,13,Consumer Electronics - Other,2012-05-01 08:54:26,USER_Y,Consumer Electronics,Vehicle Electronics & GPS,Radar & Laser Detectors,0,Ebay,USER_S,13,Entrepreneur,2013-08-14,2013-08-11,10000000213,2013-08-14,88750,10000044,157.14,1
-FP-GTC,15,14,161567,15,12,Computers,2012-05-01 08:54:26,USER_Y,Computers,Laptop & Desktop Accessories,Laptop Batteries,15,Australia,USER_S,14,Regular,2013-05-17,2013-05-12,10000000214,2013-05-17,161567,10000045,72.65,1
-FP-GTC,15,14,113802,15,99,Everything Else,2008-06-03 13:36:00,USER_Y,Lots More...,Metaphysical,Herbs,15,Australia,USER_S,14,Regular,2013-08-09,2013-08-04,10000000204,2013-08-09,113802,10000046,51.23,1
-FP-non GTC,15,14,15808,15,9,Clothing & Accessories,2012-09-11 20:26:04,USER_Y,ClothinShoeAccessories,Women's Clothing,Tops & Blouses,15,Australia,USER_S,14,Regular,2013-06-30,2013-06-30,10000000208,2013-06-30,15808,10000047,15.85,1
-FP-GTC,3,13,174053,3,8,Auto - Parts,2013-04-28 20:37:19,USER_Y,Vehicle Parts & Accessories,Car Parts,External & Body Parts,3,\u82f1\u56fd,USER_S,13,Entrepreneur,2013-06-03,2013-06-02,10000000209,2013-06-03,174053,10000048,7.12,1
-Auction,0,14,2635,0,28,Toys,2010-03-22 10:34:30,USER_Y,Toys & Hobbies,Toy Soldiers,1970-Now,0,Ebay,USER_S,14,Regular,2013-12-31,2013-12-29,10000000042,2013-12-31,2635,10000049,12.04,1
-Auction,3,13,1161,3,18,DVDFilm & TV,2008-06-03 13:36:00,USER_Y,DVFilm & TV,Other Formats,Videos: NTSC  (US),3,\u82f1\u56fd,USER_S,13,Entrepreneur,2013-12-25,2013-12-22,10000000044,2013-12-25,1161,10000050,73.26,1
-FP-non GTC,0,5,64076,0,12,Computers,2012-05-01 08:54:26,USER_Y,Computers/Tablets & Networking,Enterprise NetworkinServers,Switches & Hubs,0,Ebay,USER_S,5,Occasional,2013-03-28,2013-03-24,10000000022,2013-03-28,64076,10000051,184.21,1
-FP-GTC,15,13,33977,15,15,Crafts,2010-06-14 07:56:25,USER_Y,Crafts,Scrapbooking,Albums,15,Australia,USER_S,13,Entrepreneur,2013-01-30,2013-01-27,10000000023,2013-01-30,33977,10000052,172.03,1
-FP-GTC,0,14,31673,0,25,Sports Memorabilia,2010-02-08 10:48:39,USER_Y,Sports MeCards & Fan Shop,Fan Apparel & Souvenirs,Racing-NASCAR,0,Ebay,USER_S,14,Regular,2013-12-05,2013-12-01,10000000047,2013-12-05,31673,10000053,122.78,1
-Auction,3,14,174106,3,8,Auto - Parts,2013-04-28 20:37:19,USER_Y,Vehicle Parts & Accessories,Car Parts,Transmission & Drivetrain,3,\u82f1\u56fd,USER_S,14,Regular,2013-10-08,2013-10-06,10000000056,2013-10-08,174106,10000054,92.98,1
-Auction,0,13,26249,0,4,Business (Office & Industrial),2012-09-11 20:26:04,USER_Y,Business & Industrial,Printing & Graphic Arts,Commercial Printing Presses,0,Ebay,USER_S,13,Entrepreneur,2013-12-27,2013-12-22,10000000062,2013-12-27,26249,10000055,12.19,1
-FP-GTC,0,5,159184,0,24,Sporting Goods,2013-09-10 16:52:46,USER_Y,Sporting Goods,Winter Sports,Snowboarding,0,Ebay,USER_S,5,Occasional,2013-12-16,2013-12-15,10000000053,2013-12-16,159184,10000056,15.65,1
-FP-GTC,3,11,10058,3,27,Tickets,2013-09-10 16:52:46,USER_Y,Events Tickets,Other Tickets,Other Tickets,3,\u82f1\u56fd,USER_S,11,Large Merchant,2013-10-17,2013-10-13,10000000055,2013-10-17,10058,10000057,101.79,1
-ABIN,0,12,48904,0,9,Apparel,2012-05-01 08:54:26,USER_Y,ClothinShoes & Accessories,Vintage,Women's Vintage Clothing,0,Ebay,USER_S,12,Merchant,2013-11-17,2013-11-17,10000000020,2013-11-17,48904,10000058,7.12,1
-FP-non GTC,0,14,145970,0,28,Toys,2008-10-08 07:18:40,USER_Y,Toys & Hobbies,Models & Kits,Automotive,0,Ebay,USER_S,14,Regular,2013-09-18,2013-09-15,10000000007,2013-09-18,145970,10000059,12.85,1
-FP-GTC,0,13,963,0,9,Apparel,2012-05-01 08:54:26,USER_Y,ClothinShoes & Accessories,Vintage,Women's Vintage Shoes,0,Ebay,USER_S,13,Entrepreneur,2013-06-30,2013-06-30,10000000008,2013-06-30,963,10000060,12.19,1
-FP-GTC,3,13,118687,3,37,Health & Beauty,2013-04-28 20:37:19,USER_Y,Health & Beauty,Fragrances,Women's Fragrances,3,\u82f1\u56fd,USER_S,13,Entrepreneur,2013-10-12,2013-10-06,10000000002,2013-10-12,118687,10000061,92.98,1
-FP-GTC,0,14,20886,0,28,Toys,2010-03-22 10:34:30,USER_Y,Toys & Hobbies,Diecast & Toy Vehicles,Cars: RacinNASCAR,0,Ebay,USER_S,14,Regular,2013-08-20,2013-08-18,10000000003,2013-08-20,20886,10000062,42.99,1
-Auction,15,13,148324,15,31,Phones,2012-09-18 00:08:03,USER_XIANZHU,Phones,Mobile Accessories,CaseCoverSkins,15,Australia,USER_S,13,Entrepreneur,2013-08-29,2013-08-25,10000000010,2013-08-29,148324,10000063,1.88,1
-Auction,15,14,139255,15,17,JewelrGemWatches,2012-05-01 08:54:26,USER_Y,Jewellery & Watches,Fine Jewellery,Earrings,15,Australia,USER_S,14,Regular,2013-07-17,2013-07-14,10000000016,2013-07-17,139255,10000064,21.14,1
-FP-GTC,0,5,20213,0,11,Collectibles,2008-09-09 22:08:47,USER_Y,Collectibles,Postcards,US StateCities & Towns,0,Ebay,USER_S,5,Occasional,2013-07-23,2013-07-21,10000000017,2013-07-23,20213,10000065,21.14,1
-Auction,15,13,32996,15,42,Entertainment Memorabilia,2012-09-11 20:26:04,USER_Y,Movies,Television Memorabilia,Clippings,15,Australia,USER_S,13,Entrepreneur,2013-01-06,2013-01-06,10000000012,2013-01-06,32996,10000066,132.33,1
-FP-GTC,0,14,99985,0,11,Collectibles,2008-09-09 22:08:47,USER_Y,Collectibles,Trading Cards,Sci-FFantasy,0,Ebay,USER_S,14,Regular,2013-08-14,2013-08-11,10000000013,2013-08-14,99985,10000067,120.87,1
-Auction,3,14,67703,3,17,Jewellery & Watches,2012-06-19 21:15:09,USER_Y,Jewellery & Watches,Jewellery Boxes & Supplies,Jewellery Display,3,\u82f1\u56fd,USER_S,14,Regular,2013-08-10,2013-08-04,10000000067,2013-08-10,67703,10000068,120.87,1
-FP-non GTC,0,11,65,0,11,Collectibles,2013-02-20 23:11:43,USER_Y,Collectibles,Comics,Platinum Age (1897-1937),0,Ebay,USER_S,11,Large Merchant,2013-09-28,2013-09-22,10000000085,2013-09-28,65,10000069,9.26,1
-FP-non GTC,0,14,130,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Transportation,Railroadiana & Trains,0,Ebay,USER_S,14,Regular,2013-08-21,2013-08-18,10000000141,2013-08-21,130,10000070,16.26,1
-FP-GTC,0,14,164,0,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,Computer Components & Parts,CPUProcessors,0,Ebay,USER_S,14,Regular,2013-03-11,2013-03-10,10000000078,2013-03-11,164,10000071,157.14,1
-FP-GTC,0,11,216,0,25,Sports Memorabilia,2013-02-20 23:11:43,USER_Y,Sports MeCards & Fan Shop,Cards,Hockey,0,Ebay,USER_S,11,Large Merchant,2013-05-06,2013-05-05,10000000109,2013-05-06,216,10000072,1.88,1
-FP-non GTC,0,5,223,0,28,Toys,2013-04-28 20:37:19,USER_Y,Toys & Hobbies,Diecast & Toy Vehicles,CarTrucks & Vans,0,Ebay,USER_S,5,Occasional,2013-05-17,2013-05-12,10000000096,2013-05-17,223,10000073,12.04,1
-FP-non GTC,0,14,223,0,28,Toys,2013-04-28 20:37:19,USER_Y,Toys & Hobbies,Diecast & Toy Vehicles,CarTrucks & Vans,0,Ebay,USER_S,14,Regular,2013-01-10,2013-01-06,10000000095,2013-01-10,223,10000074,189.23,1
-FP-non GTC,0,5,223,0,28,Toys,2013-04-28 20:37:19,USER_Y,Toys & Hobbies,Diecast & Toy Vehicles,CarTrucks & Vans,0,Ebay,USER_S,5,Occasional,2013-05-05,2013-05-05,10000000098,2013-05-05,223,10000075,73.26,1
-FP-non GTC,0,5,223,0,28,Toys,2013-04-28 20:37:19,USER_Y,Toys & Hobbies,Diecast & Toy Vehicles,CarTrucks & Vans,0,Ebay,USER_S,5,Occasional,2013-02-03,2013-02-03,10000000097,2013-02-03,223,10000076,4.13,1
-FP-non GTC,0,5,223,0,28,Toys,2013-04-28 20:37:19,USER_Y,Toys & Hobbies,Diecast & Toy Vehicles,CarTrucks & Vans,0,Ebay,USER_S,5,Occasional,2013-11-26,2013-11-24,10000000099,2013-11-26,223,10000077,290.72,1
-FP-non GTC,0,5,223,0,28,Toys,2013-04-28 20:37:19,USER_Y,Toys & Hobbies,Diecast & Toy Vehicles,CarTrucks & Vans,0,Ebay,USER_S,5,Occasional,2013-08-30,2013-08-25,10000000100,2013-08-30,223,10000078,265.56,1
-FP-GTC,15,5,279,15,3,Books,2013-09-10 16:52:46,USER_Y,BookMagazines,Children's Books,Children's Books,15,Australia,USER_S,5,Occasional,2013-04-26,2013-04-21,10000000126,2013-04-26,279,10000079,5.91,1
-Auction,0,5,314,0,9,Apparel,2012-09-11 20:26:04,USER_Y,ClothinShoes & Accessories,Women's Clothing,Other,0,Ebay,USER_S,5,Occasional,2013-06-30,2013-06-30,10000000252,2013-06-30,314,10000080,319.79,1
-Auction,211,5,314,211,9,ClothinShoes & Accessories,2013-02-20 23:11:43,USER_Y,ClothinShoes & Accessories,Womens' Clothing,Other,211,Philippines,USER_X,5,Occasional,2013-06-30,2013-06-30,10000000052,2013-06-30,314,10000081,246,1
-Auction,211,5,314,211,9,ClothinShoes & Accessories,2013-02-20 23:11:43,USER_Y,ClothinShoes & Accessories,Womens' Clothing,Other,211,Philippines,USER_X,5,Occasional,2013-12-16,2013-12-15,10000000253,2013-12-16,314,10000082,20.35,1
-Auction,0,5,314,0,9,Apparel,2012-09-11 20:26:04,USER_Y,ClothinShoes & Accessories,Women's Clothing,Other,0,Ebay,USER_S,5,Occasional,2013-12-15,2013-12-15,10000000051,2013-12-15,314,10000083,36.7,1
-Auction,0,13,533,0,10,Coins,2012-06-19 21:15:09,USER_Y,Coins & Paper Money,Coins: World,Africa,0,Ebay,USER_S,13,Entrepreneur,2013-08-17,2013-08-11,10000000190,2013-08-17,533,10000084,101.79,1
-ABIN,0,5,1349,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Decorative Collectibles,Decorative Collectible Brands,0,Ebay,USER_S,5,Occasional,2013-12-15,2013-12-15,10000000251,2013-12-15,1349,10000085,47.71,1
-ABIN,0,5,1349,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Decorative Collectibles,Decorative Collectible Brands,0,Ebay,USER_S,5,Occasional,2013-02-04,2013-02-03,10000000050,2013-02-04,1349,10000086,3.49,1
-ABIN,0,13,1349,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Decorative Collectibles,Decorative Collectible Brands,0,Ebay,USER_S,13,Entrepreneur,2013-01-11,2013-01-06,10000000049,2013-01-11,1349,10000087,46.44,1
-ABIN,0,13,1349,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Decorative Collectibles,Decorative Collectible Brands,0,Ebay,USER_S,13,Entrepreneur,2013-02-04,2013-02-03,10000000250,2013-02-04,1349,10000088,4.54,1
-ABIN,0,14,1357,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Decorative Collectibles,Decorative Collectible Brands,0,Ebay,USER_S,14,Regular,2013-05-17,2013-05-12,10000000131,2013-05-17,1357,10000089,3.18,1
-FP-GTC,0,14,1504,0,4,Business (Office & Industrial),2012-09-11 20:26:04,USER_Y,Business & Industrial,Electrical & Test Equipment,Test Equipment,0,Ebay,USER_S,14,Regular,2013-11-12,2013-11-10,10000000172,2013-11-12,1504,10000090,86.58,1
-FP-GTC,0,13,4943,0,28,Toys,2013-04-28 20:37:19,USER_Y,Toys & Hobbies,Diecast & Toy Vehicles,CarTrucks & Vans,0,Ebay,USER_S,13,Entrepreneur,2013-08-21,2013-08-18,10000000142,2013-08-21,4943,10000091,12.85,1
-ABIN,0,13,6762,0,-999,Unknown,2008-06-03 13:36:00,USER_Y,Unknown,Unknown,Unknown,0,Ebay,USER_S,13,Entrepreneur,2013-05-09,2013-05-05,10000000195,2013-05-09,6762,10000092,16.26,1
-Auction,3,13,9426,3,31,Mobile & Home Phones,2012-05-01 08:54:26,USER_Y,Mobile Phones & Communication,Home Phones & Accessories,Phone Accessories,3,\u82f1\u56fd,USER_S,13,Entrepreneur,2013-09-19,2013-09-15,10000000070,2013-09-19,9426,10000093,21.14,1
-FP-non GTC,0,14,10866,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Animals,Farm & Countryside,0,Ebay,USER_S,14,Regular,2013-02-06,2013-02-03,10000000165,2013-02-06,10866,10000094,20.6,1
-Auction,0,13,11554,0,9,Apparel,2013-07-16 08:23:09,USER_Y,ClothinShoes & Accessories,Women's Clothing,Jeans,0,Ebay,USER_S,13,Entrepreneur,2013-02-02,2013-01-27,10000000187,2013-02-02,11554,10000095,246,1
-FP-GTC,0,14,11848,0,37,Health & Beauty,2012-06-19 21:15:09,USER_Y,Health & Beauty,Fragrances,Women,0,Ebay,USER_S,14,Regular,2013-08-23,2013-08-18,10000000189,2013-08-23,11848,10000096,109,1
-Auction,0,13,13836,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Decorative Collectibles,Spoons,0,Ebay,USER_S,13,Entrepreneur,2013-08-03,2013-07-28,10000000139,2013-08-03,13836,10000097,39.41,1
-Auction,0,14,13836,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Decorative Collectibles,Spoons,0,Ebay,USER_S,14,Regular,2013-05-17,2013-05-12,10000000140,2013-05-17,13836,10000098,16.26,1
-FP-GTC,0,13,13987,0,11,Collectibles,2008-06-03 13:36:00,USER_Y,Collectibles,Paper,Booklets,0,Ebay,USER_S,13,Entrepreneur,2013-06-06,2013-06-02,10000000102,2013-06-06,13987,10000099,112.56,1
-Auction,0,14,15687,0,9,Apparel,2013-07-16 08:23:09,USER_Y,ClothinShoes & Accessories,Men's Clothing,T-Shirts,0,Ebay,USER_S,14,Regular,2013-07-02,2013-06-30,10000000076,2013-07-02,15687,10000100,184.21,1
-Auction,0,11,15687,0,9,Apparel,2013-07-16 08:23:09,USER_Y,ClothinShoes & Accessories,Men's Clothing,T-Shirts,0,Ebay,USER_S,11,Large Merchant,2013-10-25,2013-10-20,10000000082,2013-10-25,15687,10000001,27.48,1
-FP-non GTC,3,12,16145,3,12,Computers,2013-02-20 23:11:43,USER_Y,Computers/Tablets & Networking,Computer Components & Parts,Other Components & Parts,3,\u82f1\u56fd,USER_S,12,Merchant,2013-04-20,2013-04-14,10000000129,2013-04-20,16145,10000002,26.45,1
-FP-non GTC,0,13,16145,0,12,Computers,2013-02-20 23:11:43,USER_Y,Computers/Tablets & Networking,Computer Components & Parts,Other,0,Ebay,USER_S,13,Entrepreneur,2013-03-12,2013-03-10,10000000128,2013-03-12,16145,10000003,415.73,1
-ABIN,0,5,16509,0,28,Toys,2012-09-11 20:26:04,USER_Y,Toys & Hobbies,Model Railroads & Trains,S Scale,0,Ebay,USER_S,5,Occasional,2013-03-28,2013-03-24,10000000222,2013-03-28,16509,10000004,56.36,1
-ABIN,0,5,16509,0,28,Toys,2012-09-11 20:26:04,USER_Y,Toys & Hobbies,Model Railroads & Trains,S Scale,0,Ebay,USER_S,5,Occasional,2013-10-29,2013-10-27,10000000021,2013-10-29,16509,10000005,2.44,1
-FP-GTC,0,14,20485,0,36,Home & Living,2012-05-01 08:54:26,USER_Y,Home & Garden,Furniture,Other,0,Ebay,USER_S,14,Regular,2013-05-22,2013-05-19,10000000134,2013-05-22,20485,10000006,269.76,1
-FP-GTC,101,12,20485,101,36,Mobili per la casa,2008-06-03 13:36:00,USER_Y,CasArredamento e Bricolage,Cucina,Altro per cucina,101,Italy,USER_S,12,Merchant,2013-01-25,2013-01-20,10000000135,2013-01-25,20485,10000007,109,1
-FP-GTC,101,12,20485,101,36,Mobili per la casa,2008-06-03 13:36:00,USER_Y,CasArredamento e Bricolage,Cucina,Altro per cucina,101,Italy,USER_S,12,Merchant,2013-06-12,2013-06-09,10000000136,2013-06-12,20485,10000008,101.79,1
-Auction,23,14,23446,23,9,Vtements et Accessoires,2012-06-19 21:15:09,USER_Y,Mode & Accessoires,Chaussures de femme,Sandales & Sandalettes,23,Belgium (French),USER_S,14,Regular,2013-12-26,2013-12-22,10000000241,2013-12-26,23446,10000009,246,1
-Auction,23,14,23446,23,9,Vtements et Accessoires,2012-06-19 21:15:09,USER_Y,Mode & Accessoires,Chaussures de femme,Sandales & Sandalettes,23,Belgium (French),USER_S,14,Regular,2013-12-26,2013-12-22,10000000041,2013-12-26,23446,10000010,189.23,1
-Auction,23,14,23446,23,9,Vtements et Accessoires,2012-06-19 21:15:09,USER_Y,Mode & Accessoires,Chaussures de femme,Sandales & Sandalettes,23,Belgium (French),USER_S,14,Regular,2013-12-31,2013-12-29,10000000242,2013-12-31,23446,10000011,15.65,1
-Auction,23,14,23446,23,9,Vtements et Accessoires,2012-06-19 21:15:09,USER_Y,Mode & Accessoires,Chaussures de femme,Sandales & Sandalettes,23,Belgium (French),USER_S,14,Regular,2013-10-04,2013-09-29,10000000040,2013-10-04,23446,10000012,28.23,1
-FP-GTC,0,5,24541,0,25,Sports Memorabilia,2013-07-16 08:23:09,USER_Y,Sports MeCards & Fan Shop,Fan Apparel & Souvenirs,College-NCAA,0,Ebay,USER_S,5,Occasional,2013-03-16,2013-03-10,10000000194,2013-03-16,24541,10000013,16.26,1
-FP-GTC,0,5,26262,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Advertising,Food & Beverage,0,Ebay,USER_S,5,Occasional,2013-05-21,2013-05-19,10000000101,2013-05-21,26262,10000014,122.78,1
-FP-GTC,3,14,30059,3,21,Photography,2012-09-11 20:26:04,USER_Y,Cameras & Photography,Lenses & Filters,Lens AdapterMounts & Tubes,3,\u82f1\u56fd,USER_S,14,Regular,2013-01-28,2013-01-27,10000000077,2013-01-28,30059,10000015,172.03,1
-Auction,3,14,31387,3,17,Jewellery & Watches,2013-04-28 20:37:19,USER_Y,Jewellery & Watches,Watches,Wristwatches,3,\u82f1\u56fd,USER_S,14,Regular,2013-04-26,2013-04-21,10000000057,2013-04-26,31387,10000016,42.99,1
-Auction,3,14,31387,3,17,Jewellery & Watches,2013-04-28 20:37:19,USER_Y,Jewellery & Watches,Watches,Wristwatches,3,\u82f1\u56fd,USER_S,14,Regular,2013-10-06,2013-10-06,10000000258,2013-10-06,31387,10000017,207.5,1
-FP-GTC,0,14,31519,0,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,Laptop & Desktop Accessories,Laptop Cases & Bags,0,Ebay,USER_S,14,Regular,2013-11-06,2013-11-03,10000000261,2013-11-06,31519,10000018,5.91,1
-FP-GTC,3,14,31519,3,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,Laptop & Desktop Accessories,Laptop Cases & Bags,3,\u82f1\u56fd,USER_S,14,Regular,2013-10-06,2013-10-06,10000000058,2013-10-06,31519,10000019,39.41,1
-FP-GTC,0,14,31519,0,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,Laptop & Desktop Accessories,Laptop Cases & Bags,0,Ebay,USER_S,14,Regular,2013-12-28,2013-12-22,10000000059,2013-12-28,31519,10000020,16.26,1
-FP-GTC,0,14,31519,0,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,Laptop & Desktop Accessories,Laptop Cases & Bags,0,Ebay,USER_S,14,Regular,2013-11-06,2013-11-03,10000000060,2013-11-06,31519,10000021,16.26,1
-FP-GTC,0,14,31519,0,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,Laptop & Desktop Accessories,Laptop Cases & Bags,0,Ebay,USER_S,14,Regular,2013-11-06,2013-11-03,10000000260,2013-11-06,31519,10000022,78.48,1
-FP-GTC,3,14,31519,3,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,Laptop & Desktop Accessories,Laptop Cases & Bags,3,\u82f1\u56fd,USER_S,14,Regular,2013-12-28,2013-12-22,10000000259,2013-12-28,31519,10000023,190.22,1
-FP-GTC,100,12,35570,100,8,Auto - Parts,2012-06-19 21:15:09,USER_Y,eBay Motors,Parts & Accessories,Motorcycle Parts,100,Ebaymotors,USER_S,12,Merchant,2013-06-11,2013-06-09,10000000156,2013-06-11,35570,10000024,2.44,1
-Auction,0,5,36250,0,24,Sporting Goods,2013-04-28 20:37:19,USER_Y,Sporting Goods,Hunting,Decoys,0,Ebay,USER_S,5,Occasional,2013-01-10,2013-01-06,10000000119,2013-01-10,36250,10000025,7.12,1
-FP-non GTC,0,14,38238,0,36,Home & Living,2012-09-11 20:26:04,USER_Y,Home & Garden,Home Decor,Other,0,Ebay,USER_S,14,Regular,2013-09-17,2013-09-15,10000000186,2013-09-17,38238,10000026,36.7,1
-FP-GTC,3,14,40059,3,33,Consumer Electronics - Audio,2012-05-01 08:57:38,USER_Y,Mobile Phones & Communication,Radio Communication Equipment,Parts & Accessories,3,\u82f1\u56fd,USER_S,14,Regular,2013-08-14,2013-08-11,10000000038,2013-08-14,40059,10000027,35.72,1
-FP-GTC,3,14,40059,3,33,Consumer Electronics - Audio,2012-05-01 08:57:38,USER_Y,Mobile Phones & Communication,Radio Communication Equipment,Parts & Accessories,3,\u82f1\u56fd,USER_S,14,Regular,2013-08-09,2013-08-04,10000000239,2013-08-09,40059,10000028,3.49,1
-FP-GTC,0,13,41940,0,4,Business (Office & Industrial),2012-09-11 20:26:04,USER_Y,Business & Industrial,Manufacturing & Metalworking,Metalworking Tooling,0,Ebay,USER_S,13,Entrepreneur,2013-12-02,2013-12-01,10000000034,2013-12-02,41940,10000029,223.63,1
-FP-GTC,0,13,41940,0,4,Business (Office & Industrial),2012-09-11 20:26:04,USER_Y,Business & Industrial,Manufacturing & Metalworking,Metalworking Tooling,0,Ebay,USER_S,13,Entrepreneur,2013-02-01,2013-01-27,10000000235,2013-02-01,41940,10000030,265.56,1
-FP-non GTC,0,13,43479,0,21,Photo,2012-09-11 20:26:04,USER_Y,Cameras & Photo,Film Photography,Other,0,Ebay,USER_S,13,Entrepreneur,2013-07-28,2013-07-28,10000000127,2013-07-28,43479,10000031,62.02,1
-FP-GTC,0,12,44079,0,24,Sporting Goods,2013-04-28 20:37:19,USER_Y,Sporting Goods,Exercise & Fitness,GyWorkout & Yoga,0,Ebay,USER_S,12,Merchant,2013-06-16,2013-06-16,10000000103,2013-06-16,44079,10000032,46.44,1
-Auction,101,14,45238,101,9,Vestiti ed Accessori,2012-09-11 20:27:22,USER_Y,Abbigliamento e accessori,Donna: Accessori,SciarpFoulard e Scialli,101,Italy,USER_S,14,Regular,2013-08-23,2013-08-18,10000000201,2013-08-23,45238,10000033,132.33,1
-Auction,0,13,45333,0,9,Apparel,2012-09-11 20:26:04,USER_Y,ClothinShoes & Accessories,Women's Shoes,Flats & Oxfords,0,Ebay,USER_S,13,Entrepreneur,2013-06-15,2013-06-09,10000000122,2013-06-15,45333,10000034,448.8,1
-FP-non GTC,0,14,45333,0,9,Apparel,2012-09-11 20:26:04,USER_Y,ClothinShoes & Accessories,Women's Shoes,Flats & Oxfords,0,Ebay,USER_S,14,Regular,2013-06-15,2013-06-09,10000000123,2013-06-15,45333,10000035,207.5,1
-FP-non GTC,0,14,45333,0,9,Apparel,2012-09-11 20:26:04,USER_Y,ClothinShoes & Accessories,Women's Shoes,Flats & Oxfords,0,Ebay,USER_S,14,Regular,2013-06-01,2013-05-26,10000000124,2013-06-01,45333,10000036,190.22,1
-FP-GTC,0,14,46575,0,4,Business (Office & Industrial),2013-04-28 20:37:19,USER_Y,Business & Industrial,Light Equipment & Tools,Air Tools,0,Ebay,USER_S,14,Regular,2013-08-10,2013-08-04,10000000072,2013-08-10,46575,10000037,16.71,1
-FP-non GTC,0,13,50508,0,21,Photo,2013-02-20 23:11:43,USER_Y,Cameras & Photo,Camera & Photo Accessories,LCD Hoods,0,Ebay,USER_S,13,Entrepreneur,2013-03-22,2013-03-17,10000000043,2013-03-22,50508,10000038,4.13,1
-FP-non GTC,0,13,50508,0,21,Photo,2013-02-20 23:11:43,USER_Y,Cameras & Photo,Camera & Photo Accessories,LCD Hoods,0,Ebay,USER_S,13,Entrepreneur,2013-12-25,2013-12-22,10000000244,2013-12-25,50508,10000039,1.88,1
-FP-GTC,0,13,50677,0,17,JewelrGemWatches,2012-09-11 20:26:04,USER_Y,Jewelry & Watches,Fashion Jewelry,Pins & Brooches,0,Ebay,USER_S,13,Entrepreneur,2013-07-22,2013-07-21,10000000121,2013-07-22,50677,10000040,491.32,1
-FP-GTC,0,5,50677,0,17,JewelrGemWatches,2012-09-11 20:26:04,USER_Y,Jewelry & Watches,Fashion Jewelry,Pins & Brooches,0,Ebay,USER_S,5,Occasional,2013-04-13,2013-04-07,10000000120,2013-04-13,50677,10000041,2.44,1
-Auction,0,14,51582,0,9,Apparel,2012-09-11 20:26:04,USER_Y,ClothinShoes & Accessories,Kids' ClothinShoes & Accs,Girls' Clothing (Sizes 4 & Up),0,Ebay,USER_S,14,Regular,2013-04-16,2013-04-14,10000000168,2013-04-16,51582,10000042,56.36,1
-FP-GTC,0,13,57013,0,4,Business (Office & Industrial),2013-04-28 20:37:19,USER_Y,Business & Industrial,MRO & Industrial Supply,Pumps & Plumbing,0,Ebay,USER_S,13,Entrepreneur,2013-08-21,2013-08-18,10000000073,2013-08-21,57013,10000043,15.85,1
-FP-non GTC,0,14,57013,0,4,Business (Office & Industrial),2013-04-28 20:37:19,USER_Y,Business & Industrial,MRO & Industrial Supply,Pumps & Plumbing,0,Ebay,USER_S,14,Regular,2013-04-22,2013-04-21,10000000075,2013-04-22,57013,10000044,2.44,1
-FP-GTC,0,14,57013,0,4,Business (Office & Industrial),2013-04-28 20:37:19,USER_Y,Business & Industrial,MRO & Industrial Supply,Pumps & Plumbing,0,Ebay,USER_S,14,Regular,2013-08-29,2013-08-25,10000000074,2013-08-29,57013,10000045,7.12,1
-Auction,0,14,57784,0,9,Apparel,2012-09-11 20:26:04,USER_Y,ClothinShoes & Accessories,Baby & Toddler Clothing,Boys' Clothing (Newborn-5T),0,Ebay,USER_S,14,Regular,2013-05-16,2013-05-12,10000000093,2013-05-16,57784,10000046,35.72,1
-Auction,3,11,57990,3,9,Clothing & Accessories,2012-06-19 21:15:09,USER_Y,ClotheShoes & Accessories,Men's Clothing,Casual Shirts & Tops,3,\u82f1\u56fd,USER_S,11,Large Merchant,2013-08-23,2013-08-18,10000000265,2013-08-23,57990,10000047,9.26,1
-Auction,3,14,57990,3,9,Clothing & Accessories,2012-06-19 21:15:09,USER_Y,ClotheShoes & Accessories,Men's Clothing,Casual Shirts & Tops,3,\u82f1\u56fd,USER_S,14,Regular,2013-07-10,2013-07-07,10000000266,2013-07-10,57990,10000048,3.18,1
-Auction,3,14,57990,3,9,Clothing & Accessories,2012-06-19 21:15:09,USER_Y,ClotheShoes & Accessories,Men's Clothing,Casual Shirts & Tops,3,\u82f1\u56fd,USER_S,14,Regular,2013-08-10,2013-08-04,10000000267,2013-08-10,57990,10000049,638.72,1
-Auction,3,14,57990,3,9,Clothing & Accessories,2012-06-19 21:15:09,USER_Y,ClotheShoes & Accessories,Men's Clothing,Casual Shirts & Tops,3,\u82f1\u56fd,USER_S,14,Regular,2013-08-23,2013-08-18,10000000065,2013-08-23,57990,10000050,141.7,1
-ABIN,0,13,57990,0,9,Apparel,2013-09-10 16:52:46,USER_Y,ClothinShoes & Accessories,Men's Clothing,Casual Shirts,0,Ebay,USER_S,13,Entrepreneur,2013-04-18,2013-04-14,10000000143,2013-04-18,57990,10000051,12.19,1
-Auction,3,14,57990,3,9,Clothing & Accessories,2012-06-19 21:15:09,USER_Y,ClotheShoes & Accessories,Men's Clothing,Casual Shirts & Tops,3,\u82f1\u56fd,USER_S,14,Regular,2013-07-10,2013-07-07,10000000066,2013-07-10,57990,10000052,132.33,1
-ABIN,3,5,57990,3,9,Clothing & Accessories,2012-06-19 21:15:09,USER_Y,ClotheShoes & Accessories,Men's Clothing,Casual Shirts & Tops,3,\u82f1\u56fd,USER_S,5,Occasional,2013-06-16,2013-06-16,10000000144,2013-06-16,57990,10000053,5.48,1
-Auction,3,11,57990,3,9,Clothing & Accessories,2012-06-19 21:15:09,USER_Y,ClotheShoes & Accessories,Men's Clothing,Casual Shirts & Tops,3,\u82f1\u56fd,USER_S,11,Large Merchant,2013-07-15,2013-07-14,10000000064,2013-07-15,57990,10000054,1.88,1
-FP-GTC,0,14,60340,0,42,Entertainment Memorabilia,2008-06-03 13:36:00,USER_Y,Entertainment Memorabilia,Movie Memorabilia,Pressbooks,0,Ebay,USER_S,14,Regular,2013-11-06,2013-11-03,10000000061,2013-11-06,60340,10000055,12.85,1
-FP-GTC,0,14,60340,0,42,Entertainment Memorabilia,2008-06-03 13:36:00,USER_Y,Entertainment Memorabilia,Movie Memorabilia,Pressbooks,0,Ebay,USER_S,14,Regular,2013-12-27,2013-12-22,10000000262,2013-12-27,60340,10000056,62.02,1
-FP-GTC,3,12,60606,3,11,Collectables,2012-06-19 21:15:09,USER_Y,Collectables,Badges/ Patches,Golly Badges,3,\u82f1\u56fd,USER_S,12,Merchant,2013-07-29,2013-07-28,10000000019,2013-07-29,60606,10000057,15.85,1
-FP-GTC,3,12,60606,3,11,Collectables,2012-06-19 21:15:09,USER_Y,Collectables,Badges/ Patches,Golly Badges,3,\u82f1\u56fd,USER_S,12,Merchant,2013-11-17,2013-11-17,10000000220,2013-11-17,60606,10000058,9.26,1
-FP-GTC,3,12,60606,3,11,Collectables,2012-06-19 21:15:09,USER_Y,Collectables,Badges/ Patches,Golly Badges,3,\u82f1\u56fd,USER_S,12,Merchant,2013-07-27,2013-07-21,10000000018,2013-07-27,60606,10000059,16.71,1
-FP-GTC,3,12,60606,3,11,Collectables,2012-06-19 21:15:09,USER_Y,Collectables,Badges/ Patches,Golly Badges,3,\u82f1\u56fd,USER_S,12,Merchant,2013-07-29,2013-07-28,10000000219,2013-07-29,60606,10000060,20.6,1
-Auction,3,5,63861,3,9,Clothing & Accessories,2013-07-16 08:23:09,USER_Y,ClotheShoes & Accessories,Women's Clothing,Dresses,3,\u82f1\u56fd,USER_S,5,Occasional,2013-01-09,2013-01-06,10000000145,2013-01-09,63861,10000061,1.88,1
-ABIN,0,5,63861,0,9,Apparel,2013-07-16 08:23:09,USER_Y,ClothinShoes & Accessories,Women's Clothing,Dresses,0,Ebay,USER_S,5,Occasional,2013-06-11,2013-06-09,10000000200,2013-06-11,63861,10000062,141.7,1
-ABIN,0,5,63861,0,9,Apparel,2013-07-16 08:23:09,USER_Y,ClothinShoes & Accessories,Women's Clothing,Dresses,0,Ebay,USER_S,5,Occasional,2013-01-10,2013-01-06,10000000199,2013-01-10,63861,10000063,1.88,1
-Others,0,11,63861,0,9,Apparel,2013-07-16 08:23:09,USER_Y,ClothinShoes & Accessories,Women's Clothing,Dresses,0,Ebay,USER_S,11,Large Merchant,2013-09-16,2013-09-15,10000000237,2013-09-16,63861,10000064,112.56,1
-Others,0,11,63861,0,9,Apparel,2013-07-16 08:23:09,USER_Y,ClothinShoes & Accessories,Women's Clothing,Dresses,0,Ebay,USER_S,11,Large Merchant,2013-01-14,2013-01-13,10000000036,2013-01-14,63861,10000065,94.45,1
-Auction,0,14,63861,0,9,Apparel,2013-07-16 08:23:09,USER_Y,ClothinShoes & Accessories,Women's Clothing,Dresses,0,Ebay,USER_S,14,Regular,2013-05-17,2013-05-12,10000000125,2013-05-17,63861,10000066,78.48,1
-ABIN,0,13,63861,0,9,Apparel,2013-07-16 08:23:09,USER_Y,ClothinShoes & Accessories,Women's Clothing,Dresses,0,Ebay,USER_S,13,Entrepreneur,2013-06-05,2013-06-02,10000000198,2013-06-05,63861,10000067,5.48,1
-Auction,3,14,63864,3,9,Clothing & Accessories,2012-06-19 21:15:09,USER_Y,ClotheShoes & Accessories,Women's Clothing,Skirts,3,\u82f1\u56fd,USER_S,14,Regular,2013-05-24,2013-05-19,10000000094,2013-05-24,63864,10000068,28.23,1
-Others,0,13,63889,0,9,Apparel,2012-09-11 20:26:04,USER_Y,ClothinShoes & Accessories,Women's Shoes,Mixed Items & Lots,0,Ebay,USER_S,13,Entrepreneur,2013-05-15,2013-05-12,10000000104,2013-05-15,63889,10000069,3.49,1
-FP-GTC,2,11,67698,2,4,Business (Office & Industrial),2012-09-11 20:26:04,USER_Y,Business & Industrial,Retail & Services,Jewellery Packaging & Display,2,Canada,USER_S,11,Large Merchant,2013-03-25,2013-03-24,10000000107,2013-03-25,67698,10000070,15.65,1
-FP-GTC,0,11,67698,0,4,Business (Office & Industrial),2012-09-11 20:26:04,USER_Y,Business & Industrial,Retail & Services,Jewelry Packaging & Display,0,Ebay,USER_S,11,Large Merchant,2013-03-09,2013-03-03,10000000108,2013-03-09,67698,10000071,5.48,1
-FP-GTC,0,11,67698,0,4,Business (Office & Industrial),2012-09-11 20:26:04,USER_Y,Business & Industrial,Retail & Services,Jewelry Packaging & Display,0,Ebay,USER_S,11,Large Merchant,2013-12-05,2013-12-01,10000000106,2013-12-05,67698,10000072,246,1
-FP-non GTC,0,13,73506,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Decorative Collectibles,Tea PotSets,0,Ebay,USER_S,13,Entrepreneur,2013-04-18,2013-04-14,10000000182,2013-04-18,73506,10000073,122.78,1
-FP-GTC,0,14,75665,0,16,Home Improvement,2012-09-11 20:26:04,USER_Y,Home & Garden,YarGarden & Outdoor Living,Gardening Supplies,0,Ebay,USER_S,14,Regular,2013-11-01,2013-10-27,10000000169,2013-11-01,75665,10000074,223.63,1
-ABIN,3,5,75708,3,28,Toys & Games,2012-05-01 08:57:38,USER_Y,Toys & Games,Action Figures,TMovies & Video Games,3,\u82f1\u56fd,USER_S,5,Occasional,2013-05-03,2013-04-28,10000000146,2013-05-03,75708,10000075,141.7,1
-FP-non GTC,0,11,80053,0,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,MonitorProjectors & Accs,Monitors,0,Ebay,USER_S,11,Large Merchant,2013-04-21,2013-04-21,10000000151,2013-04-21,80053,10000076,21.14,1
-FP-non GTC,0,11,80053,0,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,MonitorProjectors & Accs,Monitors,0,Ebay,USER_S,11,Large Merchant,2013-03-12,2013-03-10,10000000149,2013-03-12,80053,10000077,55.89,1
-FP-non GTC,0,11,80053,0,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,MonitorProjectors & Accs,Monitors,0,Ebay,USER_S,11,Large Merchant,2013-05-19,2013-05-19,10000000150,2013-05-19,80053,10000078,51.23,1
-Auction,0,14,80135,0,12,Computers,2013-07-16 08:23:09,USER_Y,Computers/Tablets & Networking,DriveStorage & Blank Media,Blank Media & Accessories,0,Ebay,USER_S,14,Regular,2013-11-23,2013-11-17,10000000083,2013-11-23,80135,10000079,21.72,1
-Auction,3,14,95672,3,9,Clothing & Accessories,2013-07-16 08:23:09,USER_Y,ClotheShoes & Accessories,Women's Shoes,Trainers,3,\u82f1\u56fd,USER_S,14,Regular,2013-10-19,2013-10-13,10000000089,2013-10-19,95672,10000080,204.28,1
-Others,0,11,95672,0,9,Apparel,2013-02-20 23:11:43,USER_Y,ClothinShoes & Accessories,Women's Shoes,Athletic,0,Ebay,USER_S,11,Large Merchant,2013-05-18,2013-05-12,10000000152,2013-05-18,95672,10000081,21.14,1
-Others,0,5,100847,0,3,Books,2008-06-03 13:36:00,USER_Y,Half Books,Half Books,Half Books,0,Ebay,USER_S,5,Occasional,2013-02-01,2013-01-27,10000000035,2013-02-01,100847,10000082,204.28,1
-Others,0,5,100847,0,3,Books,2008-06-03 13:36:00,USER_Y,Half Books,Half Books,Half Books,0,Ebay,USER_S,5,Occasional,2013-01-14,2013-01-13,10000000236,2013-01-14,100847,10000083,122.78,1
-ABIN,3,14,139973,3,32,PC & Video Gaming,2012-09-11 20:26:04,USER_Y,Video Games & Consoles,Games,Games,3,\u82f1\u56fd,USER_S,14,Regular,2013-08-05,2013-08-04,10000000090,2013-08-05,139973,10000084,94.45,1
-ABIN,0,11,139973,0,32,Video Games,2012-06-19 21:15:09,USER_Y,Video Games & Consoles,Video Games,Video Games,0,Ebay,USER_S,11,Large Merchant,2013-05-19,2013-05-19,10000000091,2013-05-19,139973,10000085,86.58,1
-Auction,3,14,150047,3,15,Hobbies & Crafts,2012-06-19 21:15:09,USER_Y,Crafts,Jewellery Making,Findings,3,\u82f1\u56fd,USER_S,14,Regular,2013-12-01,2013-12-01,10000000033,2013-12-01,150047,10000086,56.36,1
-Auction,3,14,150047,3,15,Hobbies & Crafts,2012-06-19 21:15:09,USER_Y,Crafts,Jewellery Making,Findings,3,\u82f1\u56fd,USER_S,14,Regular,2013-12-02,2013-12-01,10000000234,2013-12-02,150047,10000087,290.72,1
-FP-GTC,0,13,155226,0,9,Apparel,2012-09-11 20:26:04,USER_Y,ClothinShoes & Accessories,Women's Clothing,Sweats & Hoodies,0,Ebay,USER_S,13,Entrepreneur,2013-01-11,2013-01-06,10000000249,2013-01-11,155226,10000088,60.37,1
-FP-GTC,0,13,155226,0,9,Apparel,2012-09-11 20:26:04,USER_Y,ClothinShoes & Accessories,Women's Clothing,Sweats & Hoodies,0,Ebay,USER_S,13,Entrepreneur,2013-05-27,2013-05-26,10000000048,2013-05-27,155226,10000089,112.56,1
-FP-GTC,0,13,156356,0,11,Collectibles,2008-06-03 13:36:00,USER_Y,Collectibles,Postcards,BuildingArchitecture,0,Ebay,USER_S,13,Entrepreneur,2013-09-01,2013-09-01,10000000181,2013-09-01,156356,10000090,265.56,1
-FP-GTC,0,11,158798,0,28,Toys,2008-09-09 22:08:47,USER_Y,Toys & Hobbies,Vintage & Antique Toys,Spinning Tops,0,Ebay,USER_S,11,Large Merchant,2013-04-11,2013-04-07,10000000092,2013-04-11,158798,10000091,35.72,1
-FP-non GTC,0,13,165888,0,17,JewelrGemWatches,2009-01-12 07:05:17,USER_Y,Jewelry & Watches,Vintage & Antique Jewelry,Costume,0,Ebay,USER_S,13,Entrepreneur,2013-05-05,2013-05-05,10000000191,2013-05-05,165888,10000092,92.98,1
-Auction,3,11,170083,3,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,Computer Components & Parts,Memory (RAM),3,\u82f1\u56fd,USER_S,11,Large Merchant,2013-11-21,2013-11-17,10000000229,2013-11-21,170083,10000093,28.23,1
-Auction,3,11,170083,3,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,Computer Components & Parts,Memory (RAM),3,\u82f1\u56fd,USER_S,11,Large Merchant,2013-10-07,2013-10-06,10000000028,2013-10-07,170083,10000094,27.48,1
-Auction,3,14,175750,3,16,Home,2012-09-11 20:26:04,USER_Y,HomFurniture & DIY,Bedding,Blankets,3,\u82f1\u56fd,USER_S,14,Regular,2013-07-12,2013-07-07,10000000031,2013-07-12,175750,10000095,9.26,1
-Auction,3,14,175750,3,16,Home,2012-09-11 20:26:04,USER_Y,HomFurniture & DIY,Bedding,Blankets,3,\u82f1\u56fd,USER_S,14,Regular,2013-06-07,2013-06-02,10000000032,2013-06-07,175750,10000096,3.18,1
-FP-GTC,0,14,175750,0,36,Home & Living,2012-05-01 08:57:38,USER_Y,Home & Garden,Bedding,Blankets & Throws,0,Ebay,USER_S,14,Regular,2013-05-22,2013-05-19,10000000177,2013-05-22,175750,10000097,12.04,1
-Auction,3,13,175750,3,16,Home,2012-09-11 20:26:04,USER_Y,HomFurniture & DIY,Bedding,Blankets,3,\u82f1\u56fd,USER_S,13,Entrepreneur,2013-11-28,2013-11-24,10000000030,2013-11-28,175750,10000098,20.6,1
-Auction,3,13,175750,3,16,Home,2012-09-11 20:26:04,USER_Y,HomFurniture & DIY,Bedding,Blankets,3,\u82f1\u56fd,USER_S,13,Entrepreneur,2013-07-12,2013-07-07,10000000231,2013-07-12,175750,10000099,12.04,1
-Auction,3,14,175750,3,16,Home,2012-09-11 20:26:04,USER_Y,HomFurniture & DIY,Bedding,Blankets,3,\u82f1\u56fd,USER_S,14,Regular,2013-06-07,2013-06-02,10000000232,2013-06-07,175750,10000100,4.13,1
-Auction,3,14,175750,3,16,Home,2012-09-11 20:26:04,USER_Y,HomFurniture & DIY,Bedding,Blankets,3,\u82f1\u56fd,USER_S,14,Regular,2013-12-01,2013-12-01,10000000233,2013-12-01,175750,10000201,73.26,1
-Auction,0,12,48027,0,10,Coins,2013-07-16 08:23:09,USER_Y,Coins & Paper Money,Paper Money: World,Asia,0,Ebay,USER_S,12,Merchant,2012-10-12,2012-10-06,10000000002,2012-10-12,48027,10000001,184.21,1
-Others,0,5,164261,0,17,JewelrGemWatches,2012-09-11 20:26:04,USER_Y,Jewelry & Watches,Fashion Jewelry,Earrings,0,Ebay,USER_S,5,Occasional,2012-08-20,2012-08-18,10000000003,2012-08-20,164261,10000002,172.03,1
-Auction,15,14,82494,15,3,Books,2010-09-13 07:05:54,USER_Y,BookMagazines,NULL,Comic Books,15,Australia,USER_S,14,Regular,2012-09-18,2012-09-15,10000000007,2012-09-18,82494,10000003,66.6,1
-Auction,15,12,66767,15,16,Home & Garden,2011-06-14 07:48:40,USER_Y,Home & Garden,NULL,Dogs,15,Australia,USER_S,12,Merchant,2012-06-30,2012-06-30,10000000008,2012-06-30,66767,10000004,92.98,1
-FP-GTC,0,5,152801,0,17,JewelrGemWatches,2012-09-11 20:26:04,USER_Y,Jewelry & Watches,NULL,Earrings,0,Ebay,USER_S,5,Occasional,2012-08-29,2012-08-25,10000000010,2012-08-29,152801,10000005,132.33,1
-FP-GTC,0,13,43398,0,36,Home & Living,2013-02-20 23:11:43,USER_Y,Home & Garden,NULL,Cheese & Crackers,0,Ebay,USER_S,13,Entrepreneur,2012-01-06,2012-01-06,10000000012,2012-01-06,43398,10000006,7.12,1
-Auction,0,14,95173,0,37,Health & Beauty,2008-06-03 13:36:00,USER_Y,Health & Beauty,Bath & Body,Bath Sets & Kits,0,Ebay,USER_S,14,Regular,2012-08-14,2012-08-11,10000000013,2012-08-14,95173,10000007,204.28,1
-Auction,15,13,158666,15,28,Toys,2012-09-11 20:27:22,USER_Y,ToyHobbies,Action Figures,Anime & Manga,15,Australia,USER_S,13,Entrepreneur,2012-07-17,2012-07-14,10000000016,2012-07-17,158666,10000008,35.72,1
-Auction,0,12,12688,0,57,Sothebys,2008-06-03 13:36:00,USER_Y,eBay Premier,Books & Manuscripts,Books: Other,0,Ebay,USER_S,12,Merchant,2012-07-23,2012-07-21,10000000017,2012-07-23,12688,10000009,4.13,1
-FP-GTC,15,5,103324,15,9,Clothing & Accessories,2012-05-01 08:54:26,USER_Y,ClothinShoeAccessories,Women's Shoes,Mixed Items,15,Australia,USER_S,5,Occasional,2012-07-27,2012-07-21,10000000018,2012-07-27,103324,10000010,27.48,1
-FP-GTC,15,14,108782,15,8,Auto Parts,2013-09-10 16:52:46,USER_Y,Vehicle Parts & Accessories,CaTruck Parts,Car Care & Cleaning,15,Australia,USER_S,14,Regular,2012-07-29,2012-07-28,10000000019,2012-07-29,108782,10000011,9.26,1
-Auction,0,12,80287,0,12,Computers,2012-05-01 08:54:26,USER_Y,Computers/Tablets & Networking,Software,Office & Business,0,Ebay,USER_S,12,Merchant,2012-11-17,2012-11-17,10000000020,2012-11-17,80287,10000012,3.18,1
-Others,100,13,140746,100,8,Auto - Parts,2012-06-19 21:15:09,USER_Y,eBay Motors,Parts & Accessories,Vintage Car & Truck Parts,100,Ebaymotors,USER_S,13,Entrepreneur,2012-10-29,2012-10-27,10000000021,2012-10-29,140746,10000013,3.18,1
-ABIN,0,14,87118,0,24,Sporting Goods,2013-04-28 20:37:19,USER_Y,Sporting Goods,Outdoor Sports,Paintball,0,Ebay,USER_S,14,Regular,2012-03-28,2012-03-24,10000000022,2012-03-28,87118,10000014,377.94,1
-Auction,0,12,25147,0,25,Sports Memorabilia,2010-02-08 10:51:44,USER_Y,Sports MeCards & Fan Shop,Fan Apparel & Souvenirs,Baseball-MLB,0,Ebay,USER_S,12,Merchant,2012-01-30,2012-01-27,10000000023,2012-01-30,25147,10000015,146.33,1
-FP-GTC,15,5,170302,15,15,Crafts,2010-09-13 07:13:34,USER_Y,Crafts,Embroidery,Design CDs,15,Australia,USER_S,5,Occasional,2012-10-07,2012-10-06,10000000028,2012-10-07,170302,10000016,51.23,1
-FP-non GTC,0,13,53064,0,4,Business (Office & Industrial),2013-04-28 20:37:19,USER_Y,Business & Industrial,Heavy Equipment,Antique & Vintage Farm Equip,0,Ebay,USER_S,13,Entrepreneur,2012-11-28,2012-11-24,10000000030,2012-11-28,53064,10000017,72.65,1
-Auction,0,13,132939,0,17,JewelrGemWatches,2012-09-11 20:26:04,USER_Y,Jewelry & Watches,Fashion Jewelry,Other,0,Ebay,USER_S,13,Entrepreneur,2012-07-12,2012-07-07,10000000031,2012-07-12,132939,10000018,66.6,1
-Auction,15,12,113593,15,40,Cell Phones & Portable Electro,2012-09-11 20:26:04,USER_Y,Phones,Mobile Phones,Mobile Phones,15,Australia,USER_S,12,Merchant,2012-06-07,2012-06-02,10000000032,2012-06-07,113593,10000019,9.26,1
-Auction,100,14,34273,100,8,Auto - Parts,2008-06-03 13:36:00,USER_Y,eBay Motors,Parts & Accessories,Motorcycle,100,Ebaymotors,USER_S,14,Regular,2012-12-01,2012-12-01,10000000033,2012-12-01,34273,10000020,583.44,1
-FP-GTC,15,14,106340,15,16,Home & Garden,2012-09-11 20:26:04,USER_Y,Home & Garden,Gardening,Hand Tools,15,Australia,USER_S,14,Regular,2012-12-02,2012-12-01,10000000034,2012-12-02,106340,10000021,638.72,1
-FP-GTC,15,14,150265,15,2,Baby,2011-04-05 08:25:25,USER_Y,Baby,Baby Clothing,Boys,15,Australia,USER_S,14,Regular,2012-02-01,2012-01-27,10000000035,2012-02-01,150265,10000022,4.54,1
-FP-GTC,0,12,24760,0,25,Sports Memorabilia,2010-02-08 10:51:44,USER_Y,Sports MeCards & Fan Shop,Fan Apparel & Souvenirs,Hockey-NHL,0,Ebay,USER_S,12,Merchant,2012-01-14,2012-01-13,10000000036,2012-01-14,24760,10000023,319.79,1
-Auction,0,12,37831,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Advertising,Merchandise & Memorabilia,0,Ebay,USER_S,12,Merchant,2012-08-14,2012-08-11,10000000038,2012-08-14,37831,10000024,20.35,1
-FP-non GTC,3,5,1120,3,3,BookComics & Magazines,2008-06-03 13:36:00,USER_Y,Books,First Editions,Other,3,\u82f1\u56fd,USER_S,5,Occasional,2012-10-04,2012-09-29,10000000040,2012-10-04,1120,10000025,223.63,1
-FP-GTC,100,13,43972,100,8,Auto - Parts,2012-06-19 21:15:09,USER_Y,eBay Motors,Parts & Accessories,ATV Parts,100,Ebaymotors,USER_S,13,Entrepreneur,2012-12-26,2012-12-22,10000000041,2012-12-26,43972,10000026,204.28,1
-Auction,15,14,166013,15,12,Computers,2012-05-01 08:54:26,USER_Y,Computers,Computer Components & Parts,Video Capture & TV Tuner Cards,15,Australia,USER_S,14,Regular,2012-12-31,2012-12-29,10000000042,2012-12-31,166013,10000027,5.48,1
-Auction,15,14,15568,15,2,Baby,2011-04-05 08:25:25,USER_Y,Baby,Baby Clothing,Unisex,15,Australia,USER_S,14,Regular,2012-03-22,2012-03-17,10000000043,2012-03-22,15568,10000028,27.48,1
-FP-GTC,15,5,103178,15,9,Clothing & Accessories,2012-05-01 08:54:26,USER_Y,ClothinShoeAccessories,Women's Bags,Women's Bags,15,Australia,USER_S,5,Occasional,2012-12-25,2012-12-22,10000000044,2012-12-25,103178,10000029,21.72,1
-ABIN,0,12,2023,0,24,Sporting Goods,2013-04-28 20:37:19,USER_Y,Sporting Goods,Team Sports,Basketball,0,Ebay,USER_S,12,Merchant,2012-12-05,2012-12-01,10000000047,2012-12-05,2023,10000030,3.18,1
-FP-GTC,0,11,94847,0,13,Consumer Electronics - Other,2012-05-01 08:54:26,USER_Y,Consumer Electronics,Vehicle Electronics & GPS,Car Video,0,Ebay,USER_S,11,Large Merchant,2012-05-27,2012-05-26,10000000048,2012-05-27,94847,10000031,491.32,1
-Auction,0,14,15868,0,23,Real Estate,2008-06-03 13:36:00,USER_Y,Real Estate,Land,Land,0,Ebay,USER_S,14,Regular,2012-01-11,2012-01-06,10000000049,2012-01-11,15868,10000032,448.8,1
-Auction,0,13,32876,0,36,Home & Living,2012-09-11 20:26:04,USER_Y,Home & Garden,Home Improvement,Plumbing & Fixtures,0,Ebay,USER_S,13,Entrepreneur,2012-02-04,2012-02-03,10000000050,2012-02-04,32876,10000033,415.73,1
-Auction,0,13,62179,0,9,Apparel,2008-06-03 13:36:00,USER_Y,ClothinShoes & Accessories,Women's Clothing,Athletic Apparel,0,Ebay,USER_S,13,Entrepreneur,2012-12-15,2012-12-15,10000000051,2012-12-15,62179,10000034,377.94,1
-FP-GTC,15,14,33038,15,30,Musical Instruments,2010-06-14 07:48:40,USER_Y,Musical Instruments,Instruments,Guitars (Electric),15,Australia,USER_S,14,Regular,2012-06-30,2012-06-30,10000000052,2012-06-30,33038,10000035,146.33,1
-FP-GTC,0,5,156614,0,28,Toys,2010-03-22 10:34:30,USER_Y,Toys & Hobbies,Diecast & Toy Vehicles,Cars: RacinNASCAR,0,Ebay,USER_S,5,Occasional,2012-12-16,2012-12-15,10000000053,2012-12-16,156614,10000036,7.12,1
-Auction,0,13,106246,0,37,Health & Beauty,2013-04-28 20:37:19,USER_Y,Health & Beauty,Hair Care & Styling,Shampoo & Conditioning,0,Ebay,USER_S,13,Entrepreneur,2012-10-17,2012-10-13,10000000055,2012-10-17,106246,10000037,42.99,1
-Auction,0,13,20865,0,9,Apparel,2008-06-03 13:36:00,USER_Y,ClothinShoes & Accessories,Men's Clothing,Athletic Apparel,0,Ebay,USER_S,13,Entrepreneur,2012-10-08,2012-10-06,10000000056,2012-10-08,20865,10000038,12.85,1
-FP-GTC,0,13,15115,0,32,Video Games,2012-06-19 21:15:09,USER_Y,Video Games & Consoles,Video Games,Video Games,0,Ebay,USER_S,13,Entrepreneur,2012-04-26,2012-04-21,10000000057,2012-04-26,15115,10000039,55.89,1
-FP-GTC,0,14,3838,0,17,JewelrGemWatches,2012-09-11 20:26:04,USER_Y,Jewelry & Watches,Fashion Jewelry,Charms & Charm Bracelets,0,Ebay,USER_S,14,Regular,2012-10-06,2012-10-06,10000000058,2012-10-06,3838,10000040,73.26,1
-Auction,0,11,759,0,28,Toys,2010-03-22 10:34:30,USER_Y,Toys & Hobbies,Diecast & Toy Vehicles,CarTrucks & Vans,0,Ebay,USER_S,11,Large Merchant,2012-12-28,2012-12-22,10000000059,2012-12-28,759,10000041,112.56,1
-FP-non GTC,0,11,61323,0,13,Consumer Electronics - Other,2012-05-01 08:54:26,USER_Y,Consumer Electronics,TVideo & Home Audio,TVideo & Audio Accessories,0,Ebay,USER_S,11,Large Merchant,2012-11-06,2012-11-03,10000000060,2012-11-06,61323,10000042,3.49,1
-Auction,0,13,121153,0,2,Baby,2012-09-11 20:26:04,USER_Y,Baby,Nursery Decor,Night Lights,0,Ebay,USER_S,13,Entrepreneur,2012-11-06,2012-11-03,10000000061,2012-11-06,121153,10000043,184.21,1
-Auction,0,13,88750,0,13,Consumer Electronics - Other,2012-05-01 08:54:26,USER_Y,Consumer Electronics,Vehicle Electronics & GPS,Radar & Laser Detectors,0,Ebay,USER_S,13,Entrepreneur,2012-12-27,2012-12-22,10000000062,2012-12-27,88750,10000044,157.14,1
-FP-GTC,15,14,161567,15,12,Computers,2012-05-01 08:54:26,USER_Y,Computers,Laptop & Desktop Accessories,Laptop Batteries,15,Australia,USER_S,14,Regular,2012-07-15,2012-07-14,10000000064,2012-07-15,161567,10000045,72.65,1
-FP-GTC,15,14,113802,15,99,Everything Else,2008-06-03 13:36:00,USER_Y,Lots More...,Metaphysical,Herbs,15,Australia,USER_S,14,Regular,2012-08-23,2012-08-18,10000000065,2012-08-23,113802,10000046,51.23,1
-FP-non GTC,15,14,15808,15,9,Clothing & Accessories,2012-09-11 20:26:04,USER_Y,ClothinShoeAccessories,Women's Clothing,Tops & Blouses,15,Australia,USER_S,14,Regular,2012-07-10,2012-07-07,10000000066,2012-07-10,15808,10000047,15.85,1
-FP-GTC,3,13,174053,3,8,Auto - Parts,2013-04-28 20:37:19,USER_Y,Vehicle Parts & Accessories,Car Parts,External & Body Parts,3,\u82f1\u56fd,USER_S,13,Entrepreneur,2012-08-10,2012-08-04,10000000067,2012-08-10,174053,10000048,7.12,1
-Auction,0,14,2635,0,28,Toys,2010-03-22 10:34:30,USER_Y,Toys & Hobbies,Toy Soldiers,1970-Now,0,Ebay,USER_S,14,Regular,2012-09-01,2012-09-01,10000000069,2012-09-01,2635,10000049,12.04,1
-Auction,3,13,1161,3,18,DVDFilm & TV,2008-06-03 13:36:00,USER_Y,DVFilm & TV,Other Formats,Videos: NTSC  (US),3,\u82f1\u56fd,USER_S,13,Entrepreneur,2012-09-19,2012-09-15,10000000070,2012-09-19,1161,10000050,73.26,1
-FP-non GTC,0,5,64076,0,12,Computers,2012-05-01 08:54:26,USER_Y,Computers/Tablets & Networking,Enterprise NetworkinServers,Switches & Hubs,0,Ebay,USER_S,5,Occasional,2012-08-10,2012-08-04,10000000072,2012-08-10,64076,10000051,184.21,1
-FP-GTC,15,13,33977,15,15,Crafts,2010-06-14 07:56:25,USER_Y,Crafts,Scrapbooking,Albums,15,Australia,USER_S,13,Entrepreneur,2012-08-21,2012-08-18,10000000073,2012-08-21,33977,10000052,172.03,1
-FP-GTC,0,14,31673,0,25,Sports Memorabilia,2010-02-08 10:48:39,USER_Y,Sports MeCards & Fan Shop,Fan Apparel & Souvenirs,Racing-NASCAR,0,Ebay,USER_S,14,Regular,2012-08-29,2012-08-25,10000000074,2012-08-29,31673,10000053,122.78,1
-Auction,3,14,174106,3,8,Auto - Parts,2013-04-28 20:37:19,USER_Y,Vehicle Parts & Accessories,Car Parts,Transmission & Drivetrain,3,\u82f1\u56fd,USER_S,14,Regular,2012-04-22,2012-04-21,10000000075,2012-04-22,174106,10000054,92.98,1
-Auction,0,13,26249,0,4,Business (Office & Industrial),2012-09-11 20:26:04,USER_Y,Business & Industrial,Printing & Graphic Arts,Commercial Printing Presses,0,Ebay,USER_S,13,Entrepreneur,2012-07-02,2012-06-30,10000000076,2012-07-02,26249,10000055,12.19,1
-FP-GTC,0,5,159184,0,24,Sporting Goods,2013-09-10 16:52:46,USER_Y,Sporting Goods,Winter Sports,Snowboarding,0,Ebay,USER_S,5,Occasional,2012-01-28,2012-01-27,10000000077,2012-01-28,159184,10000056,15.65,1
-FP-GTC,3,11,10058,3,27,Tickets,2013-09-10 16:52:46,USER_Y,Events Tickets,Other Tickets,Other Tickets,3,\u82f1\u56fd,USER_S,11,Large Merchant,2012-03-11,2012-03-10,10000000078,2012-03-11,10058,10000057,101.79,1
-ABIN,0,12,48904,0,9,Apparel,2012-05-01 08:54:26,USER_Y,ClothinShoes & Accessories,Vintage,Women's Vintage Clothing,0,Ebay,USER_S,12,Merchant,2012-05-29,2012-05-26,10000000079,2012-05-29,48904,10000058,7.12,1
-FP-non GTC,0,14,145970,0,28,Toys,2008-10-08 07:18:40,USER_Y,Toys & Hobbies,Models & Kits,Automotive,0,Ebay,USER_S,14,Regular,2012-05-31,2012-05-26,10000000080,2012-05-31,145970,10000059,12.85,1
-FP-GTC,0,13,963,0,9,Apparel,2012-05-01 08:54:26,USER_Y,ClothinShoes & Accessories,Vintage,Women's Vintage Shoes,0,Ebay,USER_S,13,Entrepreneur,2012-10-25,2012-10-20,10000000082,2012-10-25,963,10000060,12.19,1
-FP-GTC,3,13,118687,3,37,Health & Beauty,2013-04-28 20:37:19,USER_Y,Health & Beauty,Fragrances,Women's Fragrances,3,\u82f1\u56fd,USER_S,13,Entrepreneur,2012-11-23,2012-11-17,10000000083,2012-11-23,118687,10000061,92.98,1
-FP-GTC,0,14,20886,0,28,Toys,2010-03-22 10:34:30,USER_Y,Toys & Hobbies,Diecast & Toy Vehicles,Cars: RacinNASCAR,0,Ebay,USER_S,14,Regular,2012-09-28,2012-09-22,10000000085,2012-09-28,20886,10000062,42.99,1
-Auction,15,13,148324,15,31,Phones,2012-09-18 00:08:03,USER_XIANZHU,Phones,Mobile Accessories,CaseCoverSkins,15,Australia,USER_S,13,Entrepreneur,2012-09-28,2012-09-22,10000000086,2012-09-28,148324,10000063,1.88,1
-Auction,15,14,139255,15,17,JewelrGemWatches,2012-05-01 08:54:26,USER_Y,Jewellery & Watches,Fine Jewellery,Earrings,15,Australia,USER_S,14,Regular,2012-10-19,2012-10-13,10000000089,2012-10-19,139255,10000064,21.14,1
-FP-GTC,0,5,20213,0,11,Collectibles,2008-09-09 22:08:47,USER_Y,Collectibles,Postcards,US StateCities & Towns,0,Ebay,USER_S,5,Occasional,2012-08-05,2012-08-04,10000000090,2012-08-05,20213,10000065,21.14,1
-Auction,15,13,32996,15,42,Entertainment Memorabilia,2012-09-11 20:26:04,USER_Y,Movies,Television Memorabilia,Clippings,15,Australia,USER_S,13,Entrepreneur,2012-05-19,2012-05-19,10000000091,2012-05-19,32996,10000066,132.33,1
-FP-GTC,0,14,99985,0,11,Collectibles,2008-09-09 22:08:47,USER_Y,Collectibles,Trading Cards,Sci-FFantasy,0,Ebay,USER_S,14,Regular,2012-04-11,2012-04-07,10000000092,2012-04-11,99985,10000067,120.87,1
-Auction,3,14,67703,3,17,Jewellery & Watches,2012-06-19 21:15:09,USER_Y,Jewellery & Watches,Jewellery Boxes & Supplies,Jewellery Display,3,\u82f1\u56fd,USER_S,14,Regular,2012-05-16,2012-05-12,10000000093,2012-05-16,67703,10000068,120.87,1
-FP-non GTC,0,11,65,0,11,Collectibles,2013-02-20 23:11:43,USER_Y,Collectibles,Comics,Platinum Age (1897-1937),0,Ebay,USER_S,11,Large Merchant,2012-05-24,2012-05-19,10000000094,2012-05-24,65,10000069,9.26,1
-FP-non GTC,0,14,130,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Transportation,Railroadiana & Trains,0,Ebay,USER_S,14,Regular,2012-01-10,2012-01-06,10000000095,2012-01-10,130,10000070,16.26,1
-FP-GTC,0,14,164,0,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,Computer Components & Parts,CPUProcessors,0,Ebay,USER_S,14,Regular,2012-05-17,2012-05-12,10000000096,2012-05-17,164,10000071,157.14,1
-FP-GTC,0,11,216,0,25,Sports Memorabilia,2013-02-20 23:11:43,USER_Y,Sports MeCards & Fan Shop,Cards,Hockey,0,Ebay,USER_S,11,Large Merchant,2012-02-03,2012-02-03,10000000097,2012-02-03,216,10000072,1.88,1
-FP-non GTC,0,5,223,0,28,Toys,2013-04-28 20:37:19,USER_Y,Toys & Hobbies,Diecast & Toy Vehicles,CarTrucks & Vans,0,Ebay,USER_S,5,Occasional,2012-05-05,2012-05-05,10000000098,2012-05-05,223,10000073,12.04,1
-FP-non GTC,0,14,223,0,28,Toys,2013-04-28 20:37:19,USER_Y,Toys & Hobbies,Diecast & Toy Vehicles,CarTrucks & Vans,0,Ebay,USER_S,14,Regular,2012-11-26,2012-11-24,10000000099,2012-11-26,223,10000074,189.23,1
-FP-non GTC,0,5,223,0,28,Toys,2013-04-28 20:37:19,USER_Y,Toys & Hobbies,Diecast & Toy Vehicles,CarTrucks & Vans,0,Ebay,USER_S,5,Occasional,2012-08-30,2012-08-25,10000000100,2012-08-30,223,10000075,73.26,1
-FP-non GTC,0,5,223,0,28,Toys,2013-04-28 20:37:19,USER_Y,Toys & Hobbies,Diecast & Toy Vehicles,CarTrucks & Vans,0,Ebay,USER_S,5,Occasional,2012-05-21,2012-05-19,10000000101,2012-05-21,223,10000076,4.13,1
-FP-non GTC,0,5,223,0,28,Toys,2013-04-28 20:37:19,USER_Y,Toys & Hobbies,Diecast & Toy Vehicles,CarTrucks & Vans,0,Ebay,USER_S,5,Occasional,2012-06-06,2012-06-02,10000000102,2012-06-06,223,10000077,290.72,1
-FP-non GTC,0,5,223,0,28,Toys,2013-04-28 20:37:19,USER_Y,Toys & Hobbies,Diecast & Toy Vehicles,CarTrucks & Vans,0,Ebay,USER_S,5,Occasional,2012-06-16,2012-06-16,10000000103,2012-06-16,223,10000078,265.56,1
-FP-GTC,15,5,279,15,3,Books,2013-09-10 16:52:46,USER_Y,BookMagazines,Children's Books,Children's Books,15,Australia,USER_S,5,Occasional,2012-05-15,2012-05-12,10000000104,2012-05-15,279,10000079,5.91,1
-Auction,0,5,314,0,9,Apparel,2012-09-11 20:26:04,USER_Y,ClothinShoes & Accessories,Women's Clothing,Other,0,Ebay,USER_S,5,Occasional,2012-12-05,2012-12-01,10000000106,2012-12-05,314,10000080,319.79,1
-Auction,211,5,314,211,9,ClothinShoes & Accessories,2013-02-20 23:11:43,USER_Y,ClothinShoes & Accessories,Womens' Clothing,Other,211,Philippines,USER_X,5,Occasional,2012-03-25,2012-03-24,10000000107,2012-03-25,314,10000081,246,1
-Auction,211,5,314,211,9,ClothinShoes & Accessories,2013-02-20 23:11:43,USER_Y,ClothinShoes & Accessories,Womens' Clothing,Other,211,Philippines,USER_X,5,Occasional,2012-03-09,2012-03-03,10000000108,2012-03-09,314,10000082,20.35,1
-Auction,0,5,314,0,9,Apparel,2012-09-11 20:26:04,USER_Y,ClothinShoes & Accessories,Women's Clothing,Other,0,Ebay,USER_S,5,Occasional,2012-05-06,2012-05-05,10000000109,2012-05-06,314,10000083,36.7,1
-Auction,0,13,533,0,10,Coins,2012-06-19 21:15:09,USER_Y,Coins & Paper Money,Coins: World,Africa,0,Ebay,USER_S,13,Entrepreneur,2012-06-15,2012-06-09,10000000110,2012-06-15,533,10000084,101.79,1
-ABIN,0,5,1349,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Decorative Collectibles,Decorative Collectible Brands,0,Ebay,USER_S,5,Occasional,2012-03-14,2012-03-10,10000000113,2012-03-14,1349,10000085,47.71,1
-ABIN,0,5,1349,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Decorative Collectibles,Decorative Collectible Brands,0,Ebay,USER_S,5,Occasional,2012-05-20,2012-05-19,10000000115,2012-05-20,1349,10000086,3.49,1
-ABIN,0,13,1349,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Decorative Collectibles,Decorative Collectible Brands,0,Ebay,USER_S,13,Entrepreneur,2012-05-17,2012-05-12,10000000117,2012-05-17,1349,10000087,46.44,1
-ABIN,0,13,1349,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Decorative Collectibles,Decorative Collectible Brands,0,Ebay,USER_S,13,Entrepreneur,2012-03-11,2012-03-10,10000000118,2012-03-11,1349,10000088,4.54,1
-ABIN,0,14,1357,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Decorative Collectibles,Decorative Collectible Brands,0,Ebay,USER_S,14,Regular,2012-01-10,2012-01-06,10000000119,2012-01-10,1357,10000089,3.18,1
-FP-GTC,0,14,1504,0,4,Business (Office & Industrial),2012-09-11 20:26:04,USER_Y,Business & Industrial,Electrical & Test Equipment,Test Equipment,0,Ebay,USER_S,14,Regular,2012-04-13,2012-04-07,10000000120,2012-04-13,1504,10000090,86.58,1
-FP-GTC,0,13,4943,0,28,Toys,2013-04-28 20:37:19,USER_Y,Toys & Hobbies,Diecast & Toy Vehicles,CarTrucks & Vans,0,Ebay,USER_S,13,Entrepreneur,2012-07-22,2012-07-21,10000000121,2012-07-22,4943,10000091,12.85,1
-ABIN,0,13,6762,0,-999,Unknown,2008-06-03 13:36:00,USER_Y,Unknown,Unknown,Unknown,0,Ebay,USER_S,13,Entrepreneur,2012-06-15,2012-06-09,10000000122,2012-06-15,6762,10000092,16.26,1
-Auction,3,13,9426,3,31,Mobile & Home Phones,2012-05-01 08:54:26,USER_Y,Mobile Phones & Communication,Home Phones & Accessories,Phone Accessories,3,\u82f1\u56fd,USER_S,13,Entrepreneur,2012-06-15,2012-06-09,10000000123,2012-06-15,9426,10000093,21.14,1
-FP-non GTC,0,14,10866,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Animals,Farm & Countryside,0,Ebay,USER_S,14,Regular,2012-06-01,2012-05-26,10000000124,2012-06-01,10866,10000094,20.6,1
-Auction,0,13,11554,0,9,Apparel,2013-07-16 08:23:09,USER_Y,ClothinShoes & Accessories,Women's Clothing,Jeans,0,Ebay,USER_S,13,Entrepreneur,2012-05-17,2012-05-12,10000000125,2012-05-17,11554,10000095,246,1
-FP-GTC,0,14,11848,0,37,Health & Beauty,2012-06-19 21:15:09,USER_Y,Health & Beauty,Fragrances,Women,0,Ebay,USER_S,14,Regular,2012-04-26,2012-04-21,10000000126,2012-04-26,11848,10000096,109,1
-Auction,0,13,13836,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Decorative Collectibles,Spoons,0,Ebay,USER_S,13,Entrepreneur,2012-07-28,2012-07-28,10000000127,2012-07-28,13836,10000097,39.41,1
-Auction,0,14,13836,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Decorative Collectibles,Spoons,0,Ebay,USER_S,14,Regular,2012-03-12,2012-03-10,10000000128,2012-03-12,13836,10000098,16.26,1
-FP-GTC,0,13,13987,0,11,Collectibles,2008-06-03 13:36:00,USER_Y,Collectibles,Paper,Booklets,0,Ebay,USER_S,13,Entrepreneur,2012-04-20,2012-04-14,10000000129,2012-04-20,13987,10000099,112.56,1
-Auction,0,14,15687,0,9,Apparel,2013-07-16 08:23:09,USER_Y,ClothinShoes & Accessories,Men's Clothing,T-Shirts,0,Ebay,USER_S,14,Regular,2012-03-18,2012-03-17,10000000130,2012-03-18,15687,10000100,184.21,1
-Auction,0,11,15687,0,9,Apparel,2013-07-16 08:23:09,USER_Y,ClothinShoes & Accessories,Men's Clothing,T-Shirts,0,Ebay,USER_S,11,Large Merchant,2012-05-17,2012-05-12,10000000131,2012-05-17,15687,10000001,27.48,1
-FP-non GTC,3,12,16145,3,12,Computers,2013-02-20 23:11:43,USER_Y,Computers/Tablets & Networking,Computer Components & Parts,Other Components & Parts,3,\u82f1\u56fd,USER_S,12,Merchant,2012-06-23,2012-06-23,10000000132,2012-06-23,16145,10000002,26.45,1
-FP-non GTC,0,13,16145,0,12,Computers,2013-02-20 23:11:43,USER_Y,Computers/Tablets & Networking,Computer Components & Parts,Other,0,Ebay,USER_S,13,Entrepreneur,2012-05-22,2012-05-19,10000000134,2012-05-22,16145,10000003,415.73,1
-ABIN,0,5,16509,0,28,Toys,2012-09-11 20:26:04,USER_Y,Toys & Hobbies,Model Railroads & Trains,S Scale,0,Ebay,USER_S,5,Occasional,2012-01-25,2012-01-20,10000000135,2012-01-25,16509,10000004,56.36,1
-ABIN,0,5,16509,0,28,Toys,2012-09-11 20:26:04,USER_Y,Toys & Hobbies,Model Railroads & Trains,S Scale,0,Ebay,USER_S,5,Occasional,2012-06-12,2012-06-09,10000000136,2012-06-12,16509,10000005,2.44,1
-FP-GTC,0,14,20485,0,36,Home & Living,2012-05-01 08:54:26,USER_Y,Home & Garden,Furniture,Other,0,Ebay,USER_S,14,Regular,2012-05-17,2012-05-12,10000000137,2012-05-17,20485,10000006,269.76,1
-FP-GTC,101,12,20485,101,36,Mobili per la casa,2008-06-03 13:36:00,USER_Y,CasArredamento e Bricolage,Cucina,Altro per cucina,101,Italy,USER_S,12,Merchant,2012-08-03,2012-07-28,10000000139,2012-08-03,20485,10000007,109,1
-FP-GTC,101,12,20485,101,36,Mobili per la casa,2008-06-03 13:36:00,USER_Y,CasArredamento e Bricolage,Cucina,Altro per cucina,101,Italy,USER_S,12,Merchant,2012-05-17,2012-05-12,10000000140,2012-05-17,20485,10000008,101.79,1
-Auction,23,14,23446,23,9,Vtements et Accessoires,2012-06-19 21:15:09,USER_Y,Mode & Accessoires,Chaussures de femme,Sandales & Sandalettes,23,Belgium (French),USER_S,14,Regular,2012-08-21,2012-08-18,10000000141,2012-08-21,23446,10000009,246,1
-Auction,23,14,23446,23,9,Vtements et Accessoires,2012-06-19 21:15:09,USER_Y,Mode & Accessoires,Chaussures de femme,Sandales & Sandalettes,23,Belgium (French),USER_S,14,Regular,2012-08-21,2012-08-18,10000000142,2012-08-21,23446,10000010,189.23,1
-Auction,23,14,23446,23,9,Vtements et Accessoires,2012-06-19 21:15:09,USER_Y,Mode & Accessoires,Chaussures de femme,Sandales & Sandalettes,23,Belgium (French),USER_S,14,Regular,2012-04-18,2012-04-14,10000000143,2012-04-18,23446,10000011,15.65,1
-Auction,23,14,23446,23,9,Vtements et Accessoires,2012-06-19 21:15:09,USER_Y,Mode & Accessoires,Chaussures de femme,Sandales & Sandalettes,23,Belgium (French),USER_S,14,Regular,2012-06-16,2012-06-16,10000000144,2012-06-16,23446,10000012,28.23,1
-FP-GTC,0,5,24541,0,25,Sports Memorabilia,2013-07-16 08:23:09,USER_Y,Sports MeCards & Fan Shop,Fan Apparel & Souvenirs,College-NCAA,0,Ebay,USER_S,5,Occasional,2012-01-09,2012-01-06,10000000145,2012-01-09,24541,10000013,16.26,1
-FP-GTC,0,5,26262,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Advertising,Food & Beverage,0,Ebay,USER_S,5,Occasional,2012-05-03,2012-04-28,10000000146,2012-05-03,26262,10000014,122.78,1
-FP-GTC,3,14,30059,3,21,Photography,2012-09-11 20:26:04,USER_Y,Cameras & Photography,Lenses & Filters,Lens AdapterMounts & Tubes,3,\u82f1\u56fd,USER_S,14,Regular,2012-05-20,2012-05-19,10000000147,2012-05-20,30059,10000015,172.03,1
-Auction,3,14,31387,3,17,Jewellery & Watches,2013-04-28 20:37:19,USER_Y,Jewellery & Watches,Watches,Wristwatches,3,\u82f1\u56fd,USER_S,14,Regular,2012-03-12,2012-03-10,10000000149,2012-03-12,31387,10000016,42.99,1
-Auction,3,14,31387,3,17,Jewellery & Watches,2013-04-28 20:37:19,USER_Y,Jewellery & Watches,Watches,Wristwatches,3,\u82f1\u56fd,USER_S,14,Regular,2012-05-19,2012-05-19,10000000150,2012-05-19,31387,10000017,207.5,1
-FP-GTC,0,14,31519,0,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,Laptop & Desktop Accessories,Laptop Cases & Bags,0,Ebay,USER_S,14,Regular,2012-04-21,2012-04-21,10000000151,2012-04-21,31519,10000018,5.91,1
-FP-GTC,3,14,31519,3,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,Laptop & Desktop Accessories,Laptop Cases & Bags,3,\u82f1\u56fd,USER_S,14,Regular,2012-05-18,2012-05-12,10000000152,2012-05-18,31519,10000019,39.41,1
-FP-GTC,0,14,31519,0,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,Laptop & Desktop Accessories,Laptop Cases & Bags,0,Ebay,USER_S,14,Regular,2012-06-16,2012-06-16,10000000155,2012-06-16,31519,10000020,16.26,1
-FP-GTC,0,14,31519,0,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,Laptop & Desktop Accessories,Laptop Cases & Bags,0,Ebay,USER_S,14,Regular,2012-06-11,2012-06-09,10000000156,2012-06-11,31519,10000021,16.26,1
-FP-GTC,0,14,31519,0,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,Laptop & Desktop Accessories,Laptop Cases & Bags,0,Ebay,USER_S,14,Regular,2012-03-31,2012-03-31,10000000157,2012-03-31,31519,10000022,78.48,1
-FP-GTC,3,14,31519,3,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,Laptop & Desktop Accessories,Laptop Cases & Bags,3,\u82f1\u56fd,USER_S,14,Regular,2012-11-12,2012-11-10,10000000158,2012-11-12,31519,10000023,190.22,1
-FP-GTC,100,12,35570,100,8,Auto - Parts,2012-06-19 21:15:09,USER_Y,eBay Motors,Parts & Accessories,Motorcycle Parts,100,Ebaymotors,USER_S,12,Merchant,2012-04-06,2012-03-31,10000000161,2012-04-06,35570,10000024,2.44,1
-Auction,0,5,36250,0,24,Sporting Goods,2013-04-28 20:37:19,USER_Y,Sporting Goods,Hunting,Decoys,0,Ebay,USER_S,5,Occasional,2012-11-01,2012-10-27,10000000163,2012-11-01,36250,10000025,7.12,1
-FP-non GTC,0,14,38238,0,36,Home & Living,2012-09-11 20:26:04,USER_Y,Home & Garden,Home Decor,Other,0,Ebay,USER_S,14,Regular,2012-02-06,2012-02-03,10000000165,2012-02-06,38238,10000026,36.7,1
-FP-GTC,3,14,40059,3,33,Consumer Electronics - Audio,2012-05-01 08:57:38,USER_Y,Mobile Phones & Communication,Radio Communication Equipment,Parts & Accessories,3,\u82f1\u56fd,USER_S,14,Regular,2012-06-16,2012-06-16,10000000166,2012-06-16,40059,10000027,35.72,1
-FP-GTC,3,14,40059,3,33,Consumer Electronics - Audio,2012-05-01 08:57:38,USER_Y,Mobile Phones & Communication,Radio Communication Equipment,Parts & Accessories,3,\u82f1\u56fd,USER_S,14,Regular,2012-09-12,2012-09-08,10000000167,2012-09-12,40059,10000028,3.49,1
-FP-GTC,0,13,41940,0,4,Business (Office & Industrial),2012-09-11 20:26:04,USER_Y,Business & Industrial,Manufacturing & Metalworking,Metalworking Tooling,0,Ebay,USER_S,13,Entrepreneur,2012-04-16,2012-04-14,10000000168,2012-04-16,41940,10000029,223.63,1
-FP-GTC,0,13,41940,0,4,Business (Office & Industrial),2012-09-11 20:26:04,USER_Y,Business & Industrial,Manufacturing & Metalworking,Metalworking Tooling,0,Ebay,USER_S,13,Entrepreneur,2012-11-01,2012-10-27,10000000169,2012-11-01,41940,10000030,265.56,1
-FP-non GTC,0,13,43479,0,21,Photo,2012-09-11 20:26:04,USER_Y,Cameras & Photo,Film Photography,Other,0,Ebay,USER_S,13,Entrepreneur,2012-06-14,2012-06-09,10000000170,2012-06-14,43479,10000031,62.02,1
-FP-GTC,0,12,44079,0,24,Sporting Goods,2013-04-28 20:37:19,USER_Y,Sporting Goods,Exercise & Fitness,GyWorkout & Yoga,0,Ebay,USER_S,12,Merchant,2012-11-12,2012-11-10,10000000172,2012-11-12,44079,10000032,46.44,1
-Auction,101,14,45238,101,9,Vestiti ed Accessori,2012-09-11 20:27:22,USER_Y,Abbigliamento e accessori,Donna: Accessori,SciarpFoulard e Scialli,101,Italy,USER_S,14,Regular,2012-03-22,2012-03-17,10000000173,2012-03-22,45238,10000033,132.33,1
-Auction,0,13,45333,0,9,Apparel,2012-09-11 20:26:04,USER_Y,ClothinShoes & Accessories,Women's Shoes,Flats & Oxfords,0,Ebay,USER_S,13,Entrepreneur,2012-05-22,2012-05-19,10000000177,2012-05-22,45333,10000034,448.8,1
-FP-non GTC,0,14,45333,0,9,Apparel,2012-09-11 20:26:04,USER_Y,ClothinShoes & Accessories,Women's Shoes,Flats & Oxfords,0,Ebay,USER_S,14,Regular,2012-03-10,2012-03-10,10000000178,2012-03-10,45333,10000035,207.5,1
-FP-non GTC,0,14,45333,0,9,Apparel,2012-09-11 20:26:04,USER_Y,ClothinShoes & Accessories,Women's Shoes,Flats & Oxfords,0,Ebay,USER_S,14,Regular,2012-05-17,2012-05-12,10000000179,2012-05-17,45333,10000036,190.22,1
-FP-GTC,0,14,46575,0,4,Business (Office & Industrial),2013-04-28 20:37:19,USER_Y,Business & Industrial,Light Equipment & Tools,Air Tools,0,Ebay,USER_S,14,Regular,2012-09-01,2012-09-01,10000000181,2012-09-01,46575,10000037,16.71,1
-FP-non GTC,0,13,50508,0,21,Photo,2013-02-20 23:11:43,USER_Y,Cameras & Photo,Camera & Photo Accessories,LCD Hoods,0,Ebay,USER_S,13,Entrepreneur,2012-04-18,2012-04-14,10000000182,2012-04-18,50508,10000038,4.13,1
-FP-non GTC,0,13,50508,0,21,Photo,2013-02-20 23:11:43,USER_Y,Cameras & Photo,Camera & Photo Accessories,LCD Hoods,0,Ebay,USER_S,13,Entrepreneur,2012-06-05,2012-06-02,10000000183,2012-06-05,50508,10000039,1.88,1
-FP-GTC,0,13,50677,0,17,JewelrGemWatches,2012-09-11 20:26:04,USER_Y,Jewelry & Watches,Fashion Jewelry,Pins & Brooches,0,Ebay,USER_S,13,Entrepreneur,2012-10-08,2012-10-06,10000000185,2012-10-08,50677,10000040,491.32,1
-FP-GTC,0,5,50677,0,17,JewelrGemWatches,2012-09-11 20:26:04,USER_Y,Jewelry & Watches,Fashion Jewelry,Pins & Brooches,0,Ebay,USER_S,5,Occasional,2012-09-17,2012-09-15,10000000186,2012-09-17,50677,10000041,2.44,1
-Auction,0,14,51582,0,9,Apparel,2012-09-11 20:26:04,USER_Y,ClothinShoes & Accessories,Kids' ClothinShoes & Accs,Girls' Clothing (Sizes 4 & Up),0,Ebay,USER_S,14,Regular,2012-02-02,2012-01-27,10000000187,2012-02-02,51582,10000042,56.36,1
-FP-GTC,0,13,57013,0,4,Business (Office & Industrial),2013-04-28 20:37:19,USER_Y,Business & Industrial,MRO & Industrial Supply,Pumps & Plumbing,0,Ebay,USER_S,13,Entrepreneur,2012-08-23,2012-08-18,10000000189,2012-08-23,57013,10000043,15.85,1
-FP-non GTC,0,14,57013,0,4,Business (Office & Industrial),2013-04-28 20:37:19,USER_Y,Business & Industrial,MRO & Industrial Supply,Pumps & Plumbing,0,Ebay,USER_S,14,Regular,2012-08-17,2012-08-11,10000000190,2012-08-17,57013,10000044,2.44,1
-FP-GTC,0,14,57013,0,4,Business (Office & Industrial),2013-04-28 20:37:19,USER_Y,Business & Industrial,MRO & Industrial Supply,Pumps & Plumbing,0,Ebay,USER_S,14,Regular,2012-05-05,2012-05-05,10000000191,2012-05-05,57013,10000045,7.12,1
-Auction,0,14,57784,0,9,Apparel,2012-09-11 20:26:04,USER_Y,ClothinShoes & Accessories,Baby & Toddler Clothing,Boys' Clothing (Newborn-5T),0,Ebay,USER_S,14,Regular,2012-03-08,2012-03-03,10000000192,2012-03-08,57784,10000046,35.72,1
-Auction,3,11,57990,3,9,Clothing & Accessories,2012-06-19 21:15:09,USER_Y,ClotheShoes & Accessories,Men's Clothing,Casual Shirts & Tops,3,\u82f1\u56fd,USER_S,11,Large Merchant,2012-03-16,2012-03-10,10000000194,2012-03-16,57990,10000047,9.26,1
-Auction,3,14,57990,3,9,Clothing & Accessories,2012-06-19 21:15:09,USER_Y,ClotheShoes & Accessories,Men's Clothing,Casual Shirts & Tops,3,\u82f1\u56fd,USER_S,14,Regular,2012-05-09,2012-05-05,10000000195,2012-05-09,57990,10000048,3.18,1
-Auction,3,14,57990,3,9,Clothing & Accessories,2012-06-19 21:15:09,USER_Y,ClotheShoes & Accessories,Men's Clothing,Casual Shirts & Tops,3,\u82f1\u56fd,USER_S,14,Regular,2012-03-25,2012-03-24,10000000196,2012-03-25,57990,10000049,638.72,1
-Auction,3,14,57990,3,9,Clothing & Accessories,2012-06-19 21:15:09,USER_Y,ClotheShoes & Accessories,Men's Clothing,Casual Shirts & Tops,3,\u82f1\u56fd,USER_S,14,Regular,2012-06-05,2012-06-02,10000000198,2012-06-05,57990,10000050,141.7,1
-ABIN,0,13,57990,0,9,Apparel,2013-09-10 16:52:46,USER_Y,ClothinShoes & Accessories,Men's Clothing,Casual Shirts,0,Ebay,USER_S,13,Entrepreneur,2012-01-10,2012-01-06,10000000199,2012-01-10,57990,10000051,12.19,1
-Auction,3,14,57990,3,9,Clothing & Accessories,2012-06-19 21:15:09,USER_Y,ClotheShoes & Accessories,Men's Clothing,Casual Shirts & Tops,3,\u82f1\u56fd,USER_S,14,Regular,2012-06-11,2012-06-09,10000000200,2012-06-11,57990,10000052,132.33,1
-ABIN,3,5,57990,3,9,Clothing & Accessories,2012-06-19 21:15:09,USER_Y,ClotheShoes & Accessories,Men's Clothing,Casual Shirts & Tops,3,\u82f1\u56fd,USER_S,5,Occasional,2012-08-23,2012-08-18,10000000201,2012-08-23,57990,10000053,5.48,1
-Auction,3,11,57990,3,9,Clothing & Accessories,2012-06-19 21:15:09,USER_Y,ClotheShoes & Accessories,Men's Clothing,Casual Shirts & Tops,3,\u82f1\u56fd,USER_S,11,Large Merchant,2012-08-20,2012-08-18,10000000203,2012-08-20,57990,10000054,1.88,1
-FP-GTC,0,14,60340,0,42,Entertainment Memorabilia,2008-06-03 13:36:00,USER_Y,Entertainment Memorabilia,Movie Memorabilia,Pressbooks,0,Ebay,USER_S,14,Regular,2012-08-09,2012-08-04,10000000204,2012-08-09,60340,10000055,12.85,1
-FP-GTC,0,14,60340,0,42,Entertainment Memorabilia,2008-06-03 13:36:00,USER_Y,Entertainment Memorabilia,Movie Memorabilia,Pressbooks,0,Ebay,USER_S,14,Regular,2012-06-30,2012-06-30,10000000208,2012-06-30,60340,10000056,62.02,1
-FP-GTC,3,12,60606,3,11,Collectables,2012-06-19 21:15:09,USER_Y,Collectables,Badges/ Patches,Golly Badges,3,\u82f1\u56fd,USER_S,12,Merchant,2012-06-03,2012-06-02,10000000209,2012-06-03,60606,10000057,15.85,1
-FP-GTC,3,12,60606,3,11,Collectables,2012-06-19 21:15:09,USER_Y,Collectables,Badges/ Patches,Golly Badges,3,\u82f1\u56fd,USER_S,12,Merchant,2012-08-14,2012-08-11,10000000211,2012-08-14,60606,10000058,9.26,1
-FP-GTC,3,12,60606,3,11,Collectables,2012-06-19 21:15:09,USER_Y,Collectables,Badges/ Patches,Golly Badges,3,\u82f1\u56fd,USER_S,12,Merchant,2012-08-14,2012-08-11,10000000213,2012-08-14,60606,10000059,16.71,1
-FP-GTC,3,12,60606,3,11,Collectables,2012-06-19 21:15:09,USER_Y,Collectables,Badges/ Patches,Golly Badges,3,\u82f1\u56fd,USER_S,12,Merchant,2012-05-17,2012-05-12,10000000214,2012-05-17,60606,10000060,20.6,1
-Auction,3,5,63861,3,9,Clothing & Accessories,2013-07-16 08:23:09,USER_Y,ClotheShoes & Accessories,Women's Clothing,Dresses,3,\u82f1\u56fd,USER_S,5,Occasional,2012-07-23,2012-07-21,10000000217,2012-07-23,63861,10000061,1.88,1
-ABIN,0,5,63861,0,9,Apparel,2013-07-16 08:23:09,USER_Y,ClothinShoes & Accessories,Women's Clothing,Dresses,0,Ebay,USER_S,5,Occasional,2012-07-27,2012-07-21,10000000218,2012-07-27,63861,10000062,141.7,1
-ABIN,0,5,63861,0,9,Apparel,2013-07-16 08:23:09,USER_Y,ClothinShoes & Accessories,Women's Clothing,Dresses,0,Ebay,USER_S,5,Occasional,2012-07-29,2012-07-28,10000000219,2012-07-29,63861,10000063,1.88,1
-Others,0,11,63861,0,9,Apparel,2013-07-16 08:23:09,USER_Y,ClothinShoes & Accessories,Women's Clothing,Dresses,0,Ebay,USER_S,11,Large Merchant,2012-11-17,2012-11-17,10000000220,2012-11-17,63861,10000064,112.56,1
-Others,0,11,63861,0,9,Apparel,2013-07-16 08:23:09,USER_Y,ClothinShoes & Accessories,Women's Clothing,Dresses,0,Ebay,USER_S,11,Large Merchant,2012-10-29,2012-10-27,10000000221,2012-10-29,63861,10000065,94.45,1
-Auction,0,14,63861,0,9,Apparel,2013-07-16 08:23:09,USER_Y,ClothinShoes & Accessories,Women's Clothing,Dresses,0,Ebay,USER_S,14,Regular,2012-03-28,2012-03-24,10000000222,2012-03-28,63861,10000066,78.48,1
-ABIN,0,13,63861,0,9,Apparel,2013-07-16 08:23:09,USER_Y,ClothinShoes & Accessories,Women's Clothing,Dresses,0,Ebay,USER_S,13,Entrepreneur,2012-01-30,2012-01-27,10000000223,2012-01-30,63861,10000067,5.48,1
-Auction,3,14,63864,3,9,Clothing & Accessories,2012-06-19 21:15:09,USER_Y,ClotheShoes & Accessories,Women's Clothing,Skirts,3,\u82f1\u56fd,USER_S,14,Regular,2012-01-26,2012-01-20,10000000224,2012-01-26,63864,10000068,28.23,1
-Others,0,13,63889,0,9,Apparel,2012-09-11 20:26:04,USER_Y,ClothinShoes & Accessories,Women's Shoes,Mixed Items & Lots,0,Ebay,USER_S,13,Entrepreneur,2012-11-21,2012-11-17,10000000229,2012-11-21,63889,10000069,3.49,1
-FP-GTC,2,11,67698,2,4,Business (Office & Industrial),2012-09-11 20:26:04,USER_Y,Business & Industrial,Retail & Services,Jewellery Packaging & Display,2,Canada,USER_S,11,Large Merchant,2012-07-12,2012-07-07,10000000231,2012-07-12,67698,10000070,15.65,1
-FP-GTC,0,11,67698,0,4,Business (Office & Industrial),2012-09-11 20:26:04,USER_Y,Business & Industrial,Retail & Services,Jewelry Packaging & Display,0,Ebay,USER_S,11,Large Merchant,2012-06-07,2012-06-02,10000000232,2012-06-07,67698,10000071,5.48,1
-FP-GTC,0,11,67698,0,4,Business (Office & Industrial),2012-09-11 20:26:04,USER_Y,Business & Industrial,Retail & Services,Jewelry Packaging & Display,0,Ebay,USER_S,11,Large Merchant,2012-12-01,2012-12-01,10000000233,2012-12-01,67698,10000072,246,1
-FP-non GTC,0,13,73506,0,11,Collectibles,2012-09-11 20:26:04,USER_Y,Collectibles,Decorative Collectibles,Tea PotSets,0,Ebay,USER_S,13,Entrepreneur,2012-12-02,2012-12-01,10000000234,2012-12-02,73506,10000073,122.78,1
-FP-GTC,0,14,75665,0,16,Home Improvement,2012-09-11 20:26:04,USER_Y,Home & Garden,YarGarden & Outdoor Living,Gardening Supplies,0,Ebay,USER_S,14,Regular,2012-02-01,2012-01-27,10000000235,2012-02-01,75665,10000074,223.63,1
-ABIN,3,5,75708,3,28,Toys & Games,2012-05-01 08:57:38,USER_Y,Toys & Games,Action Figures,TMovies & Video Games,3,\u82f1\u56fd,USER_S,5,Occasional,2012-01-14,2012-01-13,10000000236,2012-01-14,75708,10000075,141.7,1
-FP-non GTC,0,11,80053,0,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,MonitorProjectors & Accs,Monitors,0,Ebay,USER_S,11,Large Merchant,2012-09-16,2012-09-15,10000000237,2012-09-16,80053,10000076,21.14,1
-FP-non GTC,0,11,80053,0,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,MonitorProjectors & Accs,Monitors,0,Ebay,USER_S,11,Large Merchant,2012-08-09,2012-08-04,10000000239,2012-08-09,80053,10000077,55.89,1
-FP-non GTC,0,11,80053,0,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,MonitorProjectors & Accs,Monitors,0,Ebay,USER_S,11,Large Merchant,2012-12-26,2012-12-22,10000000241,2012-12-26,80053,10000078,51.23,1
-Auction,0,14,80135,0,12,Computers,2013-07-16 08:23:09,USER_Y,Computers/Tablets & Networking,DriveStorage & Blank Media,Blank Media & Accessories,0,Ebay,USER_S,14,Regular,2012-12-31,2012-12-29,10000000242,2012-12-31,80135,10000079,21.72,1
-Auction,3,14,95672,3,9,Clothing & Accessories,2013-07-16 08:23:09,USER_Y,ClotheShoes & Accessories,Women's Shoes,Trainers,3,\u82f1\u56fd,USER_S,14,Regular,2012-03-22,2012-03-17,10000000243,2012-03-22,95672,10000080,204.28,1
-Others,0,11,95672,0,9,Apparel,2013-02-20 23:11:43,USER_Y,ClothinShoes & Accessories,Women's Shoes,Athletic,0,Ebay,USER_S,11,Large Merchant,2012-12-25,2012-12-22,10000000244,2012-12-25,95672,10000081,21.14,1
-Others,0,5,100847,0,3,Books,2008-06-03 13:36:00,USER_Y,Half Books,Half Books,Half Books,0,Ebay,USER_S,5,Occasional,2012-01-15,2012-01-13,10000000245,2012-01-15,100847,10000082,204.28,1
-Others,0,5,100847,0,3,Books,2008-06-03 13:36:00,USER_Y,Half Books,Half Books,Half Books,0,Ebay,USER_S,5,Occasional,2012-05-27,2012-05-26,10000000248,2012-05-27,100847,10000083,122.78,1
-ABIN,3,14,139973,3,32,PC & Video Gaming,2012-09-11 20:26:04,USER_Y,Video Games & Consoles,Games,Games,3,\u82f1\u56fd,USER_S,14,Regular,2012-01-11,2012-01-06,10000000249,2012-01-11,139973,10000084,94.45,1
-ABIN,0,11,139973,0,32,Video Games,2012-06-19 21:15:09,USER_Y,Video Games & Consoles,Video Games,Video Games,0,Ebay,USER_S,11,Large Merchant,2012-02-04,2012-02-03,10000000250,2012-02-04,139973,10000085,86.58,1
-Auction,3,14,150047,3,15,Hobbies & Crafts,2012-06-19 21:15:09,USER_Y,Crafts,Jewellery Making,Findings,3,\u82f1\u56fd,USER_S,14,Regular,2012-12-15,2012-12-15,10000000251,2012-12-15,150047,10000086,56.36,1
-Auction,3,14,150047,3,15,Hobbies & Crafts,2012-06-19 21:15:09,USER_Y,Crafts,Jewellery Making,Findings,3,\u82f1\u56fd,USER_S,14,Regular,2012-06-30,2012-06-30,10000000252,2012-06-30,150047,10000087,290.72,1
-FP-GTC,0,13,155226,0,9,Apparel,2012-09-11 20:26:04,USER_Y,ClothinShoes & Accessories,Women's Clothing,Sweats & Hoodies,0,Ebay,USER_S,13,Entrepreneur,2012-12-16,2012-12-15,10000000253,2012-12-16,155226,10000088,60.37,1
-FP-GTC,0,13,155226,0,9,Apparel,2012-09-11 20:26:04,USER_Y,ClothinShoes & Accessories,Women's Clothing,Sweats & Hoodies,0,Ebay,USER_S,13,Entrepreneur,2012-11-11,2012-11-10,10000000254,2012-11-11,155226,10000089,112.56,1
-FP-GTC,0,13,156356,0,11,Collectibles,2008-06-03 13:36:00,USER_Y,Collectibles,Postcards,BuildingArchitecture,0,Ebay,USER_S,13,Entrepreneur,2012-10-08,2012-10-06,10000000256,2012-10-08,156356,10000090,265.56,1
-FP-GTC,0,11,158798,0,28,Toys,2008-09-09 22:08:47,USER_Y,Toys & Hobbies,Vintage & Antique Toys,Spinning Tops,0,Ebay,USER_S,11,Large Merchant,2012-04-26,2012-04-21,10000000257,2012-04-26,158798,10000091,35.72,1
-FP-non GTC,0,13,165888,0,17,JewelrGemWatches,2009-01-12 07:05:17,USER_Y,Jewelry & Watches,Vintage & Antique Jewelry,Costume,0,Ebay,USER_S,13,Entrepreneur,2012-10-06,2012-10-06,10000000258,2012-10-06,165888,10000092,92.98,1
-Auction,3,11,170083,3,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,Computer Components & Parts,Memory (RAM),3,\u82f1\u56fd,USER_S,11,Large Merchant,2012-12-28,2012-12-22,10000000259,2012-12-28,170083,10000093,28.23,1
-Auction,3,11,170083,3,12,Computers,2012-06-19 21:15:09,USER_Y,Computers/Tablets & Networking,Computer Components & Parts,Memory (RAM),3,\u82f1\u56fd,USER_S,11,Large Merchant,2012-11-06,2012-11-03,10000000260,2012-11-06,170083,10000094,27.48,1
-Auction,3,14,175750,3,16,Home,2012-09-11 20:26:04,USER_Y,HomFurniture & DIY,Bedding,Blankets,3,\u82f1\u56fd,USER_S,14,Regular,2012-11-06,2012-11-03,10000000261,2012-11-06,175750,10000095,9.26,1
-Auction,3,14,175750,3,16,Home,2012-09-11 20:26:04,USER_Y,HomFurniture & DIY,Bedding,Blankets,3,\u82f1\u56fd,USER_S,14,Regular,2012-12-27,2012-12-22,10000000262,2012-12-27,175750,10000096,3.18,1
-FP-GTC,0,14,175750,0,36,Home & Living,2012-05-01 08:57:38,USER_Y,Home & Garden,Bedding,Blankets & Throws,0,Ebay,USER_S,14,Regular,2012-01-01,2012-01-01,10000000263,2012-01-01,175750,10000097,12.04,1
-Auction,3,13,175750,3,16,Home,2012-09-11 20:26:04,USER_Y,HomFurniture & DIY,Bedding,Blankets,3,\u82f1\u56fd,USER_S,13,Entrepreneur,2012-08-23,2012-08-18,10000000265,2012-08-23,175750,10000098,20.6,1
-Auction,3,13,175750,3,16,Home,2012-09-11 20:26:04,USER_Y,HomFurniture & DIY,Bedding,Blankets,3,\u82f1\u56fd,USER_S,13,Entrepreneur,2012-07-10,2012-07-07,10000000266,2012-07-10,175750,10000099,12.04,1
-Auction,3,14,175750,3,16,Home,2012-09-11 20:26:04,USER_Y,HomFurniture & DIY,Bedding,Blankets,3,\u82f1\u56fd,USER_S,14,Regular,2012-08-10,2012-08-04,10000000267,2012-08-10,175750,10000100,4.13,1
-Auction,3,14,175750,3,16,Home,2012-09-11 20:26:04,USER_Y,HomFurniture & DIY,Bedding,Blankets,3,\u82f1\u56fd,USER_S,14,Regular,2012-07-19,2012-07-14,10000000268,2012-07-19,175750,10000201,73.26,1
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/kylin/blob/f0fcbc06/examples/test_case_data/localmeta/table/DEFAULT.TEST_KYLIN_FACT.json
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/table/DEFAULT.TEST_KYLIN_FACT.json b/examples/test_case_data/localmeta/table/DEFAULT.TEST_KYLIN_FACT.json
index fdfb322..37d8e56 100644
--- a/examples/test_case_data/localmeta/table/DEFAULT.TEST_KYLIN_FACT.json
+++ b/examples/test_case_data/localmeta/table/DEFAULT.TEST_KYLIN_FACT.json
@@ -1,19 +1,22 @@
 {
- 
   "uuid" : "e286e39e-40d7-44c2-8fa2-41b365522771",
   "name" : "TEST_KYLIN_FACT",
+  "data_gen" : "1",
   "columns" : [ {
     "id" : "1",
     "name" : "TRANS_ID",
-    "datatype" : "bigint"
+    "datatype" : "bigint",
+    "data_gen" : "ID"
   }, {
     "id" : "2",
     "name" : "CAL_DT",
-    "datatype" : "date"
+    "datatype" : "date",
+    "data_gen" : "FK,order,null"
   }, {
     "id" : "3",
     "name" : "LSTG_FORMAT_NAME",
-    "datatype" : "string"
+    "datatype" : "string",
+    "data_gen" : "FP-GTC|FP-non GTC|ABIN|Auction|Others,null"
   }, {
     "id" : "4",
     "name" : "LEAF_CATEG_ID",
@@ -25,31 +28,38 @@
   }, {
     "id" : "6",
     "name" : "SLR_SEGMENT_CD",
-    "datatype" : "smallint"
+    "datatype" : "smallint",
+    "data_gen" : "FK,null"
   }, {
     "id" : "7",
     "name" : "PRICE",
-    "datatype" : "decimal"
+    "datatype" : "decimal",
+    "data_gen" : "RAND|.##|-100|1000"
   }, {
     "id" : "8",
     "name" : "ITEM_COUNT",
-    "datatype" : "int"
+    "datatype" : "int",
+    "data_gen" : "RAND"
   }, {
     "id" : "9",
     "name" : "SELLER_ID",
-    "datatype" : "bigint"
+    "datatype" : "bigint",
+    "data_gen" : "RAND||10000000|10001000"
   }, {
     "id" : "10",
     "name" : "USER_ID",
-    "datatype" : "varchar(32)"
+    "datatype" : "varchar(32)",
+    "data_gen" : "RAND,order"
   }, {
     "id" : "11",
     "name" : "BUYER_COUNTRY",
-    "datatype" : "string"
+    "datatype" : "string",
+    "data_gen" : "CN|DE|FR|JP|UK|US"
   }, {
     "id" : "12",
     "name" : "SELLER_COUNTRY",
-    "datatype" : "string"
+    "datatype" : "string",
+    "data_gen" : "CN|DE|FR|JP|UK|US"
   } ],
   "database" : "DEFAULT",
   "last_modified" : 0


[3/4] kylin git commit: KYLIN-2283 New datagen done, UT pass, pending replace CI

Posted by li...@apache.org.
KYLIN-2283 New datagen done, UT pass, pending replace CI


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/f0fcbc06
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/f0fcbc06
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/f0fcbc06

Branch: refs/heads/KYLIN-2283
Commit: f0fcbc0653a68300da9efb57425bd46850ae14e3
Parents: d79d937
Author: Li Yang <li...@apache.org>
Authored: Thu Dec 15 18:51:00 2016 +0800
Committer: Yang Li <li...@apache.org>
Committed: Sat Dec 17 07:50:53 2016 +0800

----------------------------------------------------------------------
 .../apache/kylin/metadata/model/ColumnDesc.java |   8 +
 .../apache/kylin/metadata/model/TableDesc.java  |   9 +
 .../kylin/source/datagen/ColumnGenConfig.java   | 105 +++++
 .../kylin/source/datagen/ColumnGenerator.java   | 347 ++++++++++++++++
 .../source/datagen/ModelDataGenerator.java      | 193 +++++++++
 .../kylin/source/datagen/TableGenConfig.java    |  44 ++
 .../org/apache/kylin/source/datagen/Util.java   |  73 ++++
 .../topn/TopNCounterSerializerTest.java         |  76 ----
 .../measure/topn/TopNCounterSerializerTest.java |  76 ++++
 .../kylin/source/datagen/DataGenTest.java       |  52 +++
 .../localmeta/data/flatten_data_for_ii.csv      | 402 -------------------
 .../table/DEFAULT.TEST_KYLIN_FACT.json          |  32 +-
 12 files changed, 928 insertions(+), 489 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/f0fcbc06/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
index 2da1f5e..7105ede 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
@@ -45,6 +45,10 @@ public class ColumnDesc implements Serializable {
     @JsonInclude(JsonInclude.Include.NON_NULL)
     private String comment;
 
+    @JsonProperty("data_gen")
+    @JsonInclude(JsonInclude.Include.NON_NULL)
+    private String dataGen;
+
     // parsed from data type
     private DataType type;
     private DataType upgradedType;
@@ -148,6 +152,10 @@ public class ColumnDesc implements Serializable {
     public void setNullable(boolean nullable) {
         this.isNullable = nullable;
     }
+    
+    public String getDataGen() {
+        return dataGen;
+    }
 
     public void init(TableDesc table) {
         this.table = table;

http://git-wip-us.apache.org/repos/asf/kylin/blob/f0fcbc06/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java
index ab8c465..e845da1 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java
@@ -26,6 +26,7 @@ import org.apache.kylin.common.persistence.RootPersistentEntity;
 import org.apache.kylin.common.util.StringSplitter;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
 import com.fasterxml.jackson.annotation.JsonProperty;
 
@@ -47,6 +48,10 @@ public class TableDesc extends RootPersistentEntity implements ISourceAware {
     private int sourceType = ISourceAware.ID_HIVE;
     @JsonProperty("table_type")
     private String tableType;
+    
+    @JsonProperty("data_gen")
+    @JsonInclude(JsonInclude.Include.NON_NULL)
+    private String dataGen;
 
     private DatabaseDesc database = new DatabaseDesc();
 
@@ -160,6 +165,10 @@ public class TableDesc extends RootPersistentEntity implements ISourceAware {
         return getMaxColumnIndex() + 1;
     }
 
+    public String getDataGen() {
+        return dataGen;
+    }
+
     public void init() {
         if (name != null)
             name = name.toUpperCase();

http://git-wip-us.apache.org/repos/asf/kylin/blob/f0fcbc06/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java b/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java
new file mode 100644
index 0000000..3d04cf2
--- /dev/null
+++ b/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenConfig.java
@@ -0,0 +1,105 @@
+/*
+ * 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.source.datagen;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.kylin.metadata.model.ColumnDesc;
+
+public class ColumnGenConfig {
+
+    public static final String ID = "ID";
+    public static final String RAND = "RAND";
+    public static final String $RANDOM = "${RANDOM}";
+    
+    // discrete values
+    boolean isDiscrete;
+    boolean isFK;
+    List<String> values;
+    
+    // random
+    boolean isRandom;
+    String randFormat;
+    int randStart;
+    int randEnd;
+    
+    // ID
+    boolean isID;
+    int idStart;
+    
+    // general
+    int cardinality;
+    boolean genNull;
+    double genNullPct;
+    boolean order;
+    
+    public ColumnGenConfig(ColumnDesc col, ModelDataGenerator modelGen) throws IOException {
+        init(col, modelGen);
+    }
+
+    private void init(ColumnDesc col, ModelDataGenerator modelGen) throws IOException {
+        
+        Map<String, String> config = Util.parseEqualCommaPairs(col.getDataGen(), "values");
+
+        values = Arrays.asList(Util.parseString(config, "values", "").split("[|]"));
+        
+        List<String> pkValues = modelGen.getPkValuesIfIsFk(col);
+        
+        if (pkValues != null) {
+            isFK = true;
+            values = pkValues;
+        } else if (ID.equals(values.get(0))) {
+            isID = true;
+            idStart = (values.size() > 1) ? Integer.parseInt(values.get(1)) : 0;
+        } else if (RAND.equals(values.get(0)) || values.get(0).isEmpty()) {
+            isRandom = true;
+            randFormat = (values.size() > 1) ? values.get(1) : "";
+            randStart = (values.size() > 2) ? Integer.parseInt(values.get(2)) : 0;
+            randEnd = (values.size() > 3) ? Integer.parseInt(values.get(3)) : 0;
+        } else {
+            isDiscrete = true;
+        }
+        
+        cardinality = Util.parseInt(config, "card", guessCardinality(col.getName()));
+        genNull = Util.parseBoolean(config, "null", guessGenNull(col.getName()));
+        genNullPct = Util.parseDouble(config, "nullpct", 0.01);
+        order = Util.parseBoolean(config, "order", false);
+    }
+
+    private int guessCardinality(String col) {
+        for (String s : col.split("_")) {
+            if (s.startsWith("C")) {
+                try {
+                    return Integer.parseInt(s.substring(1));
+                } catch (Exception ex) {
+                    // ok
+                }
+            }
+        }
+        return 0;
+    }
+
+    private boolean guessGenNull(String col) {
+        return col.contains("_NULL");
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/kylin/blob/f0fcbc06/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenerator.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenerator.java b/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenerator.java
new file mode 100644
index 0000000..fb7ec36
--- /dev/null
+++ b/core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenerator.java
@@ -0,0 +1,347 @@
+/*
+ * 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.source.datagen;
+
+import java.io.IOException;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Random;
+import java.util.TreeSet;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.kylin.common.util.DateFormat;
+import org.apache.kylin.common.util.StringUtil;
+import org.apache.kylin.metadata.datatype.DataType;
+import org.apache.kylin.metadata.model.ColumnDesc;
+
+import com.google.common.base.Preconditions;
+
+public class ColumnGenerator {
+
+    final private ColumnGenConfig conf;
+    final private ColumnDesc targetCol;
+    final private int targetRows;
+
+    public ColumnGenerator(ColumnDesc col, int nRows, ModelDataGenerator modelGen) throws IOException {
+        this.conf = new ColumnGenConfig(col, modelGen);
+        this.targetCol = col;
+        this.targetRows = nRows;
+    }
+
+    public Iterator<String> generate(long seed) {
+        Base result;
+        if (conf.isFK) {
+            result = new DiscreteGen(conf.values, seed);
+        } else if (conf.isID) {
+            result = new IDGen(conf.idStart);
+        } else if (conf.isRandom) {
+            result = new RandomGen(targetCol, conf.randFormat, conf.randStart, conf.randEnd, conf.cardinality);
+        } else {
+            result = new DiscreteGen(conf.values);
+        }
+
+        if (conf.cardinality > 0) {
+            result = new CardinalityFilter(result, conf.cardinality);
+        }
+
+        if (conf.genNull) {
+            result = new AddNullFilter(result, conf.genNullPct);
+        }
+
+        if (conf.order) {
+            result = new OrderFilter(result, targetRows);
+        }
+
+        return result;
+    }
+
+    abstract public static class Base implements Iterator<String> {
+        @Override
+        public void remove() {
+            throw new UnsupportedOperationException();
+        }
+    }
+
+    private static class RandomGen extends Base {
+
+        private DataType type;
+        private String format;
+        private int randStart;
+        private int randEnd;
+        private Random rand;
+
+        public RandomGen(ColumnDesc col, String format, int randStart, int randEnd, int cardinality) {
+            this.type = col.getType();
+
+            if (type.isStringFamily()) {
+                // string
+                if (StringUtils.isBlank(format)) {
+                    String name = col.getName();
+                    format = name.substring(0, Math.min(4, name.length())) + ColumnGenConfig.$RANDOM;
+                }
+                Preconditions.checkArgument(format.contains(ColumnGenConfig.$RANDOM));
+                initNumberRange(randStart, randEnd, cardinality);
+            } else if (type.isTimeFamily()) {
+                // time
+                format = StringUtil.noBlank(format, DateFormat.DEFAULT_DATETIME_PATTERN_WITHOUT_MILLISECONDS);
+                initDateTimeRange(randStart, randEnd, 0);
+            } else if (type.isDateTimeFamily()) {
+                // date
+                format = StringUtil.noBlank(format, DateFormat.DEFAULT_DATE_PATTERN);
+                initDateTimeRange(randStart, randEnd, cardinality);
+            } else if (type.isIntegerFamily()) {
+                // integer
+                initNumberRange(randStart, randEnd, cardinality);
+                format = StringUtil.noBlank(format, "#");
+            } else if (type.isNumberFamily()) {
+                // double
+                initNumberRange(randStart, randEnd, 0);
+                format = StringUtil.noBlank(format, ".##");
+            } else {
+                throw new IllegalArgumentException();
+            }
+
+            this.format = format;
+            this.rand = new Random();
+        }
+
+        private void initDateTimeRange(int randStart, int randEnd, int days) {
+            if (randStart == 0 && randEnd == 0) {
+                randStart = 2010;
+                randEnd = 2015;
+            }
+            randEnd = Math.max(randEnd, randStart + (days / 365) + 1);
+
+            Preconditions.checkArgument(randStart < randEnd);
+            Preconditions.checkArgument((randEnd - randStart) * 365 >= days);
+
+            this.randStart = randStart;
+            this.randEnd = randEnd;
+        }
+
+        private void initNumberRange(int randStart, int randEnd, int cardinality) {
+            if (randStart == 0 && randEnd == 0) {
+                randStart = 0;
+                randEnd = 1000;
+            }
+            randEnd = Math.max(randEnd, randStart + cardinality);
+
+            Preconditions.checkArgument(randStart < randEnd);
+            Preconditions.checkArgument(randEnd - randStart >= cardinality);
+
+            this.randStart = randStart;
+            this.randEnd = randEnd;
+        }
+
+        @Override
+        public boolean hasNext() {
+            return true;
+        }
+
+        @Override
+        public String next() {
+            if (type.isStringFamily()) {
+                // string
+                return format.replace(ColumnGenConfig.$RANDOM, "" + randomInt());
+            } else if (type.isTimeFamily()) {
+                // time
+                return DateFormat.formatToTimeStr(randomMillis(), format);
+            } else if (type.isDateTimeFamily()) {
+                // date
+                return DateFormat.formatToDateStr(randomMillis(), format);
+            } else if (type.isIntegerFamily()) {
+                // integer
+                return formatNumber(randomInt());
+            } else if (type.isNumberFamily()) {
+                // double
+                return formatNumber(randomDouble());
+            } else {
+                throw new IllegalStateException();
+            }
+        }
+
+        private String formatNumber(double i) {
+            return new DecimalFormat(format).format(i);
+        }
+
+        private int randomInt() {
+            return randStart + rand.nextInt(randEnd - randStart);
+        }
+
+        private double randomDouble() {
+            return randomInt() + rand.nextDouble();
+        }
+
+        private long randomMillis() {
+            int secondsInYear = 3600 * 24 * 365;
+            long year = randStart + rand.nextInt(randEnd - randStart) - 1970;
+            long second = year * secondsInYear + rand.nextInt(secondsInYear);
+            return second * 1000;
+        }
+
+        @Override
+        public void remove() {
+            throw new UnsupportedOperationException();
+        }
+
+    }
+
+    private static class IDGen extends Base {
+
+        int next;
+
+        public IDGen(int start) {
+            next = start;
+        }
+
+        @Override
+        public boolean hasNext() {
+            return true;
+        }
+
+        @Override
+        public String next() {
+            return "" + (next++);
+        }
+    }
+
+    private static class DiscreteGen extends Base {
+
+        private List<String> values;
+        private Random rand;
+
+        public DiscreteGen(List<String> values) {
+            this.values = values;
+            this.rand = new Random();
+        }
+
+        public DiscreteGen(List<String> values, long seed) {
+            this.values = values;
+            this.rand = new Random(seed);
+        }
+
+        @Override
+        public boolean hasNext() {
+            return true;
+        }
+
+        @Override
+        public String next() {
+            if (values.isEmpty())
+                return null;
+            else
+                return values.get(rand.nextInt(values.size()));
+        }
+    }
+
+    private static class CardinalityFilter extends Base {
+
+        private Iterator<String> input;
+        private int card;
+        private TreeSet<String> cache;
+
+        public CardinalityFilter(Iterator<String> input, int card) {
+            assert card > 0;
+            this.input = input;
+            this.card = card;
+            this.cache = new TreeSet<String>();
+        }
+
+        @Override
+        public boolean hasNext() {
+            return input.hasNext();
+        }
+
+        @Override
+        public String next() {
+            String r = input.next();
+
+            if (cache.size() < card) {
+                cache.add(r);
+                return r;
+            }
+
+            r = cache.floor(r);
+            return r == null ? cache.first() : r;
+        }
+    }
+
+    private static class AddNullFilter extends Base {
+
+        private Iterator<String> input;
+        private double nullPct;
+        private Random rand;
+
+        public AddNullFilter(Iterator<String> input, double nullPct) {
+            this.input = input;
+            this.nullPct = nullPct;
+            this.rand = new Random();
+        }
+
+        @Override
+        public boolean hasNext() {
+            return true;
+        }
+
+        @Override
+        public String next() {
+            return rand.nextDouble() < nullPct || !input.hasNext() ? null : input.next();
+        }
+    }
+
+    private static class OrderFilter extends Base {
+
+        private Iterator<String> iter;
+
+        public OrderFilter(Iterator<String> input, int targetRows) {
+            ArrayList<String> cache = new ArrayList<>(targetRows);
+            for (int i = 0; i < targetRows; i++) {
+                cache.add(input.next());
+            }
+            Collections.sort(cache, new Comparator<String>() {
+                @Override
+                public int compare(String s1, String s2) {
+                    if (s1 == null) {
+                        return s2 == null ? 0 : -1;
+                    } else if (s2 == null) {
+                        return 1;
+                    } else {
+                        return s1.compareTo(s2);
+                    }
+                }
+            });
+
+            iter = cache.iterator();
+        }
+
+        @Override
+        public boolean hasNext() {
+            return iter.hasNext();
+        }
+
+        @Override
+        public String next() {
+            return iter.next();
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/kylin/blob/f0fcbc06/core-metadata/src/main/java/org/apache/kylin/source/datagen/ModelDataGenerator.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/source/datagen/ModelDataGenerator.java b/core-metadata/src/main/java/org/apache/kylin/source/datagen/ModelDataGenerator.java
new file mode 100644
index 0000000..b85703c
--- /dev/null
+++ b/core-metadata/src/main/java/org/apache/kylin/source/datagen/ModelDataGenerator.java
@@ -0,0 +1,193 @@
+/*
+ * 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.source.datagen;
+
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.kylin.common.persistence.ResourceStore;
+import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.metadata.model.ColumnDesc;
+import org.apache.kylin.metadata.model.DataModelDesc;
+import org.apache.kylin.metadata.model.JoinTableDesc;
+import org.apache.kylin.metadata.model.TableDesc;
+import org.apache.kylin.metadata.model.TblColRef;
+
+import com.google.common.base.Preconditions;
+
+public class ModelDataGenerator {
+
+    final private DataModelDesc model;
+    final private int targetRows;
+    final private ResourceStore outputStore;
+    final private String outputPath;
+    
+    boolean outprint = false; // for debug
+    
+    public ModelDataGenerator(DataModelDesc model, int nRows) {
+        this(model, nRows, ResourceStore.getStore(model.getConfig()), "/data");
+    }
+    
+    public ModelDataGenerator(DataModelDesc model, int nRows, ResourceStore outputStore, String outputPath) {
+        this.model = model;
+        this.targetRows = nRows;
+        this.outputStore = outputStore;
+        this.outputPath = outputPath;
+    }
+    
+    public void generate() throws IOException {
+        Set<TableDesc> generated = new HashSet<>();
+        
+        JoinTableDesc[] allTables = model.getJoinTables();
+        for (int i = allTables.length - 1; i >= -1; i--) {
+            TableDesc table = (i == -1) ? model.getRootFactTable().getTableDesc() : allTables[i].getTableRef().getTableDesc();
+            if (generated.contains(table))
+                continue;
+            
+            boolean gen = generateTable(table);
+            
+            if (gen)
+                generated.add(table);
+        }
+        
+        generateDDL(generated);
+    }
+
+    private boolean generateTable(TableDesc table) throws IOException {
+        TableGenConfig config = new TableGenConfig(table);
+        if (!config.needGen)
+            return false;
+        
+        ByteArrayOutputStream bout = new ByteArrayOutputStream();
+        PrintWriter pout = new PrintWriter(new OutputStreamWriter(bout, "UTF-8"));
+        
+        generateTableInternal(table, config, pout);
+        
+        pout.close();
+        bout.close();
+        
+        byte[] content = bout.toByteArray();
+        if (outprint) {
+            System.out.println("Generated " + path(table));
+            System.out.println(Bytes.toString(content));
+        }
+        
+        outputStore.putResource(path(table), new ByteArrayInputStream(content), System.currentTimeMillis());
+        return true;
+    }
+
+    private void generateTableInternal(TableDesc table, TableGenConfig config, PrintWriter out) throws IOException {
+        ColumnDesc[] columns = table.getColumns();
+        ColumnGenerator[] colGens = new ColumnGenerator[columns.length];
+        Iterator<String>[] colIters = new Iterator[columns.length];
+        
+        // config.rows is either a multiplier (0,1] or an absolute row number
+        int tableRows = (int) ((config.rows > 1) ? config.rows : targetRows * config.rows);
+        tableRows = Math.max(1, tableRows);
+        
+        // same seed for all columns, to ensure composite FK columns generate correct pairs
+        long seed = System.currentTimeMillis();
+        
+        for (int i = 0; i < columns.length; i++) {
+            colGens[i] = new ColumnGenerator(columns[i], tableRows, this);
+            colIters[i] = colGens[i].generate(seed);
+        }
+        
+        for (int i = 0; i < tableRows; i++) {
+            for (int c = 0; c < columns.length; c++) {
+                if (c > 0)
+                    out.print(",");
+                
+                String v = colIters[c].next();
+                Preconditions.checkState(v == null || !v.contains(","));
+                
+                out.print(v == null ? "\\N" : v); // \N is null for hive
+            }
+            out.print("\n");
+        }
+    }
+
+    public List<String> getPkValuesIfIsFk(ColumnDesc fk) throws IOException {
+        JoinTableDesc[] joinTables = model.getJoinTables();
+        for (int i = 0; i < joinTables.length; i++) {
+            JoinTableDesc joinTable = joinTables[i];
+            ColumnDesc pk = findPk(joinTable, fk);
+            if (pk == null)
+                continue;
+            
+            List<String> pkValues = getPkValues(pk);
+            if (pkValues != null)
+                return pkValues;
+        }
+        return null;
+    }
+
+    private ColumnDesc findPk(JoinTableDesc joinTable, ColumnDesc fk) {
+        TblColRef[] fkCols = joinTable.getJoin().getForeignKeyColumns();
+        for (int i = 0; i < fkCols.length; i++) {
+            if (fkCols[i].getColumnDesc().equals(fk))
+                return joinTable.getJoin().getPrimaryKeyColumns()[i].getColumnDesc();
+        }
+        return null;
+    }
+    
+    private List<String> getPkValues(ColumnDesc pk) throws IOException {
+        String path = path(pk.getTable());
+        if (outputStore.exists(path) == false)
+            return null;
+
+        List<String> r = new ArrayList<>();
+        
+        BufferedReader in = new BufferedReader(new InputStreamReader(outputStore.getResource(path).inputStream, "UTF-8"));
+        try {
+            String line;
+            while ((line = in.readLine()) != null) {
+                r.add(line.split(",")[pk.getZeroBasedIndex()]);
+            }
+        } finally {
+            IOUtils.closeQuietly(in);
+        }
+        return r;
+    }
+
+    private void generateDDL(Set<TableDesc> generated) {
+        // TODO Auto-generated method stub
+        
+    }
+
+    private String path(TableDesc table) {
+        return outputPath + "/" + table.getIdentity() + ".csv";
+    }
+    
+    public DataModelDesc getModle() {
+        return model;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/kylin/blob/f0fcbc06/core-metadata/src/main/java/org/apache/kylin/source/datagen/TableGenConfig.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/source/datagen/TableGenConfig.java b/core-metadata/src/main/java/org/apache/kylin/source/datagen/TableGenConfig.java
new file mode 100644
index 0000000..1c00d3d
--- /dev/null
+++ b/core-metadata/src/main/java/org/apache/kylin/source/datagen/TableGenConfig.java
@@ -0,0 +1,44 @@
+/*
+ * 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.source.datagen;
+
+import java.util.Map;
+
+import org.apache.kylin.metadata.model.TableDesc;
+
+public class TableGenConfig {
+    
+    boolean needGen;
+    double rows;
+    
+    public TableGenConfig(TableDesc table) {
+        init(table.getDataGen());
+    }
+
+    private void init(String dataGen) {
+        if (dataGen == null)
+            return;
+        
+        needGen = true;
+        
+        Map<String, String> config = Util.parseEqualCommaPairs(dataGen, "rows");
+        rows = Util.parseDouble(config, "rows", 1.0);
+    }
+    
+}

http://git-wip-us.apache.org/repos/asf/kylin/blob/f0fcbc06/core-metadata/src/main/java/org/apache/kylin/source/datagen/Util.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/source/datagen/Util.java b/core-metadata/src/main/java/org/apache/kylin/source/datagen/Util.java
new file mode 100644
index 0000000..f2e8dbf
--- /dev/null
+++ b/core-metadata/src/main/java/org/apache/kylin/source/datagen/Util.java
@@ -0,0 +1,73 @@
+/*
+ * 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.source.datagen;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+public class Util {
+
+    static Map<String, String> parseEqualCommaPairs(String equalCommaPairs, String defaultKey) {
+        Map<String, String> r = new LinkedHashMap<>();
+        
+        if (equalCommaPairs == null)
+            return r;
+
+        for (String s : equalCommaPairs.split(",")) {
+            int equal = s.indexOf("=");
+            if (equal < 0) {
+                if (r.containsKey(defaultKey))
+                    r.put(s.trim(), "true");
+                else
+                    r.put(defaultKey, s.trim());
+            } else {
+                r.put(s.substring(0, equal).trim(), s.substring(equal + 1).trim());
+            }
+        }
+        return r;
+    }
+
+    static double parseDouble(Map<String, String> config, String key, double dft) {
+        if (config.containsKey(key))
+            return Double.parseDouble(config.get(key));
+        else
+            return dft;
+    }
+
+    static boolean parseBoolean(Map<String, String> config, String key, boolean dft) {
+        if (config.containsKey(key))
+            return Boolean.parseBoolean(config.get(key));
+        else
+            return dft;
+    }
+
+    public static int parseInt(Map<String, String> config, String key, int dft) {
+        if (config.containsKey(key))
+            return Integer.parseInt(config.get(key));
+        else
+            return dft;
+    }
+
+    public static String parseString(Map<String, String> config, String key, String dft) {
+        if (config.containsKey(key))
+            return config.get(key);
+        else
+            return dft;
+    }
+}

http://git-wip-us.apache.org/repos/asf/kylin/blob/f0fcbc06/core-metadata/src/test/java/org/apache/kylin/aggregation/topn/TopNCounterSerializerTest.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/test/java/org/apache/kylin/aggregation/topn/TopNCounterSerializerTest.java b/core-metadata/src/test/java/org/apache/kylin/aggregation/topn/TopNCounterSerializerTest.java
deleted file mode 100644
index 1ce17fe..0000000
--- a/core-metadata/src/test/java/org/apache/kylin/aggregation/topn/TopNCounterSerializerTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * 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.aggregation.topn;
-
-import java.nio.ByteBuffer;
-
-import org.apache.kylin.common.util.ByteArray;
-import org.apache.kylin.common.util.Bytes;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-import org.apache.kylin.measure.topn.TopNCounter;
-import org.apache.kylin.measure.topn.TopNCounterSerializer;
-import org.apache.kylin.metadata.datatype.DataType;
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-public class TopNCounterSerializerTest extends LocalFileMetadataTestCase {
-
-    private static TopNCounterSerializer serializer;
-
-    @BeforeClass
-    public static void setUp() throws Exception {
-        staticCreateTestMetadata();
-
-        DataType.register("topn");
-        serializer = new TopNCounterSerializer(DataType.getType("topn(10)"));
-    }
-
-    @AfterClass
-    public static void after() throws Exception {
-        cleanAfterClass();
-    }
-
-    @Test
-    public void testSerialization() {
-        TopNCounter<ByteArray> vs = new TopNCounter<ByteArray>(50);
-        Integer[] stream = { 1, 1, 2, 9, 1, 2, 3, 7, 7, 1, 3, 1, 1 };
-        for (Integer i : stream) {
-            vs.offer(new ByteArray(Bytes.toBytes(i)));
-        }
-        vs.sortAndRetain();
-        ByteBuffer out = ByteBuffer.allocate(1024);
-        serializer.serialize(vs, out);
-
-        byte[] copyBytes = new byte[out.position()];
-        System.arraycopy(out.array(), 0, copyBytes, 0, out.position());
-
-        ByteBuffer in = ByteBuffer.wrap(copyBytes);
-        TopNCounter<ByteArray> vsNew = serializer.deserialize(in);
-
-        Assert.assertEquals(vs.toString(), vsNew.toString());
-
-    }
-
-    @Test
-    public void testValueOf() {
-        // FIXME need a good unit test for valueOf()
-    }
-}

http://git-wip-us.apache.org/repos/asf/kylin/blob/f0fcbc06/core-metadata/src/test/java/org/apache/kylin/measure/topn/TopNCounterSerializerTest.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/test/java/org/apache/kylin/measure/topn/TopNCounterSerializerTest.java b/core-metadata/src/test/java/org/apache/kylin/measure/topn/TopNCounterSerializerTest.java
new file mode 100644
index 0000000..2daf3b4
--- /dev/null
+++ b/core-metadata/src/test/java/org/apache/kylin/measure/topn/TopNCounterSerializerTest.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.measure.topn;
+
+import java.nio.ByteBuffer;
+
+import org.apache.kylin.common.util.ByteArray;
+import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.measure.topn.TopNCounter;
+import org.apache.kylin.measure.topn.TopNCounterSerializer;
+import org.apache.kylin.metadata.datatype.DataType;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class TopNCounterSerializerTest extends LocalFileMetadataTestCase {
+
+    private static TopNCounterSerializer serializer;
+
+    @BeforeClass
+    public static void setUp() throws Exception {
+        staticCreateTestMetadata();
+
+        DataType.register("topn");
+        serializer = new TopNCounterSerializer(DataType.getType("topn(10)"));
+    }
+
+    @AfterClass
+    public static void after() throws Exception {
+        cleanAfterClass();
+    }
+
+    @Test
+    public void testSerialization() {
+        TopNCounter<ByteArray> vs = new TopNCounter<ByteArray>(50);
+        Integer[] stream = { 1, 1, 2, 9, 1, 2, 3, 7, 7, 1, 3, 1, 1 };
+        for (Integer i : stream) {
+            vs.offer(new ByteArray(Bytes.toBytes(i)));
+        }
+        vs.sortAndRetain();
+        ByteBuffer out = ByteBuffer.allocate(1024);
+        serializer.serialize(vs, out);
+
+        byte[] copyBytes = new byte[out.position()];
+        System.arraycopy(out.array(), 0, copyBytes, 0, out.position());
+
+        ByteBuffer in = ByteBuffer.wrap(copyBytes);
+        TopNCounter<ByteArray> vsNew = serializer.deserialize(in);
+
+        Assert.assertEquals(vs.toString(), vsNew.toString());
+
+    }
+
+    @Test
+    public void testValueOf() {
+        // FIXME need a good unit test for valueOf()
+    }
+}

http://git-wip-us.apache.org/repos/asf/kylin/blob/f0fcbc06/core-metadata/src/test/java/org/apache/kylin/source/datagen/DataGenTest.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/test/java/org/apache/kylin/source/datagen/DataGenTest.java b/core-metadata/src/test/java/org/apache/kylin/source/datagen/DataGenTest.java
new file mode 100644
index 0000000..70aba04
--- /dev/null
+++ b/core-metadata/src/test/java/org/apache/kylin/source/datagen/DataGenTest.java
@@ -0,0 +1,52 @@
+/*
+ * 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.source.datagen;
+
+import java.io.IOException;
+
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.metadata.MetadataManager;
+import org.apache.kylin.metadata.model.DataModelDesc;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class DataGenTest extends LocalFileMetadataTestCase {
+
+    @Before
+    public void setUp() throws Exception {
+        this.createTestMetadata();
+    }
+
+    @After
+    public void after() throws Exception {
+        this.cleanupTestMetadata();
+    }
+
+    @Test
+    public void testBasics() throws IOException {
+        MetadataManager mgr = MetadataManager.getInstance(KylinConfig.getInstanceFromEnv());
+        DataModelDesc model = mgr.getDataModelDesc("test_kylin_inner_join_model_desc");
+        ModelDataGenerator gen = new ModelDataGenerator(model, 100);
+        gen.outprint = true;
+        
+        gen.generate();
+    }
+}