Added: kylin/site/docs23/tutorial/cube_streaming.html
URL: 
http://svn.apache.org/viewvc/kylin/site/docs23/tutorial/cube_streaming.html?rev=1822508&view=auto
==============================================================================
--- kylin/site/docs23/tutorial/cube_streaming.html (added)
+++ kylin/site/docs23/tutorial/cube_streaming.html Mon Jan 29 14:05:18 2018
@@ -0,0 +1,4334 @@
+<!--
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+-->
+
+<!doctype html>
+<html>
+       <!--
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+-->
+
+<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>Apache Kylin | Scalable Cubing from Kafka</title>
+  <meta name="description" content="Apache Kylin Home">
+  <meta name="author"      content="Apache Kylin">
+  <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="stylesheet" href="/assets/css/docs.css">
+  <link rel="stylesheet" href="/assets/css/pygments.css">
+
+  <link rel="canonical" 
href="http://kylin.apache.org/docs23/tutorial/cube_streaming.html";>
+  <link rel="alternate" type="application/rss+xml" title="Apache Kylin" 
href="http://kylin.apache.org/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');
+
+  //oringal tracker for kylin.io
+  ga('create', 'UA-55534813-1', 'auto');
+  //new tracker for kylin.apache.org
+  ga('create', 'UA-55534813-2', 'auto', {'name':'toplevel'});
+
+  ga('send', 'pageview');
+  ga('toplevel.send', 'pageview');
+
+
+</script>
+<script type="text/javascript" src="/assets/js/jquery-1.9.1.min.js"></script>
+<script type="text/javascript" src="/assets/js/nside.js"></script> </script>
+<script type="text/javascript" src="/assets/js/nnav.js"></script> </script>
+</head>
+
+       <body>
+               <!--
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+-->
+
+<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</span> 
+    </div>
+    <div class="text-center" style="
+      position: relative;
+      top: 66px;
+      width: 1080px;
+      margin: 0 auto;
+      z-index: 11;
+      margin-top: -253px;
+      text-align: right;"
+    >
+      <a href="http://apache.org/foundation/contributing.html"; title="Support 
Apache" style="margin-left: 150px;">
+          <img src="https://www.apache.org/images/SupportApache-small.png"; 
style="height: 150px; width: 150px;">
+      </a>
+    </div>  
+  </div>
+  
+
+  <!-- Main Menu -->
+  <nav class="navbar navbar-default" role="navigation" id="nav-wrapper">
+  <div class="container-fluid" id="nav">
+    <!--
+    <img class="img-circle" width="40px" height="40px" id="circlelogo" 
src="/assets/images/kylin_logo.jpg">
+    -->
+    <!-- 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="/">Home</a></li>
+          <li><a href="/docs21" >Docs</a></li>
+          <li><a href="/download">Download</li>
+          <li><a href="/community" >Community</a></li>
+          <li><a href="/development" >Development</a></li>
+          <li><a href="/blog">Blog</li>
+          <li><a href="/cn" >中文版</a></li>  
+          <li><a href="https://twitter.com/apachekylin"; target="_blank" 
class="fa fa-twitter fa-lg" title="Twitter: @ApacheKylin" ></a></li>
+          <li><a href="https://github.com/apache/kylin"; target="_blank" 
class="fa fa-github-alt fa-lg" title="Github: apache/kylin" ></a></li>          
+          <li><a href="https://www.facebook.com/kylinio"; target="_blank" 
class="fa fa-facebook fa-lg" title="Facebook: kylin.io" ></a></li>   
+      </ul>      
+    </div><!-- /.navbar-collapse -->
+  </div><!-- /.container-fluid -->
+</nav>
+ </header>
+
+               
+               <div class="container">
+                       <div class="row">
+                               <!--
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+-->
+
+<div class="col-md-3 col-lg-3 col-xs-4 aside1 visible-md visible-lg" 
id="nside1" style=" padding-top: 2em">
+    <ul class="nav nav-pills nav-stacked">
+    
+    <li><a href="#titleGetting Started" data-toggle="collapse" 
id="navtitle">Getting Started</a></li>
+    <div class="collapse in">
+       <div class="list-group" id="list1">
+    <ul style="list-style-type:disc">
+    
+
+
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/index.html" class="list-group-item-lay pjaxlink" 
id="navlist">Overview</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/release_notes.html" class="list-group-item-lay 
pjaxlink" id="navlist">Release Notes</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+      <li><a href="/docs23/gettingstarted/concepts.html" 
class="list-group-item-lay pjaxlink" id="navlist">Technical Concepts</a></li>   
   
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/gettingstarted/terminology.html" 
class="list-group-item-lay pjaxlink" id="navlist">Terminology</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/gettingstarted/faq.html" class="list-group-item-lay 
pjaxlink" id="navlist">FAQ</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/gettingstarted/events.html" 
class="list-group-item-lay pjaxlink" id="navlist">Events and 
Conferences</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+      <li><a href="/docs23/gettingstarted/best_practices.html" 
class="list-group-item-lay pjaxlink" id="navlist">Community Best 
Practices</a></li>      
+      
+
+
+
+
+
+
+
+        <ul>
+  </div>
+</div>
+    
+    <li><a href="#titleInstallation" data-toggle="collapse" 
id="navtitle">Installation</a></li>
+    <div class="collapse in">
+       <div class="list-group" id="list1">
+    <ul style="list-style-type:disc">
+    
+
+
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/install/index.html" class="list-group-item-lay 
pjaxlink" id="navlist">Installation Guide</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/install/hadoop_env.html" class="list-group-item-lay 
pjaxlink" id="navlist">Hadoop Environment</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/install/kylin_cluster.html" 
class="list-group-item-lay pjaxlink" id="navlist">Deploy in Cluster 
Mode</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/install/advance_settings.html" 
class="list-group-item-lay pjaxlink" id="navlist">Advanced Settings</a></li>    
  
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/install/kylin_docker.html" 
class="list-group-item-lay pjaxlink" id="navlist">Run Kylin with 
Docker</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/install/kylin_aws_emr.html" 
class="list-group-item-lay pjaxlink" id="navlist">Install Kylin on AWS 
EMR</a></li>      
+      
+
+
+
+
+
+
+
+        <ul>
+  </div>
+</div>
+    
+    <li><a href="#titleTutorial" data-toggle="collapse" 
id="navtitle">Tutorial</a></li>
+    <div class="collapse in">
+       <div class="list-group" id="list1">
+    <ul style="list-style-type:disc">
+    
+
+
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/tutorial/kylin_sample.html" 
class="list-group-item-lay pjaxlink" id="navlist">Quick Start with Sample 
Cube</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/tutorial/web.html" class="list-group-item-lay 
pjaxlink" id="navlist">Web Interface</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/tutorial/create_cube.html" 
class="list-group-item-lay pjaxlink" id="navlist">Cube Wizard</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/tutorial/cube_build_job.html" 
class="list-group-item-lay pjaxlink" id="navlist">Cube Build and Job 
Monitoring</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/tutorial/acl.html" class="list-group-item-lay 
pjaxlink" id="navlist">Cube Permission (v2.1.x)</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/tutorial/project_level_acl.html" 
class="list-group-item-lay pjaxlink" id="navlist">Project Level ACL</a></li>    
  
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/tutorial/cube_spark.html" 
class="list-group-item-lay pjaxlink" id="navlist">Build Cube with 
Spark</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/tutorial/cube_build_performance.html" 
class="list-group-item-lay pjaxlink" id="navlist">Cube Build Tuning</a></li>    
  
+      
+
+
+
+
+
+
+
+        <ul>
+  </div>
+</div>
+    
+    <li><a href="#titleIntegration" data-toggle="collapse" 
id="navtitle">Integration</a></li>
+    <div class="collapse in">
+       <div class="list-group" id="list1">
+    <ul style="list-style-type:disc">
+    
+
+
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/tutorial/odbc.html" class="list-group-item-lay 
pjaxlink" id="navlist">Kylin ODBC Driver</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/tutorial/tableau.html" class="list-group-item-lay 
pjaxlink" id="navlist">Tableau 8</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/tutorial/tableau_91.html" 
class="list-group-item-lay pjaxlink" id="navlist">Tableau 9</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/tutorial/powerbi.html" class="list-group-item-lay 
pjaxlink" id="navlist">MS Excel and Power BI</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/tutorial/microstrategy.html" 
class="list-group-item-lay pjaxlink" id="navlist">MicroStrategy</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/tutorial/squirrel.html" class="list-group-item-lay 
pjaxlink" id="navlist">SQuirreL</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/tutorial/flink.html" class="list-group-item-lay 
pjaxlink" id="navlist">Apache Flink</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/tutorial/hue.html" class="list-group-item-lay 
pjaxlink" id="navlist">Apache Hue</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/tutorial/Qlik.html" class="list-group-item-lay 
pjaxlink" id="navlist">Qlik Sense</a></li>      
+      
+
+
+
+
+
+
+
+        <ul>
+  </div>
+</div>
+    
+    <li><a href="#titleHow To" data-toggle="collapse" id="navtitle">How 
To</a></li>
+    <div class="collapse in">
+       <div class="list-group" id="list1">
+    <ul style="list-style-type:disc">
+    
+
+
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/howto/howto_use_restapi.html" 
class="list-group-item-lay pjaxlink" id="navlist">Use RESTful API</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/howto/howto_build_cube_with_restapi.html" 
class="list-group-item-lay pjaxlink" id="navlist">Build Cube with API</a></li>  
    
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/howto/howto_optimize_cubes.html" 
class="list-group-item-lay pjaxlink" id="navlist">Optimize Cube Design</a></li> 
     
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/howto/howto_optimize_build.html" 
class="list-group-item-lay pjaxlink" id="navlist">Optimize Cube Build</a></li>  
    
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/howto/howto_backup_metadata.html" 
class="list-group-item-lay pjaxlink" id="navlist">Backup Metadata</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/howto/howto_cleanup_storage.html" 
class="list-group-item-lay pjaxlink" id="navlist">Cleanup Storage</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/howto/howto_jdbc.html" class="list-group-item-lay 
pjaxlink" id="navlist">Kylin JDBC Driver</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/howto/howto_upgrade.html" 
class="list-group-item-lay pjaxlink" id="navlist">Upgrade From Old 
Versions</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/howto/howto_ldap_and_sso.html" 
class="list-group-item-lay pjaxlink" id="navlist">Secure with LDAP and 
SSO</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/howto/howto_use_beeline.html" 
class="list-group-item-lay pjaxlink" id="navlist">Use Beeline for Hive</a></li> 
     
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/howto/howto_update_coprocessor.html" 
class="list-group-item-lay pjaxlink" id="navlist">Update Coprocessor</a></li>   
   
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/howto/howto_install_ranger_kylin_plugin.html" 
class="list-group-item-lay pjaxlink" id="navlist">The Ranger Kylin Plugin 
Installation Guide</a></li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/howto/howto_enable_zookeeper_acl.html" 
class="list-group-item-lay pjaxlink" id="navlist">Enable zookeeper acl</a></li> 
     
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/howto/howto_setup_systemcube.html" 
class="list-group-item-lay pjaxlink" id="navlist">Set Up System Cube</a></li>   
   
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/howto/howto_use_cube_planner.html" 
class="list-group-item-lay pjaxlink" id="navlist">Use Cube Planner</a></li>     
 
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li><a href="/docs23/howto/howto_use_dashboard.html" 
class="list-group-item-lay pjaxlink" id="navlist">Use Dashboard</a></li>      
+      
+
+
+
+
+
+
+
+        <ul>
+  </div>
+</div>
+    
+
+    </ul>
+</div>
+
+                               <div class="col-md-9 col-lg-9 col-xs-14 aside2">
+                                       <div id="container">
+                                               <div id="pjax">
+                                                       <h1 
class="post-title">Scalable Cubing from Kafka</h1>
+                                                       
+                                                       
+                                                       <article 
class="post-content" > 
+                                                       <p>Kylin v1.6 releases 
the scalable streaming cubing function, it leverages Hadoop to consume the data 
from Kafka to build the cube, you can check <a 
href="/blog/2016/10/18/new-nrt-streaming/">this blog</a> for the high level 
design. This doc is a step by step tutorial, illustrating how to create and 
build a sample cube;</p>
+
+<h2 id="preparation">Preparation</h2>
+<p>To finish this tutorial, you need a Hadoop environment which has kylin 
v1.6.0 or above installed, and also have a Kafka (v0.10.0 or above) running; 
Previous Kylin version has a couple issues so please upgrade your Kylin 
instance at first.</p>
+
+<p>In this tutorial, we will use Hortonworks HDP 2.2.4 Sandbox VM + Kafka 
v0.10.0(Scala 2.10) as the environment.</p>
+
+<h2 id="install-kafka-01000-and-kylin">Install Kafka 0.10.0.0 and Kylin</h2>
+<p>Don’t use HDP 2.2.4’s build-in Kafka as it is too old, stop it first if 
it is running.</p>
+
+<div class="highlight"><pre><code class="language-groff" 
data-lang="groff">curl -s 
http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/0.10.0.0/kafka_2.10-0.10.0.0.tgz
 | tar -xz -C /usr/local/
+
+cd /usr/local/kafka_2.10-0.10.0.0/
+
+bin/kafka-server-start.sh config/server.properties &amp;</code></pre></div>
+
+<p>Download the Kylin v1.6 from download page, expand the tar ball in 
/usr/local/ folder.</p>
+
+<h2 id="create-sample-kafka-topic-and-populate-data">Create sample Kafka topic 
and populate data</h2>
+
+<p>Create a sample topic “kylindemo”, with 3 partitions:</p>
+
+<div class="highlight"><pre><code class="language-groff" 
data-lang="groff">bin/kafka-topics.sh --create --zookeeper localhost:2181 
--replication-factor 1 --partitions 3 --topic kylindemo
+Created topic "kylindemo".</code></pre></div>
+
+<p>Put sample data to this topic; Kylin has an utility class which can do 
this;</p>
+
+<div class="highlight"><pre><code class="language-groff" 
data-lang="groff">export KAFKA_HOME=/usr/local/kafka_2.10-0.10.0.0
+export KYLIN_HOME=/usr/local/apache-kylin-1.6.0-bin
+
+cd $KYLIN_HOME
+./bin/kylin.sh org.apache.kylin.source.kafka.util.KafkaSampleProducer --topic 
kylindemo --broker localhost:9092</code></pre></div>
+
+<p>This tool will send 100 records to Kafka every second. Please keep it 
running during this tutorial. You can check the sample message with 
kafka-console-consumer.sh now:</p>
+
+<div class="highlight"><pre><code class="language-groff" data-lang="groff">cd 
$KAFKA_HOME
+bin/kafka-console-consumer.sh --zookeeper localhost:2181 --bootstrap-server 
localhost:9092 --topic kylindemo --from-beginning
+{"amount":63.50375137330458,"category":"TOY","order_time":1477415932581,"device":"Other","qty":4,"user":{"id":"bf249f36-f593-4307-b156-240b3094a1c3","age":21,"gender":"Male"},"currency":"USD","country":"CHINA"}
+{"amount":22.806058795736583,"category":"ELECTRONIC","order_time":1477415932591,"device":"Andriod","qty":1,"user":{"id":"00283efe-027e-4ec1-bbed-c2bbda873f1d","age":27,"gender":"Female"},"currency":"USD","country":"INDIA"}</code></pre></div>
+
+<h2 id="define-a-table-from-streaming">Define a table from streaming</h2>
+<p>Start Kylin server with “$KYLIN_HOME/bin/kylin.sh start”, login Kylin 
Web GUI at http://sandbox:7070/kylin/, select an existing project or create a 
new project; Click “Model” -&gt; “Data Source”, then click the icon 
“Add Streaming Table”;</p>
+
+<p><img 
src="/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/1_Add_streaming_table.png"
 alt="" /></p>
+
+<p>In the pop-up dialogue, enter a sample record which you got from the 
kafka-console-consumer, click the “»” button, Kylin parses the JSON 
message and listS all the properties;</p>
+
+<p>You need give a logic table name for this streaming data source; The name 
will be used for SQL query later; here enter “STREAMING_SALES_TABLE” as an 
example in the “Table Name” field.</p>
+
+<p>You need select a timestamp field which will be used to identify the time 
of a message; Kylin can derive other time values like “year_start”, 
“quarter_start” from this time column, which can give your more flexibility 
on building and querying the cube. Here check “order_time”. You can 
deselect those properties which are not needed for cube. Here let’s keep all 
fields.</p>
+
+<p>Notice that Kylin supports structured (or say “embedded”) message from 
v1.6, it will convert them into a flat table structure. By default use “_” 
as the separator of the structed properties.</p>
+
+<p><img 
src="/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/2_Define_streaming_table.png"
 alt="" /></p>
+
+<p>Click “Next”. On this page, provide the Kafka cluster information; 
Enter “kylindemo” as “Topic” name; The cluster has 1 broker, whose host 
name is “sandbox”, port is “9092”, click “Save”.</p>
+
+<p><img 
src="/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/3_Kafka_setting.png" 
alt="" /></p>
+
+<p>In “Advanced setting” section, the “timeout” and “buffer size” 
are the configurations for connecting with Kafka, keep them.</p>
+
+<p>In “Parser Setting”, by default Kylin assumes your message is JSON 
format, and each record’s timestamp column (specified by “tsColName”) is 
a bigint (epoch time) value; in this case, you just need set the “tsColumn” 
to “order_time”;</p>
+
+<p><img 
src="/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/3_Paser_setting.png" 
alt="" /></p>
+
+<p>In real case if the timestamp value is a string valued timestamp like 
“Jul 20, 2016 9:59:17 AM”, you need specify the parser class with 
“tsParser” and the time pattern with “tsPattern” like this:</p>
+
+<p><img 
src="/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/3_Paser_time.png" 
alt="" /></p>
+
+<p>Click “Submit” to save the configurations. Now a “Streaming” table 
is created.</p>
+
+<p><img 
src="/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/4_Streaming_table.png" 
alt="" /></p>
+
+<h2 id="define-data-model">Define data model</h2>
+<p>With the table defined in previous step, now we can create the data model. 
The step is almost the same as you create a normal data model, but it has two 
requirement:</p>
+
+<ul>
+  <li>Streaming Cube doesn’t support join with lookup tables; When define 
the data model, only select fact table, no lookup table;</li>
+  <li>Streaming Cube must be partitioned; If you’re going to build the Cube 
incrementally at minutes level, select “MINUTE_START” as the cube’s 
partition date column. If at hours level, select “HOUR_START”.</li>
+</ul>
+
+<p>Here we pick 13 dimension and 2 measure columns:</p>
+
+<p><img 
src="/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/5_Data_model_dimension.png"
 alt="" /></p>
+
+<p><img 
src="/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/6_Data_model_measure.png"
 alt="" /><br />
+Save the data model.</p>
+
+<h2 id="create-cube">Create Cube</h2>
+
+<p>The streaming Cube is almost the same as a normal cube. a couple of points 
need get your attention:</p>
+
+<ul>
+  <li>The partition time column should be a dimension of the Cube. In 
Streaming OLAP the time is always a query condition, and Kylin will leverage 
this to narrow down the scanned partitions.</li>
+  <li>Don’t use “order_time” as dimension as that is pretty 
fine-grained; suggest to use “mintue_start”, “hour_start” or other, 
depends on how you will inspect the data.</li>
+  <li>Define “year_start”, “quarter_start”, “month_start”, 
“day_start”, “hour_start”, “minute_start” as a hierarchy to reduce 
the combinations to calculate.</li>
+  <li>In the “refersh setting” step, create more merge ranges, like 0.5 
hour, 4 hours, 1 day, and then 7 days; This will help to control the cube 
segment number.</li>
+  <li>
+    <p>In the “rowkeys” section, drag&amp;drop the “minute_start” to 
the head position, as for streaming queries, the time condition is always 
appeared; putting it to head will help to narrow down the scan range.</p>
+
+    <p><img 
src="/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/8_Cube_dimension.png" 
alt="" /></p>
+
+    <p><img 
src="/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/9_Cube_measure.png" 
alt="" /></p>
+
+    <p><img 
src="/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/10_agg_group.png" 
alt="" /></p>
+
+    <p><img 
src="/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/11_Rowkey.png" alt="" 
/></p>
+  </li>
+</ul>
+
+<p>Save the cube.</p>
+
+<h2 id="run-a-build">Run a build</h2>
+
+<p>You can trigger the build from web GUI, by clicking “Actions” -&gt; 
“Build”, or sending a request to Kylin RESTful API with ‘curl’ 
command:</p>
+
+<div class="highlight"><pre><code class="language-groff" 
data-lang="groff">curl -X PUT --user ADMIN:KYLIN -H "Content-Type: 
application/json;charset=utf-8" -d '{ "sourceOffsetStart": 0, 
"sourceOffsetEnd": 9223372036854775807, "buildType": "BUILD"}' 
http://localhost:7070/kylin/api/cubes/{your_cube_name}/build2</code></pre></div>
+
+<p>Please note the API endpoint is different from a normal cube (this URL end 
with “build2”).</p>
+
+<p>Here 0 means from the last position, and 9223372036854775807 
(Long.MAX_VALUE) means to the end position on Kafka topic. If it is the first 
time to build (no previous segment), Kylin will seek to beginning of the topics 
as the start position.</p>
+
+<p>In the “Monitor” page, a new job is generated; Wait it 100% 
finished.</p>
+
+<h2 id="click-the-insight-tab-compose-a-sql-to-run-eg">Click the “Insight” 
tab, compose a SQL to run, e.g:</h2>
+
+<div class="highlight"><pre><code class="language-groff" 
data-lang="groff">select minute_start, count(*), sum(amount), sum(qty) from 
streaming_sales_table group by minute_start order by 
minute_start</code></pre></div>
+
+<p>The result looks like below.<br />
+<img 
src="/images/tutorial/1.6/Kylin-Cube-Streaming-Tutorial/13_Query_result.png" 
alt="" /></p>
+
+<h2 id="automate-the-build">Automate the build</h2>
+
+<p>Once the first build and query got successfully, you can schedule 
incremental builds at a certain frequency. Kylin will record the offsets of 
each build; when receive a build request, it will start from the last end 
position, and then seek the latest offsets from Kafka. With the REST API you 
can trigger it with any scheduler tools like Linux cron:</p>
+
+<div class="highlight"><pre><code class="language-groff" 
data-lang="groff">crontab -e
+*/5 * * * * curl -X PUT --user ADMIN:KYLIN -H "Content-Type: 
application/json;charset=utf-8" -d '{ "sourceOffsetStart": 0, 
"sourceOffsetEnd": 9223372036854775807, "buildType": "BUILD"}' 
http://localhost:7070/kylin/api/cubes/{your_cube_name}/build2</code></pre></div>
+
+<p>Now you can site down and watch the cube be automatically built from 
streaming. And when the cube segments accumulate to bigger time range, Kylin 
will automatically merge them into a bigger segment.</p>
+
+<h2 id="trouble-shootings">Trouble shootings</h2>
+
+<ul>
+  <li>You may encounter the following error when run “kylin.sh”:</li>
+</ul>
+
+<div class="highlight"><pre><code class="language-groff" 
data-lang="groff">Exception in thread "main" java.lang.NoClassDefFoundError: 
org/apache/kafka/clients/producer/Producer
+       at java.lang.Class.getDeclaredMethods0(Native Method)
+       at java.lang.Class.privateGetDeclaredMethods(Class.java:2615)
+       at java.lang.Class.getMethod0(Class.java:2856)
+       at java.lang.Class.getMethod(Class.java:1668)
+       at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
+       at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
+Caused by: java.lang.ClassNotFoundException: 
org.apache.kafka.clients.producer.Producer
+       at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
+       at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
+       at java.security.AccessController.doPrivileged(Native Method)
+       at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
+       at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
+       at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
+       at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
+       ... 6 more</code></pre></div>
+
+<p>The reason is Kylin wasn’t able to find the proper Kafka client jars; 
Make sure you have properly set “KAFKA_HOME” environment variable.</p>
+
+<ul>
+  <li>Get “killed by admin” error in the “Build Cube” step</li>
+</ul>
+
+<p>Within a Sandbox VM, YARN may not allocate the requested memory resource to 
MR job as the “inmem” cubing algorithm requests more memory. You can bypass 
this by requesting less memory: edit “conf/kylin_job_conf_inmem.xml”, 
change the following two parameters like this:</p>
+
+<div class="highlight"><pre><code class="language-groff" 
data-lang="groff">&lt;property&gt;
+        &lt;name&gt;mapreduce.map.memory.mb&lt;/name&gt;
+        &lt;value&gt;1072&lt;/value&gt;
+        &lt;description&gt;&lt;/description&gt;
+    &lt;/property&gt;
+
+    &lt;property&gt;
+        &lt;name&gt;mapreduce.map.java.opts&lt;/name&gt;
+        &lt;value&gt;-Xmx800m&lt;/value&gt;
+        &lt;description&gt;&lt;/description&gt;
+    &lt;/property&gt;</code></pre></div>
+
+<ul>
+  <li>If there already be bunch of history messages in Kafka and you don’t 
want to build from the very beginning, you can trigger a call to set the 
current end position as the start for the cube:</li>
+</ul>
+
+<div class="highlight"><pre><code class="language-groff" 
data-lang="groff">curl -X PUT --user ADMIN:KYLIN -H "Content-Type: 
application/json;charset=utf-8" -d '{ "sourceOffsetStart": 0, 
"sourceOffsetEnd": 9223372036854775807, "buildType": "BUILD"}' 
http://localhost:7070/kylin/api/cubes/{your_cube_name}/init_start_offsets</code></pre></div>
+
+<ul>
+  <li>If some build job got error and you discard it, there will be a hole (or 
say gap) left in the Cube. Since each time Kylin will build from last position, 
you couldn’t expect the hole be filled by normal builds. Kylin provides API 
to check and fill the holes</li>
+</ul>
+
+<p>Check holes:</p>
+
+<div class="highlight"><pre><code class="language-groff" 
data-lang="groff">curl -X GET --user ADMINN:KYLIN -H "Content-Type: 
application/json;charset=utf-8" 
http://localhost:7070/kylin/api/cubes/{your_cube_name}/holes</code></pre></div>
+
+<p>If the result is an empty arrary, means there is no hole; Otherwise, 
trigger Kylin to fill them:</p>
+
+<div class="highlight"><pre><code class="language-groff" 
data-lang="groff">curl -X PUT --user ADMINN:KYLIN -H "Content-Type: 
application/json;charset=utf-8" 
http://localhost:7070/kylin/api/cubes/{your_cube_name}/holes</code></pre></div>
+
+
+                                                       </article>
+                                               </div>
+                                       </div>
+                               </div>
+                       </div>
+               </div>          
+               <!--
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+-->
+
+<footer id="underfooter">
+    <div class="container">
+        <div class="row">
+            <div class="col-md-12 widget">
+                <div class="widget-body" style="text-align:center">
+                    <a href="http://www.apache.org";>
+                        <img id="asf-logo" alt="Apache Software Foundation" 
src="/assets/images/feather-small.gif">
+                    </a>
+
+                    <div>
+                        The contents of this website are © 2015 Apache 
Software Foundation under the terms of the <a
+                            href="http://www.apache.org/licenses/LICENSE-2.0";> 
Apache License v2 </a>. Apache Kylin and
+                        its logo are trademarks of the Apache Software 
Foundation.
+                    </div>
+
+                </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>


Reply via email to