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 2018/07/02 06:08:51 UTC

svn commit: r1834820 [7/48] - in /kylin/site: ./ about/ blog/ blog/2015/01/25/introduce-data-model/ blog/2015/06/10/release-v0.7.1-incubating/ blog/2015/08/13/kylin-dictionary/ blog/2015/08/15/fast-cubing/ blog/2015/09/06/release-v1.0-incubating/ blog/...

Added: kylin/site/cn/docs23/howto/howto_use_restapi.html
URL: http://svn.apache.org/viewvc/kylin/site/cn/docs23/howto/howto_use_restapi.html?rev=1834820&view=auto
==============================================================================
--- kylin/site/cn/docs23/howto/howto_use_restapi.html (added)
+++ kylin/site/cn/docs23/howto/howto_use_restapi.html Mon Jul  2 06:08:48 2018
@@ -0,0 +1,5729 @@
+<!--
+* 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 | Use RESTful API</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="canonical" href="http://kylin.apache.org/cn/docs23/howto/howto_use_restapi.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]-->
+<!-- Global site tag (gtag.js) - Google Analytics -->
+<script async src="https://www.googletagmanager.com/gtag/js?id=UA-120788561-1"></script>
+<script>
+  window.dataLayer = window.dataLayer || [];
+  function gtag(){dataLayer.push(arguments);}
+  gtag('js', new Date());
+
+  gtag('config', 'UA-120788561-1');
+</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>
+<script>
+var _hmt = _hmt || [];
+(function() {
+  var hm = document.createElement("script");
+  hm.src = "https://hm.baidu.com/hm.js?bdc5e03add430c0b72cc0eb91eabfa99";
+  var s = document.getElementsByTagName("script")[0]; 
+  s.parentNode.insertBefore(hm, s);
+})();
+</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" >
+  <!-- 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">
+        <img class="navbar-logo" width="46" src="/assets/images/kylin_logo.png "></img> 
+        
+        <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>
+        <ul class="nav icon-navbar">
+            <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>
+
+      <!-- Collect the nav links, forms, and other content for toggling -->
+      <div class="navbar-collapse" id="bs-example-navbar-collapse-1">
+        <ul class="nav navbar-nav">
+            <li><a href="/cn">首页</a></li>
+            <li><a href="/cn/docs" >文档</a></li>
+            <li><a href="/cn/download">下载</a></li>
+            <li><a href="/community" >社区</a></li>
+            <li><a href="/development" >开发</a></li>
+            <li><a href="/blog">博客</a></li>
+            <li><a href="/" >English</a></li>           
+        </ul>
+        
+
+      </div><!-- /.navbar-collapse -->
+    </div><!-- /.container-fluid -->
+  </nav>
+
+  <div id="head" class="parallax normal-header" >
+    <div class="text-center header-apache">
+      <a href="http://apache.org/foundation/contributing.html" title="Support Apache" style="margin-left: 150px;">
+        <div>
+          <img src="https://www.apache.org/images/SupportApache-small.png">
+        </div>
+      </a>
+    </div>  
+  </div>
+
+ </header>
+
+		
+		<div class="container">
+			<div class="row" style="clear:both;">
+				<div class="col-md-8 col-lg-8 col-xs-12 col-sm-12 aside2" style="float:right;">
+					<div id="container" class="docs">
+						<div id="pjax">
+							<h1 class="post-title">Use RESTful API</h1>
+							<article class="post-content" >
+							<p>This page lists the major RESTful APIs provided by Kylin.</p>
+
+<ul>
+  <li>Query
+    <ul>
+      <li><a href="#authentication">Authentication</a></li>
+      <li><a href="#query">Query</a></li>
+      <li><a href="#list-queryable-tables">List queryable tables</a></li>
+    </ul>
+  </li>
+  <li>CUBE
+    <ul>
+      <li><a href="#list-cubes">List cubes</a></li>
+      <li><a href="#get-cube">Get cube</a></li>
+      <li><a href="#get-cube-descriptor">Get cube descriptor (dimension, measure info, etc)</a></li>
+      <li><a href="#get-data-model">Get data model (fact and lookup table info)</a></li>
+      <li><a href="#build-cube">Build cube</a></li>
+      <li><a href="#enable-cube">Enable cube</a></li>
+      <li><a href="#disable-cube">Disable cube</a></li>
+      <li><a href="#purge-cube">Purge cube</a></li>
+      <li><a href="#delete-segment">Delete segment</a></li>
+    </ul>
+  </li>
+  <li>JOB
+    <ul>
+      <li><a href="#resume-job">Resume job</a></li>
+      <li><a href="#pause-job">Pause job</a></li>
+      <li><a href="#discard-job">Discard job</a></li>
+      <li><a href="#get-job-status">Get job status</a></li>
+      <li><a href="#get-job-step-output">Get job step output</a></li>
+      <li><a href="#get-job-list">Get job list</a></li>
+    </ul>
+  </li>
+  <li>Metadata
+    <ul>
+      <li><a href="#get-hive-table">Get Hive Table</a></li>
+      <li><a href="#get-hive-tables">Get Hive Tables</a></li>
+      <li><a href="#load-hive-tables">Load Hive Tables</a></li>
+    </ul>
+  </li>
+  <li>Cache
+    <ul>
+      <li><a href="#wipe-cache">Wipe cache</a></li>
+    </ul>
+  </li>
+  <li>Streaming
+    <ul>
+      <li><a href="#initiate-cube-start-position">Initiate cube start position</a></li>
+      <li><a href="#build-stream-cube">Build stream cube</a></li>
+      <li><a href="#check-segment-holes">Check segment holes</a></li>
+      <li><a href="#fill-segment-holes">Fill segment holes</a></li>
+    </ul>
+  </li>
+</ul>
+
+<h2 id="authentication">Authentication</h2>
+<p><code class="highlighter-rouge">POST /kylin/api/user/authentication</code></p>
+
+<h4 id="request-header">Request Header</h4>
+<p>Authorization data encoded by basic auth is needed in the header, such as:<br />
+Authorization:Basic {data}</p>
+
+<h4 id="response-body">Response Body</h4>
+<ul>
+  <li>userDetails - Defined authorities and status of current user.</li>
+</ul>
+
+<h4 id="response-sample">Response Sample</h4>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="o">{</span>  
+   <span class="s2">"userDetails"</span>:<span class="o">{</span>  
+      <span class="s2">"password"</span>:null,
+      <span class="s2">"username"</span>:<span class="s2">"sample"</span>,
+      <span class="s2">"authorities"</span>:[  
+         <span class="o">{</span>  
+            <span class="s2">"authority"</span>:<span class="s2">"ROLE_ANALYST"</span>
+         <span class="o">}</span>,
+         <span class="o">{</span>  
+            <span class="s2">"authority"</span>:<span class="s2">"ROLE_MODELER"</span>
+         <span class="o">}</span>
+      <span class="o">]</span>,
+      <span class="s2">"accountNonExpired"</span>:true,
+      <span class="s2">"accountNonLocked"</span>:true,
+      <span class="s2">"credentialsNonExpired"</span>:true,
+      <span class="s2">"enabled"</span>:true
+   <span class="o">}</span>
+<span class="o">}</span>
+</code></pre>
+</div>
+
+<h4 id="curl-example">Curl Example</h4>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>curl -c /path/to/cookiefile.txt -X POST -H "Authorization: Basic XXXXXXXXX" -H 'Content-Type: application/json' http://&lt;host&gt;:&lt;port&gt;/kylin/api/user/authentication
+</code></pre>
+</div>
+
+<p>If login successfully, the JSESSIONID will be saved into the cookie file; In the subsequent http requests, attach the cookie, for example:</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>curl -b /path/to/cookiefile.txt -X PUT -H 'Content-Type: application/json' -d '{"startTime":'1423526400000', "endTime":'1423526400', "buildType":"BUILD"}' http://&lt;host&gt;:&lt;port&gt;/kylin/api/cubes/your_cube/build
+</code></pre>
+</div>
+
+<p>Alternatively, you can provide the username/password with option “user” in each curl call; please note this has the risk of password leak in shell history:</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>curl -X PUT --user ADMIN:KYLIN -H "Content-Type: application/json;charset=utf-8" -d '{ "startTime": 820454400000, "endTime": 821318400000, "buildType": "BUILD"}' http://localhost:7070/kylin/api/cubes/kylin_sales/build
+</code></pre>
+</div>
+
+<hr />
+
+<h2 id="query">Query</h2>
+<p><code class="highlighter-rouge">POST /kylin/api/query</code></p>
+
+<h4 id="request-body">Request Body</h4>
+<ul>
+  <li>sql - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> The text of sql statement.</li>
+  <li>offset - <code class="highlighter-rouge">optional</code> <code class="highlighter-rouge">int</code> Query offset. If offset is set in sql, curIndex will be ignored.</li>
+  <li>limit - <code class="highlighter-rouge">optional</code> <code class="highlighter-rouge">int</code> Query limit. If limit is set in sql, perPage will be ignored.</li>
+  <li>acceptPartial - <code class="highlighter-rouge">optional</code> <code class="highlighter-rouge">bool</code> Whether accept a partial result or not, default be “false”. Set to “false” for production use.</li>
+  <li>project - <code class="highlighter-rouge">optional</code> <code class="highlighter-rouge">string</code> Project to perform query. Default value is ‘DEFAULT’.</li>
+</ul>
+
+<h4 id="request-sample">Request Sample</h4>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="o">{</span>  
+   <span class="s2">"sql"</span>:<span class="s2">"select * from TEST_KYLIN_FACT"</span>,
+   <span class="s2">"offset"</span>:0,
+   <span class="s2">"limit"</span>:50000,
+   <span class="s2">"acceptPartial"</span>:false,
+   <span class="s2">"project"</span>:<span class="s2">"DEFAULT"</span>
+<span class="o">}</span>
+</code></pre>
+</div>
+
+<h4 id="curl-example-1">Curl Example</h4>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>curl -X POST -H "Authorization: Basic XXXXXXXXX" -H "Content-Type: application/json" -d '{ "sql":"select count(*) from TEST_KYLIN_FACT", "project":"learn_kylin" }' http://localhost:7070/kylin/api/query
+</code></pre>
+</div>
+
+<h4 id="response-body-1">Response Body</h4>
+<ul>
+  <li>columnMetas - Column metadata information of result set.</li>
+  <li>results - Data set of result.</li>
+  <li>cube - Cube used for this query.</li>
+  <li>affectedRowCount - Count of affected row by this sql statement.</li>
+  <li>isException - Whether this response is an exception.</li>
+  <li>ExceptionMessage - Message content of the exception.</li>
+  <li>Duration - Time cost of this query</li>
+  <li>Partial - Whether the response is a partial result or not. Decided by <code class="highlighter-rouge">acceptPartial</code> of request.</li>
+</ul>
+
+<h4 id="response-sample-1">Response Sample</h4>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="o">{</span>  
+   <span class="s2">"columnMetas"</span>:[  
+      <span class="o">{</span>  
+         <span class="s2">"isNullable"</span>:1,
+         <span class="s2">"displaySize"</span>:0,
+         <span class="s2">"label"</span>:<span class="s2">"CAL_DT"</span>,
+         <span class="s2">"name"</span>:<span class="s2">"CAL_DT"</span>,
+         <span class="s2">"schemaName"</span>:null,
+         <span class="s2">"catelogName"</span>:null,
+         <span class="s2">"tableName"</span>:null,
+         <span class="s2">"precision"</span>:0,
+         <span class="s2">"scale"</span>:0,
+         <span class="s2">"columnType"</span>:91,
+         <span class="s2">"columnTypeName"</span>:<span class="s2">"DATE"</span>,
+         <span class="s2">"readOnly"</span>:true,
+         <span class="s2">"writable"</span>:false,
+         <span class="s2">"caseSensitive"</span>:true,
+         <span class="s2">"searchable"</span>:false,
+         <span class="s2">"currency"</span>:false,
+         <span class="s2">"signed"</span>:true,
+         <span class="s2">"autoIncrement"</span>:false,
+         <span class="s2">"definitelyWritable"</span>:false
+      <span class="o">}</span>,
+      <span class="o">{</span>  
+         <span class="s2">"isNullable"</span>:1,
+         <span class="s2">"displaySize"</span>:10,
+         <span class="s2">"label"</span>:<span class="s2">"LEAF_CATEG_ID"</span>,
+         <span class="s2">"name"</span>:<span class="s2">"LEAF_CATEG_ID"</span>,
+         <span class="s2">"schemaName"</span>:null,
+         <span class="s2">"catelogName"</span>:null,
+         <span class="s2">"tableName"</span>:null,
+         <span class="s2">"precision"</span>:10,
+         <span class="s2">"scale"</span>:0,
+         <span class="s2">"columnType"</span>:4,
+         <span class="s2">"columnTypeName"</span>:<span class="s2">"INTEGER"</span>,
+         <span class="s2">"readOnly"</span>:true,
+         <span class="s2">"writable"</span>:false,
+         <span class="s2">"caseSensitive"</span>:true,
+         <span class="s2">"searchable"</span>:false,
+         <span class="s2">"currency"</span>:false,
+         <span class="s2">"signed"</span>:true,
+         <span class="s2">"autoIncrement"</span>:false,
+         <span class="s2">"definitelyWritable"</span>:false
+      <span class="o">}</span>
+   <span class="o">]</span>,
+   <span class="s2">"results"</span>:[  
+      <span class="o">[</span>  
+         <span class="s2">"2013-08-07"</span>,
+         <span class="s2">"32996"</span>,
+         <span class="s2">"15"</span>,
+         <span class="s2">"15"</span>,
+         <span class="s2">"Auction"</span>,
+         <span class="s2">"10000000"</span>,
+         <span class="s2">"49.048952730908745"</span>,
+         <span class="s2">"49.048952730908745"</span>,
+         <span class="s2">"49.048952730908745"</span>,
+         <span class="s2">"1"</span>
+      <span class="o">]</span>,
+      <span class="o">[</span>  
+         <span class="s2">"2013-08-07"</span>,
+         <span class="s2">"43398"</span>,
+         <span class="s2">"0"</span>,
+         <span class="s2">"14"</span>,
+         <span class="s2">"ABIN"</span>,
+         <span class="s2">"10000633"</span>,
+         <span class="s2">"85.78317064220418"</span>,
+         <span class="s2">"85.78317064220418"</span>,
+         <span class="s2">"85.78317064220418"</span>,
+         <span class="s2">"1"</span>
+      <span class="o">]</span>
+   <span class="o">]</span>,
+   <span class="s2">"cube"</span>:<span class="s2">"test_kylin_cube_with_slr_desc"</span>,
+   <span class="s2">"affectedRowCount"</span>:0,
+   <span class="s2">"isException"</span>:false,
+   <span class="s2">"exceptionMessage"</span>:null,
+   <span class="s2">"duration"</span>:3451,
+   <span class="s2">"partial"</span>:false
+<span class="o">}</span>
+</code></pre>
+</div>
+
+<h2 id="list-queryable-tables">List queryable tables</h2>
+<p><code class="highlighter-rouge">GET /kylin/api/tables_and_columns</code></p>
+
+<h4 id="request-parameters">Request Parameters</h4>
+<ul>
+  <li>project - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> The project to load tables</li>
+</ul>
+
+<h4 id="response-sample-2">Response Sample</h4>
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="o">[</span>  
+   <span class="o">{</span>  
+      <span class="s2">"columns"</span>:[  
+         <span class="o">{</span>  
+            <span class="s2">"table_NAME"</span>:<span class="s2">"TEST_CAL_DT"</span>,
+            <span class="s2">"table_SCHEM"</span>:<span class="s2">"EDW"</span>,
+            <span class="s2">"column_NAME"</span>:<span class="s2">"CAL_DT"</span>,
+            <span class="s2">"data_TYPE"</span>:91,
+            <span class="s2">"nullable"</span>:1,
+            <span class="s2">"column_SIZE"</span>:-1,
+            <span class="s2">"buffer_LENGTH"</span>:-1,
+            <span class="s2">"decimal_DIGITS"</span>:0,
+            <span class="s2">"num_PREC_RADIX"</span>:10,
+            <span class="s2">"column_DEF"</span>:null,
+            <span class="s2">"sql_DATA_TYPE"</span>:-1,
+            <span class="s2">"sql_DATETIME_SUB"</span>:-1,
+            <span class="s2">"char_OCTET_LENGTH"</span>:-1,
+            <span class="s2">"ordinal_POSITION"</span>:1,
+            <span class="s2">"is_NULLABLE"</span>:<span class="s2">"YES"</span>,
+            <span class="s2">"scope_CATLOG"</span>:null,
+            <span class="s2">"scope_SCHEMA"</span>:null,
+            <span class="s2">"scope_TABLE"</span>:null,
+            <span class="s2">"source_DATA_TYPE"</span>:-1,
+            <span class="s2">"iS_AUTOINCREMENT"</span>:null,
+            <span class="s2">"table_CAT"</span>:<span class="s2">"defaultCatalog"</span>,
+            <span class="s2">"remarks"</span>:null,
+            <span class="s2">"type_NAME"</span>:<span class="s2">"DATE"</span>
+         <span class="o">}</span>,
+         <span class="o">{</span>  
+            <span class="s2">"table_NAME"</span>:<span class="s2">"TEST_CAL_DT"</span>,
+            <span class="s2">"table_SCHEM"</span>:<span class="s2">"EDW"</span>,
+            <span class="s2">"column_NAME"</span>:<span class="s2">"WEEK_BEG_DT"</span>,
+            <span class="s2">"data_TYPE"</span>:91,
+            <span class="s2">"nullable"</span>:1,
+            <span class="s2">"column_SIZE"</span>:-1,
+            <span class="s2">"buffer_LENGTH"</span>:-1,
+            <span class="s2">"decimal_DIGITS"</span>:0,
+            <span class="s2">"num_PREC_RADIX"</span>:10,
+            <span class="s2">"column_DEF"</span>:null,
+            <span class="s2">"sql_DATA_TYPE"</span>:-1,
+            <span class="s2">"sql_DATETIME_SUB"</span>:-1,
+            <span class="s2">"char_OCTET_LENGTH"</span>:-1,
+            <span class="s2">"ordinal_POSITION"</span>:2,
+            <span class="s2">"is_NULLABLE"</span>:<span class="s2">"YES"</span>,
+            <span class="s2">"scope_CATLOG"</span>:null,
+            <span class="s2">"scope_SCHEMA"</span>:null,
+            <span class="s2">"scope_TABLE"</span>:null,
+            <span class="s2">"source_DATA_TYPE"</span>:-1,
+            <span class="s2">"iS_AUTOINCREMENT"</span>:null,
+            <span class="s2">"table_CAT"</span>:<span class="s2">"defaultCatalog"</span>,
+            <span class="s2">"remarks"</span>:null,
+            <span class="s2">"type_NAME"</span>:<span class="s2">"DATE"</span>
+         <span class="o">}</span>
+      <span class="o">]</span>,
+      <span class="s2">"table_NAME"</span>:<span class="s2">"TEST_CAL_DT"</span>,
+      <span class="s2">"table_SCHEM"</span>:<span class="s2">"EDW"</span>,
+      <span class="s2">"ref_GENERATION"</span>:null,
+      <span class="s2">"self_REFERENCING_COL_NAME"</span>:null,
+      <span class="s2">"type_SCHEM"</span>:null,
+      <span class="s2">"table_TYPE"</span>:<span class="s2">"TABLE"</span>,
+      <span class="s2">"table_CAT"</span>:<span class="s2">"defaultCatalog"</span>,
+      <span class="s2">"remarks"</span>:null,
+      <span class="s2">"type_CAT"</span>:null,
+      <span class="s2">"type_NAME"</span>:null
+   <span class="o">}</span>
+<span class="o">]</span>
+</code></pre>
+</div>
+
+<hr />
+
+<h2 id="list-cubes">List cubes</h2>
+<p><code class="highlighter-rouge">GET /kylin/api/cubes</code></p>
+
+<h4 id="request-parameters-1">Request Parameters</h4>
+<ul>
+  <li>offset - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">int</code> Offset used by pagination</li>
+  <li>limit - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">int </code> Cubes per page.</li>
+  <li>cubeName - <code class="highlighter-rouge">optional</code> <code class="highlighter-rouge">string</code> Keyword for cube names. To find cubes whose name contains this keyword.</li>
+  <li>projectName - <code class="highlighter-rouge">optional</code> <code class="highlighter-rouge">string</code> Project name.</li>
+</ul>
+
+<h4 id="response-sample-3">Response Sample</h4>
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="o">[</span>  
+   <span class="o">{</span>  
+      <span class="s2">"uuid"</span>:<span class="s2">"1eaca32a-a33e-4b69-83dd-0bb8b1f8c53b"</span>,
+      <span class="s2">"last_modified"</span>:1407831634847,
+      <span class="s2">"name"</span>:<span class="s2">"test_kylin_cube_with_slr_empty"</span>,
+      <span class="s2">"owner"</span>:null,
+      <span class="s2">"version"</span>:null,
+      <span class="s2">"descriptor"</span>:<span class="s2">"test_kylin_cube_with_slr_desc"</span>,
+      <span class="s2">"cost"</span>:50,
+      <span class="s2">"status"</span>:<span class="s2">"DISABLED"</span>,
+      <span class="s2">"segments"</span>:[  
+      <span class="o">]</span>,
+      <span class="s2">"create_time"</span>:null,
+      <span class="s2">"source_records_count"</span>:0,
+      <span class="s2">"source_records_size"</span>:0,
+      <span class="s2">"size_kb"</span>:0
+   <span class="o">}</span>
+<span class="o">]</span>
+</code></pre>
+</div>
+
+<h2 id="get-cube">Get cube</h2>
+<p><code class="highlighter-rouge">GET /kylin/api/cubes/{cubeName}</code></p>
+
+<h4 id="path-variable">Path Variable</h4>
+<ul>
+  <li>cubeName - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> Cube name to find.</li>
+</ul>
+
+<h2 id="get-cube-descriptor">Get cube descriptor</h2>
+<p><code class="highlighter-rouge">GET /kylin/api/cube_desc/{cubeName}</code><br />
+Get descriptor for specified cube instance.</p>
+
+<h4 id="path-variable-1">Path Variable</h4>
+<ul>
+  <li>cubeName - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> Cube name.</li>
+</ul>
+
+<h4 id="response-sample-4">Response Sample</h4>
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="o">[</span>
+    <span class="o">{</span>
+        <span class="s2">"uuid"</span>: <span class="s2">"a24ca905-1fc6-4f67-985c-38fa5aeafd92"</span>, 
+        <span class="s2">"name"</span>: <span class="s2">"test_kylin_cube_with_slr_desc"</span>, 
+        <span class="s2">"description"</span>: null, 
+        <span class="s2">"dimensions"</span>: <span class="o">[</span>
+            <span class="o">{</span>
+                <span class="s2">"id"</span>: 0, 
+                <span class="s2">"name"</span>: <span class="s2">"CAL_DT"</span>, 
+                <span class="s2">"table"</span>: <span class="s2">"EDW.TEST_CAL_DT"</span>, 
+                <span class="s2">"column"</span>: null, 
+                <span class="s2">"derived"</span>: <span class="o">[</span>
+                    <span class="s2">"WEEK_BEG_DT"</span>
+                <span class="o">]</span>, 
+                <span class="s2">"hierarchy"</span>: <span class="nb">false</span>
+            <span class="o">}</span>, 
+            <span class="o">{</span>
+                <span class="s2">"id"</span>: 1, 
+                <span class="s2">"name"</span>: <span class="s2">"CATEGORY"</span>, 
+                <span class="s2">"table"</span>: <span class="s2">"DEFAULT.TEST_CATEGORY_GROUPINGS"</span>, 
+                <span class="s2">"column"</span>: null, 
+                <span class="s2">"derived"</span>: <span class="o">[</span>
+                    <span class="s2">"USER_DEFINED_FIELD1"</span>, 
+                    <span class="s2">"USER_DEFINED_FIELD3"</span>, 
+                    <span class="s2">"UPD_DATE"</span>, 
+                    <span class="s2">"UPD_USER"</span>
+                <span class="o">]</span>, 
+                <span class="s2">"hierarchy"</span>: <span class="nb">false</span>
+            <span class="o">}</span>, 
+            <span class="o">{</span>
+                <span class="s2">"id"</span>: 2, 
+                <span class="s2">"name"</span>: <span class="s2">"CATEGORY_HIERARCHY"</span>, 
+                <span class="s2">"table"</span>: <span class="s2">"DEFAULT.TEST_CATEGORY_GROUPINGS"</span>, 
+                <span class="s2">"column"</span>: <span class="o">[</span>
+                    <span class="s2">"META_CATEG_NAME"</span>, 
+                    <span class="s2">"CATEG_LVL2_NAME"</span>, 
+                    <span class="s2">"CATEG_LVL3_NAME"</span>
+                <span class="o">]</span>, 
+                <span class="s2">"derived"</span>: null, 
+                <span class="s2">"hierarchy"</span>: <span class="nb">true</span>
+            <span class="o">}</span>, 
+            <span class="o">{</span>
+                <span class="s2">"id"</span>: 3, 
+                <span class="s2">"name"</span>: <span class="s2">"LSTG_FORMAT_NAME"</span>, 
+                <span class="s2">"table"</span>: <span class="s2">"DEFAULT.TEST_KYLIN_FACT"</span>, 
+                <span class="s2">"column"</span>: <span class="o">[</span>
+                    <span class="s2">"LSTG_FORMAT_NAME"</span>
+                <span class="o">]</span>, 
+                <span class="s2">"derived"</span>: null, 
+                <span class="s2">"hierarchy"</span>: <span class="nb">false</span>
+            <span class="o">}</span>, 
+            <span class="o">{</span>
+                <span class="s2">"id"</span>: 4, 
+                <span class="s2">"name"</span>: <span class="s2">"SITE_ID"</span>, 
+                <span class="s2">"table"</span>: <span class="s2">"EDW.TEST_SITES"</span>, 
+                <span class="s2">"column"</span>: null, 
+                <span class="s2">"derived"</span>: <span class="o">[</span>
+                    <span class="s2">"SITE_NAME"</span>, 
+                    <span class="s2">"CRE_USER"</span>
+                <span class="o">]</span>, 
+                <span class="s2">"hierarchy"</span>: <span class="nb">false</span>
+            <span class="o">}</span>, 
+            <span class="o">{</span>
+                <span class="s2">"id"</span>: 5, 
+                <span class="s2">"name"</span>: <span class="s2">"SELLER_TYPE_CD"</span>, 
+                <span class="s2">"table"</span>: <span class="s2">"EDW.TEST_SELLER_TYPE_DIM"</span>, 
+                <span class="s2">"column"</span>: null, 
+                <span class="s2">"derived"</span>: <span class="o">[</span>
+                    <span class="s2">"SELLER_TYPE_DESC"</span>
+                <span class="o">]</span>, 
+                <span class="s2">"hierarchy"</span>: <span class="nb">false</span>
+            <span class="o">}</span>, 
+            <span class="o">{</span>
+                <span class="s2">"id"</span>: 6, 
+                <span class="s2">"name"</span>: <span class="s2">"SELLER_ID"</span>, 
+                <span class="s2">"table"</span>: <span class="s2">"DEFAULT.TEST_KYLIN_FACT"</span>, 
+                <span class="s2">"column"</span>: <span class="o">[</span>
+                    <span class="s2">"SELLER_ID"</span>
+                <span class="o">]</span>, 
+                <span class="s2">"derived"</span>: null, 
+                <span class="s2">"hierarchy"</span>: <span class="nb">false</span>
+            <span class="o">}</span>
+        <span class="o">]</span>, 
+        <span class="s2">"measures"</span>: <span class="o">[</span>
+            <span class="o">{</span>
+                <span class="s2">"id"</span>: 1, 
+                <span class="s2">"name"</span>: <span class="s2">"GMV_SUM"</span>, 
+                <span class="s2">"function"</span>: <span class="o">{</span>
+                    <span class="s2">"expression"</span>: <span class="s2">"SUM"</span>, 
+                    <span class="s2">"parameter"</span>: <span class="o">{</span>
+                        <span class="s2">"type"</span>: <span class="s2">"column"</span>, 
+                        <span class="s2">"value"</span>: <span class="s2">"PRICE"</span>, 
+                        <span class="s2">"next_parameter"</span>: null
+                    <span class="o">}</span>, 
+                    <span class="s2">"returntype"</span>: <span class="s2">"decimal(19,4)"</span>
+                <span class="o">}</span>, 
+                <span class="s2">"dependent_measure_ref"</span>: null
+            <span class="o">}</span>, 
+            <span class="o">{</span>
+                <span class="s2">"id"</span>: 2, 
+                <span class="s2">"name"</span>: <span class="s2">"GMV_MIN"</span>, 
+                <span class="s2">"function"</span>: <span class="o">{</span>
+                    <span class="s2">"expression"</span>: <span class="s2">"MIN"</span>, 
+                    <span class="s2">"parameter"</span>: <span class="o">{</span>
+                        <span class="s2">"type"</span>: <span class="s2">"column"</span>, 
+                        <span class="s2">"value"</span>: <span class="s2">"PRICE"</span>, 
+                        <span class="s2">"next_parameter"</span>: null
+                    <span class="o">}</span>, 
+                    <span class="s2">"returntype"</span>: <span class="s2">"decimal(19,4)"</span>
+                <span class="o">}</span>, 
+                <span class="s2">"dependent_measure_ref"</span>: null
+            <span class="o">}</span>, 
+            <span class="o">{</span>
+                <span class="s2">"id"</span>: 3, 
+                <span class="s2">"name"</span>: <span class="s2">"GMV_MAX"</span>, 
+                <span class="s2">"function"</span>: <span class="o">{</span>
+                    <span class="s2">"expression"</span>: <span class="s2">"MAX"</span>, 
+                    <span class="s2">"parameter"</span>: <span class="o">{</span>
+                        <span class="s2">"type"</span>: <span class="s2">"column"</span>, 
+                        <span class="s2">"value"</span>: <span class="s2">"PRICE"</span>, 
+                        <span class="s2">"next_parameter"</span>: null
+                    <span class="o">}</span>, 
+                    <span class="s2">"returntype"</span>: <span class="s2">"decimal(19,4)"</span>
+                <span class="o">}</span>, 
+                <span class="s2">"dependent_measure_ref"</span>: null
+            <span class="o">}</span>, 
+            <span class="o">{</span>
+                <span class="s2">"id"</span>: 4, 
+                <span class="s2">"name"</span>: <span class="s2">"TRANS_CNT"</span>, 
+                <span class="s2">"function"</span>: <span class="o">{</span>
+                    <span class="s2">"expression"</span>: <span class="s2">"COUNT"</span>, 
+                    <span class="s2">"parameter"</span>: <span class="o">{</span>
+                        <span class="s2">"type"</span>: <span class="s2">"constant"</span>, 
+                        <span class="s2">"value"</span>: <span class="s2">"1"</span>, 
+                        <span class="s2">"next_parameter"</span>: null
+                    <span class="o">}</span>, 
+                    <span class="s2">"returntype"</span>: <span class="s2">"bigint"</span>
+                <span class="o">}</span>, 
+                <span class="s2">"dependent_measure_ref"</span>: null
+            <span class="o">}</span>, 
+            <span class="o">{</span>
+                <span class="s2">"id"</span>: 5, 
+                <span class="s2">"name"</span>: <span class="s2">"ITEM_COUNT_SUM"</span>, 
+                <span class="s2">"function"</span>: <span class="o">{</span>
+                    <span class="s2">"expression"</span>: <span class="s2">"SUM"</span>, 
+                    <span class="s2">"parameter"</span>: <span class="o">{</span>
+                        <span class="s2">"type"</span>: <span class="s2">"column"</span>, 
+                        <span class="s2">"value"</span>: <span class="s2">"ITEM_COUNT"</span>, 
+                        <span class="s2">"next_parameter"</span>: null
+                    <span class="o">}</span>, 
+                    <span class="s2">"returntype"</span>: <span class="s2">"bigint"</span>
+                <span class="o">}</span>, 
+                <span class="s2">"dependent_measure_ref"</span>: null
+            <span class="o">}</span>
+        <span class="o">]</span>, 
+        <span class="s2">"rowkey"</span>: <span class="o">{</span>
+            <span class="s2">"rowkey_columns"</span>: <span class="o">[</span>
+                <span class="o">{</span>
+                    <span class="s2">"column"</span>: <span class="s2">"SELLER_ID"</span>, 
+                    <span class="s2">"length"</span>: 18, 
+                    <span class="s2">"dictionary"</span>: null, 
+                    <span class="s2">"mandatory"</span>: <span class="nb">true</span>
+                <span class="o">}</span>, 
+                <span class="o">{</span>
+                    <span class="s2">"column"</span>: <span class="s2">"CAL_DT"</span>, 
+                    <span class="s2">"length"</span>: 0, 
+                    <span class="s2">"dictionary"</span>: <span class="s2">"true"</span>, 
+                    <span class="s2">"mandatory"</span>: <span class="nb">false</span>
+                <span class="o">}</span>, 
+                <span class="o">{</span>
+                    <span class="s2">"column"</span>: <span class="s2">"LEAF_CATEG_ID"</span>, 
+                    <span class="s2">"length"</span>: 0, 
+                    <span class="s2">"dictionary"</span>: <span class="s2">"true"</span>, 
+                    <span class="s2">"mandatory"</span>: <span class="nb">false</span>
+                <span class="o">}</span>, 
+                <span class="o">{</span>
+                    <span class="s2">"column"</span>: <span class="s2">"META_CATEG_NAME"</span>, 
+                    <span class="s2">"length"</span>: 0, 
+                    <span class="s2">"dictionary"</span>: <span class="s2">"true"</span>, 
+                    <span class="s2">"mandatory"</span>: <span class="nb">false</span>
+                <span class="o">}</span>, 
+                <span class="o">{</span>
+                    <span class="s2">"column"</span>: <span class="s2">"CATEG_LVL2_NAME"</span>, 
+                    <span class="s2">"length"</span>: 0, 
+                    <span class="s2">"dictionary"</span>: <span class="s2">"true"</span>, 
+                    <span class="s2">"mandatory"</span>: <span class="nb">false</span>
+                <span class="o">}</span>, 
+                <span class="o">{</span>
+                    <span class="s2">"column"</span>: <span class="s2">"CATEG_LVL3_NAME"</span>, 
+                    <span class="s2">"length"</span>: 0, 
+                    <span class="s2">"dictionary"</span>: <span class="s2">"true"</span>, 
+                    <span class="s2">"mandatory"</span>: <span class="nb">false</span>
+                <span class="o">}</span>, 
+                <span class="o">{</span>
+                    <span class="s2">"column"</span>: <span class="s2">"LSTG_FORMAT_NAME"</span>, 
+                    <span class="s2">"length"</span>: 12, 
+                    <span class="s2">"dictionary"</span>: null, 
+                    <span class="s2">"mandatory"</span>: <span class="nb">false</span>
+                <span class="o">}</span>, 
+                <span class="o">{</span>
+                    <span class="s2">"column"</span>: <span class="s2">"LSTG_SITE_ID"</span>, 
+                    <span class="s2">"length"</span>: 0, 
+                    <span class="s2">"dictionary"</span>: <span class="s2">"true"</span>, 
+                    <span class="s2">"mandatory"</span>: <span class="nb">false</span>
+                <span class="o">}</span>, 
+                <span class="o">{</span>
+                    <span class="s2">"column"</span>: <span class="s2">"SLR_SEGMENT_CD"</span>, 
+                    <span class="s2">"length"</span>: 0, 
+                    <span class="s2">"dictionary"</span>: <span class="s2">"true"</span>, 
+                    <span class="s2">"mandatory"</span>: <span class="nb">false</span>
+                <span class="o">}</span>
+            <span class="o">]</span>, 
+            <span class="s2">"aggregation_groups"</span>: <span class="o">[</span>
+                <span class="o">[</span>
+                    <span class="s2">"LEAF_CATEG_ID"</span>, 
+                    <span class="s2">"META_CATEG_NAME"</span>, 
+                    <span class="s2">"CATEG_LVL2_NAME"</span>, 
+                    <span class="s2">"CATEG_LVL3_NAME"</span>, 
+                    <span class="s2">"CAL_DT"</span>
+                <span class="o">]</span>
+            <span class="o">]</span>
+        <span class="o">}</span>, 
+        <span class="s2">"signature"</span>: <span class="s2">"lsLAl2jL62ZApmOLZqWU3g=="</span>, 
+        <span class="s2">"last_modified"</span>: 1445850327000, 
+        <span class="s2">"model_name"</span>: <span class="s2">"test_kylin_with_slr_model_desc"</span>, 
+        <span class="s2">"null_string"</span>: null, 
+        <span class="s2">"hbase_mapping"</span>: <span class="o">{</span>
+            <span class="s2">"column_family"</span>: <span class="o">[</span>
+                <span class="o">{</span>
+                    <span class="s2">"name"</span>: <span class="s2">"F1"</span>, 
+                    <span class="s2">"columns"</span>: <span class="o">[</span>
+                        <span class="o">{</span>
+                            <span class="s2">"qualifier"</span>: <span class="s2">"M"</span>, 
+                            <span class="s2">"measure_refs"</span>: <span class="o">[</span>
+                                <span class="s2">"GMV_SUM"</span>, 
+                                <span class="s2">"GMV_MIN"</span>, 
+                                <span class="s2">"GMV_MAX"</span>, 
+                                <span class="s2">"TRANS_CNT"</span>, 
+                                <span class="s2">"ITEM_COUNT_SUM"</span>
+                            <span class="o">]</span>
+                        <span class="o">}</span>
+                    <span class="o">]</span>
+                <span class="o">}</span>
+            <span class="o">]</span>
+        <span class="o">}</span>, 
+        <span class="s2">"notify_list"</span>: null, 
+        <span class="s2">"auto_merge_time_ranges"</span>: null, 
+        <span class="s2">"retention_range"</span>: 0
+    <span class="o">}</span>
+<span class="o">]</span>
+</code></pre>
+</div>
+
+<h2 id="get-data-model">Get data model</h2>
+<p><code class="highlighter-rouge">GET /kylin/api/model/{modelName}</code></p>
+
+<h4 id="path-variable-2">Path Variable</h4>
+<ul>
+  <li>modelName - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> Data model name, by default it should be the same with cube name.</li>
+</ul>
+
+<h4 id="response-sample-5">Response Sample</h4>
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="o">{</span>
+    <span class="s2">"uuid"</span>: <span class="s2">"ff527b94-f860-44c3-8452-93b17774c647"</span>, 
+    <span class="s2">"name"</span>: <span class="s2">"test_kylin_with_slr_model_desc"</span>, 
+    <span class="s2">"lookups"</span>: <span class="o">[</span>
+        <span class="o">{</span>
+            <span class="s2">"table"</span>: <span class="s2">"EDW.TEST_CAL_DT"</span>, 
+            <span class="s2">"join"</span>: <span class="o">{</span>
+                <span class="s2">"type"</span>: <span class="s2">"inner"</span>, 
+                <span class="s2">"primary_key"</span>: <span class="o">[</span>
+                    <span class="s2">"CAL_DT"</span>
+                <span class="o">]</span>, 
+                <span class="s2">"foreign_key"</span>: <span class="o">[</span>
+                    <span class="s2">"CAL_DT"</span>
+                <span class="o">]</span>
+            <span class="o">}</span>
+        <span class="o">}</span>, 
+        <span class="o">{</span>
+            <span class="s2">"table"</span>: <span class="s2">"DEFAULT.TEST_CATEGORY_GROUPINGS"</span>, 
+            <span class="s2">"join"</span>: <span class="o">{</span>
+                <span class="s2">"type"</span>: <span class="s2">"inner"</span>, 
+                <span class="s2">"primary_key"</span>: <span class="o">[</span>
+                    <span class="s2">"LEAF_CATEG_ID"</span>, 
+                    <span class="s2">"SITE_ID"</span>
+                <span class="o">]</span>, 
+                <span class="s2">"foreign_key"</span>: <span class="o">[</span>
+                    <span class="s2">"LEAF_CATEG_ID"</span>, 
+                    <span class="s2">"LSTG_SITE_ID"</span>
+                <span class="o">]</span>
+            <span class="o">}</span>
+        <span class="o">}</span>
+    <span class="o">]</span>, 
+    <span class="s2">"capacity"</span>: <span class="s2">"MEDIUM"</span>, 
+    <span class="s2">"last_modified"</span>: 1442372116000, 
+    <span class="s2">"fact_table"</span>: <span class="s2">"DEFAULT.TEST_KYLIN_FACT"</span>, 
+    <span class="s2">"filter_condition"</span>: null, 
+    <span class="s2">"partition_desc"</span>: <span class="o">{</span>
+        <span class="s2">"partition_date_column"</span>: <span class="s2">"DEFAULT.TEST_KYLIN_FACT.CAL_DT"</span>, 
+        <span class="s2">"partition_date_start"</span>: 0, 
+        <span class="s2">"partition_date_format"</span>: <span class="s2">"yyyy-MM-dd"</span>, 
+        <span class="s2">"partition_type"</span>: <span class="s2">"APPEND"</span>, 
+        <span class="s2">"partition_condition_builder"</span>: <span class="s2">"org.apache.kylin.metadata.model.PartitionDesc</span><span class="nv">$DefaultPartitionConditionBuilder</span><span class="s2">"</span>
+    <span class="o">}</span>
+<span class="o">}</span>
+</code></pre>
+</div>
+
+<h2 id="build-cube">Build cube</h2>
+<p><code class="highlighter-rouge">PUT /kylin/api/cubes/{cubeName}/build</code></p>
+
+<h4 id="path-variable-3">Path Variable</h4>
+<ul>
+  <li>cubeName - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> Cube name.</li>
+</ul>
+
+<h4 id="request-body-1">Request Body</h4>
+<ul>
+  <li>startTime - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">long</code> Start timestamp of data to build, e.g. 1388563200000 for 2014-1-1</li>
+  <li>endTime - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">long</code> End timestamp of data to build</li>
+  <li>buildType - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> Supported build type: ‘BUILD’, ‘MERGE’, ‘REFRESH’</li>
+</ul>
+
+<h4 id="curl-example-2">Curl Example</h4>
+<div class="highlighter-rouge"><pre class="highlight"><code>curl -X PUT -H "Authorization: Basic XXXXXXXXX" -H 'Content-Type: application/json' -d '{"startTime":'1423526400000', "endTime":'1423526400', "buildType":"BUILD"}' http://&lt;host&gt;:&lt;port&gt;/kylin/api/cubes/{cubeName}/build
+</code></pre>
+</div>
+
+<h4 id="response-sample-6">Response Sample</h4>
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">  
+   </span><span class="nt">"uuid"</span><span class="p">:</span><span class="s2">"c143e0e4-ac5f-434d-acf3-46b0d15e3dc6"</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"last_modified"</span><span class="p">:</span><span class="mi">1407908916705</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"name"</span><span class="p">:</span><span class="s2">"test_kylin_cube_with_slr_empty - 19700101000000_20140731160000 - BUILD - PDT 2014-08-12 22:48:36"</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"type"</span><span class="p">:</span><span class="s2">"BUILD"</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"duration"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"related_cube"</span><span class="p">:</span><span class="s2">"test_kylin_cube_with_slr_empty"</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"related_segment"</span><span class="p">:</span><span class="s2">"19700101000000_20140731160000"</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"exec_start_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"exec_end_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"mr_waiting"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"steps"</span><span class="p">:[</span><span class="w">  
+      </span><span class="p">{</span><span class="w">  
+         </span><span class="nt">"interruptCmd"</span><span class="p">:</span><span class="kc">null</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"name"</span><span class="p">:</span><span class="s2">"Create Intermediate Flat Hive Table"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"sequence_id"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_cmd"</span><span class="p">:</span><span class="s2">"hive -e \"DROP TABLE IF EXISTS kylin_intermediate_test_kylin_cube_with_slr_desc_19700101000000_20140731160000_c143e0e4_ac5f_434d_acf3_46b0d15e3dc6;\nCREATE EXTERNAL TABLE IF NOT EXISTS kylin_intermediate_test_kylin_cube_with_slr_desc_19700101000000_20140731160000_c143e0e4_ac5f_434d_acf3_46b0d15e3dc6\n(\nCAL_DT date\n,LEAF_CATEG_ID int\n,LSTG_SITE_ID int\n,META_CATEG_NAME string\n,CATEG_LVL2_NAME string\n,CATEG_LVL3_NAME string\n,LSTG_FORMAT_NAME string\n,SLR_SEGMENT_CD smallint\n,SELLER_ID bigint\n,PRICE decimal\n)\nROW FORMAT DELIMITED FIELDS TERMINATED BY '\\177'\nSTORED AS SEQUENCEFILE\nLOCATION '/tmp/kylin-c143e0e4-ac5f-434d-acf3-46b0d15e3dc6/kylin_intermediate_test_kylin_cube_with_slr_desc_19700101000000_20140731160000_c143e0e4_ac5f_434d_acf3_46b0d15e3dc6';\nSET mapreduce.job.split.metainfo.maxsize=-1;\nSET mapred.compress.map.output=true;\nSET mapred.map.output.compression.codec=com.had
 oop.compression.lzo.LzoCodec;\nSET mapred.output.compress=true;\nSET mapred.output.compression.codec=com.hadoop.compression.lzo.LzoCodec;\nSET mapred.output.compression.type=BLOCK;\nSET mapreduce.job.max.split.locations=2000;\nSET hive.exec.compress.output=true;\nSET hive.auto.convert.join.noconditionaltask = true;\nSET hive.auto.convert.join.noconditionaltask.size = 300000000;\nINSERT OVERWRITE TABLE kylin_intermediate_test_kylin_cube_with_slr_desc_19700101000000_20140731160000_c143e0e4_ac5f_434d_acf3_46b0d15e3dc6\nSELECT\nTEST_KYLIN_FACT.CAL_DT\n,TEST_KYLIN_FACT.LEAF_CATEG_ID\n,TEST_KYLIN_FACT.LSTG_SITE_ID\n,TEST_CATEGORY_GROUPINGS.META_CATEG_NAME\n,TEST_CATEGORY_GROUPINGS.CATEG_LVL2_NAME\n,TEST_CATEGORY_GROUPINGS.CATEG_LVL3_NAME\n,TEST_KYLIN_FACT.LSTG_FORMAT_NAME\n,TEST_KYLIN_FACT.SLR_SEGMENT_CD\n,TEST_KYLIN_FACT.SELLER_ID\n,TEST_KYLIN_FACT.PRICE\nFROM TEST_KYLIN_FACT\nINNER JOIN TEST_CAL_DT\nON TEST_KYLIN_FACT.CAL_DT = TEST_CAL_DT.CAL_DT\nINNER JOIN TEST_CATEGORY_GROUPINGS\nON T
 EST_KYLIN_FACT.LEAF_CATEG_ID = TEST_CATEGORY_GROUPINGS.LEAF_CATEG_ID AND TEST_KYLIN_FACT.LSTG_SITE_ID = TEST_CATEGORY_GROUPINGS.SITE_ID\nINNER JOIN TEST_SITES\nON TEST_KYLIN_FACT.LSTG_SITE_ID = TEST_SITES.SITE_ID\nINNER JOIN TEST_SELLER_TYPE_DIM\nON TEST_KYLIN_FACT.SLR_SEGMENT_CD = TEST_SELLER_TYPE_DIM.SELLER_TYPE_CD\nWHERE (test_kylin_fact.cal_dt &lt; '2014-07-31 16:00:00')\n;\n\""</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"interrupt_cmd"</span><span class="p">:</span><span class="kc">null</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_start_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_end_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_wait_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"step_status"</span><span class="p">:</span><span class="s2">"PENDING"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"cmd_type"</span><span class="p">:</span><span class="s2">"SHELL_CMD_HADOOP"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"info"</span><span class="p">:</span><span class="kc">null</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"run_async"</span><span class="p">:</span><span class="kc">false</span><span class="w">
+      </span><span class="p">},</span><span class="w">
+      </span><span class="p">{</span><span class="w">  
+         </span><span class="nt">"interruptCmd"</span><span class="p">:</span><span class="kc">null</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"name"</span><span class="p">:</span><span class="s2">"Extract Fact Table Distinct Columns"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"sequence_id"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_cmd"</span><span class="p">:</span><span class="s2">" -conf C:/kylin/Kylin/server/src/main/resources/hadoop_job_conf_medium.xml -cubename test_kylin_cube_with_slr_empty -input /tmp/kylin-c143e0e4-ac5f-434d-acf3-46b0d15e3dc6/kylin_intermediate_test_kylin_cube_with_slr_desc_19700101000000_20140731160000_c143e0e4_ac5f_434d_acf3_46b0d15e3dc6 -output /tmp/kylin-c143e0e4-ac5f-434d-acf3-46b0d15e3dc6/test_kylin_cube_with_slr_empty/fact_distinct_columns -jobname Kylin_Fact_Distinct_Columns_test_kylin_cube_with_slr_empty_Step_1"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"interrupt_cmd"</span><span class="p">:</span><span class="kc">null</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_start_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_end_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_wait_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"step_status"</span><span class="p">:</span><span class="s2">"PENDING"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"cmd_type"</span><span class="p">:</span><span class="s2">"JAVA_CMD_HADOOP_FACTDISTINCT"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"info"</span><span class="p">:</span><span class="kc">null</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"run_async"</span><span class="p">:</span><span class="kc">true</span><span class="w">
+      </span><span class="p">},</span><span class="w">
+      </span><span class="p">{</span><span class="w">  
+         </span><span class="nt">"interruptCmd"</span><span class="p">:</span><span class="kc">null</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"name"</span><span class="p">:</span><span class="s2">"Load HFile to HBase Table"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"sequence_id"</span><span class="p">:</span><span class="mi">12</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_cmd"</span><span class="p">:</span><span class="s2">" -input /tmp/kylin-c143e0e4-ac5f-434d-acf3-46b0d15e3dc6/test_kylin_cube_with_slr_empty/hfile/ -htablename KYLIN-CUBE-TEST_KYLIN_CUBE_WITH_SLR_EMPTY-19700101000000_20140731160000_11BB4326-5975-4358-804C-70D53642E03A -cubename test_kylin_cube_with_slr_empty"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"interrupt_cmd"</span><span class="p">:</span><span class="kc">null</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_start_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_end_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_wait_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"step_status"</span><span class="p">:</span><span class="s2">"PENDING"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"cmd_type"</span><span class="p">:</span><span class="s2">"JAVA_CMD_HADOOP_NO_MR_BULKLOAD"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"info"</span><span class="p">:</span><span class="kc">null</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"run_async"</span><span class="p">:</span><span class="kc">false</span><span class="w">
+      </span><span class="p">}</span><span class="w">
+   </span><span class="p">],</span><span class="w">
+   </span><span class="nt">"job_status"</span><span class="p">:</span><span class="s2">"PENDING"</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"progress"</span><span class="p">:</span><span class="mf">0.0</span><span class="w">
+</span><span class="p">}</span><span class="w">
+</span></code></pre>
+</div>
+
+<h2 id="enable-cube">Enable Cube</h2>
+<p><code class="highlighter-rouge">PUT /kylin/api/cubes/{cubeName}/enable</code></p>
+
+<h4 id="path-variable-4">Path variable</h4>
+<ul>
+  <li>cubeName - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> Cube name.</li>
+</ul>
+
+<h4 id="response-sample-7">Response Sample</h4>
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="o">{</span>  
+   <span class="s2">"uuid"</span>:<span class="s2">"1eaca32a-a33e-4b69-83dd-0bb8b1f8c53b"</span>,
+   <span class="s2">"last_modified"</span>:1407909046305,
+   <span class="s2">"name"</span>:<span class="s2">"test_kylin_cube_with_slr_ready"</span>,
+   <span class="s2">"owner"</span>:null,
+   <span class="s2">"version"</span>:null,
+   <span class="s2">"descriptor"</span>:<span class="s2">"test_kylin_cube_with_slr_desc"</span>,
+   <span class="s2">"cost"</span>:50,
+   <span class="s2">"status"</span>:<span class="s2">"ACTIVE"</span>,
+   <span class="s2">"segments"</span>:[  
+      <span class="o">{</span>  
+         <span class="s2">"name"</span>:<span class="s2">"19700101000000_20140531160000"</span>,
+         <span class="s2">"storage_location_identifier"</span>:<span class="s2">"KYLIN-CUBE-TEST_KYLIN_CUBE_WITH_SLR_READY-19700101000000_20140531160000_BF043D2D-9A4A-45E9-AA59-5A17D3F34A50"</span>,
+         <span class="s2">"date_range_start"</span>:0,
+         <span class="s2">"date_range_end"</span>:1401552000000,
+         <span class="s2">"status"</span>:<span class="s2">"READY"</span>,
+         <span class="s2">"size_kb"</span>:4758,
+         <span class="s2">"source_records"</span>:6000,
+         <span class="s2">"source_records_size"</span>:620356,
+         <span class="s2">"last_build_time"</span>:1407832663227,
+         <span class="s2">"last_build_job_id"</span>:<span class="s2">"2c7a2b63-b052-4a51-8b09-0c24b5792cda"</span>,
+         <span class="s2">"binary_signature"</span>:null,
+         <span class="s2">"dictionaries"</span>:<span class="o">{</span>  
+            <span class="s2">"TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME"</span>:<span class="s2">"/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL2_NAME/16d8185c-ee6b-4f8c-a919-756d9809f937.dict"</span>,
+            <span class="s2">"TEST_KYLIN_FACT/LSTG_SITE_ID"</span>:<span class="s2">"/dict/TEST_SITES/SITE_ID/0bec6bb3-1b0d-469c-8289-b8c4ca5d5001.dict"</span>,
+            <span class="s2">"TEST_KYLIN_FACT/SLR_SEGMENT_CD"</span>:<span class="s2">"/dict/TEST_SELLER_TYPE_DIM/SELLER_TYPE_CD/0c5d77ec-316b-47e0-ba9a-0616be890ad6.dict"</span>,
+            <span class="s2">"TEST_KYLIN_FACT/CAL_DT"</span>:<span class="s2">"/dict/PREDEFINED/date(yyyy-mm-dd)/64ac4f82-f2af-476e-85b9-f0805001014e.dict"</span>,
+            <span class="s2">"TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME"</span>:<span class="s2">"/dict/TEST_CATEGORY_GROUPINGS/CATEG_LVL3_NAME/270fbfb0-281c-4602-8413-2970a7439c47.dict"</span>,
+            <span class="s2">"TEST_KYLIN_FACT/LEAF_CATEG_ID"</span>:<span class="s2">"/dict/TEST_CATEGORY_GROUPINGS/LEAF_CATEG_ID/2602386c-debb-4968-8d2f-b52b8215e385.dict"</span>,
+            <span class="s2">"TEST_CATEGORY_GROUPINGS/META_CATEG_NAME"</span>:<span class="s2">"/dict/TEST_CATEGORY_GROUPINGS/META_CATEG_NAME/0410d2c4-4686-40bc-ba14-170042a2de94.dict"</span>
+         <span class="o">}</span>,
+         <span class="s2">"snapshots"</span>:<span class="o">{</span>  
+            <span class="s2">"TEST_CAL_DT"</span>:<span class="s2">"/table_snapshot/TEST_CAL_DT.csv/8f7cfc8a-020d-4019-b419-3c6deb0ffaa0.snapshot"</span>,
+            <span class="s2">"TEST_SELLER_TYPE_DIM"</span>:<span class="s2">"/table_snapshot/TEST_SELLER_TYPE_DIM.csv/c60fd05e-ac94-4016-9255-96521b273b81.snapshot"</span>,
+            <span class="s2">"TEST_CATEGORY_GROUPINGS"</span>:<span class="s2">"/table_snapshot/TEST_CATEGORY_GROUPINGS.csv/363f4a59-b725-4459-826d-3188bde6a971.snapshot"</span>,
+            <span class="s2">"TEST_SITES"</span>:<span class="s2">"/table_snapshot/TEST_SITES.csv/78e0aecc-3ec6-4406-b86e-bac4b10ea63b.snapshot"</span>
+         <span class="o">}</span>
+      <span class="o">}</span>
+   <span class="o">]</span>,
+   <span class="s2">"create_time"</span>:null,
+   <span class="s2">"source_records_count"</span>:6000,
+   <span class="s2">"source_records_size"</span>:0,
+   <span class="s2">"size_kb"</span>:4758
+<span class="o">}</span>
+</code></pre>
+</div>
+
+<h2 id="disable-cube">Disable Cube</h2>
+<p><code class="highlighter-rouge">PUT /kylin/api/cubes/{cubeName}/disable</code></p>
+
+<h4 id="path-variable-5">Path variable</h4>
+<ul>
+  <li>cubeName - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> Cube name.</li>
+</ul>
+
+<h4 id="response-sample-8">Response Sample</h4>
+<p>(Same as “Enable Cube”)</p>
+
+<h2 id="purge-cube">Purge Cube</h2>
+<p><code class="highlighter-rouge">PUT /kylin/api/cubes/{cubeName}/purge</code></p>
+
+<h4 id="path-variable-6">Path variable</h4>
+<ul>
+  <li>cubeName - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> Cube name.</li>
+</ul>
+
+<h4 id="response-sample-9">Response Sample</h4>
+<p>(Same as “Enable Cube”)</p>
+
+<h2 id="delete-segment">Delete Segment</h2>
+<p><code class="highlighter-rouge">DELETE /kylin/api/cubes/{cubeName}/segs/{segmentName}</code></p>
+
+<hr />
+
+<h2 id="resume-job">Resume Job</h2>
+<p><code class="highlighter-rouge">PUT /kylin/api/jobs/{jobId}/resume</code></p>
+
+<h4 id="path-variable-7">Path variable</h4>
+<ul>
+  <li>jobId - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> Job id.</li>
+</ul>
+
+<h4 id="response-sample-10">Response Sample</h4>
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">  
+   </span><span class="nt">"uuid"</span><span class="p">:</span><span class="s2">"c143e0e4-ac5f-434d-acf3-46b0d15e3dc6"</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"last_modified"</span><span class="p">:</span><span class="mi">1407908916705</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"name"</span><span class="p">:</span><span class="s2">"test_kylin_cube_with_slr_empty - 19700101000000_20140731160000 - BUILD - PDT 2014-08-12 22:48:36"</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"type"</span><span class="p">:</span><span class="s2">"BUILD"</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"duration"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"related_cube"</span><span class="p">:</span><span class="s2">"test_kylin_cube_with_slr_empty"</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"related_segment"</span><span class="p">:</span><span class="s2">"19700101000000_20140731160000"</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"exec_start_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"exec_end_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"mr_waiting"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"steps"</span><span class="p">:[</span><span class="w">  
+      </span><span class="p">{</span><span class="w">  
+         </span><span class="nt">"interruptCmd"</span><span class="p">:</span><span class="kc">null</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"name"</span><span class="p">:</span><span class="s2">"Create Intermediate Flat Hive Table"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"sequence_id"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_cmd"</span><span class="p">:</span><span class="s2">"hive -e \"DROP TABLE IF EXISTS kylin_intermediate_test_kylin_cube_with_slr_desc_19700101000000_20140731160000_c143e0e4_ac5f_434d_acf3_46b0d15e3dc6;\nCREATE EXTERNAL TABLE IF NOT EXISTS kylin_intermediate_test_kylin_cube_with_slr_desc_19700101000000_20140731160000_c143e0e4_ac5f_434d_acf3_46b0d15e3dc6\n(\nCAL_DT date\n,LEAF_CATEG_ID int\n,LSTG_SITE_ID int\n,META_CATEG_NAME string\n,CATEG_LVL2_NAME string\n,CATEG_LVL3_NAME string\n,LSTG_FORMAT_NAME string\n,SLR_SEGMENT_CD smallint\n,SELLER_ID bigint\n,PRICE decimal\n)\nROW FORMAT DELIMITED FIELDS TERMINATED BY '\\177'\nSTORED AS SEQUENCEFILE\nLOCATION '/tmp/kylin-c143e0e4-ac5f-434d-acf3-46b0d15e3dc6/kylin_intermediate_test_kylin_cube_with_slr_desc_19700101000000_20140731160000_c143e0e4_ac5f_434d_acf3_46b0d15e3dc6';\nSET mapreduce.job.split.metainfo.maxsize=-1;\nSET mapred.compress.map.output=true;\nSET mapred.map.output.compression.codec=com.had
 oop.compression.lzo.LzoCodec;\nSET mapred.output.compress=true;\nSET mapred.output.compression.codec=com.hadoop.compression.lzo.LzoCodec;\nSET mapred.output.compression.type=BLOCK;\nSET mapreduce.job.max.split.locations=2000;\nSET hive.exec.compress.output=true;\nSET hive.auto.convert.join.noconditionaltask = true;\nSET hive.auto.convert.join.noconditionaltask.size = 300000000;\nINSERT OVERWRITE TABLE kylin_intermediate_test_kylin_cube_with_slr_desc_19700101000000_20140731160000_c143e0e4_ac5f_434d_acf3_46b0d15e3dc6\nSELECT\nTEST_KYLIN_FACT.CAL_DT\n,TEST_KYLIN_FACT.LEAF_CATEG_ID\n,TEST_KYLIN_FACT.LSTG_SITE_ID\n,TEST_CATEGORY_GROUPINGS.META_CATEG_NAME\n,TEST_CATEGORY_GROUPINGS.CATEG_LVL2_NAME\n,TEST_CATEGORY_GROUPINGS.CATEG_LVL3_NAME\n,TEST_KYLIN_FACT.LSTG_FORMAT_NAME\n,TEST_KYLIN_FACT.SLR_SEGMENT_CD\n,TEST_KYLIN_FACT.SELLER_ID\n,TEST_KYLIN_FACT.PRICE\nFROM TEST_KYLIN_FACT\nINNER JOIN TEST_CAL_DT\nON TEST_KYLIN_FACT.CAL_DT = TEST_CAL_DT.CAL_DT\nINNER JOIN TEST_CATEGORY_GROUPINGS\nON T
 EST_KYLIN_FACT.LEAF_CATEG_ID = TEST_CATEGORY_GROUPINGS.LEAF_CATEG_ID AND TEST_KYLIN_FACT.LSTG_SITE_ID = TEST_CATEGORY_GROUPINGS.SITE_ID\nINNER JOIN TEST_SITES\nON TEST_KYLIN_FACT.LSTG_SITE_ID = TEST_SITES.SITE_ID\nINNER JOIN TEST_SELLER_TYPE_DIM\nON TEST_KYLIN_FACT.SLR_SEGMENT_CD = TEST_SELLER_TYPE_DIM.SELLER_TYPE_CD\nWHERE (test_kylin_fact.cal_dt &lt; '2014-07-31 16:00:00')\n;\n\""</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"interrupt_cmd"</span><span class="p">:</span><span class="kc">null</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_start_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_end_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_wait_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"step_status"</span><span class="p">:</span><span class="s2">"PENDING"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"cmd_type"</span><span class="p">:</span><span class="s2">"SHELL_CMD_HADOOP"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"info"</span><span class="p">:</span><span class="kc">null</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"run_async"</span><span class="p">:</span><span class="kc">false</span><span class="w">
+      </span><span class="p">},</span><span class="w">
+      </span><span class="p">{</span><span class="w">  
+         </span><span class="nt">"interruptCmd"</span><span class="p">:</span><span class="kc">null</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"name"</span><span class="p">:</span><span class="s2">"Extract Fact Table Distinct Columns"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"sequence_id"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_cmd"</span><span class="p">:</span><span class="s2">" -conf C:/kylin/Kylin/server/src/main/resources/hadoop_job_conf_medium.xml -cubename test_kylin_cube_with_slr_empty -input /tmp/kylin-c143e0e4-ac5f-434d-acf3-46b0d15e3dc6/kylin_intermediate_test_kylin_cube_with_slr_desc_19700101000000_20140731160000_c143e0e4_ac5f_434d_acf3_46b0d15e3dc6 -output /tmp/kylin-c143e0e4-ac5f-434d-acf3-46b0d15e3dc6/test_kylin_cube_with_slr_empty/fact_distinct_columns -jobname Kylin_Fact_Distinct_Columns_test_kylin_cube_with_slr_empty_Step_1"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"interrupt_cmd"</span><span class="p">:</span><span class="kc">null</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_start_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_end_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_wait_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"step_status"</span><span class="p">:</span><span class="s2">"PENDING"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"cmd_type"</span><span class="p">:</span><span class="s2">"JAVA_CMD_HADOOP_FACTDISTINCT"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"info"</span><span class="p">:</span><span class="kc">null</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"run_async"</span><span class="p">:</span><span class="kc">true</span><span class="w">
+      </span><span class="p">},</span><span class="w">
+      </span><span class="p">{</span><span class="w">  
+         </span><span class="nt">"interruptCmd"</span><span class="p">:</span><span class="kc">null</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"name"</span><span class="p">:</span><span class="s2">"Load HFile to HBase Table"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"sequence_id"</span><span class="p">:</span><span class="mi">12</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_cmd"</span><span class="p">:</span><span class="s2">" -input /tmp/kylin-c143e0e4-ac5f-434d-acf3-46b0d15e3dc6/test_kylin_cube_with_slr_empty/hfile/ -htablename KYLIN-CUBE-TEST_KYLIN_CUBE_WITH_SLR_EMPTY-19700101000000_20140731160000_11BB4326-5975-4358-804C-70D53642E03A -cubename test_kylin_cube_with_slr_empty"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"interrupt_cmd"</span><span class="p">:</span><span class="kc">null</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_start_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_end_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"exec_wait_time"</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"step_status"</span><span class="p">:</span><span class="s2">"PENDING"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"cmd_type"</span><span class="p">:</span><span class="s2">"JAVA_CMD_HADOOP_NO_MR_BULKLOAD"</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"info"</span><span class="p">:</span><span class="kc">null</span><span class="p">,</span><span class="w">
+         </span><span class="nt">"run_async"</span><span class="p">:</span><span class="kc">false</span><span class="w">
+      </span><span class="p">}</span><span class="w">
+   </span><span class="p">],</span><span class="w">
+   </span><span class="nt">"job_status"</span><span class="p">:</span><span class="s2">"PENDING"</span><span class="p">,</span><span class="w">
+   </span><span class="nt">"progress"</span><span class="p">:</span><span class="mf">0.0</span><span class="w">
+</span><span class="p">}</span><span class="w">
+</span></code></pre>
+</div>
+<p>## Pause Job<br />
+<code class="highlighter-rouge">PUT /kylin/api/jobs/{jobId}/pause</code></p>
+
+<h4 id="path-variable-8">Path variable</h4>
+<ul>
+  <li>jobId - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> Job id.</li>
+</ul>
+
+<h2 id="discard-job">Discard Job</h2>
+<p><code class="highlighter-rouge">PUT /kylin/api/jobs/{jobId}/cancel</code></p>
+
+<h4 id="path-variable-9">Path variable</h4>
+<ul>
+  <li>jobId - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> Job id.</li>
+</ul>
+
+<h2 id="get-job-status">Get Job Status</h2>
+<p><code class="highlighter-rouge">GET /kylin/api/jobs/{jobId}</code></p>
+
+<h4 id="path-variable-10">Path variable</h4>
+<ul>
+  <li>jobId - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> Job id.</li>
+</ul>
+
+<h4 id="response-sample-11">Response Sample</h4>
+<p>(Same as “Resume Job”)</p>
+
+<h2 id="get-job-step-output">Get job step output</h2>
+<p><code class="highlighter-rouge">GET /kylin/api/jobs/{jobId}/steps/{stepId}/output</code></p>
+
+<h4 id="path-variable-11">Path Variable</h4>
+<ul>
+  <li>jobId - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> Job id.</li>
+  <li>stepId - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> Step id; the step id is composed by jobId with step sequence id; for example, the jobId is “fb479e54-837f-49a2-b457-651fc50be110”, its 3rd step id is “fb479e54-837f-49a2-b457-651fc50be110-3”,</li>
+</ul>
+
+<h4 id="response-sample-12">Response Sample</h4>
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">  
+   </span><span class="nt">"cmd_output"</span><span class="p">:</span><span class="s2">"log string"</span><span class="w">
+</span><span class="p">}</span><span class="w">
+</span></code></pre>
+</div>
+
+<h2 id="get-job-list">Get job list</h2>
+<p><code class="highlighter-rouge">GET /kylin/api/jobs</code></p>
+
+<h4 id="request-variables">Request Variables</h4>
+<ul>
+  <li>cubeName - <code class="highlighter-rouge">optional</code> <code class="highlighter-rouge">string</code> Cube name.</li>
+  <li>projectName - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> Project name.</li>
+  <li>status - <code class="highlighter-rouge">optional</code> <code class="highlighter-rouge">int</code> Job status, e.g. (NEW: 0, PENDING: 1, RUNNING: 2, STOPPED: 32, FINISHED: 4, ERROR: 8, DISCARDED: 16)</li>
+  <li>offset - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">int</code> Offset used by pagination.</li>
+  <li>limit - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">int</code> Jobs per page.</li>
+  <li>timeFilter - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">int</code>, e.g. (LAST ONE DAY: 0, LAST ONE WEEK: 1, LAST ONE MONTH: 2, LAST ONE YEAR: 3, ALL: 4)</li>
+</ul>
+
+<p>For example, to get the job list in project ‘learn_kylin’ for cube ‘kylin_sales_cube’ in lastone week:</p>
+
+<p><code class="highlighter-rouge">GET: /kylin/api/jobs?cubeName=kylin_sales_cube&amp;limit=15&amp;offset=0&amp;projectName=learn_kylin&amp;timeFilter=1</code></p>
+
+<h4 id="response-sample-13">Response Sample</h4>
+<div class="highlighter-rouge"><pre class="highlight"><code>[
+  { 
+    "uuid": "9eb7bccf-4448-4578-9c29-552658b5a2ca", 
+    "last_modified": 1490957579843, 
+    "version": "2.0.0", 
+    "name": "Sample_Cube - 19700101000000_20150101000000 - BUILD - GMT+08:00 2017-03-31 18:36:08", 
+    "type": "BUILD", 
+    "duration": 936, 
+    "related_cube": "Sample_Cube", 
+    "related_segment": "53a5d7f7-7e06-4ea1-b3ee-b7f30343c723", 
+    "exec_start_time": 1490956581743, 
+    "exec_end_time": 1490957518131, 
+    "mr_waiting": 0, 
+    "steps": [
+      { 
+        "interruptCmd": null, 
+        "id": "9eb7bccf-4448-4578-9c29-552658b5a2ca-00", 
+        "name": "Create Intermediate Flat Hive Table", 
+        "sequence_id": 0, 
+        "exec_cmd": null, 
+        "interrupt_cmd": null, 
+        "exec_start_time": 1490957508721, 
+        "exec_end_time": 1490957518102, 
+        "exec_wait_time": 0, 
+        "step_status": "DISCARDED", 
+        "cmd_type": "SHELL_CMD_HADOOP", 
+        "info": { "endTime": "1490957518102", "startTime": "1490957508721" }, 
+        "run_async": false 
+      }, 
+      { 
+        "interruptCmd": null, 
+        "id": "9eb7bccf-4448-4578-9c29-552658b5a2ca-01", 
+        "name": "Redistribute Flat Hive Table", 
+        "sequence_id": 1, 
+        "exec_cmd": null, 
+        "interrupt_cmd": null, 
+        "exec_start_time": 0, 
+        "exec_end_time": 0, 
+        "exec_wait_time": 0, 
+        "step_status": "DISCARDED", 
+        "cmd_type": "SHELL_CMD_HADOOP", 
+        "info": {}, 
+        "run_async": false 
+      }
+    ],
+    "submitter": "ADMIN", 
+    "job_status": "FINISHED", 
+    "progress": 100.0 
+  }
+]
+</code></pre>
+</div>
+<hr />
+
+<h2 id="get-hive-table">Get Hive Table</h2>
+<p><code class="highlighter-rouge">GET /kylin/api/tables/{project}/{tableName}</code></p>
+
+<h4 id="path-parameters">Path Parameters</h4>
+<ul>
+  <li>project - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> project name</li>
+  <li>tableName - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> table name to find.</li>
+</ul>
+
+<h4 id="response-sample-14">Response Sample</h4>
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="o">{</span>
+    uuid: <span class="s2">"69cc92c0-fc42-4bb9-893f-bd1141c91dbe"</span>,
+    name: <span class="s2">"SAMPLE_07"</span>,
+    columns: <span class="o">[{</span>
+        id: <span class="s2">"1"</span>,
+        name: <span class="s2">"CODE"</span>,
+        datatype: <span class="s2">"string"</span>
+    <span class="o">}</span>, <span class="o">{</span>
+        id: <span class="s2">"2"</span>,
+        name: <span class="s2">"DESCRIPTION"</span>,
+        datatype: <span class="s2">"string"</span>
+    <span class="o">}</span>, <span class="o">{</span>
+        id: <span class="s2">"3"</span>,
+        name: <span class="s2">"TOTAL_EMP"</span>,
+        datatype: <span class="s2">"int"</span>
+    <span class="o">}</span>, <span class="o">{</span>
+        id: <span class="s2">"4"</span>,
+        name: <span class="s2">"SALARY"</span>,
+        datatype: <span class="s2">"int"</span>
+    <span class="o">}]</span>,
+    database: <span class="s2">"DEFAULT"</span>,
+    last_modified: 1419330476755
+<span class="o">}</span>
+</code></pre>
+</div>
+
+<h2 id="get-hive-tables">Get Hive Tables</h2>
+<p><code class="highlighter-rouge">GET /kylin/api/tables</code></p>
+
+<h4 id="request-parameters-2">Request Parameters</h4>
+<ul>
+  <li>project- <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> will list all tables in the project.</li>
+  <li>ext- <code class="highlighter-rouge">optional</code> <code class="highlighter-rouge">boolean</code>  set true to get extend info of table.</li>
+</ul>
+
+<h4 id="response-sample-15">Response Sample</h4>
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="o">[</span>
+ <span class="o">{</span>
+    uuid: <span class="s2">"53856c96-fe4d-459e-a9dc-c339b1bc3310"</span>,
+    name: <span class="s2">"SAMPLE_08"</span>,
+    columns: <span class="o">[{</span>
+        id: <span class="s2">"1"</span>,
+        name: <span class="s2">"CODE"</span>,
+        datatype: <span class="s2">"string"</span>
+    <span class="o">}</span>, <span class="o">{</span>
+        id: <span class="s2">"2"</span>,
+        name: <span class="s2">"DESCRIPTION"</span>,
+        datatype: <span class="s2">"string"</span>
+    <span class="o">}</span>, <span class="o">{</span>
+        id: <span class="s2">"3"</span>,
+        name: <span class="s2">"TOTAL_EMP"</span>,
+        datatype: <span class="s2">"int"</span>
+    <span class="o">}</span>, <span class="o">{</span>
+        id: <span class="s2">"4"</span>,
+        name: <span class="s2">"SALARY"</span>,
+        datatype: <span class="s2">"int"</span>
+    <span class="o">}]</span>,
+    database: <span class="s2">"DEFAULT"</span>,
+    cardinality: <span class="o">{}</span>,
+    last_modified: 0,
+    exd: <span class="o">{</span>
+        minFileSize: <span class="s2">"46069"</span>,
+        totalNumberFiles: <span class="s2">"1"</span>,
+        location: <span class="s2">"hdfs://sandbox.hortonworks.com:8020/apps/hive/warehouse/sample_08"</span>,
+        lastAccessTime: <span class="s2">"1398176495945"</span>,
+        lastUpdateTime: <span class="s2">"1398176495981"</span>,
+        columns: <span class="s2">"struct columns { string code, string description, i32 total_emp, i32 salary}"</span>,
+        partitionColumns: <span class="s2">""</span>,
+        EXD_STATUS: <span class="s2">"true"</span>,
+        maxFileSize: <span class="s2">"46069"</span>,
+        inputformat: <span class="s2">"org.apache.hadoop.mapred.TextInputFormat"</span>,
+        partitioned: <span class="s2">"false"</span>,
+        tableName: <span class="s2">"sample_08"</span>,
+        owner: <span class="s2">"hue"</span>,
+        totalFileSize: <span class="s2">"46069"</span>,
+        outputformat: <span class="s2">"org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat"</span>
+    <span class="o">}</span>
+  <span class="o">}</span>
+<span class="o">]</span>
+</code></pre>
+</div>
+
+<h2 id="load-hive-tables">Load Hive Tables</h2>
+<p><code class="highlighter-rouge">POST /kylin/api/tables/{tables}/{project}</code></p>
+
+<h4 id="request-parameters-3">Request Parameters</h4>
+<ul>
+  <li>tables - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> table names you want to load from hive, separated with comma.</li>
+  <li>project - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">String</code>  the project which the tables will be loaded into.</li>
+</ul>
+
+<h4 id="response-sample-16">Response Sample</h4>
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="w">
+    </span><span class="nt">"result.loaded"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"DEFAULT.SAMPLE_07"</span><span class="p">],</span><span class="w">
+    </span><span class="nt">"result.unloaded"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"sapmle_08"</span><span class="p">]</span><span class="w">
+</span><span class="p">}</span><span class="w">
+</span></code></pre>
+</div>
+
+<hr />
+
+<h2 id="wipe-cache">Wipe cache</h2>
+<p><code class="highlighter-rouge">PUT /kylin/api/cache/{type}/{name}/{action}</code></p>
+
+<h4 id="path-variable-12">Path variable</h4>
+<ul>
+  <li>type - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> ‘METADATA’ or ‘CUBE’</li>
+  <li>name - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> Cache key, e.g the cube name.</li>
+  <li>action - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> ‘create’, ‘update’ or ‘drop’</li>
+</ul>
+
+<hr />
+
+<h2 id="initiate-cube-start-position">Initiate cube start position</h2>
+<p>Set the stream cube’s start position to the current latest offsets; This can avoid building from the earlist position of Kafka topic (if you have set a long retension time);</p>
+
+<p><code class="highlighter-rouge">PUT /kylin/api/cubes/{cubeName}/init_start_offsets</code></p>
+
+<h4 id="path-variable-13">Path variable</h4>
+<ul>
+  <li>cubeName - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> Cube name</li>
+</ul>
+
+<h4 id="response-sample-17">Response Sample</h4>
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="o">{</span>
+    <span class="s2">"result"</span>: <span class="s2">"success"</span>, 
+    <span class="s2">"offsets"</span>: <span class="s2">"{0=246059529, 1=253547684, 2=253023895, 3=172996803, 4=165503476, 5=173513896, 6=19200473, 7=26691891, 8=26699895, 9=26694021, 10=19204164, 11=26694597}"</span>
+<span class="o">}</span>
+</code></pre>
+</div>
+
+<h2 id="build-stream-cube">Build stream cube</h2>
+<p><code class="highlighter-rouge">PUT /kylin/api/cubes/{cubeName}/build2</code></p>
+
+<p>This API is specific for stream cube’s building;</p>
+
+<h4 id="path-variable-14">Path variable</h4>
+<ul>
+  <li>cubeName - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">string</code> Cube name</li>
+</ul>
+
+<h4 id="request-body-2">Request Body</h4>
+
+<ul>
+  <li>sourceOffsetStart - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">long</code> The start offset, 0 represents from previous position;</li>
+  <li>sourceOffsetEnd  - <code class="highlighter-rouge">required</code> <code class="highlighter-rouge">long</code> The end offset, 9223372036854775807 represents to the end position of current stream data</li>
+  <li>buildType - <code class="highlighter-rouge">required</code> Build type, “BUILD”, “MERGE” or “REFRESH”</li>
+</ul>
+
+<h4 id="request-sample-1">Request Sample</h4>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="o">{</span>  
+   <span class="s2">"sourceOffsetStart"</span>: 0, 
+   <span class="s2">"sourceOffsetEnd"</span>: 9223372036854775807, 
+   <span class="s2">"buildType"</span>: <span class="s2">"BUILD"</span>
+<span class="o">}</span>
+</code></pre>
+</div>
+
+<h4 id="response-sample-18">Response Sample</h4>
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="o">{</span>
+    <span class="s2">"uuid"</span>: <span class="s2">"3afd6e75-f921-41e1-8c68-cb60bc72a601"</span>, 
+    <span class="s2">"last_modified"</span>: 1480402541240, 
+    <span class="s2">"version"</span>: <span class="s2">"1.6.0"</span>, 
+    <span class="s2">"name"</span>: <span class="s2">"embedded_cube_clone - 1409830324_1409849348 - BUILD - PST 2016-11-28 22:55:41"</span>, 
+    <span class="s2">"type"</span>: <span class="s2">"BUILD"</span>, 
+    <span class="s2">"duration"</span>: 0, 
+    <span class="s2">"related_cube"</span>: <span class="s2">"embedded_cube_clone"</span>, 
+    <span class="s2">"related_segment"</span>: <span class="s2">"42ebcdea-cbe9-4905-84db-31cb25f11515"</span>, 
+    <span class="s2">"exec_start_time"</span>: 0, 
+    <span class="s2">"exec_end_time"</span>: 0, 
+    <span class="s2">"mr_waiting"</span>: 0, 
+ ...
+<span class="o">}</span>
+</code></pre>
+</div>
+
+<h2 id="check-segment-holes">Check segment holes</h2>
+<p><code class="highlighter-rouge">GET /kylin/api/cubes/{cubeName}/holes</code></p>
+
+<h4 id="path-variable-15">Path variable</h4>
+<ul>

[... 4347 lines stripped ...]