You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by lu...@apache.org on 2015/06/02 12:26:04 UTC

[10/49] incubator-kylin git commit: update website structure and content

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/_posts/How to/2014-10-24-How-to-Contribute.md
----------------------------------------------------------------------
diff --git a/docs/website/_posts/How to/2014-10-24-How-to-Contribute.md b/docs/website/_posts/How to/2014-10-24-How-to-Contribute.md
new file mode 100644
index 0000000..047f822
--- /dev/null
+++ b/docs/website/_posts/How to/2014-10-24-How-to-Contribute.md	
@@ -0,0 +1,52 @@
+---
+layout: post
+title:  "How to Contribute"
+date:   2014-10-24
+author: liyang-gmt8
+categories: howto
+---
+
+#### Setup Dev Env
+* Join [google group](https://groups.google.com/forum/#!forum/kylin-olap) for general discussion
+* Fork on [GitHub](https://github.com/KylinOLAP)
+* ...
+
+
+#### Making Changes
+* Raise an issue on GitHub, describe the feature/enhancement/bug
+* Discuss with others in google group or issue comments, make sure the proposed changes fit in with what others are doing and have planned for the project
+* Make changes in your fork
+* Write unit test if no existing cover your change
+* Push to GitHub under your fork
+
+
+#### Contribute The Work
+* Raise a pull request on GitHub, include both **code** and **test**, link with **related issue**
+* Committer will review in terms of correctness, performance, design, coding style, test coverage
+* Discuss and revise if necessary
+* Finally committer merge code into main branch
+
+
+#### Wish List
+
+###### Some potential work items
+* Query Engine
+  + Cache generated class, reduce delay into ms level and avoid full GC triggered by perm generation
+  + [Issue #14](https://github.com/KylinOLAP/Kylin/issues/14) Derive meaningful cost in OLAP relational operator
+  + [Issue #15](https://github.com/KylinOLAP/Kylin/issues/15) Implement multi-column distinct count
+* Metadata
+  + [Issue #7](https://github.com/KylinOLAP/Kylin/issues/7) Merge multiple hbase tables
+* Job Engine
+  + [Issue #16](https://github.com/KylinOLAP/Kylin/issues/16) Tune HDFS & HBase parameters
+  + [Issue #17](https://github.com/KylinOLAP/Kylin/issues/17) Increase HDFS block size 1GB or close
+  + Shell command to support kill operation
+  + Use DoubleDouble instead of BigDecimal during cube build
+  + Drop quartz dependency, assess the cost/benefit first
+  + Cardinality run as one step job, allows progress tracking
+* ODBC/JDBC
+  + Test Kylin remote JDBC with java report tools
+  + Implement ODBC async mode, fetching from Kylin and feeding to client in parallel
+* Benchmark
+  + [Issue #18](https://github.com/KylinOLAP/Kylin/issues/18) Benchmark on standard dataset
+
+

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/_posts/How to/2014-11-14-How to install kylin in your Hadoop cluster.md
----------------------------------------------------------------------
diff --git a/docs/website/_posts/How to/2014-11-14-How to install kylin in your Hadoop cluster.md b/docs/website/_posts/How to/2014-11-14-How to install kylin in your Hadoop cluster.md
new file mode 100644
index 0000000..30ef3a3
--- /dev/null
+++ b/docs/website/_posts/How to/2014-11-14-How to install kylin in your Hadoop cluster.md	
@@ -0,0 +1,54 @@
+---
+layout: post
+title:  "How to install kylin in your Hadoop cluster"
+date:   2014-11-14
+author: xfhap
+categories: howto
+---
+
+## 1 Environment
+We can open the Kylin’ code directory and read the pom.xml, and find some components version:
+
+### 1.1 Install hadoop cluster
+
+{% highlight Groff markup %}
+  <hadoop2.version>2.4.1</hadoop2.version>
+  <hbase-hadoop2.version>0.98.0-hadoop2</hbase-hadoop2.version>
+  <hive.version>0.13.0</hive.version> (ps: install mysql --use mysql to store metastore_db)
+{% endhighlight %}
+
+Attach:
+
+1) When you build the cube and get this error: java.net.ConnectException: to 0.0.0.0:10020 failed on connection exception, you can try to change this file.
+
+config ${hadoop install}/etc/hadoop/mapred-site.xml, and add this code:
+{% highlight Groff markup %}
+  <property>
+    <name>mapreduce.jobhistory.address</name>
+    <value>host:10020</value>
+  </property>
+{% endhighlight %}
+
+Execute this cmd after the configuration:
+$ mr-jobhistory-daemon.sh start historyserver
+
+2) The version of hadoop which Hbase used must be same as the hadoop cluster.
+
+For example:
+
+In Hbase0.98.0-hadoop2 use hadoop 2.2.0, if your hadoop cluster is 2.4.1, then you need to replace all the hadoop jars from 2.2.0 to 2.4.1.
+
+### 1.2	Install other components
+
+Command hadoop, hive, hbase is workable on your hadoop cluster, this step can read this link [https://github.com/KylinOLAP/Kylin/wiki/On-Hadoop-CLI-installation](https://github.com/KylinOLAP/Kylin/wiki/On-Hadoop-CLI-installation)
+{% highlight Groff markup %}
+  <javaVersion>1.7</javaVersion>
+  Maven
+  Git
+  Tomcat (CATALINA_HOME being set)
+  Npm
+{% endhighlight %}
+
+## 2 Install Kylin
+
+### 2.1	Run the deploy.sh

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/_posts/How to/2014-12-09-New-meta-data-model-structure.md
----------------------------------------------------------------------
diff --git a/docs/website/_posts/How to/2014-12-09-New-meta-data-model-structure.md b/docs/website/_posts/How to/2014-12-09-New-meta-data-model-structure.md
new file mode 100644
index 0000000..8dc0e86
--- /dev/null
+++ b/docs/website/_posts/How to/2014-12-09-New-meta-data-model-structure.md	
@@ -0,0 +1,31 @@
+---
+layout: post
+title:  "New meta data model structure"
+date:   2014-12-09
+author: shaofengshi
+categories: howto
+---
+
+Kylin is doing a round code refactor which will introduce the following two changes on meta data:
+
+* Abstract a "model_desc" layer from "cube_desc"
+
+Before define a cube, user will need firstly define a model ("model_desc"); The model defines which is the fact table, which are lookup tables and how they be joined;
+
+With the model be defined, when user define a cube ("cube_desc"), he/she only need to specify the table/column name for a dimension, as the join conditions have already been defined;
+
+This abstraction is to extend the meta data to fulfill non-cube queries (coming soon);
+
+* Support data tables from multiple hive databases;
+
+User has the case that tables are from multiple hive database, and the table name might be the same; To support this case Kylin will use the database name + table name as the unique name for tables; And user need to specify the database name (if it is not "default") in SQL when query Kylin. 
+
+Here is a sample; the fact table "test_kylin_fact" is from default hive database, you don't need to specify the db name; while lookup table is from "edw", you need use "edw.test_cal_dt" in the query:
+
+{% highlight Groff markup %}
+select test_cal_dt.Week_Beg_Dt, sum(price) as c1, count(1) as c2 
+ from test_kylin_fact
+ inner JOIN edw.test_cal_dt as test_cal_dt
+ ON test_kylin_fact.cal_dt = test_cal_dt.cal_dt 
+ where test_kylin_fact.lstg_format_name='ABIN' 
+{% endhighlight %}

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/_posts/How to/2015-01-04-Run-Kylin-test-case-with-HBase-Mini-Cluster.md
----------------------------------------------------------------------
diff --git a/docs/website/_posts/How to/2015-01-04-Run-Kylin-test-case-with-HBase-Mini-Cluster.md b/docs/website/_posts/How to/2015-01-04-Run-Kylin-test-case-with-HBase-Mini-Cluster.md
new file mode 100644
index 0000000..33ad1b7
--- /dev/null
+++ b/docs/website/_posts/How to/2015-01-04-Run-Kylin-test-case-with-HBase-Mini-Cluster.md	
@@ -0,0 +1,23 @@
+---
+layout: post
+title:  "Run Kylin test case with HBase Mini Cluster"
+date:   2015-01-04
+author: shaofengshi
+categories: howto
+---
+
+## Run test case with HBase Mini Cluster
+
+Kylin is moving as many as possible unit test cases from sandbox to HBase mini cluster, so that user can run tests easily in local without a hadoop sandbox; Two maven profiles are created in the root pom.xml, "default" and "sandbox"; The default profile will startup a HBase Mini Cluster to prepare the test data and run the unit tests (the test cases that are not supported by Mini cluster have been added in the "exclude" list); If you want to keep using Sandbox to run test, just run:
+mvn test -P sandbox
+
+
+### When use the "default" profile, Kylin will:
+
+* 	Startup a HBase minicluster and update KylinConfig with the dynamic HBase configurations;
+* 	Create Kylin metadata tables and import six example cube tables;
+* 	Import the hbase data from a tar ball from local: examples/test_case_data/minicluster/hbase-export.tar.gz (the hbase-export.tar.gz will be updated on complete of running BuildCubeWithEngineTest)
+* 	After all test cases be completed, shutdown minicluster and cleanup KylinConfig cache;
+
+### To ensure Mini cluster can run successfully, you need:
+* 	Make sure JAVA_HOME is properly set; 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/_posts/How to/2015-03-03-How-to-consume-Kylin-REST-API-in-javascript.md
----------------------------------------------------------------------
diff --git a/docs/website/_posts/How to/2015-03-03-How-to-consume-Kylin-REST-API-in-javascript.md b/docs/website/_posts/How to/2015-03-03-How-to-consume-Kylin-REST-API-in-javascript.md
new file mode 100644
index 0000000..1598945
--- /dev/null
+++ b/docs/website/_posts/How to/2015-03-03-How-to-consume-Kylin-REST-API-in-javascript.md	
@@ -0,0 +1,49 @@
+---
+layout: post
+title:  "How to consume Kylin REST API in javascript"
+date:   2015-03-03
+author: liyang-gmt8
+categories: howto
+---
+Kypin securicty authorization is based on basic access authorization, so when you want to use API in your javascript,you need to involve the authorization info in http headers.
+
+
+## Here is a demo show how to use Kylin Query API.
+{% highlight Groff markup %}
+$.ajaxSetup({
+      headers: { 'Authorization': "Basic eWFu**********X***ZA==", 'Content-Type': 'application/json;charset=utf-8' } // use your own authorization code here
+    });
+    var request = $.ajax({
+       url: "http://hostname/kylin/api/query",
+       type: "POST",
+       data: '{"sql":"select count(*) from SUMMARY;","offset":0,"limit":50000,"partial":true,"project":"test"}',
+       dataType: "json"
+    });
+    request.done(function( msg ) {
+       alert(msg);
+    }); 
+    request.fail(function( jqXHR, textStatus ) {
+       alert( "Request failed: " + textStatus );
+  });
+
+{% endhighlight %}
+
+
+For what is basic access authorization ,click here [http://en.wikipedia.org/wiki/Basic_access_authentication](http://en.wikipedia.org/wiki/Basic_access_authentication)
+
+## Keypoint:
+1. add basic access authorization info in heders.
+2. use right ajax type and right data synax
+
+How to generate your authorization code (download and import "jquery.base64.js" from [https://github.com/yckart/jquery.base64.js](https://github.com/yckart/jquery.base64.js))
+
+{% highlight Groff markup %}
+var authorizationCode = $.base64('encode', 'NT_USERNAME' + ":" + 'NT_PASSWORD');
+ 
+$.ajaxSetup({
+   headers: { 
+    'Authorization': "Basic " + authorizationCode, 
+    'Content-Type': 'application/json;charset=utf-8' 
+   }
+});
+{% endhighlight %}

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/_posts/How to/2015-03-05-Kylin-Metadata-Store.md
----------------------------------------------------------------------
diff --git a/docs/website/_posts/How to/2015-03-05-Kylin-Metadata-Store.md b/docs/website/_posts/How to/2015-03-05-Kylin-Metadata-Store.md
new file mode 100644
index 0000000..98525b0
--- /dev/null
+++ b/docs/website/_posts/How to/2015-03-05-Kylin-Metadata-Store.md	
@@ -0,0 +1,47 @@
+---
+layout: post
+title:  "Kylin Metadata Store"
+date:   2015-03-05
+author: hongbin ma
+categories: howto
+---
+
+Kylin organizes all of its metadata(including cube descriptions and instances, projects, inverted index description and instances, jobs, tables and dictionaries) as a hierarchy file system. However, Kylin uses hbase to store it, rather than normal file system. If you check your kylin configuration file(kylin.properties) you will find such a line:
+
+{% highlight Groff markup %}
+# The metadata store in hbase
+kylin.metadata.url=kylin_metadata_qa@hbase:sandbox.hortonworks.com:2181:/hbase-unsecure
+{% endhighlight %}
+
+
+This indicates that the metadata will be saved as a htable called `kylin_metadata_qa`. You can scan the htable in hbase shell to check it out.
+
+# Backup Metadata Store
+
+Sometimes you need to backup the Kylin's Metadata Store from hbase to your disk file system.
+In such cases, assuming you're on the hadoop CLI(or sandbox) where you deployed Kylin, you can use:
+
+{% highlight Groff markup %}
+mkdir ~/meta_dump
+
+hbase  org.apache.hadoop.util.RunJar  PATH_TO_KYLIN_JOB_JAR_FOLDER/kylin-job-x.x.x-SNAPSHOT-job.jar com.kylinolap.common.persistence.ResourceTool  copy PATH_TO_KYLIN_CONFIG/kylin.properties ~/meta_dump
+{% endhighlight %}
+
+to dump your metadata to your local folder ~/meta_dump.
+
+# Restore Metadata Store
+
+In case you find your metadata store messed up, and you want to restore to a previous backup:
+
+first clean up the metadata store:
+
+{% highlight Groff markup %}
+hbase  org.apache.hadoop.util.RunJar PATH_TO_KYLIN_JOB_JAR_FOLDER/kylin-job-x.x.x-SNAPSHOT-job.jar com.kylinolap.common.persistence.ResourceTool  reset 
+{% endhighlight %}
+
+then upload the backup metadata in ~/meta_dump to Kylin's metadata store:
+
+{% highlight Groff markup %}
+hbase  org.apache.hadoop.util.RunJar  PATH_TO_KYLIN_JOB_JAR_FOLDER/kylin-job-x.x.x-SNAPSHOT-job.jar com.kylinolap.common.persistence.ResourceTool  copy ~/meta_dump PATH_TO_KYLIN_CONFIG/kylin.properties
+{% endhighlight %}
+

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/_posts/How to/2015-03-18-How-to-use-kylin-remote-jdbc-driver.md
----------------------------------------------------------------------
diff --git a/docs/website/_posts/How to/2015-03-18-How-to-use-kylin-remote-jdbc-driver.md b/docs/website/_posts/How to/2015-03-18-How-to-use-kylin-remote-jdbc-driver.md
new file mode 100644
index 0000000..e58ff10
--- /dev/null
+++ b/docs/website/_posts/How to/2015-03-18-How-to-use-kylin-remote-jdbc-driver.md	
@@ -0,0 +1,93 @@
+---
+layout: post
+title:  "How to use kylin remote jdbc driver"
+date:   2015-03-18
+author: SHAOFENG SHI
+categories: howto
+---
+
+### Authentication
+
+###### Build on kylin authentication restful service. Supported parameters:
+* user : username 
+* password : password
+* ssl: true/false. Default be false; If true, all the services call will use https.
+
+### Connection URL format:
+{% highlight Groff markup %}
+jdbc:kylin://<hostname>:<port>/<kylin_project_name>
+{% endhighlight %}
+* If "ssl" = true, the "port" should be Kylin server's HTTPS port; 
+* If "port" is not specified, the driver will use default port: HTTP 80, HTTPS 443;
+* The "kylin_project_name" must be specified and user need ensure it exists in Kylin server;
+
+### 1. Query with Statement
+{% highlight Groff markup %}
+        Driver driver = (Driver) Class.forName("org.apache.kylin.jdbc.Driver").newInstance();
+
+        Properties info = new Properties();
+        info.put("user", "ADMIN");
+        info.put("password", "KYLIN");
+        Connection conn = driver.connect("jdbc:kylin://localhost:7070/kylin_project_name", info);
+        Statement state = conn.createStatement();
+        ResultSet resultSet = state.executeQuery("select * from test_table");
+
+        while (resultSet.next()) {
+            assertEquals("foo", resultSet.getString(1));
+            assertEquals("bar", resultSet.getString(2));
+            assertEquals("tool", resultSet.getString(3));
+        }
+{% endhighlight %}
+
+### 2. Query with PreparedStatement
+
+###### Supported prepared statement parameters:
+* setString
+* setInt
+* setShort
+* setLong
+* setFloat
+* setDouble
+* setBoolean
+* setByte
+* setDate
+* setTime
+* setTimestamp
+
+{% highlight Groff markup %}
+        Driver driver = (Driver) Class.forName("org.apache.kylin.jdbc.Driver").newInstance();
+        Properties info = new Properties();
+        info.put("user", "ADMIN");
+        info.put("password", "KYLIN");
+        Connection conn = driver.connect("jdbc:kylin://localhost:7070/kylin_project_name", info);
+        PreparedStatement state = conn.prepareStatement("select * from test_table where id=?");
+        state.setInt(1, 10);
+        ResultSet resultSet = state.executeQuery();
+
+        while (resultSet.next()) {
+            assertEquals("foo", resultSet.getString(1));
+            assertEquals("bar", resultSet.getString(2));
+            assertEquals("tool", resultSet.getString(3));
+        }
+{% endhighlight %}
+
+### 3. Get query result metadata
+Kylin jdbc driver supports metadata list methods:
+List catalog, schema, table and column with sql pattern filters(such as %).
+
+{% highlight Groff markup %}
+        Driver driver = (Driver) Class.forName("org.apache.kylin.jdbc.Driver").newInstance();
+        Properties info = new Properties();
+        info.put("user", "ADMIN");
+        info.put("password", "KYLIN");
+        Connection conn = driver.connect("jdbc:kylin://localhost:7070/kylin_project_name", info);
+        Statement state = conn.createStatement();
+        ResultSet resultSet = state.executeQuery("select * from test_table");
+
+        ResultSet tables = conn.getMetaData().getTables(null, null, "dummy", null);
+        while (tables.next()) {
+            for (int i = 0; i < 10; i++) {
+                assertEquals("dummy", tables.getString(i + 1));
+            }
+        }
+{% endhighlight %}

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/_posts/How to/2015-05-18-Export-Kylin-HBase-data.md
----------------------------------------------------------------------
diff --git a/docs/website/_posts/How to/2015-05-18-Export-Kylin-HBase-data.md b/docs/website/_posts/How to/2015-05-18-Export-Kylin-HBase-data.md
new file mode 100644
index 0000000..9237035
--- /dev/null
+++ b/docs/website/_posts/How to/2015-05-18-Export-Kylin-HBase-data.md	
@@ -0,0 +1,25 @@
+---
+layout: post
+title:  "Export Kylin HBase data"
+date:   2015-05-18
+author: SHAOFENG SHI
+categories: howto
+---
+
+Kylin persists all data (meta data and cube) in HBase; You may want to export the data sometimes for whatever purposes (backup, migration, troubleshotting etc); This page describes the steps to do this and also there is a Java app for you to do this easily;
+
+Steps:
+
+1. Cleanup unused cubes to save storage space (be cautious on production!): run the following command in hbase CLI: 
+{% highlight Groff markup %}
+hbase org.apache.hadoop.util.RunJar /${KYLIN_HOME}/lib/kylin-job-(version).jar org.apache.kylin.job.hadoop.cube.StorageCleanupJob --delete true
+{% endhighlight %}
+2. List all HBase tables, iterate and then export each Kylin table to HDFS; See [https://hbase.apache.org/book/ops_mgt.html#export](https://hbase.apache.org/book/ops_mgt.html#export)
+
+3. Copy the export folder from HDFS to local file system, and then archive it;
+
+4. (optional) Download the archive from Hadoop CLI to local;
+
+5. Cleanup the export folder from CLI HDFS and local file system;
+
+Kylin provide the "ExportHBaseData.java" (currently only exist in "minicluster" branch) for you to do the step 2-5 in one run; Please ensure the correct path of "kylin.properties" has been set in the sys env; This Java uses the sandbox config by default;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/_posts/Installation/2014-12-05-On-Hadoop-Kylin-installation-using-Docker.md
----------------------------------------------------------------------
diff --git a/docs/website/_posts/Installation/2014-12-05-On-Hadoop-Kylin-installation-using-Docker.md b/docs/website/_posts/Installation/2014-12-05-On-Hadoop-Kylin-installation-using-Docker.md
new file mode 100644
index 0000000..726c11f
--- /dev/null
+++ b/docs/website/_posts/Installation/2014-12-05-On-Hadoop-Kylin-installation-using-Docker.md
@@ -0,0 +1,44 @@
+---
+layout: post
+title:  "On Hadoop Kylin installation using Docker"
+date:   2014-12-05
+author: abansal
+categories: installation
+---
+
+With help of SequenceIQ, we have put together a fully automated method of creating a Kylin cluster (along with Hadoop, HBase and Hive). The only thing you will need to do is to pull the container from the official Docker repository by using the commands listed below:
+
+### Pre-Requisite
+
+1. Docker (If you don't have Docker installed, follow this [link](https://docs.docker.com/installation/#installation))
+2. Minimum RAM - 4Gb (We'll be running Kylin, Hadoop, HBase & Hive)
+
+### Installation
+{% highlight Groff markup %}
+docker pull sequenceiq/kylin
+{% endhighlight %}
+
+Once the container is pulled you are ready to start playing with Kylin. Get the following helper functions from our Kylin GitHub [repository](https://github.com/sequenceiq/docker-kylin/blob/master/ambari-functions) - _(make sure you source it)._
+
+{% highlight Groff markup %}
+ $ wget https://raw.githubusercontent.com/sequenceiq/docker-kylin/master/ambari-functions
+ $ source ambari-functions
+{% endhighlight %}
+{% highlight Groff markup %}
+ $ kylin-deploy-cluster 3
+{% endhighlight %}
+
+You can specify the number of nodes you'd like to have in your cluster (3 in this case). Once we installed all the necessary Hadoop
+services we'll build Kylin on top of it and then you can reach the UI on: 
+{% highlight Groff markup %}
+#Ambari Dashboard
+http://<container_ip>:8080
+{% endhighlight %}
+Use `admin/admin` to login. Make sure HBase is running. 
+
+{% highlight Groff markup %}
+#Kylin Dashboard
+http://<container_ip>:7070
+{% endhighlight %}
+The default credentials to login are: `ADMIN:KYLIN`. The cluster is pre-populated with sample data and is ready to build cubes as shown [here](https://github.com/KylinOLAP/Kylin/wiki/Kylin-Cube-Creation-Tutorial).
+  

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/_posts/Installation/2015-01-22-Advance-settings-of-Kylin-environment.md
----------------------------------------------------------------------
diff --git a/docs/website/_posts/Installation/2015-01-22-Advance-settings-of-Kylin-environment.md b/docs/website/_posts/Installation/2015-01-22-Advance-settings-of-Kylin-environment.md
new file mode 100644
index 0000000..0338b13
--- /dev/null
+++ b/docs/website/_posts/Installation/2015-01-22-Advance-settings-of-Kylin-environment.md
@@ -0,0 +1,37 @@
+---
+layout: post
+title:  "Advance settings of Kylin environment"
+date:   2015-01-22
+author: hongbin ma
+categories: installation
+---
+
+## Enabling LZO compression
+
+LZO compression can be leveraged to compress the output of MR jobs, as well as hbase table storage, reducing the storage overhead. By default we do not enable LZO compression in Kylin because hadoop sandbox venders tend to not include LZO in their distributions due to license(GPL) issues.
+
+To enable LZO in Kylin, there are three steps:
+
+### Make sure LZO is working in your environment
+
+we have a simple tool to test whether LZO is well installed and configured in your environment(we only test it on the hadoop CLI that you deployed Kylin), Just run
+
+{% highlight Groff markup %}
+hbase org.apache.hadoop.util.RunJar kylin-job-latest.jar com.kylinolap.job.tools.LZOSupportnessChecker
+{% endhighlight %}
+
+If the program prints "LZO supported by current env? true", you're good to go. Otherwise you'll need to first install LZO properly.
+
+### Modify kylin_job_conf.xml
+
+You'll need to stop Kylin first by running `./kylin.sh stop`, and then modify /etc/kylin/kylin_job_conf.xml by uncommenting some configuration entries related to LZO compression. 
+
+### export KYLIN_LD_LIBRARY_PATH to carry your native library paths
+
+Before running `./kylin.sh start` again, you'll need to export KYLIN_LD_LIBRARY_PATH to carry your LZO native library paths. If you are not sure where it is, you can simply find it in /tmp/kylin_retrieve.sh, Kylin retrieved this from hbase, normally this should work. Here's an example for hdp 2.1:
+
+{% highlight Groff markup %}
+export KYLIN_LD_LIBRARY_PATH=::/usr/lib/hadoop/lib/native/Linux-amd64-64:/usr/lib/hadoop/lib/native
+{% endhighlight %}
+
+After exporting, you need to run `./kylin.sh start` to start Kylin again. Now Kylin will use LZO to compress MR outputs and hbase tables.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/_posts/Installation/2015-01-22-Kylin-Manual-Installation-Guide.md
----------------------------------------------------------------------
diff --git a/docs/website/_posts/Installation/2015-01-22-Kylin-Manual-Installation-Guide.md b/docs/website/_posts/Installation/2015-01-22-Kylin-Manual-Installation-Guide.md
new file mode 100644
index 0000000..ae41465
--- /dev/null
+++ b/docs/website/_posts/Installation/2015-01-22-Kylin-Manual-Installation-Guide.md
@@ -0,0 +1,62 @@
+---
+layout: post
+title:  "Kylin Manual Installation Guide"
+date:   2015-01-22
+author: hongbin ma
+categories: installation
+---
+
+## INTRODUCTION
+
+In most cases our automated script [On-Hadoop-CLI-installation](https://github.com/KylinOLAP/Kylin/wiki/On-Hadoop-CLI-installation) can help you launch Kylin in your hadoop sandbox and even your hadoop cluster. However, in case something went wrong in the deploy script, this article comes as an reference guide to fix your issues.
+
+Basically this article explains every step in the automatic script. We assume that you are already very familiar with Hadoop operations on Linux. 
+
+## PREREQUISITES
+* Tomcat installed, with CATALINA_HOME exported. ([quick help](https://github.com/KylinOLAP/Kylin/wiki/On-Hadoop-CLI-installation#install-tomcat))
+* Maven installed, with `mvn` command accessible at shell. ([quick help](https://github.com/KylinOLAP/Kylin/wiki/On-Hadoop-CLI-installation#install-maven)) 
+* Npm installed, with command `npm` accessible at shell. ([quick help](https://github.com/KylinOLAP/Kylin/wiki/On-Hadoop-CLI-installation#install-npm))
+* Kylin git repo cloned to a folder later referenced as $KYLIN_HOME
+
+## STEPS
+
+### 1.Build kylin.war from source code
+
+We have provided a script( $KYLIN_HOME/package.sh ) to help you automate this step. The kylin.war composes of two parts: (Take a look at package.sh to better understand)
+
+* A REST server that accepts cube build requests, queries requests ,etc. This part is purely in Java, and is built by maven.
+* An angular-based web application, this is the real website users see, and it will call the REST APIs in the above REST server. This part is purely html+js, and is built by npm.
+
+Running package.sh will build both parts and combine them to a single kylin.war.
+
+### 2.Customize kylin configuration files 
+
+Kylin's configuration file includes a kylin.properties and a kylin_job_conf.xml for MR job settings. You can find a template for these two configuration files in $KYLIN_HOME/examples/test_case_data/sandbox/. They're almost ready to use, the only thing you need to do is copy them to a configuration folder(we suggest /etc/kylin, if you choose not to use it, you'll replace the "/etc/kylin" with yours in later occurrence) and replace every "sandbox" in kylin.properties with the real hostname of your server.
+
+When you find you cubes's expansion rate too large, you'll need to consider enabling LZO compression by modifying kylin_job_conf.xml, checkout [this chapter ](https://github.com/KylinOLAP/Kylin/wiki/Advance-settings-of-Kylin-environment#enabling-lzo-compression) to find how. For test cubes you can safely ignore this.
+
+### 3. Prepare tomcat
+* Copy $KYLIN_HOME/server/target/kylin.war to $CATALINA_HOME/webapps/, change kylin.war's mode to 644 in case tomcat have no access to it.
+* By default tomcat uses port 8080 as well as several other ports. However, these ports are already occupied in many hadoop sandboxes. For example, port 8080 is used by ambari on hortonworks sandbox. So you need to modify port if necessary. If you're not familiar with this, you can choose to overwrite $CATALINA_HOME/conf/server.xml with $KYLIN_HOME/deploy/server.xml. With our server.xml, kylin will run on port 7070.
+
+### 4. Prepare Jars
+
+There are two jars that Kylin will need to use, there two jars and configured in the default kylin.properties:
+
+####  kylin.job.jar=/tmp/kylin/kylin-job-latest.jar
+
+This is job jar that Kylin uses for MR jobs. You need to copy $KYLIN_HOME/job/target/kylin-job-latest.jar to /tmp/kylin/
+
+#### kylin.coprocessor.local.jar=/tmp/kylin/kylin-coprocessor-latest.jar
+
+This is a hbase coprocessor jar that Kylin will put on hbase. It is used for performance boosting. You need to copy $KYLIN_HOME/storage/target/kylin-coprocessor-latest.jar to /tmp/kylin/
+
+### 5. Start Kylin
+
+Start Kylin with
+
+`./kylin.sh start`
+
+and stop Kylin with
+
+`./Kylin.sh stop`

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/_posts/Installation/2015-02-15-Off-Hadoop-CLI-Installation-(Dev-Env-Setup).md
----------------------------------------------------------------------
diff --git a/docs/website/_posts/Installation/2015-02-15-Off-Hadoop-CLI-Installation-(Dev-Env-Setup).md b/docs/website/_posts/Installation/2015-02-15-Off-Hadoop-CLI-Installation-(Dev-Env-Setup).md
new file mode 100644
index 0000000..236c353
--- /dev/null
+++ b/docs/website/_posts/Installation/2015-02-15-Off-Hadoop-CLI-Installation-(Dev-Env-Setup).md
@@ -0,0 +1,96 @@
+---
+layout: post
+title:  "Off Hadoop CLI Installation (Dev Env Setup)"
+date:   2015-02-15
+author: SHAOFENG SHI
+categories: installation
+---
+
+Off-Hadoop-CLI installation is usually for **development use**.
+
+Developers want to run kylin test cases or applications at their development machine. The scenario is depicted at [https://github.com/KylinOLAP/Kylin#off-hadoop-cli-installation](https://github.com/KylinOLAP/Kylin#off-hadoop-cli-installation).
+
+
+By following this tutorial, you will be able to build kylin test cubes by running a specific test case, and you can further run other test cases against the cubes having been built.
+
+
+## Environment on the Hadoop CLI
+
+Off-Hadoop-CLI installation requires you having a hadoop CLI machine (or a hadoop sandbox) as well as your local develop machine. To make things easier we strongly recommend you starting with running Kylin on a hadoop sandbox, like <http://hortonworks.com/products/hortonworks-sandbox/>. In the following tutorial we'll go with **Hortonworks Sandbox 2.2**. 
+
+### Start Hadoop
+
+In Hortonworks sandbox, ambari helps to launch hadoop:
+
+{% highlight Groff markup %}
+	ambari-agent start
+	ambari-server start
+{% endhighlight %}
+	
+With both command successfully run you can go to ambari home page at <http://yoursandboxip:8080> (user:admin,password:admin) to check everything's status. By default ambari disables Hbase, you'll need manually start the `Hbase` service.
+
+For other hadoop distribution, basically start the hadoop cluster, make sure HDFS, YARN, Hive, HBase are running.
+
+
+## Environment on the dev machine
+
+
+### Install maven
+
+The latest maven can be found at <http://maven.apache.org/download.cgi>, we create a symbolic so that `mvn` can be run anywhere.
+
+{% highlight Groff markup %}
+	cd ~
+	wget http://xenia.sote.hu/ftp/mirrors/www.apache.org/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gz
+	tar -xzvf apache-maven-3.2.5-bin.tar.gz
+	ln -s /root/apache-maven-3.2.5/bin/mvn /usr/bin/mvn
+{% endhighlight %}
+
+### Compile
+
+First clone the Kylin project to your local:
+
+{% highlight Groff markup %}
+	git clone https://github.com/KylinOLAP/Kylin.git
+{% endhighlight %}
+	
+Install Kylin artifacts to the maven repo
+
+{% highlight Groff markup %}
+	mvn clean install -DskipTests
+{% endhighlight %}
+
+### Modify local configuration
+
+Local configuration must be modified to point to your hadoop sandbox (or CLI) machine. 
+
+* In **examples/test_case_data/sandbox/kylin.properties**
+   * Find `sandbox` and replace with your hadoop hosts (if you're using HDP sandbox, this can be skipped)
+   * Fine `kylin.job.run.as.remote.cmd` and change it to "true" (in code repository the default is false, which assume running it on hadoop CLI)
+   * Find `kylin.job.remote.cli.username` and `kylin.job.remote.cli.password`, fill in the user name and password used to login hadoop cluster for hadoop command execution; If you're using HDP sandbox, the default username is "root" and password is "hadoop".
+
+* In **examples/test_case_data/sandbox**
+   * For each configuration xml file, find all occurrence of `sandbox` and replace with your hadoop hosts; (if you're using HDP sandbox, this can be skipped)
+
+An alternative to the host replacement is updating your `hosts` file to resolve `sandbox` and `sandbox.hortonworks.com` to the IP of your sandbox machine.
+
+### Run unit tests
+
+Run a end-to-end cube building test
+ 
+{% highlight Groff markup %}
+	mvn test -Dtest=com.kylinolap.job.BuildCubeWithEngineTest -DfailIfNoTests=false
+{% endhighlight %}
+	
+Run other tests, the end-to-end cube building test is exclueded
+
+{% highlight Groff markup %}
+	mvn test
+{% endhighlight %}
+
+### Launch Kylin Web Server
+
+In your Eclipse IDE, launch `com.kylinolap.rest.DebugTomcat` with specifying VM arguments "-Dspring.profiles.active=sandbox". (By default Kylin server will listen on 7070 port; If you want to use another port, please specify it as a parameter when run `DebugTomcat)
+
+Check Kylin Web available at http://localhost:7070/kylin (user:ADMIN,password:KYLIN)
+

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/_posts/Installation/2015-03-13-On-Hadoop-CLI-installation.md
----------------------------------------------------------------------
diff --git a/docs/website/_posts/Installation/2015-03-13-On-Hadoop-CLI-installation.md b/docs/website/_posts/Installation/2015-03-13-On-Hadoop-CLI-installation.md
new file mode 100644
index 0000000..710301f
--- /dev/null
+++ b/docs/website/_posts/Installation/2015-03-13-On-Hadoop-CLI-installation.md
@@ -0,0 +1,149 @@
+---
+layout: post
+title:  "On Hadoop CLI installation"
+date:   2015-03-13
+author: Luke Han
+categories: installation
+---
+
+>For new users: Please go with v0.7.x, binary package and installation guide here: [http://kylin.incubator.apache.org/download/](http://kylin.incubator.apache.org/download/)
+> 
+> For Version: v0.6.6 only, tested: HDP 2.1/2.2 sandbox, HDP 2.1 Cluster
+
+
+On-Hadoop-CLI installation is for demo use, or for those who want to host their own web site to provide Kylin service. The scenario is depicted at <https://github.com/KylinOLAP/Kylin#on-hadoop-cli-installation>.
+
+Except for some prerequisite software installations, the core of Kylin installation is accomplished by running a single script. After running the script, you will be able to build sample cube and query the tables behind the cubes via a unified web interface.
+
+## Environment
+
+Running On-Hadoop-CLI installation requires you having access to a hadoop CLI, where you have full permissions to hdfs, hive, hbase and map-reduce. To make things easier we strongly recommend you starting with running Kylin on a hadoop sandbox, like <http://hortonworks.com/products/hortonworks-sandbox/>. In the following tutorial we'll go with **Hortonworks Sandbox 2.1/2.2** and **Cloudera QuickStart VM 5.1/5.2**. 
+
+To avoid permission issue, we suggest you using `root` account. The password for **Hortonworks Sandbox 2.1/2.2** is `hadoop` , for **Cloudera QuickStart VM 5.1/5.2** is `cloudera`.
+
+For account other than `root`, please make sure your account has privileges to access relative folders and files. For example, if you are using `cloudera` account in Cloudera VM, please run follow command first before run Kylin deploy script:
+
+{% highlight Groff markup %}
+sudo mkdir /etc/kylin
+sudo chmod -R 777 /etc/kylin
+{% endhighlight %}
+
+We also suggest you using bridged mode instead of NAT mode in your virtual box settings. Bridged mode will assign your sandbox an independent IP so that you can avoid issues like https://github.com/KylinOLAP/Kylin/issues/12
+
+### Start Hadoop
+
+For Hortonworks, ambari helps to launch hadoop:
+
+{% highlight Groff markup %}
+ambari-agent start
+ambari-server start
+{% endhighlight %}
+	
+With both command successfully run you can go to ambari homepage at <http://your_sandbox_ip:8080> (user:admin,password:admin) to check everything's status. **By default hortonworks ambari disables Hbase, you'll need manually start the `Hbase` service at ambari homepage.**
+
+![start hbase in ambari]( /images/On-Hadoop-CLI-installation/starthbase.png)
+
+For Cloudera, you can skip this step since they're by default activated.
+
+### Install tomcat
+
+The latest tomcat can be found at <http://tomcat.apache.org/download-70.cgi>, we need the variable `CATALINA_HOME` exported.
+
+{% highlight Groff markup %}
+cd ~
+wget http://apache.mirrors.lucidnetworks.net/tomcat/tomcat-7/v7.0.59/bin/apache-tomcat-7.0.59.tar.gz
+tar -xzvf apache-tomcat-7.0.59.tar.gz
+export CATALINA_HOME=~/apache-tomcat-7.0.59
+{% endhighlight %}
+
+### Install maven:
+
+For Cloudera, you can skip this step since maven is by default installed.
+
+The latest maven can be found at <http://maven.apache.org/download.cgi>, we create a symbolic so that `mvn` can be run anywhere.
+
+{% highlight Groff markup %}
+cd ~
+wget http://xenia.sote.hu/ftp/mirrors/www.apache.org/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gz
+tar -xzvf apache-maven-3.2.5-bin.tar.gz 
+ln -s ~/apache-maven-3.2.5/bin/mvn /usr/bin/mvn
+{% endhighlight %}
+
+### Install npm
+
+Npm comes with latest versions of nodejs, just donwload nodejs from <http://nodejs.org/download/>, `npm` is located at the `/bin` folder of `nodejs`, we append the folder to `PATH` so that `npm` can be run anywhere.
+
+{% highlight Groff markup %}
+cd ~
+wget http://nodejs.org/dist/v0.10.32/node-v0.10.32-linux-x64.tar.gz
+tar -xzvf node-v0.10.32-linux-x64.tar.gz
+export PATH=~/node-v0.10.32-linux-x64/bin:$PATH
+{% endhighlight %}
+	
+## Build cubes & Query tables
+
+First clone the Kylin project to your local:
+
+{% highlight Groff markup %}
+git clone https://github.com/KylinOLAP/Kylin.git
+{% endhighlight %}
+	
+Go into the folder and run deploy script:
+
+{% highlight Groff markup %}	
+cd Kylin/
+./deploy.sh
+{% endhighlight %}
+
+At this point, if you're installing Kylin on a cluster, please take a look at this:[a limitation](https://issues.apache.org/jira/browse/KYLIN-604), If you're using a sandbox, please just go ahead.
+
+After successfully deployed, you can start run with:
+
+{% highlight Groff markup %}	
+cd Kylin/
+./kylin.sh start
+{% endhighlight %}
+
+And later stop it by:
+	
+{% highlight Groff markup %}
+cd Kylin/
+./kylin.sh stop
+{% endhighlight %}
+
+If you meet any problems, please check [FAQ](https://github.com/KylinOLAP/Kylin/wiki/FAQ-on-Kylin-Installation-and-Usage) first.
+This script will help to:
+
+1. Check your environment
+2. Build Kylin artifacts with Maven
+3. Generate some sample tables
+3. Create empty cubes for these tables
+4. Lauch a one-stop website to build cubes & query tables
+
+After successfully running the script, please navigate to <http://your_hostname:7070> to build your cube and query it. The username/password is ADMIN/KYLIN
+
+If you want to check detail log, you can find it at ${CATALINA_HOME}/logs/kylin.log
+
+### Build Cube in Cubes Tab
+
+![build cube]( /images/On-Hadoop-CLI-installation/cube.png)
+
+### Check Building Progress in Job Tab
+![check job status]( /images/On-Hadoop-CLI-installation/job.png)
+
+### Query Tables in Query Tab
+![query tables]( /images/On-Hadoop-CLI-installation/query.png)
+
+## What if I closed my VM?
+
+If you shut down the VM and restarted it, Kylin will not automatically start. Depending on whether you succeed in running the deploy.sh, you should:
+
+### If running deploy.sh failed last time
+1. Kill it if any tomcat instance exist
+2. Start over again
+
+### If running deploy.sh succeeded last time
+1. Kill it if any tomcat instance exist
+2. Make sure Hbase is running
+3. run `export CATALINA_HOME=~/apache-tomcat-7.0.56`
+4. run `sudo -i "${CATALINA_HOME}/bin/startup.sh"`

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/_posts/Tutorial/2014-11-05-Kylin-Cube-Creation-Tutorial.md
----------------------------------------------------------------------
diff --git a/docs/website/_posts/Tutorial/2014-11-05-Kylin-Cube-Creation-Tutorial.md b/docs/website/_posts/Tutorial/2014-11-05-Kylin-Cube-Creation-Tutorial.md
new file mode 100644
index 0000000..da56a26
--- /dev/null
+++ b/docs/website/_posts/Tutorial/2014-11-05-Kylin-Cube-Creation-Tutorial.md
@@ -0,0 +1,127 @@
+---
+layout: post
+title:  "Kylin Cube Creation Tutorial"
+date:   2014-11-15
+author: Kejia-Wang
+categories: tutorial
+---
+
+### I. Create a Project
+1. Go to `Query` page in top menu bar, then click `Manage Projects`.
+
+   ![]( /images/Kylin-Cube-Creation-Tutorial/1 manage-prject.png)
+
+2. Click the `+ Project` button to add a new project.
+
+   ![]( /images/Kylin-Cube-Creation-Tutorial/2 +project.png)
+
+3. Fulfill the following form and click `submit` button to send a request.
+
+   ![]( /images/Kylin-Cube-Creation-Tutorial/3 new-project.png)
+
+4. After success, there will be a notification show in the bottom.
+
+   ![]( /images/Kylin-Cube-Creation-Tutorial/3.1 pj-created.png)
+
+### II. Sync up a Table
+1. Click `Tables` in top bar and then click the `+ Sync` button to load hive table metadata.
+
+   ![]( /images/Kylin-Cube-Creation-Tutorial/4 +table.png)
+
+2. Enter the table names and click `Sync` to send a request.
+
+   ![]( /images/Kylin-Cube-Creation-Tutorial/5 hive-table.png)
+
+### III. Create a Cube
+To start with, click `Cubes` in top bar.Then click `+Cube` button to enter the cube designer page.
+
+![]( /images/Kylin-Cube-Creation-Tutorial/6 +cube.png)
+
+**Step 1. Cube Info**
+
+Fill up the basic information of the cube. Click `Next` to enter the next step.
+
+You can use letters, numbers and '_' to name your cube (Notice that space in name is not allowed).
+
+![]( /images/Kylin-Cube-Creation-Tutorial/7 cube-info.png)
+
+**Step 2. Dimensions**
+
+1. Set up the fact table.
+
+    ![]( /images/Kylin-Cube-Creation-Tutorial/8 dim-factable.png)
+
+2. Click `+Dimension` to add a new dimension.
+
+    ![]( /images/Kylin-Cube-Creation-Tutorial/8 dim-+dim.png)
+
+3. There are different types of dimensions that might be added to a cube. Here we list some of them for your reference.
+
+    * Dimensions from fact table.
+        ![]( /images/Kylin-Cube-Creation-Tutorial/8 dim-typeA.png)
+
+    * Dimensions from look up table.
+        ![]( /images/Kylin-Cube-Creation-Tutorial/8 dim-typeB-1.png)
+
+        ![]( /images/Kylin-Cube-Creation-Tutorial/8 dim-typeB-2.png)
+   
+    * Dimensions from look up table with hierarchy.
+        ![]( /images/Kylin-Cube-Creation-Tutorial/8 dim-typeC.png)
+
+    * Dimensions from look up table with derived dimensions.
+        ![]( /images/Kylin-Cube-Creation-Tutorial/8 dim-typeD.png)
+
+4. User can edit the dimension after saving it.
+   ![]( /images/Kylin-Cube-Creation-Tutorial/8 dim-edit.png)
+
+**Step 3. Measures**
+
+1. Click the `+Measure` to add a new measure.
+   ![]( /images/Kylin-Cube-Creation-Tutorial/9 meas-+meas.png)
+
+2. There are 5 different types of measure according to its expression: `SUM`, `MAX`, `MIN`, `COUNT` and `COUNT_DISTINCT`. Please be  carefully to choose the return type, which is related to the error rate of the `COUNT(DISTINCT)`.
+   * SUM
+
+     ![]( /images/Kylin-Cube-Creation-Tutorial/9 meas-sum.png)
+
+   * MIN
+
+     ![]( /images/Kylin-Cube-Creation-Tutorial/9 meas-min.png)
+
+   * MAX
+
+     ![]( /images/Kylin-Cube-Creation-Tutorial/9 meas-max.png)
+
+   * COUNT
+
+     ![]( /images/Kylin-Cube-Creation-Tutorial/9 meas-count.png)
+
+   * DISTINCT_COUNT
+
+     ![]( /images/Kylin-Cube-Creation-Tutorial/9 meas-distinct.png)
+
+**Step 4. Filter**
+
+This step is optional. You can add some condition filter in `SQL` format.
+
+![]( /images/Kylin-Cube-Creation-Tutorial/10 filter.png)
+
+**Step 5. Refresh Setting**
+
+This step is designed for incremental cube build. 
+
+![]( /images/Kylin-Cube-Creation-Tutorial/11 refresh-setting1.png)
+
+Choose partition type, partition column and start date.
+
+![]( /images/Kylin-Cube-Creation-Tutorial/11 refresh-setting2.png)
+
+**Step 6. Advanced Setting**
+
+![]( /images/Kylin-Cube-Creation-Tutorial/12 advanced.png)
+
+**Step 7. Overview & Save**
+
+You can overview your cube and go back to previous step to modify it. Click the `Save` button to complete the cube creation.
+
+![]( /images/Kylin-Cube-Creation-Tutorial/13 overview.png)

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/_posts/Tutorial/2014-11-05-Kylin-ODBC-Driver-Tutorial.md
----------------------------------------------------------------------
diff --git a/docs/website/_posts/Tutorial/2014-11-05-Kylin-ODBC-Driver-Tutorial.md b/docs/website/_posts/Tutorial/2014-11-05-Kylin-ODBC-Driver-Tutorial.md
new file mode 100644
index 0000000..cb88e4d
--- /dev/null
+++ b/docs/website/_posts/Tutorial/2014-11-05-Kylin-ODBC-Driver-Tutorial.md
@@ -0,0 +1,34 @@
+---
+layout: post
+title:  "Kylin ODBC Driver Tutorial"
+date:   2014-11-05
+author: lukehan
+categories: tutorial
+---
+
+> We provide Kylin ODBC driver to enable data access from ODBC-compatible client applications.
+> 
+> Both 32-bit version or 64-bit version driver are available.
+> 
+> Tested Operation System: Windows 7, Windows Server 2008 R2
+> 
+> Tested Application: Tableau 8.0.4 and Tableau 8.1.3
+
+## Prerequisites
+1. Microsoft Visual C++ 2012 Redistributable 
+   * For 32 bit Windows or 32 bit Tableau Desktop: Download: [32bit version](http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x86.exe) 
+   * For 64 bit Windows or 64 bit Tableau Desktop: Download: [64bit version](http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe)
+
+
+2. ODBC driver internally gets results from a REST server, make sure you have access to one
+
+## Installation
+1. Uninstall existing Kylin ODBC first, if you already installled it before
+2. Download the attached driver installer at [KylinOLAP/odbc-driver/exe](https://github.com/KylinOLAP/odbc-driver/tree/master/exe), run it.
+   * For 32 bit Tableau Desktop: Please install KylinODBCDriver (x86).exe
+   * For 64 bit Tableau Desktop: Please install KylinODBCDriver (x64).exe
+
+3. Both drivers already be installed on Tableau Server, you properly should be able to publish to there without issues
+
+## Bug Report
+Open github issue here

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/_posts/Tutorial/2014-11-06-Kylin-Cube-Build-and-Job-Monitoring-Tutorial.md
----------------------------------------------------------------------
diff --git a/docs/website/_posts/Tutorial/2014-11-06-Kylin-Cube-Build-and-Job-Monitoring-Tutorial.md b/docs/website/_posts/Tutorial/2014-11-06-Kylin-Cube-Build-and-Job-Monitoring-Tutorial.md
new file mode 100644
index 0000000..aab389c
--- /dev/null
+++ b/docs/website/_posts/Tutorial/2014-11-06-Kylin-Cube-Build-and-Job-Monitoring-Tutorial.md
@@ -0,0 +1,65 @@
+---
+layout: post
+title:  "Kylin Cube Build and Job Monitoring Tutorial"
+date:   2014-11-06
+author: Kejia-Wang
+categories: tutorial
+---
+
+### Cube Build
+First of all, make sure that you have authority of the cube you want to build.
+
+1. In `Cubes` page, click the `Action` drop down button in the right of a cube column and select operation `Build`.
+
+   ![](/images/Kylin-Cube-Build-and-Job-Monitoring-Tutorial/1 action-build.png)
+
+2. There is a pop-up window after the selection. 
+
+   ![](/images/Kylin-Cube-Build-and-Job-Monitoring-Tutorial/2 pop-up.png)
+
+3. Click `END DATE` input box to choose end date of this incremental cube build.
+
+   ![](/images/Kylin-Cube-Build-and-Job-Monitoring-Tutorial/3 end-date.png)
+
+4. Click `Submit` to send request. 
+
+   ![](/images/Kylin-Cube-Build-and-Job-Monitoring-Tutorial/4 submit.png)
+
+   ![](/images/Kylin-Cube-Build-and-Job-Monitoring-Tutorial/4.1 success.png)
+
+   After submit the request successfully, you will see the job just be created in the `Jobs` page.
+
+   ![](/images/Kylin-Cube-Build-and-Job-Monitoring-Tutorial/5 jobs-page.png)
+
+5. To discard this job, just click the `Discard` button.
+
+   ![](/images/Kylin-Cube-Build-and-Job-Monitoring-Tutorial/6 discard.png)
+
+### Job Monitoring
+In the `Jobs` page, click the job detail button to see detail information show in the right side.
+
+![](/images/Kylin-Cube-Build-and-Job-Monitoring-Tutorial/7 job-steps.png)
+
+The detail information of a job provides a step-by-step record to trace a job. You can hover a step status icon to see the basic status and information.
+
+![](/images/Kylin-Cube-Build-and-Job-Monitoring-Tutorial/8 hover-step.png)
+
+Click the icon button show in each step to see the details: `Parameters`, `Log`, `MRJob`, `EagleMonitoring`.
+
+* Parameters
+
+   ![](/images/Kylin-Cube-Build-and-Job-Monitoring-Tutorial/9 parameters.png)
+
+   ![](/images/Kylin-Cube-Build-and-Job-Monitoring-Tutorial/9 parameters-d.png)
+
+* Log
+        
+   ![](/images/Kylin-Cube-Build-and-Job-Monitoring-Tutorial/9 log.png)
+
+   ![](/images/Kylin-Cube-Build-and-Job-Monitoring-Tutorial/9 log-d.png)
+
+* MRJob(MapReduce Job)
+
+   ![](/images/Kylin-Cube-Build-and-Job-Monitoring-Tutorial/9 mrjob.png)
+
+   ![](/images/Kylin-Cube-Build-and-Job-Monitoring-Tutorial/9 mrjob-d.png)

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/_posts/Tutorial/2014-11-11-Kylin-Cube-Permission-Grant-Tutorial.md
----------------------------------------------------------------------
diff --git a/docs/website/_posts/Tutorial/2014-11-11-Kylin-Cube-Permission-Grant-Tutorial.md b/docs/website/_posts/Tutorial/2014-11-11-Kylin-Cube-Permission-Grant-Tutorial.md
new file mode 100644
index 0000000..78cbdcd
--- /dev/null
+++ b/docs/website/_posts/Tutorial/2014-11-11-Kylin-Cube-Permission-Grant-Tutorial.md
@@ -0,0 +1,32 @@
+---
+layout: post
+title:  "Kylin Cube Permission Grant Tutorial"
+date:   2014-11-11
+author: Kejia-Wang
+categories: tutorial
+---
+
+In `Cubes` page, double click the cube row to see the detail information. Here we focus on the `Access` tab.
+Click the `+Grant` button to grant permission. 
+
+![](/images/Kylin-Cube-Permission-Grant-Tutorial/14 +grant.png)
+
+There are four different kinds of permissions for a cube. Move your mouse over the `?` icon to see detail information. 
+
+![](/images/Kylin-Cube-Permission-Grant-Tutorial/15 grantInfo.png)
+
+There are also two types of user that a permission can be granted: `User` and `Role`. `Role` means a group of users who have the same role.
+
+### 1. Grant User Permission
+* Select `User` type, enter the username of the user you want to grant and select the related permission. 
+
+     ![](/images/Kylin-Cube-Permission-Grant-Tutorial/16 grant-user.png)
+
+* Then click the `Grant` button to send a request. After the success of this operation, you will see a new table entry show in the table. You can select various permission of access to change the permission of a user. To delete a user with permission, just click the `Revoke` button.
+
+     ![](/images/Kylin-Cube-Permission-Grant-Tutorial/16 user-update.png)
+
+### 2. Grant Role Permission
+* Select `Role` type, choose a group of users that you want to grant by click the drop down button and select a permission.
+
+* Then click the `Grant` button to send a request. After the success of this operation, you will see a new table entry show in the table. You can select various permission of access to change the permission of a group. To delete a group with permission, just click the `Revoke` button.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/_posts/Tutorial/2015-04-17-Kylin-Web-Tutorial.md
----------------------------------------------------------------------
diff --git a/docs/website/_posts/Tutorial/2015-04-17-Kylin-Web-Tutorial.md b/docs/website/_posts/Tutorial/2015-04-17-Kylin-Web-Tutorial.md
new file mode 100644
index 0000000..b63715e
--- /dev/null
+++ b/docs/website/_posts/Tutorial/2015-04-17-Kylin-Web-Tutorial.md
@@ -0,0 +1,138 @@
+---
+layout: post
+title:  "Kylin Web Tutorial"
+date:   2015-04-17
+author: Luwei
+categories: tutorial
+---
+
+> **Supported Browsers**
+> 
+> Windows: Google Chrome, FireFox
+> 
+> Mac: Google Chrome, FireFox, Safari
+
+## 1. Access & Login
+Host to access: http://your_sandbox_ip:9080
+Login with username/password: ADMIN/KYLIN
+
+![](/images/Kylin-Web-Tutorial/1 login.png)
+
+## 2. Available Hive Tables in Kylin
+Although Kylin will using SQL as query interface and leverage Hive metadata, kylin will not enable user to query all hive tables since it's a pre-build OLAP (MOLAP) system so far. To enable Table in Kylin, it will be easy to using "Sync" function to sync up tables from Hive.
+
+![](/images/Kylin-Web-Tutorial/2 tables.png)
+
+## 3. Kylin OLAP Cube
+Kylin's OLAP Cubes are pre-calculation datasets from Star Schema Hive tables, Here's the web management interface for user to explorer, manage all cubes.Go to `Cubes` Menu, it will list all cubes available in system:
+
+![](/images/Kylin-Web-Tutorial/3 cubes.png)
+
+To explore more detail about the Cube
+
+* Form View:
+
+   ![](/images/Kylin-Web-Tutorial/4 form-view.png)
+
+* SQL View (Hive Query to read data to generate the cube):
+
+   ![](/images/Kylin-Web-Tutorial/5 sql-view.png)
+
+* Visualization (Showing the Star Schema behind of this cube):
+
+   ![](/images/Kylin-Web-Tutorial/6 visualization.png)
+
+* Access (Grant user/role privileges, Grant operation only open to Admin in beta):
+
+   ![](/images/Kylin-Web-Tutorial/7 access.png)
+
+## 4. Write and Execute SQL on web
+Kylin's web offer a simple query tool for user to run SQL to explorer existing cube, verify result and explorer the result set using #5's Pivot analysis and visualization
+
+> **Query Limit**
+> 
+> 1. Only SELECT query be supported
+> 
+> 2. To avoid huge network traffic from server to client, the scan range's threshold be set to 1,000,000 in beta.
+> 
+> 3. SQL can't found data from cube will not redirect to Hive in beta
+
+Go to "Query" menu:
+
+![](/images/Kylin-Web-Tutorial/8 query.png)
+
+* Source Tables:
+
+   Browser current available Tables (same structure and metadata as Hive):
+  
+   ![](/images/Kylin-Web-Tutorial/9 query-table.png)
+
+* New Query:
+
+   You can write and execute your query and explorer the result. One query for you reference:
+
+   ![](/images/Kylin-Web-Tutorial/10 query-result.png)
+
+* Saved Query:
+
+   Associate with user account, you can get saved query from different browsers even machines.
+   Click "Save" in Result area, it will popup for name and description to save current query:
+
+   ![](/images/Kylin-Web-Tutorial/11 save-query.png)
+
+   Click "Saved Queries" to browser all your saved queries, you could direct resubmit it to run or remove it:
+
+   ![](/images/Kylin-Web-Tutorial/11 save-query-2.png)
+
+* Query History:
+
+   Only keep the current user's query history in current bowser, it will require cookie enabled and will lost if you clean up bowser's cache.Click "Query History" tab, you could directly resubmit any of them to execute again.
+
+## 5. Pivot Analysis and Visualization
+There's one simple pivot and visualization analysis tool in Kylin's web for user to explore their query result:
+
+* General Information:
+
+   When the query execute success, it will present a success indictor and also a cube's name which be hit. 
+   Also it will present how long this query be executed in backend engine (not cover network traffic from Kylin server to browser):
+
+   ![](/images/Kylin-Web-Tutorial/12 general.png)
+
+* Query Result:
+
+   It's easy to order on one column.
+
+   ![](/images/Kylin-Web-Tutorial/13 results.png)
+
+* Export to CSV File
+
+   Click "Export" button to save current result as CSV file.
+
+* Pivot Table:
+
+   Drag and Drop one or more columns into the header, the result will grouping by such column's value:
+
+   ![](/images/Kylin-Web-Tutorial/14 drag.png)
+
+* Visualization:
+
+   Also, the result set will be easy to show with different charts in "Visualization":
+
+   note: line chart only available when there's at least one dimension with real "Date" data type of column from Hive Table.
+
+   * Bar Chart:
+
+   ![](/images/Kylin-Web-Tutorial/15 bar-chart.png)
+   
+   * Pie Chart:
+
+   ![](/images/Kylin-Web-Tutorial/16 pie-chart.png)
+
+   * Line Chart
+
+   ![](/images/Kylin-Web-Tutorial/17 line-chart.png)
+
+## 6. Cube Build Job Monitoring
+Monitor and manage cube build process, diagnostic into the detail and even link to Hadoop's job information directly:
+
+![](/images/Kylin-Web-Tutorial/7 job-steps.png)

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/_posts/Tutorial/2015-04-17-Kylin-and-Tableau-Tutorial.md
----------------------------------------------------------------------
diff --git a/docs/website/_posts/Tutorial/2015-04-17-Kylin-and-Tableau-Tutorial.md b/docs/website/_posts/Tutorial/2015-04-17-Kylin-and-Tableau-Tutorial.md
new file mode 100644
index 0000000..6dbbd99
--- /dev/null
+++ b/docs/website/_posts/Tutorial/2015-04-17-Kylin-and-Tableau-Tutorial.md
@@ -0,0 +1,113 @@
+---
+layout: post
+title:  "Kylin and Tableau Tutorial"
+date:   2015-04-17
+author: Luwei
+categories: tutorial
+---
+
+> There are some limitations of Kylin ODBC driver with Tableau, please read carefully this instruction before you try it.
+> 
+> * Only support "managed" analysis path, Kylin engine will raise exception for unexpected dimension or metric
+> * Please always select Fact Table first, then add lookup tables with correct join condition (defined join type in cube)
+> * Do not try to join between fact tables or lookup tables;
+> * You can try to use high cardinality dimensions like seller id as Tableau Filter, but the engine will only return limited seller id in Tableau's filter now.
+> 
+> More detail information or any issue, please contact Kylin Team: `kylinolap@gmail.com`
+
+### Step 1. Install ODBC Driver
+Refer to wiki page [Kylin ODBC Driver Tutorial](https://github.com/KylinOLAP/Kylin/wiki/Kylin-ODBC-Driver-Tutorial).
+
+### Step 2. Connect to Kylin Server
+> We recommended to use Connect Using Driver instead of Using DSN since Tableau team will not manage your DSN on Tableau Servers.
+
+Connect Using Driver: Select "Other Database(ODBC)" in the left panel and choose KylinODBCDriver in the pop-up window. 
+
+![](/images/Kylin-and-Tableau-Tutorial/1 odbc.png)
+
+Enter your Sever location and credentials: server host, port, username and password.
+
+![]( /images/Kylin-and-Tableau-Tutorial/2 serverhost.jpg)
+
+Click "Connect" to get the list of projects that you have permission to access. See details about permission in [Kylin Cube Permission Grant Tutorial](https://github.com/KylinOLAP/Kylin/wiki/Kylin-Cube-Permission-Grant-Tutorial). Then choose the project you want to connect in the drop down list. 
+
+![]( /images/Kylin-and-Tableau-Tutorial/3 project.jpg)
+
+Click "Done" to complete the connection.
+
+![]( /images/Kylin-and-Tableau-Tutorial/4 done.jpg)
+
+### Step 3. Using Single Table or Multiple Tables
+> Limitation
+> 
+>    * Must select FACT table first
+>    * Do not support select from lookup table only
+>    * The join condition must match within cube definition
+
+**Select Fact Table**
+
+Select `Multiple Tables`.
+
+![]( /images/Kylin-and-Tableau-Tutorial/5 multipleTable.jpg)
+
+Then click `Add Table...` to add a fact table.
+
+![]( /images/Kylin-and-Tableau-Tutorial/6 facttable.jpg)
+
+![]( /images/Kylin-and-Tableau-Tutorial/6 facttable2.jpg)
+
+**Select Look-up Table**
+
+Click `Add Table...` to add a look-up table. 
+
+![]( /images/Kylin-and-Tableau-Tutorial/7 lkptable.jpg)
+
+Set up the join clause carefully. 
+
+![]( /images/Kylin-and-Tableau-Tutorial/8 join.jpg)
+
+Keep add tables through click `Add Table...` until all the look-up tables have been added properly. Give the connection a name for use in Tableau.
+
+![]( /images/Kylin-and-Tableau-Tutorial/9 connName.jpg)
+
+**Using Connect Live**
+
+There are three types of `Data Connection`. Choose the `Connect Live` option. 
+
+![]( /images/Kylin-and-Tableau-Tutorial/10 connectLive.jpg)
+
+Then you can enjoy analyzing with Tableau.
+
+![]( /images/Kylin-and-Tableau-Tutorial/11 analysis.jpg)
+
+**Add additional look-up Tables**
+
+Click `Data` in the top menu bar, select `Edit Tables...` to update the look-up table information.
+
+![]( /images/Kylin-and-Tableau-Tutorial/12 edit tables.jpg)
+
+### Step 4. Using Customized SQL
+To use customized SQL resembles using Single Table/Multiple Tables, except that you just need to paste your SQL in `Custom SQL` tab and take the same instruction as above.
+
+![]( /images/Kylin-and-Tableau-Tutorial/19 custom.jpg)
+
+### Step 5. Publish to Tableau Server
+Suppose you have finished making a dashboard with Tableau, you can publish it to Tableau Server.
+Click `Server` in the top menu bar, select `Publish Workbook...`. 
+
+![]( /images/Kylin-and-Tableau-Tutorial/14 publish.jpg)
+
+Then sign in your Tableau Server and prepare to publish. 
+
+![]( /images/Kylin-and-Tableau-Tutorial/16 prepare-publish.png)
+
+If you're Using Driver Connect instead of DSN connect, you'll need to additionally embed your password in. Click the `Authentication` button at left bottom and select `Embedded Password`. Click `Publish` and you will see the result.
+
+![]( /images/Kylin-and-Tableau-Tutorial/17 embedded-pwd.png)
+
+### Tips
+* Hide Table name in Tableau
+
+    * Tableau will display columns be grouped by source table name, but user may want to organize columns with different structure. Using "Group by Folder" in Tableau and Create Folders to group different columns.
+
+     ![]( /images/Kylin-and-Tableau-Tutorial/18 groupby-folder.jpg)

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/_posts/Tutorial/2015-05-25-test~
----------------------------------------------------------------------
diff --git a/docs/website/_posts/Tutorial/2015-05-25-test~ b/docs/website/_posts/Tutorial/2015-05-25-test~
new file mode 100644
index 0000000..0a67385
--- /dev/null
+++ b/docs/website/_posts/Tutorial/2015-05-25-test~
@@ -0,0 +1,28 @@
+---
+layout: post
+title:  "test"
+date:   2015-05-25
+author: clw
+categories: test
+---
+
+3. There are different types of dimensions that might be added to a cube. Here we list some of them for your reference.
+
+    * Dimensions from fact table.
+
+          https://github.com/KylinOLAP/kylinolap.github.io/blob/master/docs/tutorial/8%20dim-typeA.png
+ssadfs
+
+dddd gdg
+
+   Dimensions from look up table.
+         ![](https://github.com/KylinOLAP/kylinolap.github.io/blob/master/docs/tutorial/8%20dim-typeB-1.png)
+
+          ![](https://github.com/KylinOLAP/kylinolap.github.io/blob/master/docs/tutorial/8%20dim-typeB-2.png)     
+   
+    * Dimensions from look up table with hierarchy.
+          ![](https://github.com/KylinOLAP/kylinolap.github.io/blob/master/docs/tutorial/8%20dim-typeC.png)
+
+    * Dimensions from look up table with derived dimensions.
+          ![](https://github.com/KylinOLAP/kylinolap.github.io/blob/master/docs/tutorial/8%20dim-typeD.png)
+

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/_posts/blog/2015-01-25-introduce-data-model.md
----------------------------------------------------------------------
diff --git a/docs/website/_posts/blog/2015-01-25-introduce-data-model.md b/docs/website/_posts/blog/2015-01-25-introduce-data-model.md
new file mode 100644
index 0000000..2016207
--- /dev/null
+++ b/docs/website/_posts/blog/2015-01-25-introduce-data-model.md
@@ -0,0 +1,40 @@
+---
+layout: post
+title:  "Introduce Data Model of Cube Designer"
+date:   2015-01-25 22:28:00
+author: Luke Han
+categories: blog
+---
+
+### Background
+In previous version (before v0.6.4), Kylin introduced a GUI tool called Cube Designer for user (we called this role as __Cube Modeler__) to architect OLAP Cube with dimensions, measures and other settings. It works well for most of the features but still not user friendly yet: 
+
+1. A user has to add dimension one by one, considering there are 20+ even 50+ dimensions, the entire process is really boring. 
+2. Each dimension requires define join condition between fact table and lookup table which even already be defined in previous dimensions many times.
+3. Less validation check, especially for Hierarchy and Derived dimension, there are many exceptions in further steps which blocked many people to save the cube definition without any idea about the issue.
+4. Save/Next buttons are confusing user to click which one for real next step or just save current dimension settings
+
+### Data Model of Cube Designer
+With the feedback from our internal users and external community, we have came up one idea and would like to introduce a new concept (widely known in Data Warehouse and Business Intelligence domain): Data Model: a data model organises data elements and standardises how the data elements relate to one another.[Wikipedia](http://en.wikipedia.org/wiki/Data_model). In Kylin, it using [Star Schema](http://en.wikipedia.org/wiki/Star_schema) as Data Model, which is the simplest style of data warehouse schema. The star schema consists of a few "fact tables" (possibly only one, justifying the name) referencing any number of "dimension tables". It actually already there behind dimensions and measures and now just come to first step to define the relationship between different tables before create each dimension. 
+Now (after v0.6.4), to create a cube will follow below steps:
+
+1. Define data model first: pick up one fact table and then add other lookup tables (with their join conditions). The data mode must be presents as Star Schema.
+2. Then add dimensions, since all join conditions already presented in data model, each dimension could be more easy to create, just need to know what's kind of type: normal, hierarchy and derived (will have another blog to introduce them). There's also one helper called _Auto Generator_ to help generate many dimensions within simple clicks.
+3. Then define measures and others as previous cube designer did
+
+### Benefits
+1. A data model is very easy to communicate between different roles and teams. Most of cases it just mapping to real database table relationship, like from Hive tables
+2. More easy to create dimensions and measures based on the data model
+3. Friendly error message with enhanced validation check when save cube
+
+
+### What's Next
+After this refactor, Kylin is now be able to introduce more powerful features, the major idea is to using different storages to serve same data model:
+
+* __Logical Model__: A Data Model presents logical data structure like Star Schema beyond data tables with more business meaning
+* __Physical Model__: define how the underlying data to be stored in persistent system, like HBase. There are already two of them: MOLAP (current Kylin version) and InvertedIndex (coming with 0.7.x release). And it also easy to extend to support others without change the Logical Model.
+* A new GUI of Cube Designer to support above is on the way.
+
+
+
+

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/assets/css/docs.css
----------------------------------------------------------------------
diff --git a/docs/website/assets/css/docs.css b/docs/website/assets/css/docs.css
new file mode 100755
index 0000000..d46052b
--- /dev/null
+++ b/docs/website/assets/css/docs.css
@@ -0,0 +1,106 @@
+/*
+ * 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.
+ */
+
+.aside {
+  height: 100%;
+  background-color:#fff;
+}
+
+.aside1 {
+  background-color: #fff;
+  height: 100%;
+  padding-left: 0px;
+  padding-right: 0px;
+  text-align: left;
+}
+
+.aside1 > .nav > li > a {
+  border-radius: 0px;
+  color: #454545;
+  font-weight: 600;
+  font-family: 'Open sans';
+  font-size: 15px;
+  padding: 10px 10px;
+}
+
+.aside1> .nav > li > a:hover {
+  color: #000000;
+  background-color: #ffffff;
+}
+
+.aside1 > .nav-pills>li.active>a ,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus {
+  color: #000000;
+  background-color: #ffffff;
+}
+
+.list-group {
+  font-family: 'Open sans';
+}
+
+
+.aside2 {
+  height: 100%;
+  overflow-y: auto;
+  background-color: #fff;
+  overflow-x: hidden;
+}
+
+.post-title {
+  font-family: 'Open sans';
+  font-size: 30px;
+}
+
+.post-meta {
+  font-family: 'Open sans';
+}
+
+.post-content {
+  font-family: 'Open sans';
+}
+
+.post-content> h1  {
+  font-family: 'Open sans';
+  font-size: 28px;
+}
+
+.post-content> h2  {
+  font-family: 'Open sans';
+  font-size: 24px;
+}
+
+.post-content> h3  {
+  font-family: 'Open sans';
+  font-size: 20px;
+}
+
+.post-content> h4  {
+  font-family: 'Open sans';
+  font-size: 18px;
+}
+
+.post-content> h5  {
+  font-family: 'Open sans';
+  font-size: 16px;
+}
+
+.post-content> h6  {
+  font-family: 'Open sans';
+  font-size: 16px;
+  color: #666666;
+}
+
+

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/assets/css/pygments.css
----------------------------------------------------------------------
diff --git a/docs/website/assets/css/pygments.css b/docs/website/assets/css/pygments.css
new file mode 100644
index 0000000..122b429
--- /dev/null
+++ b/docs/website/assets/css/pygments.css
@@ -0,0 +1,61 @@
+.hll { background-color: #ffffcc }
+.c { color: #408080; font-style: italic } /* Comment */
+.err { border: 1px solid #FF0000 } /* Error */
+.k { color: #008000; font-weight: bold } /* Keyword */
+.o { color: #666666 } /* Operator */
+.cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.cp { color: #BC7A00 } /* Comment.Preproc */
+.c1 { color: #408080; font-style: italic } /* Comment.Single */
+.cs { color: #408080; font-style: italic } /* Comment.Special */
+.gd { color: #A00000 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #FF0000 } /* Generic.Error */
+.gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.gi { color: #00A000 } /* Generic.Inserted */
+.go { color: #808080 } /* Generic.Output */
+.gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.gt { color: #0040D0 } /* Generic.Traceback */
+.kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.kp { color: #008000 } /* Keyword.Pseudo */
+.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #B00040 } /* Keyword.Type */
+.m { color: #666666 } /* Literal.Number */
+.s { color: #BA2121 } /* Literal.String */
+.na { color: #7D9029 } /* Name.Attribute */
+.nb { color: #008000 } /* Name.Builtin */
+.nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.no { color: #880000 } /* Name.Constant */
+.nd { color: #AA22FF } /* Name.Decorator */
+.ni { color: #999999; font-weight: bold } /* Name.Entity */
+.ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.nf { color: #0000FF } /* Name.Function */
+.nl { color: #A0A000 } /* Name.Label */
+.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.nt { color: #008000; font-weight: bold } /* Name.Tag */
+.nv { color: #19177C } /* Name.Variable */
+.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mf { color: #666666 } /* Literal.Number.Float */
+.mh { color: #666666 } /* Literal.Number.Hex */
+.mi { color: #666666 } /* Literal.Number.Integer */
+.mo { color: #666666 } /* Literal.Number.Oct */
+.sb { color: #BA2121 } /* Literal.String.Backtick */
+.sc { color: #BA2121 } /* Literal.String.Char */
+.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.s2 { color: #BA2121 } /* Literal.String.Double */
+.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.sh { color: #BA2121 } /* Literal.String.Heredoc */
+.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.sx { color: #008000 } /* Literal.String.Other */
+.sr { color: #BB6688 } /* Literal.String.Regex */
+.s1 { color: #BA2121 } /* Literal.String.Single */
+.ss { color: #19177C } /* Literal.String.Symbol */
+.bp { color: #008000 } /* Name.Builtin.Pseudo */
+.vc { color: #19177C } /* Name.Variable.Class */
+.vg { color: #19177C } /* Name.Variable.Global */
+.vi { color: #19177C } /* Name.Variable.Instance */
+.il { color: #666666 } /* Literal.Number.Integer.Long */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/blog/index.html
----------------------------------------------------------------------
diff --git a/docs/website/blog/index.html b/docs/website/blog/index.html
new file mode 100644
index 0000000..3f772bd
--- /dev/null
+++ b/docs/website/blog/index.html
@@ -0,0 +1,64 @@
+---
+layout: default
+title: Blog
+---
+
+<!--
+* 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.
+-->
+
+
+<main id="main" >
+<section id="first" class="main">
+    <header style="padding:2em 0 4em 0;">
+      <div class="container" >
+        <h4 class="section-title"><span> Kylin Technical Blog </span></h4>
+         <!-- second-->
+          <div id="content-container" class="animated fadeIn">
+            <div >
+            <!--
+            <p class="aboutkylin" style="font-size:1.2em">Comming Soon...</p>
+            -->
+             <ul class="post-list">
+            {% for category in site.categories %}     <!-- categories -->
+            {% if category[0]  == 'blog' %}
+            {% for post in category[1] %}
+            <li>
+            <!--
+            <span align="left" class="content-header">{{ post.date | date: "%b %-d, %Y" }}</span>
+            -->
+        <h2 align="left">
+          <a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
+        </h2>
+      </li>
+    {% endfor %}
+    {% endif %}
+    {% endfor %}
+  </ul>
+
+  <p class="rss-subscribe">subscribe <a href="{{ "/feed.xml" | prepend: site.baseurl }}">via RSS</a></p>
+          </div>
+        </div>
+      </div>
+      <!-- /container --> 
+      
+    </header>
+  </section>
+
+  
+    
+</main>

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/blog/index.html~
----------------------------------------------------------------------
diff --git a/docs/website/blog/index.html~ b/docs/website/blog/index.html~
new file mode 100644
index 0000000..b287c89
--- /dev/null
+++ b/docs/website/blog/index.html~
@@ -0,0 +1,64 @@
+---
+layout: default
+title: Blog
+---
+
+<!--
+* 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.
+-->
+
+
+<main id="main" >
+<section id="first" class="main">
+    <header style="padding:2em 0 4em 0;">
+      <div class="container" >
+        <h4 class="section-title"><span> Kylin Technical Blog </span></h4>
+         <!-- second-->
+          <div id="content-container" class="animated fadeIn">
+            <div >
+            <!--
+            <p class="aboutkylin" style="font-size:1.2em">Comming Soon...</p>
+            -->
+             <ul class="post-list">
+            {% for category in site.categories %}     <!-- categories -->
+            {% if category[0]  != 'blog' %}
+            {% for post in category[1] %}
+            <li>
+            <!--
+            <span align="left" class="content-header">{{ post.date | date: "%b %-d, %Y" }}</span>
+            -->
+        <h2 align="left">
+          <a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
+        </h2>
+      </li>
+    {% endfor %}
+    {% endif %}
+    {% endfor %}
+  </ul>
+
+  <p class="rss-subscribe">subscribe <a href="{{ "/feed.xml" | prepend: site.baseurl }}">via RSS</a></p>
+          </div>
+        </div>
+      </div>
+      <!-- /container --> 
+      
+    </header>
+  </section>
+
+  
+    
+</main>

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/blog/index.md~
----------------------------------------------------------------------
diff --git a/docs/website/blog/index.md~ b/docs/website/blog/index.md~
new file mode 100644
index 0000000..28a57e1
--- /dev/null
+++ b/docs/website/blog/index.md~
@@ -0,0 +1,43 @@
+---
+layout: default
+title: Blog
+---
+
+
+<main id="main" >
+<section id="first" class="main">
+    <header style="padding:2em 0 4em 0;">
+      <div class="container" >
+        <h4 class="section-title"><span> Kylin Technical Blog </span></h4>
+         <!-- second-->
+          <div id="content-container" class="animated fadeIn">
+            <div >
+            <!--
+            <p class="aboutkylin" style="font-size:1.2em">Comming Soon...</p>
+            -->
+             <ul class="post-list">
+            <!-- {% for post in site.posts %} -->
+            <li>
+            <!--
+            <span align="left" class="content-header">{{ post.date | date: "%b %-d, %Y" }}</span>
+            -->
+            <p>{{post.url}}</p>
+        <h2 align="left">
+          <a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
+        </h2>
+      </li>
+    {% endfor %}
+  </ul>
+
+  <p class="rss-subscribe">subscribe <a href="{{ "/feed.xml" | prepend: site.baseurl }}">via RSS</a></p>
+          </div>
+        </div>
+      </div>
+      <!-- /container --> 
+      
+    </header>
+  </section>
+
+  
+    
+</main>

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/community/index.html
----------------------------------------------------------------------
diff --git a/docs/website/community/index.html b/docs/website/community/index.html
new file mode 100644
index 0000000..28b7d00
--- /dev/null
+++ b/docs/website/community/index.html
@@ -0,0 +1,83 @@
+---
+layout: default
+title: Community
+---
+
+<!--
+* 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.
+-->
+
+
+  <main id="main" >
+  <div class="container" >
+    <div id="zero" class=" main" >
+      <header style=" padding:2em 0 4em 0">
+        <div class="container" >
+          <h4 class="section-title"><span>Kylin Community</span></h4>
+          <div class="row" style="margin-top:-20px;">
+            <div class="col-sm-4 col-md-4">
+              <p class="big_text">EVENTS</p>
+
+
+
+
+              <p><a href="http://strataconf.com/big-data-conference-uk-2015/public/schedule/detail/40029" target="_blank">Strata+Hadoop World 2015, London </a> 
+              <br/>Date - Wednesday, May 6, 2015 <br/>
+              Kylin will be present at Strata+Hadooop World</p>
+
+              <p><a href="http://bdtc2014.hadooper.cn/m/zone/bdtc_2014" target="_blank">Big Data Technology Conference, Beijing </a> 
+              <br/>Date - Sunday, December 14, 2014 <br/>
+              Kylin be presented by Luke Han, Sr. Product Manager of Kylin</p>
+
+              <p><a href="http://www.meetup.com/Cloud-at-ebayinc/events/218914395/" target="_blank">Apache Kylin Meetup @Bay Area </a> 
+              <br/>6:00PM - 7:30PM, Thursday, December 4, 2014 <br/>
+               Learn about "Extreme OLAP engine for Hadoop - Kylin", which eBay recently Open sourced and is now an Apache Incubator Project</p>
+
+              <p><a href="http://2014ebay.csdn.net/m/zone/ebay_en/" target="_blank">Shanghai Big Data Summit 2014 </a> 
+              <br/>Date - October 25th, 2014 <br/>
+                Kylin be presented by Jiang Xu, Cheif Architect of Kylin<br/>
+                <a href="http://ebay.csdn.net/" target="_blank">Slides and Video</a></p>
+                  
+            </div>
+            
+            <div class="col-sm-4 col-md-4">
+              <p class="big_text">DISCUSSION</p>
+              <p>Developement and User maililng list: <a href="mailto:dev@kylin.incubator.apache.org" target="_blank"> dev@kylin.incubator.apache.org</a></p>
+              <p>Please subscribe by sending email to: <a href="mailto:dev-subscribe@kylin.incubator.apache.org" target="_blank">dev-subscribe@kylin.incubator.apache.org</a></p>              
+              <p>The official Kylin Twitter account: <a href="https://twitter.com/ApacheKylin" target="_blank"> @ApacheKylin</a></p>
+            </div>
+            <div class="col-sm-4 col-md-4">
+              <p class="big_text">DEVELOPMENT</p>
+              <p>All development takes place at : </p>
+              <p>Apache Git: <a href="git://git.apache.org/incubator-kylin.git" target="_blank">git://git.apache.org/incubator-kylin.git</a><br/>
+              Github Mirror: <a href="https://github.com/apache/incubator-kylin" target="_blank">https://github.com/apache/incubator-kylin</a></p>
+
+              <p>Issue tracking: <a href="https://issues.apache.org/jira/browse/KYLIN" target="_blank">Apache JIRA</a></p>
+            </div>
+          </div>
+        </div>
+        <!-- /container --> 
+        
+      </header>
+    </div>
+    <!-- / section --> 
+  </div>
+  <!-- /container -->
+  
+  </header>
+  </section>
+</main>

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/d1b8e50f/docs/website/community/index.html~
----------------------------------------------------------------------
diff --git a/docs/website/community/index.html~ b/docs/website/community/index.html~
new file mode 100644
index 0000000..e451fba
--- /dev/null
+++ b/docs/website/community/index.html~
@@ -0,0 +1,83 @@
+<!--
+* 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.
+-->
+
+---
+layout: default
+title: Community
+---
+
+
+  <main id="main" >
+  <div class="container" >
+    <div id="zero" class=" main" >
+      <header style=" padding:2em 0 4em 0">
+        <div class="container" >
+          <h4 class="section-title"><span>Kylin Community</span></h4>
+          <div class="row" style="margin-top:-20px;">
+            <div class="col-sm-4 col-md-4">
+              <p class="big_text">EVENTS</p>
+
+
+
+
+              <p><a href="http://strataconf.com/big-data-conference-uk-2015/public/schedule/detail/40029" target="_blank">Strata+Hadoop World 2015, London </a> 
+              <br/>Date - Wednesday, May 6, 2015 <br/>
+              Kylin will be present at Strata+Hadooop World</p>
+
+              <p><a href="http://bdtc2014.hadooper.cn/m/zone/bdtc_2014" target="_blank">Big Data Technology Conference, Beijing </a> 
+              <br/>Date - Sunday, December 14, 2014 <br/>
+              Kylin be presented by Luke Han, Sr. Product Manager of Kylin</p>
+
+              <p><a href="http://www.meetup.com/Cloud-at-ebayinc/events/218914395/" target="_blank">Apache Kylin Meetup @Bay Area </a> 
+              <br/>6:00PM - 7:30PM, Thursday, December 4, 2014 <br/>
+               Learn about "Extreme OLAP engine for Hadoop - Kylin", which eBay recently Open sourced and is now an Apache Incubator Project</p>
+
+              <p><a href="http://2014ebay.csdn.net/m/zone/ebay_en/" target="_blank">Shanghai Big Data Summit 2014 </a> 
+              <br/>Date - October 25th, 2014 <br/>
+                Kylin be presented by Jiang Xu, Cheif Architect of Kylin<br/>
+                <a href="http://ebay.csdn.net/" target="_blank">Slides and Video</a></p>
+                  
+            </div>
+            
+            <div class="col-sm-4 col-md-4">
+              <p class="big_text">DISCUSSION</p>
+              <p>Developement and User maililng list: <a href="mailto:dev@kylin.incubator.apache.org" target="_blank"> dev@kylin.incubator.apache.org</a></p>
+              <p>Please subscribe by sending email to: <a href="mailto:dev-subscribe@kylin.incubator.apache.org" target="_blank">dev-subscribe@kylin.incubator.apache.org</a></p>              
+              <p>The official Kylin Twitter account: <a href="https://twitter.com/ApacheKylin" target="_blank"> @ApacheKylin</a></p>
+            </div>
+            <div class="col-sm-4 col-md-4">
+              <p class="big_text">DEVELOPMENT</p>
+              <p>All development takes place at : </p>
+              <p>Apache Git: <a href="git://git.apache.org/incubator-kylin.git" target="_blank">git://git.apache.org/incubator-kylin.git</a><br/>
+              Github Mirror: <a href="https://github.com/apache/incubator-kylin" target="_blank">https://github.com/apache/incubator-kylin</a></p>
+
+              <p>Issue tracking: <a href="https://issues.apache.org/jira/browse/KYLIN" target="_blank">Apache JIRA</a></p>
+            </div>
+          </div>
+        </div>
+        <!-- /container --> 
+        
+      </header>
+    </div>
+    <!-- / section --> 
+  </div>
+  <!-- /container -->
+  
+  </header>
+  </section>
+</main>