Author: lidong Date: Fri Mar 22 14:12:46 2019 New Revision: 1856055 URL: http://svn.apache.org/viewvc?rev=1856055&view=rev Log: Update 2018-12-12-why-did-meituan-develop-kylin-on-druid-part1-of-2.md
Modified: kylin/site/blog/2015/12/25/support-powerbi-tableau9/index.html kylin/site/blog/2018/12/12/why-did-meituan-develop-kylin-on-druid-part1-of-2/index.html kylin/site/cn/docs/howto/howto_backup_metadata.html kylin/site/docs/howto/howto_backup_metadata.html kylin/site/feed.xml Modified: kylin/site/blog/2015/12/25/support-powerbi-tableau9/index.html URL: http://svn.apache.org/viewvc/kylin/site/blog/2015/12/25/support-powerbi-tableau9/index.html?rev=1856055&r1=1856054&r2=1856055&view=diff ============================================================================== --- kylin/site/blog/2015/12/25/support-powerbi-tableau9/index.html (original) +++ kylin/site/blog/2015/12/25/support-powerbi-tableau9/index.html Fri Mar 22 14:12:46 2019 @@ -6383,11 +6383,11 @@ var _hmt = _hmt || []; <p>Microsoft Power BI is a business intelligence tool providing rich functionality and experience for data visualization and processing to user.</p> <h3 id="tableau-9">Tableau 9</h3> -<p>Tableau is one of the most famous business intelligence software on Windows platform. With simple operation and powerful functionality, users can easily drag and drop to visualize data in large scale. Besides, Tableau supports reading ODBC data sources, in a Live connection mode. In latest version 9.1, user experience gets better improved very much.</p> +<p>Tableau is one of the most famous business intelligence software on Windows platform. With simple operation and powerful functionality, users can easily drag and drop to visualize data in large scale. Besides, Tableau supports reading ODBC data sources, in a Live connection mode. In latest version 9.1, user experience gets improved greatly.</p> <h3 id="support-from-kylin-community">Support from Kylin community</h3> -<p>There are many requirements from eBay and other users who are using Kylin today, especially from analysts who using these tools everyday. The slow query performance of interactive with big data on Hadoop through other tool, like Hive, brings big chellenge for them.<br /> -With sub-seconds query latency feature of Apache Kylin platform, analysts are able to run interactive query agaisting billions rows data in seconds, with these fancy reporting and visualization tools.</p> +<p>There are many requirements from eBay and other users who are using Kylin today, especially from analysts who uses these tools everyday. The slow query performance while interacting with big data on Hadoop through other tool, like Hive, brings big challenge for them.<br /> +With sub-seconds query latency feature of Apache Kylin platform, analysts are able to run interactive query against billions rows data in seconds, with these fancy reporting and visualization tools.</p> <h3 id="tutorial">Tutorial</h3> <p>Canât wait to try? Please refer to following tutorials: <br /> Modified: kylin/site/blog/2018/12/12/why-did-meituan-develop-kylin-on-druid-part1-of-2/index.html URL: http://svn.apache.org/viewvc/kylin/site/blog/2018/12/12/why-did-meituan-develop-kylin-on-druid-part1-of-2/index.html?rev=1856055&r1=1856054&r2=1856055&view=diff ============================================================================== --- kylin/site/blog/2018/12/12/why-did-meituan-develop-kylin-on-druid-part1-of-2/index.html (original) +++ kylin/site/blog/2018/12/12/why-did-meituan-develop-kylin-on-druid-part1-of-2/index.html Fri Mar 22 14:12:46 2019 @@ -6453,7 +6453,7 @@ Graphic 4 Druid Schema</p> <p>Kylin stores its data in HBase by converting the Dimensions and Measures into HBase Keys and Values, respectively. As HBase doesnât support secondary index and only has one RowKey index, Kylinâs Dimension values will be combined into a fixed sequence to store as RowKey. In this way, filtering on a Dimension in the front of the sequence will perform better than those at the back. Hereâs an example:</p> -<p>In the testing environment, there are two almost identical Cubes (Cube1 and Cube2). They both have the same data source and the same Dimensions/Measures. The only difference is the order of the Dimensions in the RowKey: Cube1 puts P_LINEORDER.LO_CUSTKEY at the first while Cube2 the last.<br /> +<p>In the testing environment, there are two almost identical Cubes (Cube1 and Cube2). They both have the same data source and the same Dimensions/Measures. The only difference is the order of the Dimensions in the RowKey: Cube1 puts P_LINEORDER.LO_ORDERKEY at the first while Cube2 the last.<br /> <img src="/images/blog/Kylin-On-Durid/5 cube1_rowkey_sequence.png" alt="" /><br /> Graphic 5 Cube1 RowKey Sequence</p> Modified: kylin/site/cn/docs/howto/howto_backup_metadata.html URL: http://svn.apache.org/viewvc/kylin/site/cn/docs/howto/howto_backup_metadata.html?rev=1856055&r1=1856054&r2=1856055&view=diff ============================================================================== --- kylin/site/cn/docs/howto/howto_backup_metadata.html (original) +++ kylin/site/cn/docs/howto/howto_backup_metadata.html Fri Mar 22 14:12:46 2019 @@ -173,6 +173,104 @@ kylin.metadata.url=kylin_metadata@hbase< <p>è¿è¡¨æå æ°æ®ä¼è¢«ä¿åå¨ä¸ä¸ªå«ä½ âkylin_metadataâçhtable éãä½ å¯ä»¥å¨ hbase shell é scan 该 htbale æ¥è·åå®ã</p> +<h2 id="section">å æ°æ®è·¯å¾</h2> + +<p>Kylin使ç¨<code class="highlighter-rouge">resource root path + resource name + resource suffix</code>ä½ä¸ºkeyå¼(HBaseä¸çrowkey)æ¥åå¨å æ°æ®ãä½ å¯ä»¥åèå¦ä¸è¡¨æ ¼ä½¿ç¨<code class="highlighter-rouge">./bin/metastore.sh</code>å½ä»¤ã</p> + +<table> + <thead> + <tr> + <th>Resource root path</th> + <th style="text-align: left">resource name</th> + <th style="text-align: left">resource suffix</th> + </tr> + </thead> + <tbody> + <tr> + <td>/cube</td> + <td style="text-align: left">/cube name</td> + <td style="text-align: left">.json</td> + </tr> + <tr> + <td>/cube_desc</td> + <td style="text-align: left">/cube name</td> + <td style="text-align: left">.json</td> + </tr> + <tr> + <td>/cube_statistics</td> + <td style="text-align: left">/cube name/uuid</td> + <td style="text-align: left">.seq</td> + </tr> + <tr> + <td>/model_desc</td> + <td style="text-align: left">/model name</td> + <td style="text-align: left">.json</td> + </tr> + <tr> + <td>/dict</td> + <td style="text-align: left">/DATABASE.TABLE/COLUMN/uuid</td> + <td style="text-align: left">.dict</td> + </tr> + <tr> + <td>/project</td> + <td style="text-align: left">/project name</td> + <td style="text-align: left">.json</td> + </tr> + <tr> + <td>/table_snapshot</td> + <td style="text-align: left">/DATABASE.TABLE/uuid</td> + <td style="text-align: left">.snapshot</td> + </tr> + <tr> + <td>/table</td> + <td style="text-align: left">/DATABASE.TABLEâproject name</td> + <td style="text-align: left">.json</td> + </tr> + <tr> + <td>/table_exd</td> + <td style="text-align: left">/DATABASE.TABLEâproject name</td> + <td style="text-align: left">.json</td> + </tr> + <tr> + <td>/execute</td> + <td style="text-align: left">/job id</td> + <td style="text-align: left"> </td> + </tr> + <tr> + <td>/execute_out</td> + <td style="text-align: left">/job id-step index</td> + <td style="text-align: left"> </td> + </tr> + <tr> + <td>/kafaka</td> + <td style="text-align: left">/DATABASE.TABLE</td> + <td style="text-align: left">.json</td> + </tr> + <tr> + <td>/streaming</td> + <td style="text-align: left">/DATABASE.TABLE</td> + <td style="text-align: left">.json</td> + </tr> + <tr> + <td>/user</td> + <td style="text-align: left">/user name</td> + <td style="text-align: left"> </td> + </tr> + </tbody> +</table> + +<h2 id="section-1">æ¥çå æ°æ®</h2> + +<p>Kylin以äºè¿å¶åèçæ ¼å¼å°å æ°æ®åå¨å¨HBaseä¸ï¼å¦æä½ æ³è¦æ¥çä¸äºå æ°æ®ï¼å¯ä»¥è¿è¡ï¼</p> + +<div class="highlight"><pre><code class="language-groff" data-lang="groff">./bin/metastore.sh list /path/to/store/metadata</code></pre></div> + +<p>ååºåå¨å¨æå®è·¯å¾ä¸çææå®ä½å æ°æ®ãç¶åè¿è¡ï¼</p> + +<div class="highlight"><pre><code class="language-groff" data-lang="groff">./bin/metastore.sh cat /path/to/store/entity/metadata.</code></pre></div> + +<p>æ¥çæä¸ªå®ä½çå æ°æ®ã</p> + <h2 id="metadata">使ç¨äºè¿å¶å æ¥å¤ä»½ metadata</h2> <p>ææ¶ä½ éè¦å° Kylin ç metadata store ä» hbase å¤ä»½å°ç£çæä»¶ç³»ç»ãå¨è¿ç§æ åµä¸ï¼åè®¾ä½ å¨é¨ç½² Kylin ç hadoop å½ä»¤è¡ï¼ææ²çï¼éï¼ä½ å¯ä»¥å°KYLIN_HOMEå¹¶è¿è¡ï¼</p> @@ -181,6 +279,12 @@ kylin.metadata.url=kylin_metadata@hbase< <p>æ¥å°ä½ çå æ°æ®å¯¼åºå°æ¬å°ç®å½ï¼è¿ä¸ªç®å½å¨KYLIN_HOME/metadata_backpsä¸ï¼å®çå½åè§å使ç¨äºå½åæ¶é´ä½ä¸ºåæ°ï¼KYLIN_HOME/meta_backups/meta_year_month_day_hour_minute_second ã</p> +<p>æ¤å¤, ä½ å¯ä»¥è¿è¡:</p> + +<div class="highlight"><pre><code class="language-groff" data-lang="groff">./bin/metastore.sh fetch /path/to/store/metadata</code></pre></div> + +<p>æéæ©å°å¯¼åºå æ°æ®. 举个æ å, è¿è¡ <code class="highlighter-rouge">./bin/metastore.sh fetch /cube_desc/</code> è·åææçcube descå æ°æ®, æè è¿è¡ <code class="highlighter-rouge">./bin/metastore.sh fetch /cube_desc/kylin_sales_cube.json</code> 导åºå个cube descçå æ°æ®ã</p> + <h2 id="metadata-1">使ç¨äºè¿å¶å æ¥æ¢å¤ metadata</h2> <p>ä¸ä¸ä½ åç°ä½ çå æ°æ®è¢«æå¾ä¸å¢ç³ï¼æ³è¦æ¢å¤å åçå¤ä»½ï¼</p> @@ -214,7 +318,7 @@ mkdir /path/to/restore_new/cube</code></ <p>åªæå¨æ¤æä»¶å¤¹ä¸çæä»¶æä¼ä¸ä¼ å°Kylin Metastoreã åæ ·ï¼å¨æ¢å¤å®æåï¼åå» Web UI ä¸çâReload Metadataâæé®ä»¥å·æ°ç¼åã</p> -<h2 id="section">å¨å¼åç¯å¢å¤ä»½/æ¢å¤å æ°æ®</h2> +<h2 id="section-2">å¨å¼åç¯å¢å¤ä»½/æ¢å¤å æ°æ®</h2> <p>å¨å¼åè°è¯ Kylin æ¶ï¼å ¸åçç¯å¢æ¯ä¸å°è£ æ IDE çå¼åæºä¸åä¸ä¸ªåå°çæ²çï¼éå¸¸ä½ ä¼å代ç å¹¶å¨å¼åæºä¸è¿è¡æµè¯æ¡ä¾ï¼ä½æ¯æ¬¡é½éè¦å°äºè¿å¶å æ¾å°æ²çéä»¥æ£æ¥å æ°æ®æ¯å¾éº»ç¦çãè¿æ¶æä¸ä¸ªå为 SandboxMetastoreCLI å·¥å ·ç±»å¯ä»¥å¸®å©ä½ å¨å¼åæºæ¬å°ä¸è½½/ä¸ä¼ å æ°æ®ã</p> Modified: kylin/site/docs/howto/howto_backup_metadata.html URL: http://svn.apache.org/viewvc/kylin/site/docs/howto/howto_backup_metadata.html?rev=1856055&r1=1856054&r2=1856055&view=diff ============================================================================== --- kylin/site/docs/howto/howto_backup_metadata.html (original) +++ kylin/site/docs/howto/howto_backup_metadata.html Fri Mar 22 14:12:46 2019 @@ -6352,6 +6352,104 @@ kylin.metadata.url=kylin_metadata@hbase< <p>This indicates that the metadata will be saved as a htable called <code class="highlighter-rouge">kylin_metadata</code>. You can scan the htable in hbase shell to check it out.</p> +<h2 id="metadata-directory">Metadata directory</h2> + +<p>Kylin metastore use <code class="highlighter-rouge">resource root path + resource name + resource suffix</code> as key (rowkey in hbase) to store metadata. You can refer to the following table to use <code class="highlighter-rouge">./bin/metastore.sh</code>.</p> + +<table> + <thead> + <tr> + <th>Resource root path</th> + <th style="text-align: left">resource name</th> + <th style="text-align: left">resource suffix</th> + </tr> + </thead> + <tbody> + <tr> + <td>/cube</td> + <td style="text-align: left">/cube name</td> + <td style="text-align: left">.json</td> + </tr> + <tr> + <td>/cube_desc</td> + <td style="text-align: left">/cube name</td> + <td style="text-align: left">.json</td> + </tr> + <tr> + <td>/cube_statistics</td> + <td style="text-align: left">/cube name/uuid</td> + <td style="text-align: left">.seq</td> + </tr> + <tr> + <td>/model_desc</td> + <td style="text-align: left">/model name</td> + <td style="text-align: left">.json</td> + </tr> + <tr> + <td>/dict</td> + <td style="text-align: left">/DATABASE.TABLE/COLUMN/uuid</td> + <td style="text-align: left">.dict</td> + </tr> + <tr> + <td>/project</td> + <td style="text-align: left">/project name</td> + <td style="text-align: left">.json</td> + </tr> + <tr> + <td>/table_snapshot</td> + <td style="text-align: left">/DATABASE.TABLE/uuid</td> + <td style="text-align: left">.snapshot</td> + </tr> + <tr> + <td>/table</td> + <td style="text-align: left">/DATABASE.TABLEâproject name</td> + <td style="text-align: left">.json</td> + </tr> + <tr> + <td>/table_exd</td> + <td style="text-align: left">/DATABASE.TABLEâproject name</td> + <td style="text-align: left">.json</td> + </tr> + <tr> + <td>/execute</td> + <td style="text-align: left">/job id</td> + <td style="text-align: left"> </td> + </tr> + <tr> + <td>/execute_out</td> + <td style="text-align: left">/job id-step index</td> + <td style="text-align: left"> </td> + </tr> + <tr> + <td>/kafaka</td> + <td style="text-align: left">/DATABASE.TABLE</td> + <td style="text-align: left">.json</td> + </tr> + <tr> + <td>/streaming</td> + <td style="text-align: left">/DATABASE.TABLE</td> + <td style="text-align: left">.json</td> + </tr> + <tr> + <td>/user</td> + <td style="text-align: left">/user name</td> + <td style="text-align: left"> </td> + </tr> + </tbody> +</table> + +<h2 id="view-metadata">View metadata</h2> + +<p>Kylin store metadata in Byte format in HBase. If you want to view some metadata, you can run:</p> + +<div class="highlight"><pre><code class="language-groff" data-lang="groff">./bin/metastore.sh list /path/to/store/metadata</code></pre></div> + +<p>to list the entity stored in specified directory, and then run:</p> + +<div class="highlight"><pre><code class="language-groff" data-lang="groff">./bin/metastore.sh cat /path/to/store/entity/metadata.</code></pre></div> + +<p>to view one entity metadata.</p> + <h2 id="backup-metadata-with-binary-package">Backup metadata with binary package</h2> <p>Sometimes you need to backup the Kylinâs metadata store from hbase to your disk file system.<br /> @@ -6361,6 +6459,12 @@ In such cases, assuming youâre on t <p>to dump your metadata to your local folder a folder under KYLIN_HOME/metadata_backps, the folder is named after current time with the syntax: KYLIN_HOME/meta_backups/meta_year_month_day_hour_minute_second</p> +<p>In addition, you can run:</p> + +<div class="highlight"><pre><code class="language-groff" data-lang="groff">./bin/metastore.sh fetch /path/to/store/metadata</code></pre></div> + +<p>to dump metadata selectively. For example, run <code class="highlighter-rouge">./bin/metastore.sh fetch /cube_desc/</code> to get all cube desc metadata, or run <code class="highlighter-rouge">./bin/metastore.sh fetch /cube_desc/kylin_sales_cube.json</code> to get single cube desc metadata.</p> + <h2 id="restore-metadata-with-binary-package">Restore metadata with binary package</h2> <p>In case you find your metadata store messed up, and you want to restore to a previous backup:</p> Modified: kylin/site/feed.xml URL: http://svn.apache.org/viewvc/kylin/site/feed.xml?rev=1856055&r1=1856054&r2=1856055&view=diff ============================================================================== --- kylin/site/feed.xml (original) +++ kylin/site/feed.xml Fri Mar 22 14:12:46 2019 @@ -19,8 +19,8 @@ <description>Apache Kylin Home</description> <link>http://kylin.apache.org/</link> <atom:link href="http://kylin.apache.org/feed.xml" rel="self" type="application/rss+xml"/> - <pubDate>Mon, 18 Mar 2019 18:21:12 -0700</pubDate> - <lastBuildDate>Mon, 18 Mar 2019 18:21:12 -0700</lastBuildDate> + <pubDate>Fri, 22 Mar 2019 06:59:28 -0700</pubDate> + <lastBuildDate>Fri, 22 Mar 2019 06:59:28 -0700</lastBuildDate> <generator>Jekyll v2.5.3</generator> <item> @@ -570,7 +570,7 @@ Graphic 4 Druid Schema</p> <p>Kylin stores its data in HBase by converting the Dimensions and Measures into HBase Keys and Values, respectively. As HBase doesnât support secondary index and only has one RowKey index, Kylinâs Dimension values will be combined into a fixed sequence to store as RowKey. In this way, filtering on a Dimension in the front of the sequence will perform better than those at the back. Hereâs an example:</p> -<p>In the testing environment, there are two almost identical Cubes (Cube1 and Cube2). They both have the same data source and the same Dimensions/Measures. The only difference is the order of the Dimensions in the RowKey: Cube1 puts P_LINEORDER.LO_CUSTKEY at the first while Cube2 the last.<br /> +<p>In the testing environment, there are two almost identical Cubes (Cube1 and Cube2). They both have the same data source and the same Dimensions/Measures. The only difference is the order of the Dimensions in the RowKey: Cube1 puts P_LINEORDER.LO_ORDERKEY at the first while Cube2 the last.<br /> <img src="/images/blog/Kylin-On-Durid/5 cube1_rowkey_sequence.png" alt="" /><br /> Graphic 5 Cube1 RowKey Sequence</p>