Author: lidong
Date: Thu Aug  1 14:04:52 2019
New Revision: 1864154

URL: http://svn.apache.org/viewvc?rev=1864154&view=rev
Log:
Add article of introducing KYLIN-2895

Added:
    kylin/site/blog/2019/07/30/
    kylin/site/blog/2019/07/30/detailed-analysis-of-refine-query-cache/
    
kylin/site/blog/2019/07/30/detailed-analysis-of-refine-query-cache/index.html
    kylin/site/docs30/howto/howto_use_health_check_cli.html
    kylin/site/docs30/howto/howto_use_hive_mr_dict.html
    kylin/site/images/blog/refine-query-cache/
    kylin/site/images/blog/refine-query-cache/cache-signature.png   (with props)
    kylin/site/images/blog/refine-query-cache/consistent-hashing.png   (with 
props)
    kylin/site/images/blog/refine-query-cache/l1-l2-cache.png   (with props)
Modified:
    kylin/site/blog/index.html
    kylin/site/cn/docs30/gettingstarted/faq.html
    kylin/site/cn/docs30/howto/howto_backup_metadata.html
    kylin/site/cn/docs30/howto/howto_build_cube_with_restapi.html
    kylin/site/cn/docs30/howto/howto_cleanup_storage.html
    kylin/site/cn/docs30/howto/howto_jdbc.html
    kylin/site/cn/docs30/howto/howto_optimize_build.html
    kylin/site/cn/docs30/howto/howto_optimize_cubes.html
    kylin/site/cn/docs30/howto/howto_use_cli.html
    kylin/site/cn/docs30/howto/howto_use_restapi.html
    kylin/site/cn/docs30/index.html
    kylin/site/cn/docs30/install/advance_settings.html
    kylin/site/cn/docs30/install/configuration.html
    kylin/site/cn/docs30/install/index.html
    kylin/site/cn/docs30/install/kylin_aws_emr.html
    kylin/site/cn/docs30/install/kylin_cluster.html
    kylin/site/cn/docs30/install/kylin_docker.html
    kylin/site/cn/docs30/tutorial/Qlik.html
    kylin/site/cn/docs30/tutorial/acl.html
    kylin/site/cn/docs30/tutorial/create_cube.html
    kylin/site/cn/docs30/tutorial/cube_build_job.html
    kylin/site/cn/docs30/tutorial/cube_build_performance.html
    kylin/site/cn/docs30/tutorial/cube_spark.html
    kylin/site/cn/docs30/tutorial/cube_streaming.html
    kylin/site/cn/docs30/tutorial/hybrid.html
    kylin/site/cn/docs30/tutorial/jdbc.html
    kylin/site/cn/docs30/tutorial/kylin_client_tool.html
    kylin/site/cn/docs30/tutorial/kylin_sample.html
    kylin/site/cn/docs30/tutorial/mysql_metastore.html
    kylin/site/cn/docs30/tutorial/odbc.html
    kylin/site/cn/docs30/tutorial/powerbi.html
    kylin/site/cn/docs30/tutorial/project_level_acl.html
    kylin/site/cn/docs30/tutorial/query_pushdown.html
    kylin/site/cn/docs30/tutorial/setup_jdbc_datasource.html
    kylin/site/cn/docs30/tutorial/setup_systemcube.html
    kylin/site/cn/docs30/tutorial/spark.html
    kylin/site/cn/docs30/tutorial/sql_reference.html
    kylin/site/cn/docs30/tutorial/squirrel.html
    kylin/site/cn/docs30/tutorial/superset.html
    kylin/site/cn/docs30/tutorial/tableau.html
    kylin/site/cn/docs30/tutorial/tableau_91.html
    kylin/site/cn/docs30/tutorial/use_cube_planner.html
    kylin/site/cn/docs30/tutorial/use_dashboard.html
    kylin/site/cn/docs30/tutorial/web.html
    kylin/site/docs30/gettingstarted/best_practices.html
    kylin/site/docs30/gettingstarted/concepts.html
    kylin/site/docs30/gettingstarted/events.html
    kylin/site/docs30/gettingstarted/faq.html
    kylin/site/docs30/gettingstarted/terminology.html
    kylin/site/docs30/howto/howto_backup_metadata.html
    kylin/site/docs30/howto/howto_build_cube_with_restapi.html
    kylin/site/docs30/howto/howto_cleanup_storage.html
    kylin/site/docs30/howto/howto_enable_zookeeper_acl.html
    kylin/site/docs30/howto/howto_install_ranger_kylin_plugin.html
    kylin/site/docs30/howto/howto_jdbc.html
    kylin/site/docs30/howto/howto_ldap_and_sso.html
    kylin/site/docs30/howto/howto_optimize_build.html
    kylin/site/docs30/howto/howto_optimize_cubes.html
    kylin/site/docs30/howto/howto_update_coprocessor.html
    kylin/site/docs30/howto/howto_upgrade.html
    kylin/site/docs30/howto/howto_use_beeline.html
    kylin/site/docs30/howto/howto_use_cli.html
    kylin/site/docs30/howto/howto_use_distributed_scheduler.html
    kylin/site/docs30/howto/howto_use_restapi.html
    kylin/site/docs30/howto/howto_use_restapi_in_js.html
    kylin/site/docs30/index.html
    kylin/site/docs30/install/advance_settings.html
    kylin/site/docs30/install/configuration.html
    kylin/site/docs30/install/index.html
    kylin/site/docs30/install/kylin_aws_emr.html
    kylin/site/docs30/install/kylin_cluster.html
    kylin/site/docs30/install/kylin_docker.html
    kylin/site/docs30/release_notes.html
    kylin/site/docs30/tutorial/Qlik.html
    kylin/site/docs30/tutorial/acl.html
    kylin/site/docs30/tutorial/create_cube.html
    kylin/site/docs30/tutorial/cube_build_job.html
    kylin/site/docs30/tutorial/cube_build_performance.html
    kylin/site/docs30/tutorial/cube_spark.html
    kylin/site/docs30/tutorial/cube_streaming.html
    kylin/site/docs30/tutorial/flink.html
    kylin/site/docs30/tutorial/hue.html
    kylin/site/docs30/tutorial/hybrid.html
    kylin/site/docs30/tutorial/jdbc.html
    kylin/site/docs30/tutorial/kylin_client_tool.html
    kylin/site/docs30/tutorial/kylin_sample.html
    kylin/site/docs30/tutorial/microstrategy.html
    kylin/site/docs30/tutorial/mysql_metastore.html
    kylin/site/docs30/tutorial/odbc.html
    kylin/site/docs30/tutorial/powerbi.html
    kylin/site/docs30/tutorial/project_level_acl.html
    kylin/site/docs30/tutorial/query_pushdown.html
    kylin/site/docs30/tutorial/realtime_olap.html
    kylin/site/docs30/tutorial/setup_jdbc_datasource.html
    kylin/site/docs30/tutorial/setup_systemcube.html
    kylin/site/docs30/tutorial/spark.html
    kylin/site/docs30/tutorial/sql_reference.html
    kylin/site/docs30/tutorial/squirrel.html
    kylin/site/docs30/tutorial/superset.html
    kylin/site/docs30/tutorial/tableau.html
    kylin/site/docs30/tutorial/tableau_91.html
    kylin/site/docs30/tutorial/use_cube_planner.html
    kylin/site/docs30/tutorial/use_dashboard.html
    kylin/site/docs30/tutorial/web.html
    kylin/site/feed.xml

Added: 
kylin/site/blog/2019/07/30/detailed-analysis-of-refine-query-cache/index.html
URL: 
http://svn.apache.org/viewvc/kylin/site/blog/2019/07/30/detailed-analysis-of-refine-query-cache/index.html?rev=1864154&view=auto
==============================================================================
--- 
kylin/site/blog/2019/07/30/detailed-analysis-of-refine-query-cache/index.html 
(added)
+++ 
kylin/site/blog/2019/07/30/detailed-analysis-of-refine-query-cache/index.html 
Thu Aug  1 14:04:52 2019
@@ -0,0 +1,6714 @@
+<!--
+* 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 | Detailed Analysis of refine query cache</title>
+  <meta name="description" content="">
+  <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/blog/2019/07/30/detailed-analysis-of-refine-query-cache/";>
+  <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">
+      <!--
+      <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">
+        <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 class="li-search">
+              <div>
+                <form target="_blank" autocomplete="false" 
action="https://sematext.com/opensee/big-data";>
+                  <input type="hidden" name="project" value="kylin">
+                  <div class="form-group search-container">
+                    <input type="text" autocomplete="false" 
class="form-control" name="q" placeholder="Search...">
+                    <div class="search fa fa-search fa-lg"></div>
+                  </div>
+                </form>
+              </div>
+              <!-- <a href="https://twitter.com/apachekylin"; target="_blank" 
class="fa fa-search fa-lg"  title="Search: @ApacheKylin" ></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>
+
+      <!-- Collect the nav links, forms, and other content for toggling -->
+      <div class="navbar-collapse collapse" id="bs-example-navbar-collapse-1">
+
+        <ul class="nav navbar-nav">
+
+          <li><a href="/">Home</a></li>
+          <li>
+            <a href="/docs">Docs</a>
+<!--        
+            <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Docs</a>     
+            <ul class="dropdown-menu">
+              
+                  <li class="dropdown-submenu"><a href="#titleGetting Started" 
data-toggle="collapse" class="navtitle">Getting Started</a>
+                  <ul class="dropdown-menu">
+                  
+
+
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/index.html" class="list-group-item-lay 
pjaxlink">Overview</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/release_notes.html" class="list-group-item-lay 
pjaxlink">Release Notes</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/gettingstarted/concepts.html" 
class="list-group-item-lay pjaxlink">Technical Concepts</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/gettingstarted/terminology.html" 
class="list-group-item-lay pjaxlink">Terminology</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/gettingstarted/faq.html" class="list-group-item-lay 
pjaxlink">FAQ</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/gettingstarted/events.html" class="list-group-item-lay 
pjaxlink">Events and Conferences</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+      <li class="navlist">
+        <a href="/docs/gettingstarted/best_practices.html" 
class="list-group-item-lay pjaxlink">Community Best Practices</a>
+      </li>      
+      
+
+
+
+
+
+
+
+                  <ul>
+                  </li>
+              
+                  <li class="dropdown-submenu"><a href="#titleInstallation" 
data-toggle="collapse" class="navtitle">Installation</a>
+                  <ul class="dropdown-menu">
+                  
+
+
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/install/index.html" class="list-group-item-lay 
pjaxlink">Installation Guide</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/install/kylin_cluster.html" class="list-group-item-lay 
pjaxlink">Deploy in Cluster Mode</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/install/configuration.html" class="list-group-item-lay 
pjaxlink">Kylin Configuration</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/install/kylin_aws_emr.html" class="list-group-item-lay 
pjaxlink">Install Kylin on AWS EMR</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/install/kylin_docker.html" class="list-group-item-lay 
pjaxlink">Run Kylin with Docker</a>
+      </li>      
+      
+
+
+
+
+
+
+
+                  <ul>
+                  </li>
+              
+                  <li class="dropdown-submenu"><a href="#titleTutorial" 
data-toggle="collapse" class="navtitle">Tutorial</a>
+                  <ul class="dropdown-menu">
+                  
+
+
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/kylin_sample.html" class="list-group-item-lay 
pjaxlink">Quick Start with Sample Cube</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/web.html" class="list-group-item-lay 
pjaxlink">Web Interface</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/create_cube.html" class="list-group-item-lay 
pjaxlink">Cube Wizard</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/cube_build_job.html" 
class="list-group-item-lay pjaxlink">Cube Build and Job Monitoring</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/sql_reference.html" class="list-group-item-lay 
pjaxlink">SQL Reference</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/project_table_level_acl.html" 
class="list-group-item-lay pjaxlink">Project And Table Level ACL</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/cube_spark.html" class="list-group-item-lay 
pjaxlink">Build Cube with Spark</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/cube_streaming.html" 
class="list-group-item-lay pjaxlink">Scalable Cubing from Kafka</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/cube_build_performance.html" 
class="list-group-item-lay pjaxlink">Cube Build Tuning</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/kylin_client_tool.html" 
class="list-group-item-lay pjaxlink">Kylin Python Client</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/setup_systemcube.html" 
class="list-group-item-lay pjaxlink">Set Up System Cube</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/use_cube_planner.html" 
class="list-group-item-lay pjaxlink">Use Cube Planner</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/use_dashboard.html" class="list-group-item-lay 
pjaxlink">Use Dashboard</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/setup_jdbc_datasource.html" 
class="list-group-item-lay pjaxlink">Setup JDBC Data Source</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/hybrid.html" class="list-group-item-lay 
pjaxlink">Hybrid Model</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/mysql_metastore.html" 
class="list-group-item-lay pjaxlink">Use MySQL as Metastore</a>
+      </li>      
+      
+
+
+
+
+
+
+
+                  <ul>
+                  </li>
+              
+                  <li class="dropdown-submenu"><a href="#titleIntegration" 
data-toggle="collapse" class="navtitle">Integration</a>
+                  <ul class="dropdown-menu">
+                  
+
+
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/odbc.html" class="list-group-item-lay 
pjaxlink">Kylin ODBC Driver</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/jdbc.html" class="list-group-item-lay 
pjaxlink">Kylin JDBC Driver</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/tableau.html" class="list-group-item-lay 
pjaxlink">Tableau 8</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/tableau_91.html" class="list-group-item-lay 
pjaxlink">Tableau 9</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/powerbi.html" class="list-group-item-lay 
pjaxlink">MS Excel and Power BI</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/microstrategy.html" class="list-group-item-lay 
pjaxlink">MicroStrategy</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/squirrel.html" class="list-group-item-lay 
pjaxlink">SQuirreL</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/flink.html" class="list-group-item-lay 
pjaxlink">Apache Flink</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/spark.html" class="list-group-item-lay 
pjaxlink">Apache Spark</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/hue.html" class="list-group-item-lay 
pjaxlink">Hue</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/Qlik.html" class="list-group-item-lay 
pjaxlink">Qlik Sense</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/tutorial/superset.html" class="list-group-item-lay 
pjaxlink">Superset</a>
+      </li>      
+      
+
+
+
+
+
+
+
+                  <ul>
+                  </li>
+              
+                  <li class="dropdown-submenu"><a href="#titleHow To" 
data-toggle="collapse" class="navtitle">How To</a>
+                  <ul class="dropdown-menu">
+                  
+
+
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/howto/howto_use_restapi.html" 
class="list-group-item-lay pjaxlink">Use RESTful API</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/howto/howto_build_cube_with_restapi.html" 
class="list-group-item-lay pjaxlink">Build Cube with API</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/howto/howto_optimize_cubes.html" 
class="list-group-item-lay pjaxlink">Optimize Cube Design</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/howto/howto_optimize_build.html" 
class="list-group-item-lay pjaxlink">Optimize Cube Build</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/howto/howto_backup_metadata.html" 
class="list-group-item-lay pjaxlink">Backup Metadata</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/howto/howto_cleanup_storage.html" 
class="list-group-item-lay pjaxlink">Cleanup Storage</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/howto/howto_upgrade.html" class="list-group-item-lay 
pjaxlink">Upgrade From Old Versions</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/howto/howto_use_cli.html" class="list-group-item-lay 
pjaxlink">Use Utility CLIs</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/howto/howto_ldap_and_sso.html" 
class="list-group-item-lay pjaxlink">Secure with LDAP and SSO</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/howto/howto_use_beeline.html" 
class="list-group-item-lay pjaxlink">Use Beeline for Hive</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/howto/howto_update_coprocessor.html" 
class="list-group-item-lay pjaxlink">Update Coprocessor</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/howto/howto_install_ranger_kylin_plugin.html" 
class="list-group-item-lay pjaxlink">Install Ranger Plugin</a>
+      </li>      
+      
+
+
+
+  
+      
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/docs/howto/howto_enable_zookeeper_acl.html" 
class="list-group-item-lay pjaxlink">Enable Zookeeper ACL</a>
+      </li>      
+      
+
+
+
+
+
+
+
+                  <ul>
+                  </li>
+              
+            </ul> -->
+          </li>
+          <li><a href="/download">Download</a></li>
+          <li><a href="/community" >Community</a></li>
+          <li><a href="/development" >Development</a></li>
+          <li><a href="/blog">Blog</a></li>
+          <li><a href="/cn" >中文版</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="page-content main">
+                       <header style=" padding:2em 0 0 ">
+                       <div class="container" >
+                         <div style=" padding:0 4em">
+                <div class="blog-icon">
+                  <img width="30" src="/assets/images/icon_blog_w.png">
+                </div>
+                               <h4 class="index-title" style=" 
float:left;"><span>Apache Kylin™ Technical Blog</span></h4>
+                         </div>
+                       </div>
+               </div>
+
+               <div class="container blog">
+                       <div>
+                               <article class="post-content" > 
+                               <!--
+* 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="post" style=" padding:2em 4em 4em 4em">
+
+  <header class="post-header">
+    <h1 class="post-title">Detailed Analysis of refine query cache</h1>
+    <p class="post-meta" >Jul 30, 2019 • Xiaoxiang Yu</p>
+  </header>
+
+  <article class="post-content" >
+    <hr />
+
+<h2 id="part-i-basic-introduction">Part-I Basic Introduction</h2>
+
+<h3 id="backgroud">Backgroud</h3>
+<p>In the past, query cache are not efficiently used in Kylin due to two 
aspects: <strong>coarse-grained cache expiration strategy</strong> and 
<strong>lack of external cache</strong>. Because of the aggressive cache 
expiration strategy, useful caches are often cleaned up unnecessarily. Because 
query caches are stored in local servers, they cannot be shared between 
servers. And because of the size limitation of local cache, not all useful 
query results can be cached.</p>
+
+<p>To deal with these shortcomings, we change the query cache expiration 
strategy by signature checking and introduce the memcached as Kylin’s 
distributed cache so that Kylin servers are able to share cache between 
servers. And it’s easy to add memcached servers to scale out distributed 
cache.</p>
+
+<p>These features is proposed and developed by eBay Kylin team. Thanks so much 
for their contribution.</p>
+
+<h3 id="related-jira">Related JIRA</h3>
+
+<ul>
+  <li><a href="https://issues.apache.org/jira/browse/KYLIN-2895";>KYLIN-2895 
Refine Query Cache</a>
+    <ul>
+      <li><a 
href="https://issues.apache.org/jira/browse/KYLIN-2899";>KYLIN-2899 Introduce 
segment level query cache</a></li>
+      <li><a 
href="https://issues.apache.org/jira/browse/KYLIN-2898";>KYLIN-2898 Introduce 
memcached as a distributed cache for queries</a></li>
+      <li><a 
href="https://issues.apache.org/jira/browse/KYLIN-2894";>KYLIN-2894 Change the 
query cache expiration strategy by signature checking</a></li>
+      <li><a 
href="https://issues.apache.org/jira/browse/KYLIN-2897";>KYLIN-2897 Improve the 
query execution for a set of duplicate queries in a short period</a></li>
+      <li><a 
href="https://issues.apache.org/jira/browse/KYLIN-2896";>KYLIN-2896 Refine query 
exception cache</a></li>
+    </ul>
+  </li>
+</ul>
+
+<hr />
+
+<h2 id="part-ii-deep-dive">Part-II Deep Dive</h2>
+
+<ul>
+  <li>Introduce memcached as a Distributed Query Cache</li>
+  <li>Segment Level Cache</li>
+  <li>Query Cache Expiration Strategy by Signature Checking</li>
+  <li>Other Enhancement</li>
+</ul>
+
+<h3 id="introduce-memcached-as-a-distributed-query-cache">Introduce memcached 
as a Distributed Query Cache</h3>
+
+<p><strong>Memcached</strong> is a Free and open source, high-performance, 
distributed memory object caching system. It is an in-memory key-value store 
for small chunks of arbitrary data (strings, objects) from results of database 
calls, API calls, or page rendering. It is simple yet powerful. Its simple 
design promotes quick deployment, ease of development, and solves many problems 
facing large data caches. Its API is available for most popular languages.</p>
+
+<p>By KYLIN-2898, Kylin use <strong>Memcached</strong> as distributed cache 
service, and use <strong>EhCache</strong> as local cache service. When <code 
class="highlighter-rouge">RemoteLocalFailOverCacheManager</code> is configured 
in <code class="highlighter-rouge">applicationContext.xml</code>, for each 
cache put/get action, Kylin will first check if remote cache service is 
available, only if remote cache service is unavailable, local cache service 
will be used.</p>
+
+<p>Firstly, multi query server can share query cache. For each kylin server, 
less jvm memory will be occupied which help to reduce GC pressure. Secondly, 
since memcached is centralized so duplicated cache entry will avoid in serval 
Kylin process. Thirdly, memcached has larger size and easy to scale out, this 
will help to reduce the chance which useful cache entry have to be dropped due 
to limited memory capacity.</p>
+
+<p>To handle node failure and to scale out memcached cluster, author has 
introduced a consistent hash strategy to smoothly solve such problem. Ketama is 
an implementation of a consistent hashing algorithm, meaning you can add or 
remove servers from the memcached pool without causing a complete remap of all 
keys. Detail could be checked at <a 
href="https://www.last.fm/user/RJ/journal/2007/04/10/rz_libketama_-_a_consistent_hashing_algo_for_memcache_clients";>Ketama
 consistent hash strategy</a>.</p>
+
+<p><img src="/images/blog/refine-query-cache/consistent-hashing.png" 
alt="consistent hashing" /></p>
+
+<h3 id="segment-level-cache">Segment level Cache</h3>
+
+<p>Currently Kylin use sql as the cache key, when sql comes, if result exists 
in the cache, it will directly returned the cached result and don’t need to 
query hbase. When there is new segment build or existing segment refresh, all 
related cache result need to be evicted. For some frequently build cube such as 
streaming cube(NRT Streaming or Real-time OLAP), the cache miss will increase 
dramatically, that may decrease the query performance.</p>
+
+<p>Since for Kylin cube, most historical segments are immutable, the same 
query against historical segments should be always same, don’t need to be 
evicted for new segment building. So we decide to implement the segment level 
cache, it is a complement of the existing front-end cache, the idea is similar 
as the level1/level2 cache in operating system.</p>
+
+<p><img src="/images/blog/refine-query-cache/l1-l2-cache.png" 
alt="l1-l2-cache" /></p>
+
+<h3 id="query-cache-expiration-strategy-by-signature-checking">Query Cache 
Expiration Strategy by Signature Checking</h3>
+
+<p>Currently, to invalid query cache, <code 
class="highlighter-rouge">CacheService</code> will either invoke <code 
class="highlighter-rouge">cleanDataCache</code> or <code 
class="highlighter-rouge">cleanAllDataCache</code>. Both methods will clear all 
of the query cache , which is very inefficient and unnecessary. In production 
environment, there’s around hundreds of cubing jobs per day, which means the 
query cache will be cleared very several minutes. Then we introduced a 
signature to upgrade cache invalidation strategy.</p>
+
+<p>The basic idea is as follows:<br />
+When put SQLResponse into cache, we add signature for each SQLResponse. To 
calculate signature for SQLResponse, we choose the cube last build time and its 
segments to as input of <code 
class="highlighter-rouge">SignatureCalculator</code>.<br />
+When fetch <code class="highlighter-rouge">SQLResponse</code> for cache, first 
check whether the signature is consistent. If not, this cached value is overdue 
and will be invalidate.</p>
+
+<p>As for the calculation of signature is show as follows:<br />
+1. <code class="highlighter-rouge">toString</code> of <code 
class="highlighter-rouge">ComponentSignature</code> will concatenate member 
varible into a large String; if a <code 
class="highlighter-rouge">ComponentSignature</code> has other <code 
class="highlighter-rouge">ComponentSignature</code> as member, toString will be 
calculated recursively<br />
+2. return value of <code class="highlighter-rouge">toString</code> will be 
input of <code class="highlighter-rouge">SignatureCalculator</code>,<br />
+<code class="highlighter-rouge">SignatureCalculator</code> encode string using 
MD5 as identifer of signature of query cache</p>
+
+<p><img src="/images/blog/refine-query-cache/cache-signature.png" 
alt="cache-signature" /></p>
+
+<h3 id="other-enhancement">Other Enhancement</h3>
+
+<h4 
id="improve-the-query-execution-for-a-set-of-duplicate-queries-in-a-short-period">Improve
 the query execution for a set of duplicate queries in a short period</h4>
+
+<p>If same query enter Kylin at the same time by different client, for each 
query they can not find query cache so they must be calculated respectively. 
And even wrose, if these query are complex, they usually cost a long duration 
so Kylin have less chance to utilize cache query; and them cost large 
computation resources that will make query server has poor performance has harm 
to HBase cluster.</p>
+
+<p>To reduce the impact of duplicated and complex query, it may be a good idea 
to block query which came later, wait to first one return result as far as 
possible. This lazy strategy is especially useful if you have duplicated 
complex query came in same time. To enbale it, you should set <code 
class="highlighter-rouge">kylin.query.lazy-query-enabled</code> to <code 
class="highlighter-rouge">true</code>. Optionlly, you may set <code 
class="highlighter-rouge">kylin.query.lazy-query-waiting-timeout-milliseconds</code>
 to what you think later duplicated query wait duration to meet your 
situation.</p>
+
+<h4 id="remove-exception-cache">Remove exception cache</h4>
+<p>Formerly, query cache has been divided into two part, one part for storing 
success query result, another for failed query result, and they are invalidated 
respectively. It looks like not a good classification criteria because it is 
not fine-grained enough. After query cache signature was introduced, we have no 
reason to take them apart, so exception cache was removed.</p>
+
+<hr />
+
+<h2 id="part-iii-how-to-use">Part-III How to Use</h2>
+
+<p>To get prepared, you need to install memcached, you may refer to 
https://github.com/memcached/memcached/wiki/Install. Then you should modify 
<code class="highlighter-rouge">kylin.properties</code> and <code 
class="highlighter-rouge">applicationContext.xml</code>.</p>
+
+<ul>
+  <li>kylin.properties</li>
+</ul>
+
+<div class="highlight"><pre><code class="language-groff" 
data-lang="groff">kylin.cache.memcached.hosts=10.1.2.42:11211
+kylin.query.cache-signature-enabled=true
+kylin.query.lazy-query-enabled=true
+kylin.metrics.memcached.enabled=true
+kylin.query.segment-cache-enabled=true</code></pre></div>
+
+<ul>
+  <li>applicationContext.xml</li>
+</ul>
+
+<div class="highlight"><pre><code class="language-groff" 
data-lang="groff">&lt;cache:annotation-driven/&gt;
+
+&lt;bean id="ehcache" 
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"
+      p:configLocation="classpath:ehcache-test.xml" p:shared="true"/&gt;
+
+&lt;bean id="remoteCacheManager" 
class="org.apache.kylin.cache.cachemanager.MemcachedCacheManager"/&gt;
+&lt;bean id="localCacheManager" 
class="org.apache.kylin.cache.cachemanager.InstrumentedEhCacheCacheManager"
+      p:cacheManager-ref="ehcache"/&gt;
+&lt;bean id="cacheManager" 
class="org.apache.kylin.cache.cachemanager.RemoteLocalFailOverCacheManager"/&gt;
+
+&lt;bean id="memcachedCacheConfig" 
class="org.apache.kylin.cache.memcached.MemcachedCacheConfig"&gt;
+    &lt;property name="timeout" value="500"/&gt;
+    &lt;property name="hosts" value="${kylin.cache.memcached.hosts}"/&gt;
+&lt;/bean&gt;</code></pre></div>
+
+<h3 id="configuration-for-query-cache">Configuration for query cache</h3>
+
+<h4 id="general-part">General part</h4>
+
+<table>
+  <thead>
+    <tr>
+      <th style="text-align: left">Conf Key</th>
+      <th style="text-align: left">Conf value</th>
+      <th style="text-align: left">Explanation</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td style="text-align: left">kylin.query.cache-enabled</td>
+      <td style="text-align: left">boolean, default true</td>
+      <td style="text-align: left">whether to enable query cache</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">kylin.query.cache-threshold-duration</td>
+      <td style="text-align: left">long, in milliseconds, default is 2000</td>
+      <td style="text-align: left">query duration threshold</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">kylin.query.cache-threshold-scan-count</td>
+      <td style="text-align: left">long, default is 10240</td>
+      <td style="text-align: left">query scan row count threshold</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">kylin.query.cache-threshold-scan-bytes</td>
+      <td style="text-align: left">long, default is 1024 * 1024 (1MB)</td>
+      <td style="text-align: left">query scan byte threshold</td>
+    </tr>
+  </tbody>
+</table>
+
+<h4 id="memcached-part">Memcached part</h4>
+
+<table>
+  <thead>
+    <tr>
+      <th style="text-align: left">Conf Key</th>
+      <th style="text-align: left">Conf value</th>
+      <th style="text-align: left">Explanation</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td style="text-align: left">kylin.cache.memcached.hosts</td>
+      <td style="text-align: left">host1:port1,host2:port2</td>
+      <td style="text-align: left">host list of memcached host</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">kylin.query.segment-cache-enabled</td>
+      <td style="text-align: left">default false</td>
+      <td style="text-align: left">wether to enable</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">kylin.query.segment-cache-timeout</td>
+      <td style="text-align: left">default 2000</td>
+      <td style="text-align: left">timeout of memcached</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">kylin.query.segment-cache-max-size</td>
+      <td style="text-align: left">200 (MB)</td>
+      <td style="text-align: left">max size put into memcached</td>
+    </tr>
+  </tbody>
+</table>
+
+<h4 id="cache-signature-part">Cache signature part</h4>
+
+<table>
+  <thead>
+    <tr>
+      <th style="text-align: left">Conf Key</th>
+      <th style="text-align: left">Conf value</th>
+      <th style="text-align: left">Explanation</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td style="text-align: left">kylin.query.cache-signature-enabled</td>
+      <td style="text-align: left">default false</td>
+      <td style="text-align: left">whether to use signature for query 
cache</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">kylin.query.signature-class</td>
+      <td style="text-align: left">default is 
org.apache.kylin.rest.signature.FactTableRealizationSetCalculator</td>
+      <td style="text-align: left">use which class to calculate signature of 
query cache</td>
+    </tr>
+  </tbody>
+</table>
+
+<h4 id="other-optimize-part">Other optimize part</h4>
+
+<table>
+  <thead>
+    <tr>
+      <th style="text-align: left">Conf Key</th>
+      <th style="text-align: left">Conf value</th>
+      <th style="text-align: left">Explanation</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td style="text-align: left">kylin.query.lazy-query-enabled</td>
+      <td style="text-align: left">default false</td>
+      <td style="text-align: left">whether to block duplicated sql query</td>
+    </tr>
+    <tr>
+      <td style="text-align: 
left">kylin.query.lazy-query-waiting-timeout-milliseconds</td>
+      <td style="text-align: left">long , in milliseconds, default is 
60000</td>
+      <td style="text-align: left">max druation for blocking duplicated sql 
query</td>
+    </tr>
+  </tbody>
+</table>
+
+<h4 id="metrics-part">Metrics part</h4>
+
+<table>
+  <thead>
+    <tr>
+      <th style="text-align: left">Conf Key</th>
+      <th style="text-align: left">Conf value</th>
+      <th style="text-align: left">Explanation</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td style="text-align: left">kylin.metrics.memcached.enabled</td>
+      <td style="text-align: left">true</td>
+      <td style="text-align: left">Enable memcached metrics in memcached.</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">kylin.metrics.memcached.metricstype</td>
+      <td style="text-align: left">off/performance/debug</td>
+      <td style="text-align: left">refer to 
net.spy.memcached.metrics.MetricType</td>
+    </tr>
+  </tbody>
+</table>
+
+  </article>
+
+</div>
+
+
+
+
+
+                               </article>
+                       </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>
+        <div class="row">
+            <div class="col-md-12 widget">
+                <div class="widget-body">
+                    <div class="footer-img">
+                        <a href="http://www.apache.org";>
+                            <img id="asf-logo" height="78px" alt="Apache 
Software Foundation" src="/assets/images/apache_footer.png">
+                        </a>
+                    </div>
+                    <p style="padding-top: 11px;">
+                        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>. 
+                    </p>
+                    <p style="margin-bottom: 11px;">    
+                        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>
+
+
+
+

Modified: kylin/site/blog/index.html
URL: 
http://svn.apache.org/viewvc/kylin/site/blog/index.html?rev=1864154&r1=1864153&r2=1864154&view=diff
==============================================================================
--- kylin/site/blog/index.html (original)
+++ kylin/site/blog/index.html Thu Aug  1 14:04:52 2019
@@ -6367,6 +6367,16 @@ var _hmt = _hmt || [];
             
             
             <div class="col-md-6 col-lg-6 col-xs-12">
+              <a class="blog-card" 
href="/blog/2019/07/30/detailed-analysis-of-refine-query-cache/">
+                <div class="blog-pic">
+                  <img width="20" src="../assets/images/icon_blog_w.png" />
+                </div>
+                <p class="blog-title">Detailed Analysis of refine query 
cache</p>
+                <p align="left" class="post-meta">posted: Jul 30, 2019</p>
+              </a>
+            </div>
+      
+            <div class="col-md-6 col-lg-6 col-xs-12">
               <a class="blog-card" 
href="/blog/2019/07/01/deep-dive-real-time-olap/">
                 <div class="blog-pic">
                   <img width="20" src="../assets/images/icon_blog_w.png" />

Modified: kylin/site/cn/docs30/gettingstarted/faq.html
URL: 
http://svn.apache.org/viewvc/kylin/site/cn/docs30/gettingstarted/faq.html?rev=1864154&r1=1864153&r2=1864154&view=diff
==============================================================================
--- kylin/site/cn/docs30/gettingstarted/faq.html (original)
+++ kylin/site/cn/docs30/gettingstarted/faq.html Thu Aug  1 14:04:52 2019
@@ -499,6 +499,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/index.html" class="list-group-item-lay 
pjaxlink">概述</a>
       </li>      
@@ -629,6 +633,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/install/index.html" class="list-group-item-lay 
pjaxlink">安装指南</a>
       </li>      
@@ -726,6 +734,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/install/kylin_cluster.html" 
class="list-group-item-lay pjaxlink">集群模式部署</a>
       </li>      
@@ -811,6 +823,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/install/configuration.html" 
class="list-group-item-lay pjaxlink">Kylin 配置</a>
       </li>      
@@ -904,6 +920,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/install/kylin_aws_emr.html" 
class="list-group-item-lay pjaxlink">在 AWS EMR 上安装 Kylin</a>
       </li>      
@@ -1005,6 +1025,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/install/kylin_docker.html" 
class="list-group-item-lay pjaxlink">用 Docker 运行 Kylin</a>
       </li>      
@@ -1174,6 +1198,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/kylin_sample.html" 
class="list-group-item-lay pjaxlink">样例 Cube 快速入门</a>
       </li>      
@@ -1393,6 +1421,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/web.html" class="list-group-item-lay 
pjaxlink">Web 界面</a>
       </li>      
@@ -1508,6 +1540,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/create_cube.html" 
class="list-group-item-lay pjaxlink">Cube 创建</a>
       </li>      
@@ -1627,6 +1663,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/cube_build_job.html" 
class="list-group-item-lay pjaxlink">Cube 构建和 Job 监控</a>
       </li>      
@@ -1818,6 +1858,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/sql_reference.html" 
class="list-group-item-lay pjaxlink">SQL 快速参考</a>
       </li>      
@@ -1987,6 +2031,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/project_level_acl.html" 
class="list-group-item-lay pjaxlink">Project Level ACL</a>
       </li>      
@@ -2114,6 +2162,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/cube_spark.html" 
class="list-group-item-lay pjaxlink">用 Spark 构建 Cube</a>
       </li>      
@@ -2245,6 +2297,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/cube_streaming.html" 
class="list-group-item-lay pjaxlink">从 Kafka 流构建 Cube</a>
       </li>      
@@ -2467,6 +2523,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
   
     
   
+    
+  
+    
+  
 
 
 
@@ -2586,6 +2646,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/cube_build_performance.html" 
class="list-group-item-lay pjaxlink">优化 Cube 构建</a>
       </li>      
@@ -2733,6 +2797,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/kylin_client_tool.html" 
class="list-group-item-lay pjaxlink">Python 客户端</a>
       </li>      
@@ -2916,6 +2984,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/setup_systemcube.html" 
class="list-group-item-lay pjaxlink">建立系统 Cube</a>
       </li>      
@@ -3127,6 +3199,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/use_cube_planner.html" 
class="list-group-item-lay pjaxlink">使用 Cube Planner</a>
       </li>      
@@ -3342,6 +3418,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/use_dashboard.html" 
class="list-group-item-lay pjaxlink">使用 Dashboard</a>
       </li>      
@@ -3521,6 +3601,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/setup_jdbc_datasource.html" 
class="list-group-item-lay pjaxlink">建立 JDBC 数据源</a>
       </li>      
@@ -3660,6 +3744,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/hybrid.html" class="list-group-item-lay 
pjaxlink">Hybrid 模型</a>
       </li>      
@@ -3817,6 +3905,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/mysql_metastore.html" 
class="list-group-item-lay pjaxlink">基于 MySQL 的 Metastore 配置</a>
       </li>      
@@ -3996,6 +4088,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/odbc.html" class="list-group-item-lay 
pjaxlink">ODBC 驱动</a>
       </li>      
@@ -4139,6 +4235,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/jdbc.html" class="list-group-item-lay 
pjaxlink">JDBC 驱动</a>
       </li>      
@@ -4342,6 +4442,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/tableau.html" class="list-group-item-lay 
pjaxlink">Tableau 8</a>
       </li>      
@@ -4549,6 +4653,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/tableau_91.html" 
class="list-group-item-lay pjaxlink">Tableau 9</a>
       </li>      
@@ -4714,6 +4822,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/powerbi.html" class="list-group-item-lay 
pjaxlink">Excel 及 Power BI 教程</a>
       </li>      
@@ -4936,6 +5048,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
   
     
   
+    
+  
+    
+  
 
 
 
@@ -5127,6 +5243,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/squirrel.html" class="list-group-item-lay 
pjaxlink">SQuirreL</a>
       </li>      
@@ -5234,6 +5354,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/Qlik.html" class="list-group-item-lay 
pjaxlink">Qlik Sense 集成</a>
       </li>      
@@ -5433,6 +5557,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
     
   
     
+  
+    
+  
+    
       <li class="navlist">
         <a href="/cn/docs30/tutorial/superset.html" class="list-group-item-lay 
pjaxlink">Superset</a>
       </li>      
@@ -5469,6 +5597,10 @@ vi $KYLIN_HOME/tomcat/webapps/kylin/WEB-
   
     
   
+    
+  
+    
+  
     
   
     


Reply via email to