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><p><em>This guide is for Apache Kylin Committers only.</em><br />
-<em>Shell commands is on Mac OS X as sample.</em><br />
-<em>For people in China, please aware using proxy to avoid potential firewall issue.</em> </p>
-
-<h1 id="setup-account">Setup Account</h1>
-<p>Make sure you have avaliable account and privlidge for following applications:</p>
-
-<ul>
- <li>Apache account: <a href="https://id.apache.org/">https://id.apache.org</a> </li>
- <li>Apache Kylin git repo (main cobe base): <a href="https://git-wip-us.apache.org/repos/asf/incubator-kylin.git">https://git-wip-us.apache.org/repos/asf/incubator-kylin.git</a> </li>
- <li>Apache Kylin svn repo (for website only): <a href="https://svn.apache.org/repos/asf/incubator/kylin">https://svn.apache.org/repos/asf/incubator/kylin</a> </li>
- <li>Apache Nexus (maven repo): <a href="https://repository.apache.org">https://repository.apache.org</a> </li>
- <li>Apache Kylin dist repo: <a href="https://dist.apache.org/repos/dist/dev/incubator/kylin">https://dist.apache.org/repos/dist/dev/incubator/kylin</a> </li>
-</ul>
-
-<h1 id="setup-pgp-signing-keys">Setup PGP signing keys</h1>
-<p>Follow instructions at <a href="http://www.apache.org/dev/release-signing">http://www.apache.org/dev/release-signing</a> to create a key pair<br />
-Install gpg (On Mac OS X as sample):<br />
-<code>brew install gpg and gpg --gen-key</code></p>
-
-<p>Generate gpg key:<br />
-Reference: <a href="https://www.gnupg.org/gph/en/manual/c14.html">https://www.gnupg.org/gph/en/manual/c14.html</a><br />
-<em>All new RSA keys generated should be at least 4096 bits. Do not generate new DSA keys</em><br />
-<code>gpg --gen-key</code> </p>
-
-<p>Verify your key:<br />
-<code>gpg --list-sigs YOUR_NAME</code></p>
-
-<p>Then add your key to your apache account, for example:<br />
-<a href="https://people.apache.org/keys/committer/lukehan.asc">https://people.apache.org/keys/committer/lukehan.asc</a><br />
-Generate ASCII Amromed Key:<br />
-<code>gpg -a --export YOUR_MAIL_ADDRESS &gt; YOUR_NAME.asc &amp;</code></p>
-
-<p>Upload key to public server:<br />
-<code>gpg --send-keys YOUR_KEY_HASH</code></p>
-
-<p>or Submit key via web:<br />
-Open and Submit to <a href="http://pool.sks-keyservers.net:11371">http://pool.sks-keyservers.net:11371</a> (you can pickup any avaliable public key server)<br />
-Once your key submitted to server, you can verify using following command:<br />
-<code>gpg --recv-keys YOUR_KEY_HASH</code></p>
-
-<p>for example:<br />
-<code>gpg --recv-keys 027DC364</code></p>
-
-<p>Add your public key to the KEYS file by following instructions in the KEYS file.:<br />
-<em>KEYS file location:</em> <strong>${incubator-kylin}/KEYS</strong><br />
-For example:<br />
-<code>(gpg --list-sigs YOURNAME &amp;&amp; gpg --armor --export YOURNAME) &gt;&gt; KEYS</code></p>
-
-<p>Commit your changes.</p>
-
-<h1 id="prepare-artifacts-for-release">Prepare artifacts for release</h1>
-<p><strong>Before you start:</strong></p>
-
-<ul>
- <li>Set up signing keys as described above.</li>
- <li>Make sure you are using JDK 1.7 (not 1.8).</li>
- <li>Make sure you are working on right release version number.</li>
- <li>Make sure that every âresolvedâ JIRA case (including duplicates) has a fix version assigned.</li>
-</ul>
-
-<p><strong>Making a snapshot</strong> </p>
-
-<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="c"># Set passphrase variable without putting it into shell history</span>
-<span class="nv">$ </span><span class="nb">read</span> -s GPG_PASSPHRASE
-
-<span class="c"># Make sure that there are no junk files in the sandbox</span>
-<span class="nv">$ </span>git clean -xn
-<span class="nv">$ </span>mvn clean
-
-<span class="nv">$ </span>mvn -Papache-release -Dgpg.passphrase<span class="o">=</span><span class="k">${</span><span class="nv">GPG_PASSPHRASE</span><span class="k">}</span> install</code></pre></div>
-
-<p>When the dry-run has succeeded, change install to deploy.</p>
-
-<p><strong>Verify licenses</strong><br />
-Run Apache RAT to check licenses issue: </p>
-
-<div class="highlight"><pre><code class="language-bash" data-lang="bash">mvn -Papache-release clean rat:rat</code></pre></div>
-
-<p>Fix license issue if any.</p>
-
-<p><strong>Making a release</strong></p>
-
-<p>Create a release branch named after the release, e.g. v0.7.2-release, and push it to Apache. </p>
-
-<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>git checkout -b vX.Y.Z-release
-<span class="nv">$ </span>git push -u origin vX.Y.Z-release</code></pre></div>
-
-<p>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 <code>git merge --ff-only</code> 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.)</p>
-
-<p>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.</p>
-
-<p>If any of the steps fail, clean up (see below), fix the problem, and start again from the top. </p>
-
-<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="c"># Set passphrase variable without putting it into shell history</span>
-<span class="nv">$ </span><span class="nb">read</span> -s GPG_PASSPHRASE
-
-<span class="c"># Make sure that there are no junk files in the sandbox</span>
-<span class="nv">$ </span>git clean -xn
-<span class="nv">$ </span>mvn clean
-
-<span class="c"># Do a dry run of the release:prepare step, which sets version numbers.</span>
-<span class="nv">$ </span>mvn -DdryRun<span class="o">=</span><span class="nb">true</span> -DskipTests -DreleaseVersion<span class="o">=</span>X.Y.Z-incubating -DdevelopmentVersion<span class="o">=</span>X.Y.Z+1-incubating-SNAPSHOT -Papache-release -Darguments<span class="o">=</span><span class="s2">&quot;-Dgpg.passphrase=${GPG_PASSPHRASE}&quot;</span> release:prepare 2&gt;<span class="p">&amp;</span><span class="m">1</span> <span class="p">|</span> tee /tmp/prepare-dry.log</code></pre></div>
-
-<p><strong>Check the artifacts:</strong></p>
-
-<ul>
- <li>In the <code>target</code> directory should be these 8 files, among others:
- <ul>
- <li>apache-kylin-X.Y.Z-incubating-src.tar.gz</li>
- <li>apache-kylin-X.Y.Z-incubating-src.tar.gz.asc</li>
- <li>apache-kylin-X.Y.Z-incubating-src.tar.gz.md5</li>
- <li>apache-kylin-X.Y.Z-incubating-src.tar.gz.sha1</li>
- <li>apache-kylin-X.Y.Z-incubating-src.zip</li>
- <li>apache-kylin-X.Y.Z-incubating-src.zip.asc</li>
- <li>apache-kylin-X.Y.Z-incubating-src.zip.md5</li>
- <li>apache-kylin-X.Y.Z-incubating-src.zip.sha1</li>
- </ul>
- </li>
- <li>Note that the file names start <code>apache-kylin-</code> and include
-<code>incubating</code> in the version.</li>
- <li>In the two source distros <code>.tar.gz</code> and <code>.zip</code>, check that all files belong to a directory called
-<code>apache-kylin-X.Y.Z-incubating-src</code>.</li>
- <li>That directory must contain files <code>DISCLAIMER</code>, <code>NOTICE</code>, <code>LICENSE</code>, <code>README.md</code></li>
- <li>Check PGP, per <a href="https://httpd.apache.org/dev/verification.html">this</a></li>
-</ul>
-
-<p><strong>Run real release:</strong>
-Now, run the release for real. </p>
-
-<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="c"># Prepare sets the version numbers, creates a tag, and pushes it to git.</span>
-<span class="nv">$ </span>mvn -DskipTests -Papache-release -Darguments<span class="o">=</span><span class="s2">&quot;-Dgpg.passphrase=${GPG_PASSPHRASE} -DskipTests&quot;</span> clean release:prepare
-
-<span class="c"># Perform checks out the tagged version, builds, and deploys to the staging repository</span>
-<span class="nv">$ </span>mvn -DskipTests -Papache-release -Darguments<span class="o">=</span><span class="s2">&quot;-Dgpg.passphrase=${GPG_PASSPHRASE} -DskipTests&quot;</span> release:perform</code></pre></div>
-
-<p><strong>Verify the staged artifacts in the Nexus repository:</strong><br />
-* Go to <a href="https://repository.apache.org/">https://repository.apache.org/</a> and login
-* Under <code>Build Promotion</code>, click <code>Staging Repositories</code>
-* In the <code>Staging Repositories</code> tab there should be a line with profile <code>org.apache.kylin</code>
-* 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)</p>
-
-<p><strong>Upload to staging area:</strong><br />
-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:</p>
-
-<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="c"># Create a subversion workspace, if you haven&#39;t already</span>
-<span class="nv">$ </span>mkdir -p ~/dist/dev
-<span class="nv">$ </span><span class="nb">pushd</span> ~/dist/dev
-<span class="nv">$ </span>svn co https://dist.apache.org/repos/dist/dev/incubator/kylin
-<span class="nv">$ </span><span class="nb">popd</span>
-
-<span class="c"># Move the files into a directory</span>
-<span class="nv">$ </span><span class="nb">cd </span>target
-<span class="nv">$ </span>mkdir ~/dist/dev/kylin/apache-kylin-X.Y.Z-incubating-rcN
-<span class="nv">$ </span>mv apache-kylin-* ~/dist/dev/kylin/apache-kylin-X.Y.Z-incubating-rcN
-
-<span class="c"># Check in</span>
-<span class="nv">$ </span><span class="nb">cd</span> ~/dist/dev/kylin
-<span class="nv">$ </span>svn add apache-kylin-X.Y.Z-incubating-rcN
-<span class="nv">$ </span>svn commit -m <span class="s1">&#39;Upload release artifacts to staging&#39;</span></code></pre></div>
-
-<p><strong>Cleaning up after a failed release attempt:</strong></p>
-
-<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="c"># Make sure that the tag you are about to generate does not already</span>
-<span class="c"># exist (due to a failed release attempt)</span>
-<span class="nv">$ </span>git tag
-
-<span class="c"># If the tag exists, delete it locally and remotely</span>
-<span class="nv">$ </span>git tag -d apache-kylin-X.Y.Z-incubating
-<span class="nv">$ </span>git push origin :refs/tags/apache-kylin-X.Y.Z-incubating
-
-<span class="c"># Remove modified files</span>
-<span class="nv">$ </span>mvn release:clean
-
-<span class="c"># Check whether there are modified files and if so, go back to the</span>
-<span class="c"># original git commit</span>
-<span class="nv">$ </span>git status
-<span class="nv">$ </span>git reset --hard HEAD</code></pre></div>
-
-<h1 id="validate-a-release">Validate a release</h1>
-
-<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="c"># Check that the signing key (e.g. 2AD3FAE3) is pushed</span>
-<span class="nv">$ </span>gpg --recv-keys key
-
-<span class="c"># Check keys</span>
-<span class="nv">$ </span>curl -O https://dist.apache.org/repos/dist/release/incubator/kylin/KEYS
-
-<span class="c"># Sign/check md5 and sha1 hashes</span>
-<span class="c"># (Assumes your O/S has &#39;md5&#39; and &#39;sha1&#39; commands.)</span>
-<span class="k">function</span> checkHash<span class="o">()</span> <span class="o">{</span>
- <span class="nb">cd</span> <span class="s2">&quot;$1&quot;</span>
- <span class="k">for</span> i in *.<span class="o">{</span>zip,pom,gz<span class="o">}</span><span class="p">;</span> <span class="k">do</span>
- <span class="k">if</span> <span class="o">[</span> ! -f <span class="nv">$i</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
- <span class="k">continue</span>
- <span class="k">fi</span>
- <span class="k">if</span> <span class="o">[</span> -f <span class="nv">$i</span>.md5 <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
- <span class="k">if</span> <span class="o">[</span> <span class="s2">&quot;$(cat $i.md5)&quot;</span> <span class="o">=</span> <span class="s2">&quot;$(md5 -q $i)&quot;</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
- <span class="nb">echo</span> <span class="nv">$i</span>.md5 present and correct
- <span class="k">else</span>
- <span class="nb">echo</span> <span class="nv">$i</span>.md5 does not match
- <span class="k">fi</span>
- <span class="k">else</span>
- md5 -q <span class="nv">$i</span> &gt; <span class="nv">$i</span>.md5
- <span class="nb">echo</span> <span class="nv">$i</span>.md5 created
- <span class="k">fi</span>
- <span class="k">if</span> <span class="o">[</span> -f <span class="nv">$i</span>.sha1 <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
- <span class="k">if</span> <span class="o">[</span> <span class="s2">&quot;$(cat $i.sha1)&quot;</span> <span class="o">=</span> <span class="s2">&quot;$(sha1 -q $i)&quot;</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
- <span class="nb">echo</span> <span class="nv">$i</span>.sha1 present and correct
- <span class="k">else</span>
- <span class="nb">echo</span> <span class="nv">$i</span>.sha1 does not match
- <span class="k">fi</span>
- <span class="k">else</span>
- sha1 -q <span class="nv">$i</span> &gt; <span class="nv">$i</span>.sha1
- <span class="nb">echo</span> <span class="nv">$i</span>.sha1 created
- <span class="k">fi</span>
- <span class="k">done</span>
-<span class="o">}</span>
-<span class="nv">$ </span>checkHash apache-kylin-X.Y.Z-incubating-rcN</code></pre></div>
-
-<h1 id="apache-voting-process">Apache voting process</h1>
-
-<p><strong>Vote on Apache Kylin dev mailing list</strong><br />
-Release vote on dev list: </p>
-
-<div class="highlight"><pre><code class="language-text" data-lang="text">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&#39;t feel strongly about it, but I&#39;m okay with the release
-[ ] -1 Do not release this package because...
-
-
-Here is my vote:
-
-+1 (binding)
-
-Luke</code></pre></div>
-
-<p>After vote finishes, send out the result: </p>
-
-<div class="highlight"><pre><code class="language-text" data-lang="text">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&#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</code></pre></div>
-
-<p><strong>Vote on Apache incubator general mailing list</strong> <br />
-Use the <a href="http://s.apache.org">Apache URL shortener</a> to generate
-shortened URLs for the vote proposal and result emails. Examples:
-<a href="http://s.apache.org/kylin-0.7.1-vote_rc3">http://s.apache.org/kylin-0.7.1-vote_rc3</a> and
-<a href="http://s.apache.org/kylin-0.7.1-result_rc3">http://s.apache.org/kylin-0.7.1-result_rc3</a>.</p>
-
-<div class="highlight"><pre><code class="language-text" data-lang="text">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&#39;t feel strongly about it, but I&#39;m okay with the release
-[ ] -1 Do not release this package because...
-
-
-Luke Han, on behalf of Apache Kylin PPMC</code></pre></div>
-
-<p>After vote finishes, send out the result:</p>
-
-<div class="highlight"><pre><code class="language-text" data-lang="text">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 &lt;name&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</code></pre></div>
-
-<h1 id="publishing-a-release">Publishing a release</h1>
-<p>After a successful release vote, we need to push the release
-out to mirrors, and other tasks.</p>
-
-<p>In JIRA, search for
-<a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20KYLIN%20">all issues resolved in this release</a>,
-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).<br />
-<strong>Uncheck âSend mail for this updateâ.</strong></p>
-
-<p>Promote the staged nexus artifacts.</p>
-
-<ul>
- <li>Go to <a href="https://repository.apache.org/">https://repository.apache.org/</a> and login</li>
- <li>Under âBuild Promotionâ click âStaging Repositoriesâ</li>
- <li>In the line with âorgapachekylin-xxxxâ, check the box</li>
- <li>Press âReleaseâ button</li>
-</ul>
-
-<p>Check the artifacts into svn.</p>
-
-<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="c"># Get the release candidate.</span>
-<span class="nv">$ </span>mkdir -p ~/dist/dev
-<span class="nv">$ </span><span class="nb">cd</span> ~/dist/dev
-<span class="nv">$ </span>svn co https://dist.apache.org/repos/dist/dev/incubator/kylin
-
-<span class="c"># Copy the artifacts. Note that the copy does not have &#39;-rcN&#39; suffix.</span>
-<span class="nv">$ </span>mkdir -p ~/dist/release
-<span class="nv">$ </span><span class="nb">cd</span> ~/dist/release
-<span class="nv">$ </span>svn co https://dist.apache.org/repos/dist/release/incubator/kylin
-<span class="nv">$ </span><span class="nb">cd </span>kylin
-<span class="nv">$ </span>cp -rp ../../dev/kylin/apache-kylin-X.Y.Z-incubating-rcN apache-kylin-X.Y.Z-incubating
-<span class="nv">$ </span>svn add apache-kylin-X.Y.Z-incubating
-
-<span class="c"># Check in.</span>
-svn commit -m <span class="s1">&#39;checkin release artifacts&#39;</span></code></pre></div>
-
-<p>Svnpubsub will publish to
-<a href="https://dist.apache.org/repos/dist/release/incubator/kylin">https://dist.apache.org/repos/dist/release/incubator/kylin</a> and propagate to
-<a href="http://www.apache.org/dyn/closer.cgi/incubator/kylin">http://www.apache.org/dyn/closer.cgi/incubator/kylin</a> within 24 hours.</p>
-
-<p>If there are now more than 2 releases, clear out the oldest ones:</p>
-
-<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">cd</span> ~/dist/release/kylin
-svn rm apache-kylin-X.Y.Z-incubating
-svn commit -m <span class="s1">&#39;Remove old release&#39;</span></code></pre></div>
-
-<p>The old releases will remain available in the
-<a href="http://archive.apache.org/dist/incubator/kylin/">release archive</a>.</p>
-
-<p>Release same version in JIRA, check <a href="https://issues.apache.org/jira/browse/KYLIN/?selectedTab=com.atlassian.jira.jira-projects-plugin:changelog-panel">Change Log</a> for the latest released version.</p>
-
-<h1 id="publishing-the-web-site">Publishing the web site</h1>
-<p><em>TBD</em></p>
-
-<h1 id="thanks">Thanks</h1>
-<p>This guide drafted with reference from <a href="http://calcite.incubator.apache.org">Apache Calcite</a> Howto doc, Thank you very much.</p>
-
-</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><p><strong>Coming Events</strong></p>
-
-<ul>
- <li>ApacheCon EU 2015</li>
-</ul>
-
-<p><strong>Conferences</strong></p>
-
-<ul>
- <li><a href="https://www.youtube.com/watch?v=jgvZSFaXPgI">Apache Kylin - Balance Between Space and Time</a>, <a href="http://www.slideshare.net/DebashisSaha/apache-kylin-balance-between-space-and-time-hadop-summit-2015">slides</a> (<a href="https://www.youtube.com/watch?v=jgvZSFaXPgI">video</a>, <a href="http://www.slideshare.net/DebashisSaha/apache-kylin-balance-between-space-and-time-hadop-summit-2015">slides</a>) by <a href="https://twitter.com/debashis_saha">Debashis Saha</a> &amp; <a href="https://twitter.com/lukehq">Luke Han</a>, at Hadoop Summit 2015 in San Jose, US, 2015-06-09</li>
- <li><a href="https://vimeo.com/128152444">HBaseCon 2015: Apache Kylin; Extreme OLAP Engine for Hadoop</a> (<a href="https://vimeo.com/128152444">video</a>, <a href="http://www.slideshare.net/HBaseCon/ecosystem-session-3b">slides</a>) by <a href="https://twitter.com/SeshuAd">Seshu Adunuthula</a> at HBaseCon 2015 in San Francisco, US, 2015-05-07</li>
- <li><a href="http://strataconf.com/big-data-conference-uk-2015/public/schedule/detail/40029">Apache Kylin - Extreme OLAP Engine for Hadoop</a> (<a href="http://www.slideshare.net/lukehan/apache-kylin-extreme-olap-engine-for-big-data">slides</a>) by <a href="https://twitter.com/lukehq">Luke Han</a> &amp; <a href="https://github.com/liyang-gmt8">Yang Li</a>, at Strata+Hadoop World in London, UK, 2015-05-06</li>
- <li><a href="http://www.infoq.com/cn/presentations/open-source-journey-of-apache-kylin">Apache Kylin Open Source Journey</a> (<a href="http://www.slideshare.net/lukehan/apache-kylin-open-source-journey-for-qcon2015-beijing">slides</a>) by <a href="https://twitter.com/lukehq">Luke Han</a>, at QCon Beijing in Beijing, China, 2015-04-23</li>
- <li><a href="http://cio.it168.com/a2015/0418/1721/000001721404.shtml">Apache Kylin - OLAP on Hadoop</a> by <a href="https://github.com/liyang-gmt8">Yang Li</a>, at Database Technology Conference China 2015 in Beijing, China, 2015-04-18</li>
- <li><a href="https://www.youtube.com/watch?v=U0SbrVzuOe4">Apache Kylin â Cubes on Hadoop</a> (<a href="https://www.youtube.com/watch?v=U0SbrVzuOe4">video</a>, <a href="http://www.slideshare.net/Hadoop_Summit/apache-kylin-cubes-on-hadoop">slides</a>) by <a href="https://twitter.com/ted_dunning">Ted Dunning</a>, at Hadoop Summit 2015 Europe in Brussels, Belgium, 2015-04-16</li>
- <li><a href="http://bdtc2014.hadooper.cn/m/zone/bdtc_2014/schedule3">Apache Kylin ï¼ Hadoop ä¸çå¤§è§æ¨¡èæºåæå¹³å°</a> (<a href="http://www.slideshare.net/lukehan/apache-kylin-big-data-technology-conference-2014-beijing-v2">slides</a>) by <a href="https://twitter.com/lukehq">Luke Han</a>, at Big Data Technology Conference China in Beijing, China, 2014-12-14</li>
- <li><a href="http://v.csdn.hudong.com/s/article.html?arcid=15820707">Apache Kylin: OLAP Engine on Hadoop - Tech Deep Dive</a> (<a href="http://v.csdn.hudong.com/s/article.html?arcid=15820707">video</a>, <a href="http://www.slideshare.net/XuJiang2/kylin-hadoop-olap-engine">slides</a>) by <a href="https://www.linkedin.com/pub/xu-jiang/4/5a8/230">Jiang Xu</a>, at Shanghai Big Data Summit 2014 in Shanghai, China , 2014-10-25</li>
-</ul>
-
-<p><strong>Meetup</strong></p>
-
-<ul>
- <li><a href="http://www.meetup.com/Cloud-at-ebayinc/events/218914395/">Apache Kylin Meetup @Bay Area</a>, in San Jose, US, 6:00PM - 7:30PM, Thursday, 2014-12-04</li>
-</ul>
-
-</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><p>Apache Kylin v0.7.1-incubating has rolled out on June 10, 2015. This is also the first Apache release after join incubating. </p>
+ <description><p>Apache Kylin v0.7.1-incubating has rolled out on June 10, 2015. This is also the first Apache release after join incubating.</p>
<p>To download this release, please visit: <a href="http://kylin.incubator.apache.org/download/">http://kylin.incubator.apache.org/download/</a>, there are source code package, binary package, ODBC driver and installation guide avaliable.</p>
@@ -524,20 +42,21 @@ svn commit -m <span class="s1&qu
<li>Job engine refactor to be generic job manager for all jobs, and improved efficiency</li>
<li>Support Hive database other than âdefaultâ</li>
<li>JDBC driver avaliable for client to interactive with Kylin server</li>
- <li>Binary pacakge avaliable download </li>
+ <li>Binary pacakge avaliable download</li>
</ul>
<p><strong>New Feature</strong></p>
-<pre><code>* [KYLIN-327] - Binary distribution
+<div class="highlighter-rouge"><pre class="highlight"><code>* [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
</code></pre>
+</div>
<p><strong>Task</strong></p>
-<pre><code>* [KYLIN-361] - Rename package name with Apache Kylin
+<div class="highlighter-rouge"><pre class="highlight"><code>* [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 <span class="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
</code></pre>
+</div>
<p><strong>Sub-task</strong></p>
-<pre><code>* [KYLIN-670] - Update pom with "incubating" in version number
+<div class="highlighter-rouge"><pre class="highlight"><code>* [KYLIN-670] - Update pom with "incubating" in version number
* [KYLIN-737] - Generate and sign release package for review and vote
* [KYLIN-795] - Release after success vote
</code></pre>
+</div>
<p><strong>Bug</strong></p>
-<pre><code>* [KYLIN-132] - Job framework
+<div class="highlighter-rouge"><pre class="highlight"><code>* [KYLIN-132] - Job framework
* [KYLIN-194] - Dict &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 <span class="s1&qu
* [KYLIN-739] - Dimension as metrics does not work with PK-FK derived column
* [KYLIN-761] - Tables are not shown in the "Query" tab, and couldn't run SQL query after cube be built
</code></pre>
+</div>
<p><strong>Improvement</strong></p>
-<pre><code>* [KYLIN-168] - Installation fails if multiple ZK
+<div class="highlighter-rouge"><pre class="highlight"><code>* [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 <span class="s1&qu
* [KYLIN-779] - [UI] jump to cube list after create cube
* [KYLIN-796] - Add REST API to trigger storage cleanup/GC
</code></pre>
+</div>
<p><strong>Wish</strong></p>
-<pre><code>* [KYLIN-608] - Distinct count for ii storage
+<div class="highlighter-rouge"><pre class="highlight"><code>* [KYLIN-608] - Distinct count for ii storage
</code></pre>
+</div>
</description>
<pubDate>Wed, 10 Jun 2015 05:28:00 -0700</pubDate>
@@ -664,722 +188,50 @@ svn commit -m <span class="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><h4 id="some-npm-error-causes-error-exit-">Some NPM error causes ERROR exit (ä¸å½å¤§éå°åºç¨æ·è¯·ç¹å«æ³¨ææ¤é®é¢)?</h4>
-<p>Check out <a href="https://github.com/KylinOLAP/Kylin/issues/35">https://github.com/KylinOLAP/Kylin/issues/35</a></p>
-
-<h4 id="cant-get-master-address-from-zookeeper-when-installing-kylin-on-hortonworks-sandbox">Canât get master address from ZooKeeperâ when installing Kylin on Hortonworks Sandbox</h4>
-<p>Check out <a href="https://github.com/KylinOLAP/Kylin/issues/9">https://github.com/KylinOLAP/Kylin/issues/9</a>.</p>
-
-<h4 id="install-scripted-finished-in-my-virtual-machine-but-cannot-visit-via-httplocalhost9080">Install scripted finished in my virtual machine, but cannot visit via http://localhost:9080</h4>
-<p>Check out <a href="https://github.com/KylinOLAP/Kylin/issues/12">https://github.com/KylinOLAP/Kylin/issues/12</a>.</p>
-
-<h4 id="map-reduce-job-information-cant-display-on-sandbox-deployment">Map Reduce Job information canât display on sandbox deployment</h4>
-<p>Check out <a href="https://github.com/KylinOLAP/Kylin/issues/40">https://github.com/KylinOLAP/Kylin/issues/40</a></p>
-
-<h4 id="install-kylin-on-cdh-52-or-hadoop-25x">Install Kylin on CDH 5.2 or Hadoop 2.5.x</h4>
-<p>Check out discussion: <a href="https://groups.google.com/forum/?utm_medium=email&amp;utm_source=footer#!msg/kylin-olap/X0GZfsX1jLc/nzs6xAhNpLkJ">https://groups.google.com/forum/?utm_medium=email&amp;utm_source=footer#!msg/kylin-olap/X0GZfsX1jLc/nzs6xAhNpLkJ</a></p>
-
-<div class="highlight"><pre><code class="language-groff" data-lang="groff">I was able to deploy Kylin with following option in POM.
-&lt;hadoop2.version&gt;2.5.0&lt;/hadoop2.version&gt;
-&lt;yarn.version&gt;2.5.0&lt;/yarn.version&gt;
-&lt;hbase-hadoop2.version&gt;0.98.6-hadoop2&lt;/hbase-hadoop2.version&gt;
-&lt;zookeeper.version&gt;3.4.5&lt;/zookeeper.version&gt;
-&lt;hive.version&gt;0.13.1&lt;/hive.version&gt;
-My Cluster is running on Cloudera Distribution CDH 5.2.0.</code></pre></div>
-
-<h4 id="unable-to-load-a-big-cube-as-htable-with-javalangoutofmemoryerror-unable-to-create-new-native-thread">Unable to load a big cube as HTable, with java.lang.OutOfMemoryError: unable to create new native thread</h4>
-<p>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; JVM can allow more threads, for example see <a href="http://blog.egilh.com/2006/06/2811aspx.html">this article</a>.</p>
-
-<h4 id="failed-to-run-buildcubewithenginetest-saying-failed-to-connect-to-hbase-while-hbase-is-active">Failed to run BuildCubeWithEngineTest, saying failed to connect to hbase while hbase is active</h4>
-<p>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.</p>
-
-<h4 id="sumfield-returns-a-negtive-result-while-all-the-numbers-in-this-field-are--0">SUM(field) returns a negtive result while all the numbers in this field are &gt; 0</h4>
-<p>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: <a href="https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-NumericTypes">https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-NumericTypes</a></p>
-
-<h4 id="why-kylin-need-extract-the-distinct-columns-from-fact-table-before-building-cube">Why Kylin need extract the distinct columns from Fact Table before building cube?</h4>
-<p>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.</p>
-
-<h4 id="why-kylin-calculate-the-hive-table-cardinality">Why Kylin calculate the HIVE table cardinality?</h4>
-<p>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 &gt; 1,000 is worth attention and &gt; 1,000,000 should be avoided at best effort. For optimal cube performance, try reduce high cardinality by categorize values or derive features.</p>
-</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><p>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;</p>
-
-<p>Steps:</p>
+ <title>Introduce Data Model of Cube Designer</title>
+ <description><h3 id="background">Background</h3>
+<p>In previous version (before v0.6.4), Kylin introduced a GUI tool called Cube Designer for user (we called this role as <strong>Cube Modeler</strong>) to architect OLAP Cube with dimensions, measures and other settings. It works well for most of the features but still not user friendly yet:</p>
<ol>
- <li>Cleanup unused cubes to save storage space (be cautious on production!): run the following command in hbase CLI: </li>
+ <li>A user has to add dimension one by one, considering there are 20+ even 50+ dimensions, the entire process is really boring.</li>
+ <li>Each dimension requires define join condition between fact table and lookup table which even already be defined in previous dimensions many times.</li>
+ <li>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.</li>
+ <li>Save/Next buttons are confusing user to click which one for real next step or just save current dimension settings</li>
</ol>
-<div class="highlight"><pre><code class="language-groff" data-lang="groff">hbase org.apache.hadoop.util.RunJar /${KYLIN_HOME}/lib/kylin-job-(version).jar org.apache.kylin.job.hadoop.cube.StorageCleanupJob --delete true</code></pre></div>
+<h3 id="data-model-of-cube-designer">Data Model of Cube Designer</h3>
+<p>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.<a href="http://en.wikipedia.org/wiki/Data_model">Wikipedia</a>. In Kylin, it using <a href="http://en.wikipedia.org/wiki/Star_schema">Star Schema</a> 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. <br />
+Now (after v0.6.4), to create a cube will follow below steps:</p>
<ol>
- <li>
- <p>List all HBase tables, iterate and then export each Kylin table to HDFS; See <a href="https://hbase.apache.org/book/ops_mgt.html#export">https://hbase.apache.org/book/ops_mgt.html#export</a></p>
- </li>
- <li>
- <p>Copy the export folder from HDFS to local file system, and then archive it;</p>
- </li>
- <li>
- <p>(optional) Download the archive from Hadoop CLI to local;</p>
- </li>
- <li>
- <p>Cleanup the export folder from CLI HDFS and local file system;</p>
- </li>
+ <li>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.</li>
+ <li>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 <em>Auto Generator</em> to help generate many dimensions within simple clicks.</li>
+ <li>Then define measures and others as previous cube designer did</li>
</ol>
-<p>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;</p>
-</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><blockquote>
- <p><strong>æ¯æçæµè§å¨</strong></p>
-
- <p>Windows: Google Chrome, FireFox</p>
-
- <p>Mac: Google Chrome, FireFox, Safari</p>
-</blockquote>
-
-<h2 id="section">1. è®¿é® &amp; ç»é</h2>
-<p>访é®ä¸»æº: http://your_sandbox_ip:9080
-使ç¨ç¨æ·å/å¯ç ç»éï¼ADMIN/KYLIN</p>
-
-<p><img src="/images/Kylin-Web-Tutorial/1 login.png" alt="" /></p>
-
-<h2 id="kylinhive">2. Kylinä¸å¯ç¨çHive表</h2>
-<p>è½ç¶Kylin使ç¨SQLä½ä¸ºæ¥è¯¢æ¥å£å¹¶å©ç¨Hiveå
æ°æ®ï¼Kylinä¸ä¼è®©ç¨æ·æ¥è¯¢ææçhive表ï¼å 为å°ç®å为æ¢å®æ¯ä¸ä¸ªé¢æå»ºOLAP(MOLAP)ç³»ç»ã为äºä½¿è¡¨å¨Kylinä¸å¯ç¨ï¼ä½¿ç¨âSyncâæ¹æ³è½å¤æ¹ä¾¿å°ä»Hiveä¸åæ¥è¡¨ã</p>
-
-<p><img src="/images/Kylin-Web-Tutorial/2 tables.png" alt="" /></p>
-
-<h2 id="kylin-olap-cube">3. Kylin OLAP Cube</h2>
-<p>KylinçOLAP Cubeæ¯ä»æå模å¼çHive表ä¸è·åçé¢è®¡ç®æ°æ®éï¼è¿æ¯ä¾ç¨æ·æ¢ç´¢ãç®¡çææcubeçç½é¡µç®¡ç页é¢ãç±èåæ è¿å
¥<code>Cubes</code>页é¢ï¼ç³»ç»ä¸ææå¯ç¨çcubeå°è¢«ååºã</p>
-
-<p><img src="/images/Kylin-Web-Tutorial/3 cubes.png" alt="" /></p>
-
-<p>æ¢ç´¢æ´å¤å
³äºCubeç详ç»ä¿¡æ¯</p>
-
-<ul>
- <li>
- <p>è¡¨æ ¼è§å¾:</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/4 form-view.png" alt="" /></p>
- </li>
- <li>
- <p>SQL è§å¾ (Hiveæ¥è¯¢è¯»åæ°æ®ä»¥çæcube):</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/5 sql-view.png" alt="" /></p>
- </li>
- <li>
- <p>å¯è§å (æ¾ç¤ºè¿ä¸ªcubeèåçæå模å¼):</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/6 visualization.png" alt="" /></p>
- </li>
- <li>
- <p>è®¿é® (æäºç¨æ·/è§è²æéï¼betaçä¸æäºæéæä½ä»
对管çå弿¾):</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/7 access.png" alt="" /></p>
- </li>
-</ul>
-
-<h2 id="sql">4. å¨ç½é¡µä¸ç¼ååè¿è¡SQL</h2>
-<p>Kelinçç½é¡µçä¸ºç¨æ·æä¾äºä¸ä¸ªç®åçæ¥è¯¢å·¥å
·æ¥è¿è¡SQL以æ¢ç´¢ç°åçcubeï¼éªè¯ç»æå¹¶æ¢ç´¢ä½¿ç¨#5ä¸çPivot analysisä¸å¯è§ååæçç»æéã</p>
-
-<blockquote>
- <p><strong>æ¥è¯¢éå¶</strong></p>
-
- <ol>
- <li>
- <p>ä»
æ¯æSELECTæ¥è¯¢</p>
- </li>
- <li>
- <p>为äºé¿å
仿å¡å¨å°å®¢æ·ç«¯äº§ç巨大çç½ç»æµéï¼betaçä¸çæ«æèå´éå¼è¢«è®¾ç½®ä¸º1,000,000ã</p>
- </li>
- <li>
- <p>betaçä¸ï¼SQLå¨cube䏿 æ³æ¾å°çæ°æ®å°ä¸ä¼éå®åå°Hive</p>
- </li>
- </ol>
-</blockquote>
-
-<p>ç±èåæ è¿å
¥âQueryâ页é¢ï¼</p>
-
-<p><img src="/images/Kylin-Web-Tutorial/8 query.png" alt="" /></p>
-
-<ul>
- <li>
- <p>æºè¡¨ï¼</p>
-
- <p>æµè§å¨å½åå¯ç¨è¡¨ï¼ä¸Hiveç¸åçç»æåå
æ°æ®ï¼ï¼</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/9 query-table.png" alt="" /></p>
- </li>
- <li>
- <p>æ°çæ¥è¯¢ï¼</p>
-
- <p>ä½ å¯ä»¥ç¼ååè¿è¡ä½ çæ¥è¯¢å¹¶æ¢ç´¢ç»æãè¿éæä¾ä¸ä¸ªæ¥è¯¢ä¾ä½ åèï¼</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/10 query-result.png" alt="" /></p>
- </li>
- <li>
- <p>å·²ä¿åçæ¥è¯¢ï¼</p>
-
- <p>ä¸ç¨æ·è´¦å·å
³èï¼ä½ å°è½å¤ä»ä¸åçæµè§å¨çè³æºå¨ä¸è·åå·²ä¿åçæ¥è¯¢ã
- å¨ç»æåºåç¹å»âSaveâï¼å°ä¼å¼¹åºåååæè¿°æ¥ä¿åå½åæ¥è¯¢ï¼</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/11 save-query.png" alt="" /></p>
-
- <p>ç¹å»âSaved Queriesâæ¢ç´¢ææå·²ä¿åçæ¥è¯¢ï¼ä½ å¯ä»¥ç´æ¥éæ°æäº¤å®æ¥è¿è¡æå é¤å®ï¼</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/11 save-query-2.png" alt="" /></p>
- </li>
- <li>
- <p>æ¥è¯¢åå²ï¼</p>
-
- <p>ä»
ä¿åå½åç¨æ·å¨å½åæµè§å¨ä¸çæ¥è¯¢åå²ï¼è¿å°éè¦å¯ç¨cookieï¼å¹¶ä¸å¦æä½ æ¸
çæµè§å¨ç¼åå°ä¼ä¸¢å¤±æ°æ®ãç¹å»âQuery Historyâæ ç¾ï¼ä½ å¯ä»¥ç´æ¥éæ°æäº¤å
¶ä¸çä»»ä½ä¸æ¡å¹¶å次è¿è¡ã</p>
- </li>
-</ul>
-
-<h2 id="pivot-analysis">5. Pivot Analysisä¸å¯è§å</h2>
-<p>Kylinçç½é¡µçæä¾ä¸ä¸ªç®åçPivotä¸å¯è§ååæå·¥å
·ä¾ç¨æ·æ¢ç´¢ä»ä»¬çæ¥è¯¢ç»æï¼</p>
-
-<ul>
- <li>
- <p>ä¸è¬ä¿¡æ¯ï¼</p>
-
- <p>彿¥è¯¢è¿è¡æååï¼å®å°åç°ä¸ä¸ªæåææ ä¸è¢«è®¿é®çcubeååã
- åæ¶å®å°ä¼åç°è¿ä¸ªæ¥è¯¢å¨åå°å¼æè¿è¡äºå¤ä¹
ï¼ä¸å
æ¬ä»Kylinæå¡å¨å°æµè§å¨çç½ç»éä¿¡ï¼ï¼</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/12 general.png" alt="" /></p>
- </li>
- <li>
- <p>æ¥è¯¢ç»æï¼</p>
-
- <p>è½å¤æ¹ä¾¿å°å¨ä¸ä¸ªå䏿åºã</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/13 results.png" alt="" /></p>
- </li>
- <li>
- <p>导åºå°CSVæä»¶</p>
-
- <p>ç¹å»âExportâæé®ä»¥CSVæä»¶æ ¼å¼ä¿åå½åç»æã</p>
- </li>
- <li>
- <p>Pivot表ï¼</p>
-
- <p>å°ä¸ä¸ªæå¤ä¸ªåææ¾å°æ 头ï¼ç»æå°æ ¹æ®è¿äºåçå¼åç»ï¼</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/14 drag.png" alt="" /></p>
- </li>
- <li>
- <p>å¯è§åï¼</p>
-
- <p>åæ¶ï¼ç»æéå°è¢«æ¹ä¾¿å°æ¾ç¤ºå¨âå¯è§åâçä¸åå¾è¡¨ä¸ï¼</p>
-
- <p>注æï¼çº¿å½¢å¾ä»
å½è³å°ä¸ä¸ªä»Hive表ä¸è·åç维度æçå®çâDateâæ°æ®ç±»ååæ¶ææ¯å¯ç¨çã</p>
-
- <ul>
- <li>æ¡å½¢å¾ï¼</li>
- </ul>
-
- <p><img src="/images/Kylin-Web-Tutorial/15 bar-chart.png" alt="" /></p>
-
- <ul>
- <li>饼å¾ï¼</li>
- </ul>
-
- <p><img src="/images/Kylin-Web-Tutorial/16 pie-chart.png" alt="" /></p>
-
- <ul>
- <li>线形å¾ï¼</li>
- </ul>
-
- <p><img src="/images/Kylin-Web-Tutorial/17 line-chart.png" alt="" /></p>
- </li>
-</ul>
-
-<h2 id="cube-job">6. Cubeå»ºç« Jobçæ§</h2>
-<p>çæ§å管çcube建ç«è¿ç¨ä¸è¯æç详ç»ä¿¡æ¯ï¼çè³ç´æ¥è¿æ¥å°Hadoopçjobä¿¡æ¯ï¼</p>
-
-<p><img src="/images/Kylin-Web-Tutorial/7 job-steps.png" alt="" /></p>
-</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><blockquote>
- <p>Kylin ODBC驱å¨ç¨åºä¸Tableauåå¨ä¸äºéå¶ï¼è¯·å¨å°è¯åä»ç»é
读æ¬è¯´æä¹¦ã
-* ä»
æ¯æâmanagedâåæè·¯å¾ï¼Kylin弿å°å¯¹æå¤ç维度æåº¦éæ¥é
-* 请å§ç»ä¼å
éæ©äºå®è¡¨ï¼ç¶åä½¿ç¨æ£ç¡®çè¿æ¥æ¡ä»¶æ·»å æ¥æ¾è¡¨ï¼cubeä¸å·²å®ä¹çè¿æ¥ç±»åï¼
-* 请å¿å°è¯å¨å¤ä¸ªäºå®è¡¨æå¤ä¸ªæ¥æ¾è¡¨ä¹é´è¿è¡è¿æ¥ï¼
-* ä½ å¯ä»¥å°è¯ä½¿ç¨ç±»ä¼¼Tableauè¿æ»¤å¨ä¸seller idè¿æ ·çé«åºæ°ç»´åº¦ï¼ä½å¼æç°å¨å°åªè¿åæé个Tableauè¿æ»¤å¨ä¸çseller idã</p>
-
- <p>å¦éæ´å¤è¯¦ç»ä¿¡æ¯ææä»»ä½é®é¢ï¼è¯·èç³»Kylinå¢éï¼<code>kylinolap@gmail.com</code></p>
-</blockquote>
-
-<h3 id="odbc">æ¥éª¤1. å®è£
ODBC驱å¨ç¨åº</h3>
-<p>åè§ç»´åºé¡µé¢<a href="https://github.com/KylinOLAP/Kylin/wiki/Kylin-ODBC-Driver-Tutorial">Kylin ODBC Driver Tutorial</a>ã</p>
-
-<h3 id="kylin">æ¥éª¤2. è¿æ¥å°Kylinæå¡å¨</h3>
-<blockquote>
- <p>æä»¬å»ºè®®ä½¿ç¨Connect Using Driverè䏿¯Using DSNï¼å 为Tableauå¢éå°ä¸ä¼å¨Tableauæå¡å¨ä¸ç®¡çä½ çDSNã</p>
-</blockquote>
-
-<p>Connect Using Driver: 鿩左侧颿¿ä¸çâOther Database(ODBC)âåå¼¹åºçªå£çâKylinODBCDriverâã</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/1 odbc.png" alt="" /></p>
-
-<p>è¾å
¥ä½ çæå¡å¨ä½ç½®åè¯ä¹¦ï¼æå¡å¨ä¸»æºï¼ç«¯å£ï¼ç¨æ·ååå¯ç ã</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/2 serverhost.jpg" alt="" /></p>
-
-<p>ç¹å»âConnectâè·åä½ ææé访é®ç项ç®å表ãæå
³æéç详ç»ä¿¡æ¯è¯·åè<a href="https://github.com/KylinOLAP/Kylin/wiki/Kylin-Cube-Permission-Grant-Tutorial">Kylin Cube Permission Grant Tutorial</a>ãç¶åå¨ä¸æå表ä¸éæ©ä½ æ³è¦è¿æ¥ç项ç®ã</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/3 project.jpg" alt="" /></p>
-
-<p>ç¹å»âDoneâå®æè¿æ¥ã</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/4 done.jpg" alt="" /></p>
-
-<h3 id="section">æ¥éª¤3. 使ç¨å表æå¤è¡¨</h3>
-<blockquote>
- <p>éå¶
- * å¿
é¡»é¦å
éæ©äºå®è¡¨
- * 请å¿ä»
æ¯æä»æ¥æ¾è¡¨éæ©
- * è¿æ¥æ¡ä»¶å¿
é¡»ä¸cubeå®ä¹å¹é
</p>
-</blockquote>
-
-<p><strong>éæ©äºå®è¡¨</strong></p>
-
-<p>éæ©<code>Multiple Tables</code>ã</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/5 multipleTable.jpg" alt="" /></p>
-
-<p>ç¶åç¹å»<code>Add Table...</code>æ·»å ä¸å¼ äºå®è¡¨ã</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/6 facttable.jpg" alt="" /></p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/6 facttable2.jpg" alt="" /></p>
-
-<p><strong>éæ©æ¥æ¾è¡¨</strong></p>
-
-<p>ç¹å»<code>Add Table...</code>æ·»å ä¸å¼ æ¥æ¾è¡¨ã</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/7 lkptable.jpg" alt="" /></p>
-
-<p>ä»ç»å»ºç«è¿æ¥æ¡æ¬¾ã</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/8 join.jpg" alt="" /></p>
-
-<p>ç»§ç»éè¿ç¹å»<code>Add Table...</code>æ·»å 表ç´å°ææçæ¥æ¾è¡¨é½è¢«æ£ç¡®æ·»å ãå½åæ¤è¿æ¥ä»¥å¨Tableauä¸ä½¿ç¨ã</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/9 connName.jpg" alt="" /></p>
-
-<p><strong>使ç¨Connect Live</strong></p>
-
-<p><code>Data Connection</code>å
±æä¸ç§ç±»åãéæ©<code>Connect Live</code>é项ã</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/10 connectLive.jpg" alt="" /></p>
-
-<p>ç¶åä½ å°±è½å¤å°½æ
使ç¨Tableauè¿è¡åæã</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/11 analysis.jpg" alt="" /></p>
-
-<p><strong>æ·»å é¢å¤æ¥æ¾è¡¨</strong></p>
-
-<p>ç¹å»é¡¶é¨èåæ ç<code>Data</code>ï¼éæ©<code>Edit Tables...</code>æ´æ°æ¥æ¾è¡¨ä¿¡æ¯ã</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/12 edit tables.jpg" alt="" /></p>
-
-<h3 id="sql">æ¥éª¤4. 使ç¨èªå®ä¹SQL</h3>
-<p>使ç¨èªå®ä¹SQL类似äºä½¿ç¨å表/å¤è¡¨ï¼ä½ä½ éè¦å¨<code>Custom SQL</code>æ ç¾å¤å¶ä½ çSQLåéåå䏿令ã</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/19 custom.jpg" alt="" /></p>
-
-<h3 id="tableau">æ¥éª¤5. åå¸å°Tableauæå¡å¨</h3>
-<p>å¦æä½ å·²ç»å®æä½¿ç¨Tableauå¶ä½ä¸ä¸ªä»ªè¡¨æ¿ï¼ä½ å¯ä»¥å°å®åå¸å°Tableauæå¡å¨ä¸ã
-ç¹å»é¡¶é¨èåæ ç<code>Server</code>ï¼éæ©<code>Publish Workbook...</code>ã</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/14 publish.jpg" alt="" /></p>
-
-<p>ç¶åç»éä½ çTableauæå¡å¨å¹¶åå¤åå¸ã</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/16 prepare-publish.png" alt="" /></p>
-
-<p>å¦æä½ æ£å¨ä½¿ç¨Connect Using Driverè䏿¯DSNè¿æ¥ï¼ä½ è¿å°éè¦åµå
¥ä½ çå¯ç ãç¹å»å·¦ä¸æ¹ç<code>Authentication</code>æé®å¹¶éæ©<code>Embedded Password</code>ãç¹å»<code>Publish</code>ç¶åä½ å°çå°ç»æã</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/17 embedded-pwd.png" alt="" /></p>
-
-<h3 id="section-1">å°è´´å£«</h3>
-<ul>
- <li>
- <p>å¨Tableauä¸éè表å</p>
-
- <ul>
- <li>Tableauå°ä¼æ ¹æ®æºè¡¨ååç»æ¾ç¤ºåï¼ä½ç¨æ·å¯è½å¸ææ ¹æ®å
¶ä»ä¸åç宿ç»ç»åã使ç¨Tableauä¸çâGroup by Folderâå¹¶å建æä»¶å¤¹æ¥å¯¹ä¸åçååç»ã</li>
- </ul>
-
- <p><img src="/images/Kylin-and-Tableau-Tutorial/18 groupby-folder.jpg" alt="" /></p>
- </li>
-</ul>
-</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><blockquote>
- <p>There are some limitations of Kylin ODBC driver with Tableau, please read carefully this instruction before you try it.</p>
-
- <ul>
- <li>Only support âmanagedâ analysis path, Kylin engine will raise exception for unexpected dimension or metric</li>
- <li>Please always select Fact Table first, then add lookup tables with correct join condition (defined join type in cube)</li>
- <li>Do not try to join between fact tables or lookup tables;</li>
- <li>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.</li>
- </ul>
-
- <p>More detail information or any issue, please contact Kylin Team: <code>kylinolap@gmail.com</code></p>
-</blockquote>
-
-<h3 id="step-1-install-odbc-driver">Step 1. Install ODBC Driver</h3>
-<p>Refer to wiki page <a href="https://github.com/KylinOLAP/Kylin/wiki/Kylin-ODBC-Driver-Tutorial">Kylin ODBC Driver Tutorial</a>.</p>
-
-<h3 id="step-2-connect-to-kylin-server">Step 2. Connect to Kylin Server</h3>
-<blockquote>
- <p>We recommended to use Connect Using Driver instead of Using DSN since Tableau team will not manage your DSN on Tableau Servers.</p>
-</blockquote>
-
-<p>Connect Using Driver: Select âOther Database(ODBC)â in the left panel and choose KylinODBCDriver in the pop-up window. </p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/1 odbc.png" alt="" /></p>
-
-<p>Enter your Sever location and credentials: server host, port, username and password.</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/2 serverhost.jpg" alt="" /></p>
-
-<p>Click âConnectâ to get the list of projects that you have permission to access. See details about permission in <a href="https://github.com/KylinOLAP/Kylin/wiki/Kylin-Cube-Permission-Grant-Tutorial">Kylin Cube Permission Grant Tutorial</a>. Then choose the project you want to connect in the drop down list. </p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/3 project.jpg" alt="" /></p>
-
-<p>Click âDoneâ to complete the connection.</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/4 done.jpg" alt="" /></p>
-
-<h3 id="step-3-using-single-table-or-multiple-tables">Step 3. Using Single Table or Multiple Tables</h3>
-<blockquote>
- <p>Limitation</p>
-
- <ul>
- <li>Must select FACT table first</li>
- <li>Do not support select from lookup table only</li>
- <li>The join condition must match within cube definition</li>
- </ul>
-</blockquote>
-
-<p><strong>Select Fact Table</strong></p>
-
-<p>Select <code>Multiple Tables</code>.</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/5 multipleTable.jpg" alt="" /></p>
-
-<p>Then click <code>Add Table...</code> to add a fact table.</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/6 facttable.jpg" alt="" /></p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/6 facttable2.jpg" alt="" /></p>
-
-<p><strong>Select Look-up Table</strong></p>
-
-<p>Click <code>Add Table...</code> to add a look-up table. </p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/7 lkptable.jpg" alt="" /></p>
-
-<p>Set up the join clause carefully. </p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/8 join.jpg" alt="" /></p>
-
-<p>Keep add tables through click <code>Add Table...</code> until all the look-up tables have been added properly. Give the connection a name for use in Tableau.</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/9 connName.jpg" alt="" /></p>
-
-<p><strong>Using Connect Live</strong></p>
-
-<p>There are three types of <code>Data Connection</code>. Choose the <code>Connect Live</code> option. </p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/10 connectLive.jpg" alt="" /></p>
-
-<p>Then you can enjoy analyzing with Tableau.</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/11 analysis.jpg" alt="" /></p>
-
-<p><strong>Add additional look-up Tables</strong></p>
-
-<p>Click <code>Data</code> in the top menu bar, select <code>Edit Tables...</code> to update the look-up table information.</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/12 edit tables.jpg" alt="" /></p>
-
-<h3 id="step-4-using-customized-sql">Step 4. Using Customized SQL</h3>
-<p>To use customized SQL resembles using Single Table/Multiple Tables, except that you just need to paste your SQL in <code>Custom SQL</code> tab and take the same instruction as above.</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/19 custom.jpg" alt="" /></p>
-
-<h3 id="step-5-publish-to-tableau-server">Step 5. Publish to Tableau Server</h3>
-<p>Suppose you have finished making a dashboard with Tableau, you can publish it to Tableau Server.
-Click <code>Server</code> in the top menu bar, select <code>Publish Workbook...</code>. </p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/14 publish.jpg" alt="" /></p>
-
-<p>Then sign in your Tableau Server and prepare to publish. </p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/16 prepare-publish.png" alt="" /></p>
-
-<p>If youâre Using Driver Connect instead of DSN connect, youâll need to additionally embed your password in. Click the <code>Authentication</code> button at left bottom and select <code>Embedded Password</code>. Click <code>Publish</code> and you will see the result.</p>
-
-<p><img src="/images/Kylin-and-Tableau-Tutorial/17 embedded-pwd.png" alt="" /></p>
-
-<h3 id="tips">Tips</h3>
-<ul>
- <li>
- <p>Hide Table name in Tableau</p>
-
- <ul>
- <li>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.</li>
- </ul>
-
- <p><img src="/images/Kylin-and-Tableau-Tutorial/18 groupby-folder.jpg" alt="" /></p>
- </li>
-</ul>
-</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><blockquote>
- <p><strong>Supported Browsers</strong></p>
-
- <p>Windows: Google Chrome, FireFox</p>
-
- <p>Mac: Google Chrome, FireFox, Safari</p>
-</blockquote>
-
-<h2 id="access--login">1. Access &amp; Login</h2>
-<p>Host to access: http://your_sandbox_ip:9080
-Login with username/password: ADMIN/KYLIN</p>
-
-<p><img src="/images/Kylin-Web-Tutorial/1 login.png" alt="" /></p>
-
-<h2 id="available-hive-tables-in-kylin">2. Available Hive Tables in Kylin</h2>
-<p>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.</p>
-
-<p><img src="/images/Kylin-Web-Tutorial/2 tables.png" alt="" /></p>
-
-<h2 id="kylin-olap-cube">3. Kylin OLAP Cube</h2>
-<p>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 <code>Cubes</code> Menu, it will list all cubes available in system:</p>
-
-<p><img src="/images/Kylin-Web-Tutorial/3 cubes.png" alt="" /></p>
-
-<p>To explore more detail about the Cube</p>
-
-<ul>
- <li>
- <p>Form View:</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/4 form-view.png" alt="" /></p>
- </li>
- <li>
- <p>SQL View (Hive Query to read data to generate the cube):</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/5 sql-view.png" alt="" /></p>
- </li>
- <li>
- <p>Visualization (Showing the Star Schema behind of this cube):</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/6 visualization.png" alt="" /></p>
- </li>
- <li>
- <p>Access (Grant user/role privileges, Grant operation only open to Admin in beta):</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/7 access.png" alt="" /></p>
- </li>
-</ul>
-
-<h2 id="write-and-execute-sql-on-web">4. Write and Execute SQL on web</h2>
-<p>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</p>
-
-<blockquote>
- <p><strong>Query Limit</strong></p>
-
- <ol>
- <li>
- <p>Only SELECT query be supported</p>
- </li>
- <li>
- <p>To avoid huge network traffic from server to client, the scan rangeâs threshold be set to 1,000,000 in beta.</p>
- </li>
- <li>
- <p>SQL canât found data from cube will not redirect to Hive in beta</p>
- </li>
- </ol>
-</blockquote>
-
-<p>Go to âQueryâ menu:</p>
-
-<p><img src="/images/Kylin-Web-Tutorial/8 query.png" alt="" /></p>
-
-<ul>
- <li>
- <p>Source Tables:</p>
-
- <p>Browser current available Tables (same structure and metadata as Hive):</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/9 query-table.png" alt="" /></p>
- </li>
- <li>
- <p>New Query:</p>
-
- <p>You can write and execute your query and explorer the result. One query for you reference:</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/10 query-result.png" alt="" /></p>
- </li>
- <li>
- <p>Saved Query:</p>
-
- <p>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:</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/11 save-query.png" alt="" /></p>
-
- <p>Click âSaved Queriesâ to browser all your saved queries, you could direct resubmit it to run or remove it:</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/11 save-query-2.png" alt="" /></p>
- </li>
- <li>
- <p>Query History:</p>
-
- <p>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.</p>
- </li>
-</ul>
+<h3 id="benefits">Benefits</h3>
+<ol>
+ <li>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</li>
+ <li>More easy to create dimensions and measures based on the data model</li>
+ <li>Friendly error message with enhanced validation check when save cube</li>
+</ol>
-<h2 id="pivot-analysis-and-visualization">5. Pivot Analysis and Visualization</h2>
-<p>Thereâs one simple pivot and visualization analysis tool in Kylinâs web for user to explore their query result:</p>
+<h3 id="whats-next">Whatâs Next</h3>
+<p>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:</p>
<ul>
- <li>
- <p>General Information:</p>
-
- <p>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):</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/12 general.png" alt="" /></p>
- </li>
- <li>
- <p>Query Result:</p>
-
- <p>Itâs easy to order on one column.</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/13 results.png" alt="" /></p>
- </li>
- <li>
- <p>Export to CSV File</p>
-
- <p>Click âExportâ button to save current result as CSV file.</p>
- </li>
- <li>
- <p>Pivot Table:</p>
-
- <p>Drag and Drop one or more columns into the header, the result will grouping by such columnâs value:</p>
-
- <p><img src="/images/Kylin-Web-Tutorial/14 drag.png" alt="" /></p>
- </li>
- <li>
- <p>Visualization:</p>
-
- <p>Also, the result set will be easy to show with different charts in âVisualizationâ:</p>
-
- <p>note: line chart only available when thereâs at least one dimension with real âDateâ data type of column from Hive Table.</p>
-
- <ul>
- <li>Bar Chart:</li>
- </ul>
-
- <p><img src="/images/Kylin-Web-Tutorial/15 bar-chart.png" alt="" /></p>
-
- <ul>
- <li>Pie Chart:</li>
- </ul>
-
- <p><img src="/images/Kylin-Web-Tutorial/16 pie-chart.png" alt="" /></p>
-
- <ul>
- <li>Line Chart</li>
- </ul>
-
- <p><img src="/images/Kylin-Web-Tutorial/17 line-chart.png" alt="" /></p>
- </li>
+ <li><strong>Logical Model</strong>: A Data Model presents logical data structure like Star Schema beyond data tables with more business meaning</li>
+ <li><strong>Physical Model</strong>: 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.</li>
+ <li>A new GUI of Cube Designer to support above is on the way.</li>
</ul>
-<h2 id="cube-build-job-monitoring">6. Cube Build Job Monitoring</h2>
-<p>Monitor and manage cube build process, diagnostic into the detail and even link to Hadoopâs job information directly:</p>
-
-<p><img src="/images/Kylin-Web-Tutorial/7 job-steps.png" alt="" /></p>
</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>