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/07/15 14:38:58 UTC

svn commit: r1691198 [16/17] - in /incubator/kylin/site: ./ blog/ blog/2015/01/25/introduce-data-model/ blog/2015/06/10/release-v0.7.1-incubating/ cn/docs/ cn/docs/install/ cn/docs/tutorial/ cn/download/ docs/ docs/development/ docs/gettingstarted/ doc...

Modified: incubator/kylin/site/feed.xml
URL: http://svn.apache.org/viewvc/incubator/kylin/site/feed.xml?rev=1691198&r1=1691197&r2=1691198&view=diff
==============================================================================
--- incubator/kylin/site/feed.xml (original)
+++ incubator/kylin/site/feed.xml Wed Jul 15 12:38:54 2015
@@ -19,495 +19,13 @@
     <description>Apache Kylin Home</description>
     <link>http://kylin.incubator.apache.org/</link>
     <atom:link href="http://kylin.incubator.apache.org/feed.xml" rel="self" type="application/rss+xml"/>
-    <pubDate>Mon, 13 Jul 2015 01:22:35 -0700</pubDate>
-    <lastBuildDate>Mon, 13 Jul 2015 01:22:35 -0700</lastBuildDate>
+    <pubDate>Wed, 15 Jul 2015 05:32:51 -0700</pubDate>
+    <lastBuildDate>Wed, 15 Jul 2015 05:32:51 -0700</lastBuildDate>
     <generator>Jekyll v2.5.3</generator>
     
       <item>
-        <title>How to making a release (for Kylin committers)</title>
-        <description>&lt;p&gt;&lt;em&gt;This guide is for Apache Kylin Committers only.&lt;/em&gt;&lt;br /&gt;
-&lt;em&gt;Shell commands is on Mac OS X as sample.&lt;/em&gt;&lt;br /&gt;
-&lt;em&gt;For people in China, please aware using proxy to avoid potential firewall issue.&lt;/em&gt;  &lt;/p&gt;
-
-&lt;h1 id=&quot;setup-account&quot;&gt;Setup Account&lt;/h1&gt;
-&lt;p&gt;Make sure you have avaliable account and privlidge for following applications:&lt;/p&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;Apache account: &lt;a href=&quot;https://id.apache.org/&quot;&gt;https://id.apache.org&lt;/a&gt;    &lt;/li&gt;
-  &lt;li&gt;Apache Kylin git repo (main cobe base): &lt;a href=&quot;https://git-wip-us.apache.org/repos/asf/incubator-kylin.git&quot;&gt;https://git-wip-us.apache.org/repos/asf/incubator-kylin.git&lt;/a&gt;  &lt;/li&gt;
-  &lt;li&gt;Apache Kylin svn repo (for website only): &lt;a href=&quot;https://svn.apache.org/repos/asf/incubator/kylin&quot;&gt;https://svn.apache.org/repos/asf/incubator/kylin&lt;/a&gt;  &lt;/li&gt;
-  &lt;li&gt;Apache Nexus (maven repo): &lt;a href=&quot;https://repository.apache.org&quot;&gt;https://repository.apache.org&lt;/a&gt;  &lt;/li&gt;
-  &lt;li&gt;Apache Kylin dist repo: &lt;a href=&quot;https://dist.apache.org/repos/dist/dev/incubator/kylin&quot;&gt;https://dist.apache.org/repos/dist/dev/incubator/kylin&lt;/a&gt;  &lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h1 id=&quot;setup-pgp-signing-keys&quot;&gt;Setup PGP signing keys&lt;/h1&gt;
-&lt;p&gt;Follow instructions at &lt;a href=&quot;http://www.apache.org/dev/release-signing&quot;&gt;http://www.apache.org/dev/release-signing&lt;/a&gt; to create a key pair&lt;br /&gt;
-Install gpg (On Mac OS X as sample):&lt;br /&gt;
-&lt;code&gt;brew install gpg and gpg --gen-key&lt;/code&gt;&lt;/p&gt;
-
-&lt;p&gt;Generate gpg key:&lt;br /&gt;
-Reference: &lt;a href=&quot;https://www.gnupg.org/gph/en/manual/c14.html&quot;&gt;https://www.gnupg.org/gph/en/manual/c14.html&lt;/a&gt;&lt;br /&gt;
-&lt;em&gt;All new RSA keys generated should be at least 4096 bits. Do not generate new DSA keys&lt;/em&gt;&lt;br /&gt;
-&lt;code&gt;gpg --gen-key&lt;/code&gt;  &lt;/p&gt;
-
-&lt;p&gt;Verify your key:&lt;br /&gt;
-&lt;code&gt;gpg --list-sigs YOUR_NAME&lt;/code&gt;&lt;/p&gt;
-
-&lt;p&gt;Then add your key to your apache account, for example:&lt;br /&gt;
-&lt;a href=&quot;https://people.apache.org/keys/committer/lukehan.asc&quot;&gt;https://people.apache.org/keys/committer/lukehan.asc&lt;/a&gt;&lt;br /&gt;
-Generate ASCII Amromed Key:&lt;br /&gt;
-&lt;code&gt;gpg -a --export YOUR_MAIL_ADDRESS &amp;gt; YOUR_NAME.asc &amp;amp;&lt;/code&gt;&lt;/p&gt;
-
-&lt;p&gt;Upload key to public server:&lt;br /&gt;
-&lt;code&gt;gpg --send-keys YOUR_KEY_HASH&lt;/code&gt;&lt;/p&gt;
-
-&lt;p&gt;or Submit key via web:&lt;br /&gt;
-Open and Submit to &lt;a href=&quot;http://pool.sks-keyservers.net:11371&quot;&gt;http://pool.sks-keyservers.net:11371&lt;/a&gt; (you can pickup any avaliable public key server)&lt;br /&gt;
-Once your key submitted to server, you can verify using following command:&lt;br /&gt;
-&lt;code&gt;gpg --recv-keys YOUR_KEY_HASH&lt;/code&gt;&lt;/p&gt;
-
-&lt;p&gt;for example:&lt;br /&gt;
-&lt;code&gt;gpg --recv-keys 027DC364&lt;/code&gt;&lt;/p&gt;
-
-&lt;p&gt;Add your public key to the KEYS file by following instructions in the KEYS file.:&lt;br /&gt;
-&lt;em&gt;KEYS file location:&lt;/em&gt; &lt;strong&gt;${incubator-kylin}/KEYS&lt;/strong&gt;&lt;br /&gt;
-For example:&lt;br /&gt;
-&lt;code&gt;(gpg --list-sigs YOURNAME &amp;amp;&amp;amp; gpg --armor --export YOURNAME) &amp;gt;&amp;gt; KEYS&lt;/code&gt;&lt;/p&gt;
-
-&lt;p&gt;Commit your changes.&lt;/p&gt;
-
-&lt;h1 id=&quot;prepare-artifacts-for-release&quot;&gt;Prepare artifacts for release&lt;/h1&gt;
-&lt;p&gt;&lt;strong&gt;Before you start:&lt;/strong&gt;&lt;/p&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;Set up signing keys as described above.&lt;/li&gt;
-  &lt;li&gt;Make sure you are using JDK 1.7 (not 1.8).&lt;/li&gt;
-  &lt;li&gt;Make sure you are working on right release version number.&lt;/li&gt;
-  &lt;li&gt;Make sure that every “resolved” JIRA case (including duplicates) has a fix version assigned.&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;&lt;strong&gt;Making a snapshot&lt;/strong&gt;  &lt;/p&gt;
-
-&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;# Set passphrase variable without putting it into shell history&lt;/span&gt;
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;read&lt;/span&gt; -s GPG_PASSPHRASE
-
-&lt;span class=&quot;c&quot;&gt;# Make sure that there are no junk files in the sandbox&lt;/span&gt;
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;git clean -xn
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;mvn clean
-
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;mvn -Papache-release -Dgpg.passphrase&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;GPG_PASSPHRASE&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;}&lt;/span&gt; install&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
-
-&lt;p&gt;When the dry-run has succeeded, change install to deploy.&lt;/p&gt;
-
-&lt;p&gt;&lt;strong&gt;Verify licenses&lt;/strong&gt;&lt;br /&gt;
-Run Apache RAT to check licenses issue:  &lt;/p&gt;
-
-&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;mvn -Papache-release clean rat:rat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
-
-&lt;p&gt;Fix license issue if any.&lt;/p&gt;
-
-&lt;p&gt;&lt;strong&gt;Making a release&lt;/strong&gt;&lt;/p&gt;
-
-&lt;p&gt;Create a release branch named after the release, e.g. v0.7.2-release, and push it to Apache.  &lt;/p&gt;
-
-&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;git checkout -b vX.Y.Z-release
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;git push -u origin vX.Y.Z-release&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
-
-&lt;p&gt;We will use the branch for the entire the release process. Meanwhile, we do not allow commits to the master branch. After the release is final, we can use &lt;code&gt;git merge --ff-only&lt;/code&gt; to append the changes on the release branch onto the master branch. (Apache does not allow reverts to the master branch, which makes it difficult to clean up the kind of messy commits that inevitably happen while you are trying to finalize a release.)&lt;/p&gt;
-
-&lt;p&gt;Now, set up your environment and do a dry run. The dry run will not commit any changes back to git and gives you the opportunity to verify that the release process will complete as expected.&lt;/p&gt;
-
-&lt;p&gt;If any of the steps fail, clean up (see below), fix the problem, and start again from the top.  &lt;/p&gt;
-
-&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;# Set passphrase variable without putting it into shell history&lt;/span&gt;
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;read&lt;/span&gt; -s GPG_PASSPHRASE
-
-&lt;span class=&quot;c&quot;&gt;# Make sure that there are no junk files in the sandbox&lt;/span&gt;
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;git clean -xn
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;mvn clean
-
-&lt;span class=&quot;c&quot;&gt;# Do a dry run of the release:prepare step, which sets version numbers.&lt;/span&gt;
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;mvn -DdryRun&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;true&lt;/span&gt; -DskipTests -DreleaseVersion&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;X.Y.Z-incubating -DdevelopmentVersion&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;X.Y.Z+1-incubating-SNAPSHOT -Papache-release -Darguments&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;-Dgpg.passphrase=${GPG_PASSPHRASE}&amp;quot;&lt;/span&gt; release:prepare 2&amp;gt;&lt;span class=&quot;p&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;|&lt;/span&gt; tee /tmp/prepare-dry.log&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
-
-&lt;p&gt;&lt;strong&gt;Check the artifacts:&lt;/strong&gt;&lt;/p&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;In the &lt;code&gt;target&lt;/code&gt; directory should be these 8 files, among others:
-    &lt;ul&gt;
-      &lt;li&gt;apache-kylin-X.Y.Z-incubating-src.tar.gz&lt;/li&gt;
-      &lt;li&gt;apache-kylin-X.Y.Z-incubating-src.tar.gz.asc&lt;/li&gt;
-      &lt;li&gt;apache-kylin-X.Y.Z-incubating-src.tar.gz.md5&lt;/li&gt;
-      &lt;li&gt;apache-kylin-X.Y.Z-incubating-src.tar.gz.sha1&lt;/li&gt;
-      &lt;li&gt;apache-kylin-X.Y.Z-incubating-src.zip&lt;/li&gt;
-      &lt;li&gt;apache-kylin-X.Y.Z-incubating-src.zip.asc&lt;/li&gt;
-      &lt;li&gt;apache-kylin-X.Y.Z-incubating-src.zip.md5&lt;/li&gt;
-      &lt;li&gt;apache-kylin-X.Y.Z-incubating-src.zip.sha1&lt;/li&gt;
-    &lt;/ul&gt;
-  &lt;/li&gt;
-  &lt;li&gt;Note that the file names start &lt;code&gt;apache-kylin-&lt;/code&gt; and include
-&lt;code&gt;incubating&lt;/code&gt; in the version.&lt;/li&gt;
-  &lt;li&gt;In the two source distros &lt;code&gt;.tar.gz&lt;/code&gt; and &lt;code&gt;.zip&lt;/code&gt;, check that all files belong to a directory called
-&lt;code&gt;apache-kylin-X.Y.Z-incubating-src&lt;/code&gt;.&lt;/li&gt;
-  &lt;li&gt;That directory must contain files &lt;code&gt;DISCLAIMER&lt;/code&gt;, &lt;code&gt;NOTICE&lt;/code&gt;, &lt;code&gt;LICENSE&lt;/code&gt;, &lt;code&gt;README.md&lt;/code&gt;&lt;/li&gt;
-  &lt;li&gt;Check PGP, per &lt;a href=&quot;https://httpd.apache.org/dev/verification.html&quot;&gt;this&lt;/a&gt;&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;&lt;strong&gt;Run real release:&lt;/strong&gt;
-Now, run the release for real.  &lt;/p&gt;
-
-&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;# Prepare sets the version numbers, creates a tag, and pushes it to git.&lt;/span&gt;
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;mvn -DskipTests -Papache-release -Darguments&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;-Dgpg.passphrase=${GPG_PASSPHRASE} -DskipTests&amp;quot;&lt;/span&gt; clean release:prepare
-
-&lt;span class=&quot;c&quot;&gt;# Perform checks out the tagged version, builds, and deploys to the staging repository&lt;/span&gt;
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;mvn -DskipTests -Papache-release -Darguments&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;-Dgpg.passphrase=${GPG_PASSPHRASE} -DskipTests&amp;quot;&lt;/span&gt; release:perform&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
-
-&lt;p&gt;&lt;strong&gt;Verify the staged artifacts in the Nexus repository:&lt;/strong&gt;&lt;br /&gt;
-* Go to &lt;a href=&quot;https://repository.apache.org/&quot;&gt;https://repository.apache.org/&lt;/a&gt; and login
-* Under &lt;code&gt;Build Promotion&lt;/code&gt;, click &lt;code&gt;Staging Repositories&lt;/code&gt;
-* In the &lt;code&gt;Staging Repositories&lt;/code&gt; tab there should be a line with profile &lt;code&gt;org.apache.kylin&lt;/code&gt;
-* Navigate through the artifact tree and make sure the .jar, .pom, .asc files are present
-* Check the box on in the first column of the row,
-  and press the ‘Close’ button to publish the repository at
-  https://repository.apache.org/content/repositories/orgapachekylin-1006
-  (or a similar URL)&lt;/p&gt;
-
-&lt;p&gt;&lt;strong&gt;Upload to staging area:&lt;/strong&gt;&lt;br /&gt;
-Upload the artifacts via subversion to a staging area, https://dist.apache.org/repos/dist/dev/incubator/kylin/apache-kylin-X.Y.Z-incubating-rcN:&lt;/p&gt;
-
-&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;# Create a subversion workspace, if you haven&amp;#39;t already&lt;/span&gt;
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;mkdir -p ~/dist/dev
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;pushd&lt;/span&gt; ~/dist/dev
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;svn co https://dist.apache.org/repos/dist/dev/incubator/kylin
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;popd&lt;/span&gt;
-
-&lt;span class=&quot;c&quot;&gt;# Move the files into a directory&lt;/span&gt;
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;target
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;mkdir ~/dist/dev/kylin/apache-kylin-X.Y.Z-incubating-rcN
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;mv apache-kylin-* ~/dist/dev/kylin/apache-kylin-X.Y.Z-incubating-rcN
-
-&lt;span class=&quot;c&quot;&gt;# Check in&lt;/span&gt;
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; ~/dist/dev/kylin
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;svn add apache-kylin-X.Y.Z-incubating-rcN
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;svn commit -m &lt;span class=&quot;s1&quot;&gt;&amp;#39;Upload release artifacts to staging&amp;#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
-
-&lt;p&gt;&lt;strong&gt;Cleaning up after a failed release attempt:&lt;/strong&gt;&lt;/p&gt;
-
-&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;# Make sure that the tag you are about to generate does not already&lt;/span&gt;
-&lt;span class=&quot;c&quot;&gt;# exist (due to a failed release attempt)&lt;/span&gt;
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;git tag
-
-&lt;span class=&quot;c&quot;&gt;# If the tag exists, delete it locally and remotely&lt;/span&gt;
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;git tag -d apache-kylin-X.Y.Z-incubating
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;git push origin :refs/tags/apache-kylin-X.Y.Z-incubating
-
-&lt;span class=&quot;c&quot;&gt;# Remove modified files&lt;/span&gt;
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;mvn release:clean
-
-&lt;span class=&quot;c&quot;&gt;# Check whether there are modified files and if so, go back to the&lt;/span&gt;
-&lt;span class=&quot;c&quot;&gt;# original git commit&lt;/span&gt;
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;git status
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;git reset --hard HEAD&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
-
-&lt;h1 id=&quot;validate-a-release&quot;&gt;Validate a release&lt;/h1&gt;
-
-&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;# Check that the signing key (e.g. 2AD3FAE3) is pushed&lt;/span&gt;
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;gpg --recv-keys key
-
-&lt;span class=&quot;c&quot;&gt;# Check keys&lt;/span&gt;
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;curl -O https://dist.apache.org/repos/dist/release/incubator/kylin/KEYS
-
-&lt;span class=&quot;c&quot;&gt;# Sign/check md5 and sha1 hashes&lt;/span&gt;
-&lt;span class=&quot;c&quot;&gt;# (Assumes your O/S has &amp;#39;md5&amp;#39; and &amp;#39;sha1&amp;#39; commands.)&lt;/span&gt;
-&lt;span class=&quot;k&quot;&gt;function&lt;/span&gt; checkHash&lt;span class=&quot;o&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
-  &lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;$1&amp;quot;&lt;/span&gt;
-  &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; i in *.&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;zip,pom,gz&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;do&lt;/span&gt;
-    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; ! -f &lt;span class=&quot;nv&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then&lt;/span&gt;
-      &lt;span class=&quot;k&quot;&gt;continue&lt;/span&gt;
-    &lt;span class=&quot;k&quot;&gt;fi&lt;/span&gt;
-    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; -f &lt;span class=&quot;nv&quot;&gt;$i&lt;/span&gt;.md5 &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then&lt;/span&gt;
-      &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;$(cat $i.md5)&amp;quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;$(md5 -q $i)&amp;quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then&lt;/span&gt;
-        &lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$i&lt;/span&gt;.md5 present and correct
-      &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt;
-        &lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$i&lt;/span&gt;.md5 does not match
-      &lt;span class=&quot;k&quot;&gt;fi&lt;/span&gt;
-    &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt;
-      md5 -q &lt;span class=&quot;nv&quot;&gt;$i&lt;/span&gt; &amp;gt; &lt;span class=&quot;nv&quot;&gt;$i&lt;/span&gt;.md5
-      &lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$i&lt;/span&gt;.md5 created
-    &lt;span class=&quot;k&quot;&gt;fi&lt;/span&gt;
-    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; -f &lt;span class=&quot;nv&quot;&gt;$i&lt;/span&gt;.sha1 &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then&lt;/span&gt;
-      &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;$(cat $i.sha1)&amp;quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;$(sha1 -q $i)&amp;quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then&lt;/span&gt;
-        &lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$i&lt;/span&gt;.sha1 present and correct
-      &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt;
-        &lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$i&lt;/span&gt;.sha1 does not match
-      &lt;span class=&quot;k&quot;&gt;fi&lt;/span&gt;
-    &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt;
-      sha1 -q &lt;span class=&quot;nv&quot;&gt;$i&lt;/span&gt; &amp;gt; &lt;span class=&quot;nv&quot;&gt;$i&lt;/span&gt;.sha1
-      &lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$i&lt;/span&gt;.sha1 created
-    &lt;span class=&quot;k&quot;&gt;fi&lt;/span&gt;
-  &lt;span class=&quot;k&quot;&gt;done&lt;/span&gt;
-&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;checkHash apache-kylin-X.Y.Z-incubating-rcN&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
-
-&lt;h1 id=&quot;apache-voting-process&quot;&gt;Apache voting process&lt;/h1&gt;
-
-&lt;p&gt;&lt;strong&gt;Vote on Apache Kylin dev mailing list&lt;/strong&gt;&lt;br /&gt;
-Release vote on dev list:  &lt;/p&gt;
-
-&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-text&quot; data-lang=&quot;text&quot;&gt;To: dev@kylin.incubator.apache.org
-Subject: [VOTE] Release apache-kylin-X.Y.Z-incubating (release candidate N)
-
-Hi all,
-
-I have created a build for Apache Kylin X.Y.Z-incubating, release candidate N.
-
-Changes highlights:
-...
-
-Thanks to everyone who has contributed to this release.
-Here’s release notes:
-https://github.com/apache/incubator-kylin/blob/XXX/docs/release_notes.md
-
-The commit to be voted upon:
-
-https://github.com/apache/incubator-kylin/commit/xxx
-
-Its hash is xxx.
-
-The artifacts to be voted on are located here:
-https://dist.apache.org/repos/dist/dev/incubator/kylin/apache-kylin-X.Y.Z-incubating-rcN/
-
-The hashes of the artifacts are as follows:
-src.zip.md5 xxx
-src.zip.sha1 xxx
-src.tar.gz.md5 xxx
-src.tar.gz.sha1 xxx
-
-A staged Maven repository is available for review at:
-https://repository.apache.org/content/repositories/orgapachekylin-XXXX/
-
-Release artifacts are signed with the following key:
-https://people.apache.org/keys/committer/lukehan.asc
-
-Please vote on releasing this package as Apache Kylin X.Y.Z-incubating.
-
-The vote is open for the next 72 hours and passes if a majority of
-at least three +1 PPMC votes are cast.
-
-[ ] +1 Release this package as Apache Kylin X.Y.Z-incubating
-[ ]  0 I don&amp;#39;t feel strongly about it, but I&amp;#39;m okay with the release
-[ ] -1 Do not release this package because...
-
-
-Here is my vote:
-
-+1 (binding)
-
-Luke&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
-
-&lt;p&gt;After vote finishes, send out the result:  &lt;/p&gt;
-
-&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-text&quot; data-lang=&quot;text&quot;&gt;Subject: [RESULT] [VOTE] Release apache-kylin-X.Y.Z-incubating (release candidate N)
-To: dev@kylin.incubator.apache.org
-
-Thanks to everyone who has tested the release candidate and given
-their comments and votes.
-
-The tally is as follows.
-
-N binding +1s:
-
-N non-binding +1s:
-
-No 0s or -1s.
-
-Therefore I am delighted to announce that the proposal to release
-Apache-Kylin-X.Y.Z-incubating has passed.
-
-I&amp;#39;ll now start a vote on the general list. Those of you in the IPMC,
-please recast your vote on the new thread.
-
-Luke&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
-
-&lt;p&gt;&lt;strong&gt;Vote on Apache incubator general mailing list&lt;/strong&gt; &lt;br /&gt;
-Use the &lt;a href=&quot;http://s.apache.org&quot;&gt;Apache URL shortener&lt;/a&gt; to generate
-shortened URLs for the vote proposal and result emails. Examples:
-&lt;a href=&quot;http://s.apache.org/kylin-0.7.1-vote_rc3&quot;&gt;http://s.apache.org/kylin-0.7.1-vote_rc3&lt;/a&gt; and
-&lt;a href=&quot;http://s.apache.org/kylin-0.7.1-result_rc3&quot;&gt;http://s.apache.org/kylin-0.7.1-result_rc3&lt;/a&gt;.&lt;/p&gt;
-
-&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-text&quot; data-lang=&quot;text&quot;&gt;To: general@incubator.apache.org
-Subject: [VOTE] Release Apache Kylin X.Y.Z (incubating)
-
-Hi all,
-
-The Apache Kylin community has voted on and approved a proposal to release
-Apache Kylin X.Y.Z (incubating).
-
-Proposal:
-http://s.apache.org/kylin-X.Y.Z-vote_rcN
-
-Vote result:
-N binding +1 votes
-N non-binding +1 votes
-No -1 votes
-http://s.apache.org/kylin-X.Y.Z-result_rcN
-
-
-The commit to be voted upon:
-https://github.com/apache/incubator-kylin/commit/XXX
-
-Its hash is XXX.
-
-The artifacts to be voted on are located here:
-https://dist.apache.org/repos/dist/dev/incubator/kylin/apache-kylin-X.Y.Z-incubating-rcN/
-
-The hashes of the artifacts are as follows:
-src.zip.md5 XXX
-src.zip.sha1 XXX
-src.tar.gz.md5 XXX
-src.tar.gz.sha1 XXX
-
-A staged Maven repository is available for review at:
-https://repository.apache.org/content/repositories/orgapachekylin-NNNN/
-
-Release artifacts are signed with the following key:
-https://people.apache.org/keys/committer/lukehan.asc
-
-Pursuant to the Releases section of the Incubation Policy and with
-the endorsement of our mentors we would now like to request
-the permission of the Incubator PMC to publish the release. The vote
-is open for 72 hours, or until the necessary number of votes (3 +1)
-is reached.
-
-[ ] +1 Release this package
-[ ]  0 I don&amp;#39;t feel strongly about it, but I&amp;#39;m okay with the release
-[ ] -1 Do not release this package because...
-
-
-Luke Han, on behalf of Apache Kylin PPMC&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
-
-&lt;p&gt;After vote finishes, send out the result:&lt;/p&gt;
-
-&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-text&quot; data-lang=&quot;text&quot;&gt;To: general@incubator.apache.org
-Subject: [RESULT] [VOTE] Release Apache Kylin X.Y.Z (incubating)
-
-This vote passes with N +1s and no 0 or -1 votes:
-
-+1 &amp;lt;name&amp;gt; (binding or no-binding)
-
-Thanks everyone. We’ll now roll the release out to the mirrors.
-
-Luke Han, on behalf of Apache Kylin PPMC&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
-
-&lt;h1 id=&quot;publishing-a-release&quot;&gt;Publishing a release&lt;/h1&gt;
-&lt;p&gt;After a successful release vote, we need to push the release
-out to mirrors, and other tasks.&lt;/p&gt;
-
-&lt;p&gt;In JIRA, search for
-&lt;a href=&quot;https://issues.apache.org/jira/issues/?jql=project%20%3D%20KYLIN%20&quot;&gt;all issues resolved in this release&lt;/a&gt;,
-and do a bulk update changing their status to “Closed”,
-with a change comment
-“Resolved in release X.Y.Z-incubating (YYYY-MM-DD)”
-(fill in release number and date appropriately).&lt;br /&gt;
-&lt;strong&gt;Uncheck “Send mail for this update”.&lt;/strong&gt;&lt;/p&gt;
-
-&lt;p&gt;Promote the staged nexus artifacts.&lt;/p&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;Go to &lt;a href=&quot;https://repository.apache.org/&quot;&gt;https://repository.apache.org/&lt;/a&gt; and login&lt;/li&gt;
-  &lt;li&gt;Under “Build Promotion” click “Staging Repositories”&lt;/li&gt;
-  &lt;li&gt;In the line with “orgapachekylin-xxxx”, check the box&lt;/li&gt;
-  &lt;li&gt;Press “Release” button&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;Check the artifacts into svn.&lt;/p&gt;
-
-&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;# Get the release candidate.&lt;/span&gt;
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;mkdir -p ~/dist/dev
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; ~/dist/dev
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;svn co https://dist.apache.org/repos/dist/dev/incubator/kylin
-
-&lt;span class=&quot;c&quot;&gt;# Copy the artifacts. Note that the copy does not have &amp;#39;-rcN&amp;#39; suffix.&lt;/span&gt;
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;mkdir -p ~/dist/release
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; ~/dist/release
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;svn co https://dist.apache.org/repos/dist/release/incubator/kylin
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;kylin
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;cp -rp ../../dev/kylin/apache-kylin-X.Y.Z-incubating-rcN apache-kylin-X.Y.Z-incubating
-&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;svn add apache-kylin-X.Y.Z-incubating
-
-&lt;span class=&quot;c&quot;&gt;# Check in.&lt;/span&gt;
-svn commit -m &lt;span class=&quot;s1&quot;&gt;&amp;#39;checkin release artifacts&amp;#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
-
-&lt;p&gt;Svnpubsub will publish to
-&lt;a href=&quot;https://dist.apache.org/repos/dist/release/incubator/kylin&quot;&gt;https://dist.apache.org/repos/dist/release/incubator/kylin&lt;/a&gt; and propagate to
-&lt;a href=&quot;http://www.apache.org/dyn/closer.cgi/incubator/kylin&quot;&gt;http://www.apache.org/dyn/closer.cgi/incubator/kylin&lt;/a&gt; within 24 hours.&lt;/p&gt;
-
-&lt;p&gt;If there are now more than 2 releases, clear out the oldest ones:&lt;/p&gt;
-
-&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; ~/dist/release/kylin
-svn rm apache-kylin-X.Y.Z-incubating
-svn commit -m &lt;span class=&quot;s1&quot;&gt;&amp;#39;Remove old release&amp;#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
-
-&lt;p&gt;The old releases will remain available in the
-&lt;a href=&quot;http://archive.apache.org/dist/incubator/kylin/&quot;&gt;release archive&lt;/a&gt;.&lt;/p&gt;
-
-&lt;p&gt;Release same version in JIRA, check &lt;a href=&quot;https://issues.apache.org/jira/browse/KYLIN/?selectedTab=com.atlassian.jira.jira-projects-plugin:changelog-panel&quot;&gt;Change Log&lt;/a&gt; for the latest released version.&lt;/p&gt;
-
-&lt;h1 id=&quot;publishing-the-web-site&quot;&gt;Publishing the web site&lt;/h1&gt;
-&lt;p&gt;&lt;em&gt;TBD&lt;/em&gt;&lt;/p&gt;
-
-&lt;h1 id=&quot;thanks&quot;&gt;Thanks&lt;/h1&gt;
-&lt;p&gt;This guide drafted with reference from &lt;a href=&quot;http://calcite.incubator.apache.org&quot;&gt;Apache Calcite&lt;/a&gt; Howto doc, Thank you very much.&lt;/p&gt;
-
-</description>
-        <pubDate>Mon, 06 Jul 2015 00:00:00 -0700</pubDate>
-        <link>http://kylin.incubator.apache.org/howto/2015/07/06/How-to-making-a-release/</link>
-        <guid isPermaLink="true">http://kylin.incubator.apache.org/howto/2015/07/06/How-to-making-a-release/</guid>
-        
-        
-        <category>howto</category>
-        
-      </item>
-    
-      <item>
-        <title>Events and Conferences</title>
-        <description>&lt;p&gt;&lt;strong&gt;Coming Events&lt;/strong&gt;&lt;/p&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;ApacheCon EU 2015&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;&lt;strong&gt;Conferences&lt;/strong&gt;&lt;/p&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=jgvZSFaXPgI&quot;&gt;Apache Kylin - Balance Between Space and Time&lt;/a&gt;, &lt;a href=&quot;http://www.slideshare.net/DebashisSaha/apache-kylin-balance-between-space-and-time-hadop-summit-2015&quot;&gt;slides&lt;/a&gt; (&lt;a href=&quot;https://www.youtube.com/watch?v=jgvZSFaXPgI&quot;&gt;video&lt;/a&gt;, &lt;a href=&quot;http://www.slideshare.net/DebashisSaha/apache-kylin-balance-between-space-and-time-hadop-summit-2015&quot;&gt;slides&lt;/a&gt;) by &lt;a href=&quot;https://twitter.com/debashis_saha&quot;&gt;Debashis Saha&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://twitter.com/lukehq&quot;&gt;Luke Han&lt;/a&gt;, at Hadoop Summit 2015 in San Jose, US, 2015-06-09&lt;/li&gt;
-  &lt;li&gt;&lt;a href=&quot;https://vimeo.com/128152444&quot;&gt;HBaseCon 2015: Apache Kylin; Extreme OLAP Engine for Hadoop&lt;/a&gt; (&lt;a href=&quot;https://vimeo.com/128152444&quot;&gt;video&lt;/a&gt;, &lt;a href=&quot;http://www.slideshare.net/HBaseCon/ecosystem-session-3b&quot;&gt;slides&lt;/a&gt;) by &lt;a href=&quot;https://twitter.com/SeshuAd&quot;&gt;Seshu Adunuthula&lt;/a&gt; at HBaseCon 2015 in San Francisco, US, 2015-05-07&lt;/li&gt;
-  &lt;li&gt;&lt;a href=&quot;http://strataconf.com/big-data-conference-uk-2015/public/schedule/detail/40029&quot;&gt;Apache Kylin - Extreme OLAP Engine for Hadoop&lt;/a&gt; (&lt;a href=&quot;http://www.slideshare.net/lukehan/apache-kylin-extreme-olap-engine-for-big-data&quot;&gt;slides&lt;/a&gt;) by &lt;a href=&quot;https://twitter.com/lukehq&quot;&gt;Luke Han&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://github.com/liyang-gmt8&quot;&gt;Yang Li&lt;/a&gt;, at Strata+Hadoop World in London, UK, 2015-05-06&lt;/li&gt;
-  &lt;li&gt;&lt;a href=&quot;http://www.infoq.com/cn/presentations/open-source-journey-of-apache-kylin&quot;&gt;Apache Kylin Open Source Journey&lt;/a&gt; (&lt;a href=&quot;http://www.slideshare.net/lukehan/apache-kylin-open-source-journey-for-qcon2015-beijing&quot;&gt;slides&lt;/a&gt;) by &lt;a href=&quot;https://twitter.com/lukehq&quot;&gt;Luke Han&lt;/a&gt;, at QCon Beijing in Beijing, China, 2015-04-23&lt;/li&gt;
-  &lt;li&gt;&lt;a href=&quot;http://cio.it168.com/a2015/0418/1721/000001721404.shtml&quot;&gt;Apache Kylin - OLAP on Hadoop&lt;/a&gt; by &lt;a href=&quot;https://github.com/liyang-gmt8&quot;&gt;Yang Li&lt;/a&gt;, at Database Technology Conference China 2015 in Beijing, China, 2015-04-18&lt;/li&gt;
-  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=U0SbrVzuOe4&quot;&gt;Apache Kylin – Cubes on Hadoop&lt;/a&gt; (&lt;a href=&quot;https://www.youtube.com/watch?v=U0SbrVzuOe4&quot;&gt;video&lt;/a&gt;, &lt;a href=&quot;http://www.slideshare.net/Hadoop_Summit/apache-kylin-cubes-on-hadoop&quot;&gt;slides&lt;/a&gt;) by &lt;a href=&quot;https://twitter.com/ted_dunning&quot;&gt;Ted Dunning&lt;/a&gt;, at Hadoop Summit 2015 Europe in Brussels, Belgium, 2015-04-16&lt;/li&gt;
-  &lt;li&gt;&lt;a href=&quot;http://bdtc2014.hadooper.cn/m/zone/bdtc_2014/schedule3&quot;&gt;Apache Kylin - Hadoop 上的大规模联机分析平台&lt;/a&gt; (&lt;a href=&quot;http://www.slideshare.net/lukehan/apache-kylin-big-data-technology-conference-2014-beijing-v2&quot;&gt;slides&lt;/a&gt;) by &lt;a href=&quot;https://twitter.com/lukehq&quot;&gt;Luke Han&lt;/a&gt;, at Big Data Technology Conference China in Beijing, China, 2014-12-14&lt;/li&gt;
-  &lt;li&gt;&lt;a href=&quot;http://v.csdn.hudong.com/s/article.html?arcid=15820707&quot;&gt;Apache Kylin: OLAP Engine on Hadoop - Tech Deep Dive&lt;/a&gt; (&lt;a href=&quot;http://v.csdn.hudong.com/s/article.html?arcid=15820707&quot;&gt;video&lt;/a&gt;, &lt;a href=&quot;http://www.slideshare.net/XuJiang2/kylin-hadoop-olap-engine&quot;&gt;slides&lt;/a&gt;) by &lt;a href=&quot;https://www.linkedin.com/pub/xu-jiang/4/5a8/230&quot;&gt;Jiang Xu&lt;/a&gt;, at Shanghai Big Data Summit 2014 in Shanghai, China , 2014-10-25&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;&lt;strong&gt;Meetup&lt;/strong&gt;&lt;/p&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;&lt;a href=&quot;http://www.meetup.com/Cloud-at-ebayinc/events/218914395/&quot;&gt;Apache Kylin Meetup @Bay Area&lt;/a&gt;, in San Jose, US, 6:00PM - 7:30PM, Thursday, 2014-12-04&lt;/li&gt;
-&lt;/ul&gt;
-
-</description>
-        <pubDate>Thu, 02 Jul 2015 00:00:00 -0700</pubDate>
-        <link>http://kylin.incubator.apache.org/gettingstarted/2015/07/02/Events-and-Conferences/</link>
-        <guid isPermaLink="true">http://kylin.incubator.apache.org/gettingstarted/2015/07/02/Events-and-Conferences/</guid>
-        
-        
-        <category>gettingstarted</category>
-        
-      </item>
-    
-      <item>
         <title>Release v0.7.1-incubating</title>
-        <description>&lt;p&gt;Apache Kylin v0.7.1-incubating has rolled out on June 10, 2015. This is also the first Apache release after join incubating. &lt;/p&gt;
+        <description>&lt;p&gt;Apache Kylin v0.7.1-incubating has rolled out on June 10, 2015. This is also the first Apache release after join incubating.&lt;/p&gt;
 
 &lt;p&gt;To download this release, please visit: &lt;a href=&quot;http://kylin.incubator.apache.org/download/&quot;&gt;http://kylin.incubator.apache.org/download/&lt;/a&gt;, there are source code package, binary package, ODBC driver and installation guide avaliable.&lt;/p&gt;
 
@@ -524,20 +42,21 @@ svn commit -m &lt;span class=&quot;s1&qu
   &lt;li&gt;Job engine refactor to be generic job manager for all jobs, and improved efficiency&lt;/li&gt;
   &lt;li&gt;Support Hive database other than ‘default’&lt;/li&gt;
   &lt;li&gt;JDBC driver avaliable for client to interactive with Kylin server&lt;/li&gt;
-  &lt;li&gt;Binary pacakge avaliable download &lt;/li&gt;
+  &lt;li&gt;Binary pacakge avaliable download&lt;/li&gt;
 &lt;/ul&gt;
 
 &lt;p&gt;&lt;strong&gt;New Feature&lt;/strong&gt;&lt;/p&gt;
 
-&lt;pre&gt;&lt;code&gt;* [KYLIN-327] - Binary distribution 
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;* [KYLIN-327] - Binary distribution 
 * [KYLIN-368] - Move MailService to Common module
 * [KYLIN-540] - Data model upgrade for legacy cube descs
 * [KYLIN-576] - Refactor expansion rate expression
 &lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
 
 &lt;p&gt;&lt;strong&gt;Task&lt;/strong&gt;&lt;/p&gt;
 
-&lt;pre&gt;&lt;code&gt;* [KYLIN-361] - Rename package name with Apache Kylin
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;* [KYLIN-361] - Rename package name with Apache Kylin
 * [KYLIN-531] - Rename package name to org.apache.kylin
 * [KYLIN-533] - Job Engine Refactoring
 * [KYLIN-585] - Simplify deployment
@@ -547,17 +66,19 @@ svn commit -m &lt;span class=&quot;s1&qu
 * [KYLIN-650] - Move all document from github wiki to code repository (using md file)
 * [KYLIN-669] - Release v0.7.1 as first apache release
 &lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
 
 &lt;p&gt;&lt;strong&gt;Sub-task&lt;/strong&gt;&lt;/p&gt;
 
-&lt;pre&gt;&lt;code&gt;* [KYLIN-670] - Update pom with &quot;incubating&quot; in version number
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;* [KYLIN-670] - Update pom with &quot;incubating&quot; in version number
 * [KYLIN-737] - Generate and sign release package for review and vote
 * [KYLIN-795] - Release after success vote
 &lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
 
 &lt;p&gt;&lt;strong&gt;Bug&lt;/strong&gt;&lt;/p&gt;
 
-&lt;pre&gt;&lt;code&gt;* [KYLIN-132] - Job framework
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;* [KYLIN-132] - Job framework
 * [KYLIN-194] - Dict &amp;amp; ColumnValueContainer does not support number comparison, they do string comparison right now
 * [KYLIN-220] - Enable swap column of Rowkeys in Cube Designer
 * [KYLIN-230] - Error when create HTable
@@ -613,10 +134,11 @@ svn commit -m &lt;span class=&quot;s1&qu
 * [KYLIN-739] - Dimension as metrics does not work with PK-FK derived column
 * [KYLIN-761] - Tables are not shown in the &quot;Query&quot; tab, and couldn&#39;t run SQL query after cube be built
 &lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
 
 &lt;p&gt;&lt;strong&gt;Improvement&lt;/strong&gt;&lt;/p&gt;
 
-&lt;pre&gt;&lt;code&gt;* [KYLIN-168] - Installation fails if multiple ZK
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;* [KYLIN-168] - Installation fails if multiple ZK
 * [KYLIN-182] - Validation Rule: columns used in Join condition should have same datatype
 * [KYLIN-204] - Kylin web not works properly in IE
 * [KYLIN-217] - Enhance coprocessor with endpoints 
@@ -647,11 +169,13 @@ svn commit -m &lt;span class=&quot;s1&qu
 * [KYLIN-779] - [UI] jump to cube list after create cube
 * [KYLIN-796] - Add REST API to trigger storage cleanup/GC
 &lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
 
 &lt;p&gt;&lt;strong&gt;Wish&lt;/strong&gt;&lt;/p&gt;
 
-&lt;pre&gt;&lt;code&gt;* [KYLIN-608] - Distinct count for ii storage
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;* [KYLIN-608] - Distinct count for ii storage
 &lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
 
 </description>
         <pubDate>Wed, 10 Jun 2015 05:28:00 -0700</pubDate>
@@ -664,722 +188,50 @@ svn commit -m &lt;span class=&quot;s1&qu
       </item>
     
       <item>
-        <title>Terminology</title>
-        <description>
-</description>
-        <pubDate>Thu, 28 May 2015 00:00:00 -0700</pubDate>
-        <link>http://kylin.incubator.apache.org/gettingstarted/2015/05/28/Terminology/</link>
-        <guid isPermaLink="true">http://kylin.incubator.apache.org/gettingstarted/2015/05/28/Terminology/</guid>
-        
-        
-        <category>gettingstarted</category>
-        
-      </item>
-    
-      <item>
-        <title>FAQ</title>
-        <description>&lt;h4 id=&quot;some-npm-error-causes-error-exit-&quot;&gt;Some NPM error causes ERROR exit (中国大陆地区用户请特别注意此问题)?&lt;/h4&gt;
-&lt;p&gt;Check out &lt;a href=&quot;https://github.com/KylinOLAP/Kylin/issues/35&quot;&gt;https://github.com/KylinOLAP/Kylin/issues/35&lt;/a&gt;&lt;/p&gt;
-
-&lt;h4 id=&quot;cant-get-master-address-from-zookeeper-when-installing-kylin-on-hortonworks-sandbox&quot;&gt;Can’t get master address from ZooKeeper” when installing Kylin on Hortonworks Sandbox&lt;/h4&gt;
-&lt;p&gt;Check out &lt;a href=&quot;https://github.com/KylinOLAP/Kylin/issues/9&quot;&gt;https://github.com/KylinOLAP/Kylin/issues/9&lt;/a&gt;.&lt;/p&gt;
-
-&lt;h4 id=&quot;install-scripted-finished-in-my-virtual-machine-but-cannot-visit-via-httplocalhost9080&quot;&gt;Install scripted finished in my virtual machine, but cannot visit via http://localhost:9080&lt;/h4&gt;
-&lt;p&gt;Check out &lt;a href=&quot;https://github.com/KylinOLAP/Kylin/issues/12&quot;&gt;https://github.com/KylinOLAP/Kylin/issues/12&lt;/a&gt;.&lt;/p&gt;
-
-&lt;h4 id=&quot;map-reduce-job-information-cant-display-on-sandbox-deployment&quot;&gt;Map Reduce Job information can’t display on sandbox deployment&lt;/h4&gt;
-&lt;p&gt;Check out &lt;a href=&quot;https://github.com/KylinOLAP/Kylin/issues/40&quot;&gt;https://github.com/KylinOLAP/Kylin/issues/40&lt;/a&gt;&lt;/p&gt;
-
-&lt;h4 id=&quot;install-kylin-on-cdh-52-or-hadoop-25x&quot;&gt;Install Kylin on CDH 5.2 or Hadoop 2.5.x&lt;/h4&gt;
-&lt;p&gt;Check out discussion: &lt;a href=&quot;https://groups.google.com/forum/?utm_medium=email&amp;amp;utm_source=footer#!msg/kylin-olap/X0GZfsX1jLc/nzs6xAhNpLkJ&quot;&gt;https://groups.google.com/forum/?utm_medium=email&amp;amp;utm_source=footer#!msg/kylin-olap/X0GZfsX1jLc/nzs6xAhNpLkJ&lt;/a&gt;&lt;/p&gt;
-
-&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-groff&quot; data-lang=&quot;groff&quot;&gt;I was able to deploy Kylin with following option in POM.
-&amp;lt;hadoop2.version&amp;gt;2.5.0&amp;lt;/hadoop2.version&amp;gt;
-&amp;lt;yarn.version&amp;gt;2.5.0&amp;lt;/yarn.version&amp;gt;
-&amp;lt;hbase-hadoop2.version&amp;gt;0.98.6-hadoop2&amp;lt;/hbase-hadoop2.version&amp;gt;
-&amp;lt;zookeeper.version&amp;gt;3.4.5&amp;lt;/zookeeper.version&amp;gt;
-&amp;lt;hive.version&amp;gt;0.13.1&amp;lt;/hive.version&amp;gt;
-My Cluster is running on Cloudera Distribution CDH 5.2.0.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
-
-&lt;h4 id=&quot;unable-to-load-a-big-cube-as-htable-with-javalangoutofmemoryerror-unable-to-create-new-native-thread&quot;&gt;Unable to load a big cube as HTable, with java.lang.OutOfMemoryError: unable to create new native thread&lt;/h4&gt;
-&lt;p&gt;HBase (as of writing) allocates one thread per region when bulk loading a HTable. Try reduce the number of regions of your cube by setting its “capacity” to “MEDIUM” or “LARGE”. Also tweaks OS &amp;amp; JVM can allow more threads, for example see &lt;a href=&quot;http://blog.egilh.com/2006/06/2811aspx.html&quot;&gt;this article&lt;/a&gt;.&lt;/p&gt;
-
-&lt;h4 id=&quot;failed-to-run-buildcubewithenginetest-saying-failed-to-connect-to-hbase-while-hbase-is-active&quot;&gt;Failed to run BuildCubeWithEngineTest, saying failed to connect to hbase while hbase is active&lt;/h4&gt;
-&lt;p&gt;User may get this error when first time run hbase client, please check the error trace to see whether there is an error saying couldn’t access a folder like “/hadoop/hbase/local/jars”; If that folder doesn’t exist, create it.&lt;/p&gt;
-
-&lt;h4 id=&quot;sumfield-returns-a-negtive-result-while-all-the-numbers-in-this-field-are--0&quot;&gt;SUM(field) returns a negtive result while all the numbers in this field are &amp;gt; 0&lt;/h4&gt;
-&lt;p&gt;If a column is declared as integer in Hive, the SQL engine (calcite) will use column’s type (integer) as the data type for “SUM(field)”, while the aggregated value on this field may exceed the scope of integer; in that case the cast will cause a negtive value be returned; The workround is, alter that column’s type to BIGINT in hive, and then sync the table schema to Kylin (the cube doesn’t need rebuild); Keep in mind that, always declare as BIGINT in hive for an integer column which would be used as a measure in Kylin; See hive number types: &lt;a href=&quot;https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-NumericTypes&quot;&gt;https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-NumericTypes&lt;/a&gt;&lt;/p&gt;
-
-&lt;h4 id=&quot;why-kylin-need-extract-the-distinct-columns-from-fact-table-before-building-cube&quot;&gt;Why Kylin need extract the distinct columns from Fact Table before building cube?&lt;/h4&gt;
-&lt;p&gt;Kylin uses dictionary to encode the values in each column, this greatly reduce the cube’s storage size. To build the dictionary, Kylin need fetch the distinct values for each column.&lt;/p&gt;
-
-&lt;h4 id=&quot;why-kylin-calculate-the-hive-table-cardinality&quot;&gt;Why Kylin calculate the HIVE table cardinality?&lt;/h4&gt;
-&lt;p&gt;The cardinality of dimensions is an important measure of cube complexity. The higher the cardinality, the bigger the cube, and thus the longer to build and the slower to query. Cardinality &amp;gt; 1,000 is worth attention and &amp;gt; 1,000,000 should be avoided at best effort. For optimal cube performance, try reduce high cardinality by categorize values or derive features.&lt;/p&gt;
-</description>
-        <pubDate>Mon, 18 May 2015 00:00:00 -0700</pubDate>
-        <link>http://kylin.incubator.apache.org/gettingstarted/2015/05/18/FAQ/</link>
-        <guid isPermaLink="true">http://kylin.incubator.apache.org/gettingstarted/2015/05/18/FAQ/</guid>
-        
-        
-        <category>gettingstarted</category>
-        
-      </item>
-    
-      <item>
-        <title>Export Kylin HBase data</title>
-        <description>&lt;p&gt;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;&lt;/p&gt;
-
-&lt;p&gt;Steps:&lt;/p&gt;
+        <title>Introduce Data Model of Cube Designer</title>
+        <description>&lt;h3 id=&quot;background&quot;&gt;Background&lt;/h3&gt;
+&lt;p&gt;In previous version (before v0.6.4), Kylin introduced a GUI tool called Cube Designer for user (we called this role as &lt;strong&gt;Cube Modeler&lt;/strong&gt;) to architect OLAP Cube with dimensions, measures and other settings. It works well for most of the features but still not user friendly yet:&lt;/p&gt;
 
 &lt;ol&gt;
-  &lt;li&gt;Cleanup unused cubes to save storage space (be cautious on production!): run the following command in hbase CLI: &lt;/li&gt;
+  &lt;li&gt;A user has to add dimension one by one, considering there are 20+ even 50+ dimensions, the entire process is really boring.&lt;/li&gt;
+  &lt;li&gt;Each dimension requires define join condition between fact table and lookup table which even already be defined in previous dimensions many times.&lt;/li&gt;
+  &lt;li&gt;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.&lt;/li&gt;
+  &lt;li&gt;Save/Next buttons are confusing user to click which one for real next step or just save current dimension settings&lt;/li&gt;
 &lt;/ol&gt;
 
-&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-groff&quot; data-lang=&quot;groff&quot;&gt;hbase org.apache.hadoop.util.RunJar /${KYLIN_HOME}/lib/kylin-job-(version).jar org.apache.kylin.job.hadoop.cube.StorageCleanupJob --delete true&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
+&lt;h3 id=&quot;data-model-of-cube-designer&quot;&gt;Data Model of Cube Designer&lt;/h3&gt;
+&lt;p&gt;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.&lt;a href=&quot;http://en.wikipedia.org/wiki/Data_model&quot;&gt;Wikipedia&lt;/a&gt;. In Kylin, it using &lt;a href=&quot;http://en.wikipedia.org/wiki/Star_schema&quot;&gt;Star Schema&lt;/a&gt; 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. &lt;br /&gt;
+Now (after v0.6.4), to create a cube will follow below steps:&lt;/p&gt;
 
 &lt;ol&gt;
-  &lt;li&gt;
-    &lt;p&gt;List all HBase tables, iterate and then export each Kylin table to HDFS; See &lt;a href=&quot;https://hbase.apache.org/book/ops_mgt.html#export&quot;&gt;https://hbase.apache.org/book/ops_mgt.html#export&lt;/a&gt;&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;Copy the export folder from HDFS to local file system, and then archive it;&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;(optional) Download the archive from Hadoop CLI to local;&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;Cleanup the export folder from CLI HDFS and local file system;&lt;/p&gt;
-  &lt;/li&gt;
+  &lt;li&gt;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.&lt;/li&gt;
+  &lt;li&gt;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 &lt;em&gt;Auto Generator&lt;/em&gt; to help generate many dimensions within simple clicks.&lt;/li&gt;
+  &lt;li&gt;Then define measures and others as previous cube designer did&lt;/li&gt;
 &lt;/ol&gt;
 
-&lt;p&gt;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;&lt;/p&gt;
-</description>
-        <pubDate>Mon, 18 May 2015 00:00:00 -0700</pubDate>
-        <link>http://kylin.incubator.apache.org/howto/2015/05/18/Export-Kylin-HBase-data/</link>
-        <guid isPermaLink="true">http://kylin.incubator.apache.org/howto/2015/05/18/Export-Kylin-HBase-data/</guid>
-        
-        
-        <category>howto</category>
-        
-      </item>
-    
-      <item>
-        <title>Kylin网页版教程</title>
-        <description>&lt;blockquote&gt;
-  &lt;p&gt;&lt;strong&gt;支持的浏览器&lt;/strong&gt;&lt;/p&gt;
-
-  &lt;p&gt;Windows: Google Chrome, FireFox&lt;/p&gt;
-
-  &lt;p&gt;Mac: Google Chrome, FireFox, Safari&lt;/p&gt;
-&lt;/blockquote&gt;
-
-&lt;h2 id=&quot;section&quot;&gt;1. 访问 &amp;amp; 登陆&lt;/h2&gt;
-&lt;p&gt;访问主机: http://your_sandbox_ip:9080
-使用用户名/密码登陆:ADMIN/KYLIN&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/1 login.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;h2 id=&quot;kylinhive&quot;&gt;2. Kylin中可用的Hive表&lt;/h2&gt;
-&lt;p&gt;虽然Kylin使用SQL作为查询接口并利用Hive元数据,Kylin不会让用户查询所有的hive表,因为到目前为止它是一个预构建OLAP(MOLAP)系统。为了使表在Kylin中可用,使用”Sync”方法能够方便地从Hive中同步表。&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/2 tables.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;h2 id=&quot;kylin-olap-cube&quot;&gt;3. Kylin OLAP Cube&lt;/h2&gt;
-&lt;p&gt;Kylin的OLAP Cube是从星型模式的Hive表中获取的预计算数据集,这是供用户探索、管理所有cube的网页管理页面。由菜单栏进入&lt;code&gt;Cubes&lt;/code&gt;页面,系统中所有可用的cube将被列出。&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/3 cubes.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;探索更多关于Cube的详细信息&lt;/p&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;
-    &lt;p&gt;表格视图:&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/4 form-view.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;SQL 视图 (Hive查询读取数据以生成cube):&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/5 sql-view.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;可视化 (显示这个cube背后的星型模式):&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/6 visualization.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;访问 (授予用户/角色权限,beta版中授予权限操作仅对管理员开放):&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/7 access.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h2 id=&quot;sql&quot;&gt;4. 在网页上编写和运行SQL&lt;/h2&gt;
-&lt;p&gt;Kelin的网页版为用户提供了一个简单的查询工具来运行SQL以探索现存的cube,验证结果并探索使用#5中的Pivot analysis与可视化分析的结果集。&lt;/p&gt;
-
-&lt;blockquote&gt;
-  &lt;p&gt;&lt;strong&gt;查询限制&lt;/strong&gt;&lt;/p&gt;
-
-  &lt;ol&gt;
-    &lt;li&gt;
-      &lt;p&gt;仅支持SELECT查询&lt;/p&gt;
-    &lt;/li&gt;
-    &lt;li&gt;
-      &lt;p&gt;为了避免从服务器到客户端产生巨大的网络流量,beta版中的扫描范围阀值被设置为1,000,000。&lt;/p&gt;
-    &lt;/li&gt;
-    &lt;li&gt;
-      &lt;p&gt;beta版中,SQL在cube中无法找到的数据将不会重定向到Hive&lt;/p&gt;
-    &lt;/li&gt;
-  &lt;/ol&gt;
-&lt;/blockquote&gt;
-
-&lt;p&gt;由菜单栏进入“Query”页面:&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/8 query.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;
-    &lt;p&gt;源表:&lt;/p&gt;
-
-    &lt;p&gt;浏览器当前可用表(与Hive相同的结构和元数据):&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/9 query-table.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;新的查询:&lt;/p&gt;
-
-    &lt;p&gt;你可以编写和运行你的查询并探索结果。这里提供一个查询供你参考:&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/10 query-result.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;已保存的查询:&lt;/p&gt;
-
-    &lt;p&gt;与用户账号关联,你将能够从不同的浏览器甚至机器上获取已保存的查询。
- 在结果区域点击“Save”,将会弹出名字和描述来保存当前查询:&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/11 save-query.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-    &lt;p&gt;点击“Saved Queries”探索所有已保存的查询,你可以直接重新提交它来运行或删除它:&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/11 save-query-2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;查询历史:&lt;/p&gt;
-
-    &lt;p&gt;仅保存当前用户在当前浏览器中的查询历史,这将需要启用cookie,并且如果你清理浏览器缓存将会丢失数据。点击“Query History”标签,你可以直接重新提交其中的任何一条并再次运行。&lt;/p&gt;
-  &lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h2 id=&quot;pivot-analysis&quot;&gt;5. Pivot Analysis与可视化&lt;/h2&gt;
-&lt;p&gt;Kylin的网页版提供一个简单的Pivot与可视化分析工具供用户探索他们的查询结果:&lt;/p&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;
-    &lt;p&gt;一般信息:&lt;/p&gt;
-
-    &lt;p&gt;当查询运行成功后,它将呈现一个成功指标与被访问的cube名字。
- 同时它将会呈现这个查询在后台引擎运行了多久(不包括从Kylin服务器到浏览器的网络通信):&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/12 general.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;查询结果:&lt;/p&gt;
-
-    &lt;p&gt;能够方便地在一个列上排序。&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/13 results.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;导出到CSV文件&lt;/p&gt;
-
-    &lt;p&gt;点击“Export”按钮以CSV文件格式保存当前结果。&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;Pivot表:&lt;/p&gt;
-
-    &lt;p&gt;将一个或多个列拖放到标头,结果将根据这些列的值分组:&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/14 drag.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;可视化:&lt;/p&gt;
-
-    &lt;p&gt;同时,结果集将被方便地显示在“可视化”的不同图表中:&lt;/p&gt;
-
-    &lt;p&gt;注意:线形图仅当至少一个从Hive表中获取的维度有真实的“Date”数据类型列时才是可用的。&lt;/p&gt;
-
-    &lt;ul&gt;
-      &lt;li&gt;条形图:&lt;/li&gt;
-    &lt;/ul&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/15 bar-chart.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-    &lt;ul&gt;
-      &lt;li&gt;饼图:&lt;/li&gt;
-    &lt;/ul&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/16 pie-chart.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-    &lt;ul&gt;
-      &lt;li&gt;线形图:&lt;/li&gt;
-    &lt;/ul&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/17 line-chart.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h2 id=&quot;cube-job&quot;&gt;6. Cube建立 Job监控&lt;/h2&gt;
-&lt;p&gt;监控和管理cube建立过程与诊断的详细信息,甚至直接连接到Hadoop的job信息:&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/7 job-steps.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-</description>
-        <pubDate>Fri, 17 Apr 2015 00:00:00 -0700</pubDate>
-        <link>http://kylin.incubator.apache.org/%E6%95%99%E7%A8%8B/2015/04/17/Kylin%E7%BD%91%E9%A1%B5%E7%89%88%E6%95%99%E7%A8%8B/</link>
-        <guid isPermaLink="true">http://kylin.incubator.apache.org/%E6%95%99%E7%A8%8B/2015/04/17/Kylin%E7%BD%91%E9%A1%B5%E7%89%88%E6%95%99%E7%A8%8B/</guid>
-        
-        
-        <category>教程</category>
-        
-      </item>
-    
-      <item>
-        <title>Kylin和Tableau教程</title>
-        <description>&lt;blockquote&gt;
-  &lt;p&gt;Kylin ODBC驱动程序与Tableau存在一些限制,请在尝试前仔细阅读本说明书。
-* 仅支持“managed”分析路径,Kylin引擎将对意外的维度或度量报错
-* 请始终优先选择事实表,然后使用正确的连接条件添加查找表(cube中已定义的连接类型)
-* 请勿尝试在多个事实表或多个查找表之间进行连接;
-* 你可以尝试使用类似Tableau过滤器中seller id这样的高基数维度,但引擎现在将只返回有限个Tableau过滤器中的seller id。&lt;/p&gt;
-
-  &lt;p&gt;如需更多详细信息或有任何问题,请联系Kylin团队:&lt;code&gt;kylinolap@gmail.com&lt;/code&gt;&lt;/p&gt;
-&lt;/blockquote&gt;
-
-&lt;h3 id=&quot;odbc&quot;&gt;步骤1. 安装ODBC驱动程序&lt;/h3&gt;
-&lt;p&gt;参见维基页面&lt;a href=&quot;https://github.com/KylinOLAP/Kylin/wiki/Kylin-ODBC-Driver-Tutorial&quot;&gt;Kylin ODBC Driver Tutorial&lt;/a&gt;。&lt;/p&gt;
-
-&lt;h3 id=&quot;kylin&quot;&gt;步骤2. 连接到Kylin服务器&lt;/h3&gt;
-&lt;blockquote&gt;
-  &lt;p&gt;我们建议使用Connect Using Driver而不是Using DSN,因为Tableau团队将不会在Tableau服务器上管理你的DSN。&lt;/p&gt;
-&lt;/blockquote&gt;
-
-&lt;p&gt;Connect Using Driver: 选择左侧面板中的“Other Database(ODBC)”和弹出窗口的“KylinODBCDriver”。&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/1 odbc.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;输入你的服务器位置和证书:服务器主机,端口,用户名和密码。&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/2 serverhost.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;点击“Connect”获取你有权限访问的项目列表。有关权限的详细信息请参考&lt;a href=&quot;https://github.com/KylinOLAP/Kylin/wiki/Kylin-Cube-Permission-Grant-Tutorial&quot;&gt;Kylin Cube Permission Grant Tutorial&lt;/a&gt;。然后在下拉列表中选择你想要连接的项目。&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/3 project.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;点击“Done”完成连接。&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/4 done.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;h3 id=&quot;section&quot;&gt;步骤3. 使用单表或多表&lt;/h3&gt;
-&lt;blockquote&gt;
-  &lt;p&gt;限制
-   * 必须首先选择事实表
-   * 请勿仅支持从查找表选择
-   * 连接条件必须与cube定义匹配&lt;/p&gt;
-&lt;/blockquote&gt;
-
-&lt;p&gt;&lt;strong&gt;选择事实表&lt;/strong&gt;&lt;/p&gt;
-
-&lt;p&gt;选择&lt;code&gt;Multiple Tables&lt;/code&gt;。&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/5 multipleTable.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;然后点击&lt;code&gt;Add Table...&lt;/code&gt;添加一张事实表。&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/6 facttable.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/6 facttable2.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;&lt;strong&gt;选择查找表&lt;/strong&gt;&lt;/p&gt;
-
-&lt;p&gt;点击&lt;code&gt;Add Table...&lt;/code&gt;添加一张查找表。&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/7 lkptable.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;仔细建立连接条款。&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/8 join.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;继续通过点击&lt;code&gt;Add Table...&lt;/code&gt;添加表直到所有的查找表都被正确添加。命名此连接以在Tableau中使用。&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/9 connName.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;&lt;strong&gt;使用Connect Live&lt;/strong&gt;&lt;/p&gt;
-
-&lt;p&gt;&lt;code&gt;Data Connection&lt;/code&gt;共有三种类型。选择&lt;code&gt;Connect Live&lt;/code&gt;选项。&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/10 connectLive.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;然后你就能够尽情使用Tableau进行分析。&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/11 analysis.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;&lt;strong&gt;添加额外查找表&lt;/strong&gt;&lt;/p&gt;
-
-&lt;p&gt;点击顶部菜单栏的&lt;code&gt;Data&lt;/code&gt;,选择&lt;code&gt;Edit Tables...&lt;/code&gt;更新查找表信息。&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/12 edit tables.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;h3 id=&quot;sql&quot;&gt;步骤4. 使用自定义SQL&lt;/h3&gt;
-&lt;p&gt;使用自定义SQL类似于使用单表/多表,但你需要在&lt;code&gt;Custom SQL&lt;/code&gt;标签复制你的SQL后采取同上指令。&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/19 custom.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;h3 id=&quot;tableau&quot;&gt;步骤5. 发布到Tableau服务器&lt;/h3&gt;
-&lt;p&gt;如果你已经完成使用Tableau制作一个仪表板,你可以将它发布到Tableau服务器上。
-点击顶部菜单栏的&lt;code&gt;Server&lt;/code&gt;,选择&lt;code&gt;Publish Workbook...&lt;/code&gt;。&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/14 publish.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;然后登陆你的Tableau服务器并准备发布。&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/16 prepare-publish.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;如果你正在使用Connect Using Driver而不是DSN连接,你还将需要嵌入你的密码。点击左下方的&lt;code&gt;Authentication&lt;/code&gt;按钮并选择&lt;code&gt;Embedded Password&lt;/code&gt;。点击&lt;code&gt;Publish&lt;/code&gt;然后你将看到结果。&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/17 embedded-pwd.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;h3 id=&quot;section-1&quot;&gt;小贴士&lt;/h3&gt;
-&lt;ul&gt;
-  &lt;li&gt;
-    &lt;p&gt;在Tableau中隐藏表名&lt;/p&gt;
-
-    &lt;ul&gt;
-      &lt;li&gt;Tableau将会根据源表名分组显示列,但用户可能希望根据其他不同的安排组织列。使用Tableau中的”Group by Folder”并创建文件夹来对不同的列分组。&lt;/li&gt;
-    &lt;/ul&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/18 groupby-folder.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-&lt;/ul&gt;
-</description>
-        <pubDate>Fri, 17 Apr 2015 00:00:00 -0700</pubDate>
-        <link>http://kylin.incubator.apache.org/%E6%95%99%E7%A8%8B/2015/04/17/Kylin%E5%92%8CTableau%E6%95%99%E7%A8%8B/</link>
-        <guid isPermaLink="true">http://kylin.incubator.apache.org/%E6%95%99%E7%A8%8B/2015/04/17/Kylin%E5%92%8CTableau%E6%95%99%E7%A8%8B/</guid>
-        
-        
-        <category>教程</category>
-        
-      </item>
-    
-      <item>
-        <title>Kylin and Tableau Tutorial</title>
-        <description>&lt;blockquote&gt;
-  &lt;p&gt;There are some limitations of Kylin ODBC driver with Tableau, please read carefully this instruction before you try it.&lt;/p&gt;
-
-  &lt;ul&gt;
-    &lt;li&gt;Only support “managed” analysis path, Kylin engine will raise exception for unexpected dimension or metric&lt;/li&gt;
-    &lt;li&gt;Please always select Fact Table first, then add lookup tables with correct join condition (defined join type in cube)&lt;/li&gt;
-    &lt;li&gt;Do not try to join between fact tables or lookup tables;&lt;/li&gt;
-    &lt;li&gt;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.&lt;/li&gt;
-  &lt;/ul&gt;
-
-  &lt;p&gt;More detail information or any issue, please contact Kylin Team: &lt;code&gt;kylinolap@gmail.com&lt;/code&gt;&lt;/p&gt;
-&lt;/blockquote&gt;
-
-&lt;h3 id=&quot;step-1-install-odbc-driver&quot;&gt;Step 1. Install ODBC Driver&lt;/h3&gt;
-&lt;p&gt;Refer to wiki page &lt;a href=&quot;https://github.com/KylinOLAP/Kylin/wiki/Kylin-ODBC-Driver-Tutorial&quot;&gt;Kylin ODBC Driver Tutorial&lt;/a&gt;.&lt;/p&gt;
-
-&lt;h3 id=&quot;step-2-connect-to-kylin-server&quot;&gt;Step 2. Connect to Kylin Server&lt;/h3&gt;
-&lt;blockquote&gt;
-  &lt;p&gt;We recommended to use Connect Using Driver instead of Using DSN since Tableau team will not manage your DSN on Tableau Servers.&lt;/p&gt;
-&lt;/blockquote&gt;
-
-&lt;p&gt;Connect Using Driver: Select “Other Database(ODBC)” in the left panel and choose KylinODBCDriver in the pop-up window. &lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/1 odbc.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;Enter your Sever location and credentials: server host, port, username and password.&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/2 serverhost.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;Click “Connect” to get the list of projects that you have permission to access. See details about permission in &lt;a href=&quot;https://github.com/KylinOLAP/Kylin/wiki/Kylin-Cube-Permission-Grant-Tutorial&quot;&gt;Kylin Cube Permission Grant Tutorial&lt;/a&gt;. Then choose the project you want to connect in the drop down list. &lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/3 project.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;Click “Done” to complete the connection.&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/4 done.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;h3 id=&quot;step-3-using-single-table-or-multiple-tables&quot;&gt;Step 3. Using Single Table or Multiple Tables&lt;/h3&gt;
-&lt;blockquote&gt;
-  &lt;p&gt;Limitation&lt;/p&gt;
-
-  &lt;ul&gt;
-    &lt;li&gt;Must select FACT table first&lt;/li&gt;
-    &lt;li&gt;Do not support select from lookup table only&lt;/li&gt;
-    &lt;li&gt;The join condition must match within cube definition&lt;/li&gt;
-  &lt;/ul&gt;
-&lt;/blockquote&gt;
-
-&lt;p&gt;&lt;strong&gt;Select Fact Table&lt;/strong&gt;&lt;/p&gt;
-
-&lt;p&gt;Select &lt;code&gt;Multiple Tables&lt;/code&gt;.&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/5 multipleTable.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;Then click &lt;code&gt;Add Table...&lt;/code&gt; to add a fact table.&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/6 facttable.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/6 facttable2.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;&lt;strong&gt;Select Look-up Table&lt;/strong&gt;&lt;/p&gt;
-
-&lt;p&gt;Click &lt;code&gt;Add Table...&lt;/code&gt; to add a look-up table. &lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/7 lkptable.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;Set up the join clause carefully. &lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/8 join.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;Keep add tables through click &lt;code&gt;Add Table...&lt;/code&gt; until all the look-up tables have been added properly. Give the connection a name for use in Tableau.&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/9 connName.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;&lt;strong&gt;Using Connect Live&lt;/strong&gt;&lt;/p&gt;
-
-&lt;p&gt;There are three types of &lt;code&gt;Data Connection&lt;/code&gt;. Choose the &lt;code&gt;Connect Live&lt;/code&gt; option. &lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/10 connectLive.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;Then you can enjoy analyzing with Tableau.&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/11 analysis.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;&lt;strong&gt;Add additional look-up Tables&lt;/strong&gt;&lt;/p&gt;
-
-&lt;p&gt;Click &lt;code&gt;Data&lt;/code&gt; in the top menu bar, select &lt;code&gt;Edit Tables...&lt;/code&gt; to update the look-up table information.&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/12 edit tables.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;h3 id=&quot;step-4-using-customized-sql&quot;&gt;Step 4. Using Customized SQL&lt;/h3&gt;
-&lt;p&gt;To use customized SQL resembles using Single Table/Multiple Tables, except that you just need to paste your SQL in &lt;code&gt;Custom SQL&lt;/code&gt; tab and take the same instruction as above.&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/19 custom.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;h3 id=&quot;step-5-publish-to-tableau-server&quot;&gt;Step 5. Publish to Tableau Server&lt;/h3&gt;
-&lt;p&gt;Suppose you have finished making a dashboard with Tableau, you can publish it to Tableau Server.
-Click &lt;code&gt;Server&lt;/code&gt; in the top menu bar, select &lt;code&gt;Publish Workbook...&lt;/code&gt;. &lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/14 publish.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;Then sign in your Tableau Server and prepare to publish. &lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/16 prepare-publish.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;If you’re Using Driver Connect instead of DSN connect, you’ll need to additionally embed your password in. Click the &lt;code&gt;Authentication&lt;/code&gt; button at left bottom and select &lt;code&gt;Embedded Password&lt;/code&gt;. Click &lt;code&gt;Publish&lt;/code&gt; and you will see the result.&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/17 embedded-pwd.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;h3 id=&quot;tips&quot;&gt;Tips&lt;/h3&gt;
-&lt;ul&gt;
-  &lt;li&gt;
-    &lt;p&gt;Hide Table name in Tableau&lt;/p&gt;
-
-    &lt;ul&gt;
-      &lt;li&gt;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.&lt;/li&gt;
-    &lt;/ul&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-and-Tableau-Tutorial/18 groupby-folder.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-&lt;/ul&gt;
-</description>
-        <pubDate>Fri, 17 Apr 2015 00:00:00 -0700</pubDate>
-        <link>http://kylin.incubator.apache.org/tutorial/2015/04/17/Kylin-and-Tableau-Tutorial/</link>
-        <guid isPermaLink="true">http://kylin.incubator.apache.org/tutorial/2015/04/17/Kylin-and-Tableau-Tutorial/</guid>
-        
-        
-        <category>tutorial</category>
-        
-      </item>
-    
-      <item>
-        <title>Kylin Web Tutorial</title>
-        <description>&lt;blockquote&gt;
-  &lt;p&gt;&lt;strong&gt;Supported Browsers&lt;/strong&gt;&lt;/p&gt;
-
-  &lt;p&gt;Windows: Google Chrome, FireFox&lt;/p&gt;
-
-  &lt;p&gt;Mac: Google Chrome, FireFox, Safari&lt;/p&gt;
-&lt;/blockquote&gt;
-
-&lt;h2 id=&quot;access--login&quot;&gt;1. Access &amp;amp; Login&lt;/h2&gt;
-&lt;p&gt;Host to access: http://your_sandbox_ip:9080
-Login with username/password: ADMIN/KYLIN&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/1 login.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;h2 id=&quot;available-hive-tables-in-kylin&quot;&gt;2. Available Hive Tables in Kylin&lt;/h2&gt;
-&lt;p&gt;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.&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/2 tables.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;h2 id=&quot;kylin-olap-cube&quot;&gt;3. Kylin OLAP Cube&lt;/h2&gt;
-&lt;p&gt;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 &lt;code&gt;Cubes&lt;/code&gt; Menu, it will list all cubes available in system:&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/3 cubes.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;To explore more detail about the Cube&lt;/p&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;
-    &lt;p&gt;Form View:&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/4 form-view.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;SQL View (Hive Query to read data to generate the cube):&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/5 sql-view.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;Visualization (Showing the Star Schema behind of this cube):&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/6 visualization.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;Access (Grant user/role privileges, Grant operation only open to Admin in beta):&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/7 access.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h2 id=&quot;write-and-execute-sql-on-web&quot;&gt;4. Write and Execute SQL on web&lt;/h2&gt;
-&lt;p&gt;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&lt;/p&gt;
-
-&lt;blockquote&gt;
-  &lt;p&gt;&lt;strong&gt;Query Limit&lt;/strong&gt;&lt;/p&gt;
-
-  &lt;ol&gt;
-    &lt;li&gt;
-      &lt;p&gt;Only SELECT query be supported&lt;/p&gt;
-    &lt;/li&gt;
-    &lt;li&gt;
-      &lt;p&gt;To avoid huge network traffic from server to client, the scan range’s threshold be set to 1,000,000 in beta.&lt;/p&gt;
-    &lt;/li&gt;
-    &lt;li&gt;
-      &lt;p&gt;SQL can’t found data from cube will not redirect to Hive in beta&lt;/p&gt;
-    &lt;/li&gt;
-  &lt;/ol&gt;
-&lt;/blockquote&gt;
-
-&lt;p&gt;Go to “Query” menu:&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/8 query.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;
-    &lt;p&gt;Source Tables:&lt;/p&gt;
-
-    &lt;p&gt;Browser current available Tables (same structure and metadata as Hive):&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/9 query-table.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;New Query:&lt;/p&gt;
-
-    &lt;p&gt;You can write and execute your query and explorer the result. One query for you reference:&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/10 query-result.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;Saved Query:&lt;/p&gt;
-
-    &lt;p&gt;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:&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/11 save-query.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-    &lt;p&gt;Click “Saved Queries” to browser all your saved queries, you could direct resubmit it to run or remove it:&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/11 save-query-2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;Query History:&lt;/p&gt;
-
-    &lt;p&gt;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.&lt;/p&gt;
-  &lt;/li&gt;
-&lt;/ul&gt;
+&lt;h3 id=&quot;benefits&quot;&gt;Benefits&lt;/h3&gt;
+&lt;ol&gt;
+  &lt;li&gt;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&lt;/li&gt;
+  &lt;li&gt;More easy to create dimensions and measures based on the data model&lt;/li&gt;
+  &lt;li&gt;Friendly error message with enhanced validation check when save cube&lt;/li&gt;
+&lt;/ol&gt;
 
-&lt;h2 id=&quot;pivot-analysis-and-visualization&quot;&gt;5. Pivot Analysis and Visualization&lt;/h2&gt;
-&lt;p&gt;There’s one simple pivot and visualization analysis tool in Kylin’s web for user to explore their query result:&lt;/p&gt;
+&lt;h3 id=&quot;whats-next&quot;&gt;What’s Next&lt;/h3&gt;
+&lt;p&gt;After this refactor, Kylin is now be able to introduce more powerful features, the major idea is to using different storage to serve same data model:&lt;/p&gt;
 
 &lt;ul&gt;
-  &lt;li&gt;
-    &lt;p&gt;General Information:&lt;/p&gt;
-
-    &lt;p&gt;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):&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/12 general.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;Query Result:&lt;/p&gt;
-
-    &lt;p&gt;It’s easy to order on one column.&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/13 results.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;Export to CSV File&lt;/p&gt;
-
-    &lt;p&gt;Click “Export” button to save current result as CSV file.&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;Pivot Table:&lt;/p&gt;
-
-    &lt;p&gt;Drag and Drop one or more columns into the header, the result will grouping by such column’s value:&lt;/p&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/14 drag.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
-  &lt;li&gt;
-    &lt;p&gt;Visualization:&lt;/p&gt;
-
-    &lt;p&gt;Also, the result set will be easy to show with different charts in “Visualization”:&lt;/p&gt;
-
-    &lt;p&gt;note: line chart only available when there’s at least one dimension with real “Date” data type of column from Hive Table.&lt;/p&gt;
-
-    &lt;ul&gt;
-      &lt;li&gt;Bar Chart:&lt;/li&gt;
-    &lt;/ul&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/15 bar-chart.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-    &lt;ul&gt;
-      &lt;li&gt;Pie Chart:&lt;/li&gt;
-    &lt;/ul&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/16 pie-chart.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-    &lt;ul&gt;
-      &lt;li&gt;Line Chart&lt;/li&gt;
-    &lt;/ul&gt;
-
-    &lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/17 line-chart.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-  &lt;/li&gt;
+  &lt;li&gt;&lt;strong&gt;Logical Model&lt;/strong&gt;: A Data Model presents logical data structure like Star Schema beyond data tables with more business meaning&lt;/li&gt;
+  &lt;li&gt;&lt;strong&gt;Physical Model&lt;/strong&gt;: 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.&lt;/li&gt;
+  &lt;li&gt;A new GUI of Cube Designer to support above is on the way.&lt;/li&gt;
 &lt;/ul&gt;
 
-&lt;h2 id=&quot;cube-build-job-monitoring&quot;&gt;6. Cube Build Job Monitoring&lt;/h2&gt;
-&lt;p&gt;Monitor and manage cube build process, diagnostic into the detail and even link to Hadoop’s job information directly:&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/images/Kylin-Web-Tutorial/7 job-steps.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
 </description>
-        <pubDate>Fri, 17 Apr 2015 00:00:00 -0700</pubDate>
-        <link>http://kylin.incubator.apache.org/tutorial/2015/04/17/Kylin-Web-Tutorial/</link>
-        <guid isPermaLink="true">http://kylin.incubator.apache.org/tutorial/2015/04/17/Kylin-Web-Tutorial/</guid>
+        <pubDate>Sun, 25 Jan 2015 04:28:00 -0800</pubDate>
+        <link>http://kylin.incubator.apache.org/blog/2015/01/25/introduce-data-model/</link>
+        <guid isPermaLink="true">http://kylin.incubator.apache.org/blog/2015/01/25/introduce-data-model/</guid>
         
         
-        <category>tutorial</category>
+        <category>blog</category>
         
       </item>