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

[60/97] [abbrv] incubator-kylin git commit: KYLIN-582 Update website to comply with ASF incubator policy

KYLIN-582 Update website to comply with ASF incubator policy


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

Branch: refs/heads/staging
Commit: 9ccc61613dad7e123963aca4feeb2873583202bb
Parents: 2456a16
Author: lukehan <lu...@apache.org>
Authored: Mon Feb 2 23:43:31 2015 +0800
Committer: lukehan <lu...@apache.org>
Committed: Mon Feb 2 23:43:31 2015 +0800

----------------------------------------------------------------------
 docs/website/.gitignore                         |   2 +
 .../_posts/2015-01-25-introduce-data-model.md   |  40 ++++
 .../2015/01/26/introduce-data-model/index.html  | 181 +++++++++++++++++++
 3 files changed, 223 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/9ccc6161/docs/website/.gitignore
----------------------------------------------------------------------
diff --git a/docs/website/.gitignore b/docs/website/.gitignore
new file mode 100644
index 0000000..8bf9ddc
--- /dev/null
+++ b/docs/website/.gitignore
@@ -0,0 +1,2 @@
+.sass-cache
+

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

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/9ccc6161/docs/website/_site/blog/2015/01/26/introduce-data-model/index.html
----------------------------------------------------------------------
diff --git a/docs/website/_site/blog/2015/01/26/introduce-data-model/index.html b/docs/website/_site/blog/2015/01/26/introduce-data-model/index.html
new file mode 100644
index 0000000..2c0d79a
--- /dev/null
+++ b/docs/website/_site/blog/2015/01/26/introduce-data-model/index.html
@@ -0,0 +1,181 @@
+<!DOCTYPE html>
+<html>
+
+  <head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+
+  <title>Kylin.IO | Introduce Data Model of Cube Designer</title>
+  <meta name="description" content="BackgroundIn previous version (before v0.6.4), Kylin introduced a GUI tool called Cube Designer for user (we called this role as Cube Modeler) to architect O...">
+  <meta name="author"      content="Kylin.IO">
+  <link rel="shortcut icon" href="fav.png" type="image/png">
+
+
+
+<link rel="stylesheet" href="/assets/css/animate.css">
+<!-- Bootstrap -->
+<link rel="stylesheet" href="/assets/css/bootstrap.min.css">
+
+<!-- Fonts -->
+<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Alice|Open+Sans:400,300,700">
+
+<!-- Icons -->
+<link rel="stylesheet" href="/assets/css/font-awesome.min.css">
+
+  <!-- Custom styles -->
+  <link rel="stylesheet" href="/assets/css/styles.css">
+
+  <link rel="canonical" href="http://kyli.io/blog/2015/01/26/introduce-data-model/">
+  <link rel="alternate" type="application/rss+xml" title="kylin.io" href="http://kyli.io/feed.xml" />
+
+<!--[if lt IE 9]> <script src="assets/js/html5shiv.js"></script> <![endif]-->
+<script>
+  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+  ga('create', 'UA-55534813-1', 'auto');
+  ga('send', 'pageview');
+
+
+</script>
+
+</head>
+
+
+  <body>
+
+    <header id="header" >
+  <div id="head" class="parallax" parallax-speed="3" >
+    <div id="logo" class="text-center"> <img class="img-circle" id="circlelogo" src="/assets/images/kylin_logo.jpg"> <span class="title" >Apache Kylin</span> <span class="tagline">Extreme OLAP Engine for Big Data<br>
+      </span> 
+      <!--
+       <div id="download"><a href="https://github.com/KylinOLAP/Kylin/releases">DOWNLOAD</a></div>
+       -->
+       </div>
+  </div>
+
+  <!-- Main Menu -->
+  <nav class="navbar navbar-default" role="navigation" id="nav-wrapper">
+  <div class="container-fluid" id="nav">
+    <!-- Brand and toggle get grouped for better mobile display -->
+    <div class="navbar-header">
+      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+        <span class="sr-only">Toggle navigation</span>
+        <span class="icon-bar"></span>
+        <span class="icon-bar"></span>
+        <span class="icon-bar"></span>
+      </button>
+     
+    </div>
+
+    <!-- Collect the nav links, forms, and other content for toggling -->
+    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
+      <ul class="nav navbar-nav">
+     <li><a href="/"><b>Home</b></a></li>
+          <li><a href="/docs" >Docs</a></li>
+          <li><a href="/community" >Community</a></li>
+          <li><a href="/blog">Blog</li>
+          <li><a href="/about" >About</a></li>
+          <li><a href="/cn" >中文版</a></li>
+      </ul>
+      
+
+    </div><!-- /.navbar-collapse -->
+  </div><!-- /.container-fluid -->
+</nav>
+ </header>
+
+
+    <div class="page-content">
+      <div class="wrapper">
+        <div class="post" style=" padding:2em 4em 4em 4em">
+
+  <header class="post-header">
+    <h1 class="post-title">Introduce Data Model of Cube Designer</h1>
+    <p class="post-meta" >Jan 26, 2015 • Luke Han</p>
+  </header>
+
+  <article class="post-content" >
+    <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>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>
+
+<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. 
+Now (after v0.6.4), to create a cube will follow below steps:</p>
+
+<ol>
+  <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>
+
+<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>
+
+<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 storages to serve same data model:</p>
+
+<ul>
+  <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>
+
+
+  </article>
+
+</div>
+
+
+
+
+
+      </div>
+    </div>
+
+    <footer id="underfooter">
+  <div class="container">
+    <div class="row">
+      <div class="col-md-12 widget" >
+        <div class="widget-body" style="text-align:center">
+          <ul class="icons">
+            <li><a href="https://www.linkedin.com/groups/KylinOLAP-6785709?home=&gid=6785709&trk=anet_ug_hm" target="_blank" class="fa fa-linkedin fa-lg"></a></li>
+            <li><a href="https://twitter.com/debashis_saha/status/519612003443146752" target="_blank" class="fa fa-twitter fa-lg"></a></li>
+            <li><a href="https://www.facebook.com/kylinio?skip_nax_wizard=true&ref_type=logout_gear" target="_blank" class="fa fa-facebook fa-lg"></a></li>
+            <li><a href="https://plus.google.com/communities/101138166999680123468" target="_blank" class="fa fa-google-plus fa-lg"></a></li>
+            <li><a href="https://github.com/KylinOLAP/Kylin" target="_blank" class="fa fa-github-alt fa-lg"></a></li>
+            <!--  <li><a href="#" class="fa fa-weibo fa-lg"></a></li>
+         <li><a href="#" class="fa fa-weixin fa-lg"></a></li>-->
+          </ul>
+          <p style="text-align:center" > Copyright ©2014 <a href="http://kylin.io">Kylin.io</a> All Rights Reserved. | From <a href="http://www.ebayinc.com/">eBay Inc.</a> |<a href="#">back to top</a><br>
+          </p>
+        </div>
+      </div>
+    </div>
+    <!-- /row of widgets --> 
+
+  </div>
+  <div></div>
+  
+</footer>
+
+  <script src="/assets/js/jquery-1.9.1.min.js"></script> 
+  <script src="/assets/js/bootstrap.min.js"></script> 
+  <script src="/assets/js/main.js"></script>
+  </body>
+
+</html>