Modified: kylin/site/feed.xml URL: http://svn.apache.org/viewvc/kylin/site/feed.xml?rev=1891875&r1=1891874&r2=1891875&view=diff ============================================================================== --- kylin/site/feed.xml (original) +++ kylin/site/feed.xml Thu Jul 29 14:22:05 2021 @@ -19,11 +19,108 @@ <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>Wed, 21 Jul 2021 20:26:08 -0700</pubDate> - <lastBuildDate>Wed, 21 Jul 2021 20:26:08 -0700</lastBuildDate> + <pubDate>Thu, 29 Jul 2021 06:59:11 -0700</pubDate> + <lastBuildDate>Thu, 29 Jul 2021 06:59:11 -0700</lastBuildDate> <generator>Jekyll v2.5.3</generator> <item> + <title>Apache kylin4 æ°æ¶æå享</title> + <description><p>è¿ç¯æç« 主è¦å为以ä¸å 个é¨åï¼<br /> +- Apache Kylin 使ç¨åºæ¯<br /> +- Apache Kylin åºæ¬åç<br /> +- Apache Kylin æ¥è¯¢åºæ¬æµç¨<br /> +- Kylin On HBase<br /> +- Kylin On Parquet</p> + +<h2 id="apache-kylin-">01 Apache Kylin 使ç¨åºæ¯</h2> +<p><img src="/images/blog/kylin4_cn/1kylinUseSec.jpg" alt="" /><br /> +Apache Kylin⢠æ¯ä¸ä¸ªå¼æºçåå¸å¼åæå¼æï¼æä¾ Hadoop/Spark ä¹ä¸ç SQL æ¥è¯¢æ¥å£åå¤ç»´åæï¼OLAPï¼è½åä»¥æ¯æè¶ å¤§è§æ¨¡æ°æ®ï¼æåç± eBay Inc å¼åå¹¶è´¡ç®è³å¼æºç¤¾åºï¼å®è½å¨äºç§å æ¥è¯¢å·¨å¤§ç Hive 表ã</p> + +<p>ä½ä¸ºä¸ä¸ª SQL å éå±ï¼Kylin å¯ä»¥ä¸æ¥åç§æ°æ®æºï¼ä¾å¦ Hive/Kafkaï¼ä¸æ¥åç§ BI ç³»ç»ï¼æ¯å¦ Tableauï¼PowerBIï¼ä¹å¯ä»¥ç´æ¥è¿è¡ Ad hoc çæ¥è¯¢ã</p> + +<p>å¦æä½ ä»¬ç产å/ä¸å¡æ¹æ¾å°ä½ ï¼è¯´æä¸æ¹æ¥è¯¢å¤ªæ ¢äºå¸æè½å¤å éï¼è¦æ±æ¥è¯¢é度è¦å¿«ï¼æ¥è¯¢å¹¶åè¦é«ï¼èµæºå ç¨è¦å°ï¼å®æ´æ¯æ SQL è¯æ³å¹¶ä¸è½å¤æ ç¼éæ BIï¼ç¶ååæ²¡ææ´å¤çæºå¨ç»ä½ ï¼é£ä¹è¿ä¸ªæ¶åä½ å¯ä»¥èèä½¿ç¨ Apache Kylinã</p> + +<h2 id="apache-kylin--1">02 Apache Kylin åºæ¬åç</h2> +<p><img src="/images/blog/kylin4_cn/2CubeCacu.jpg" alt="" /><br /> +<img src="/images/blog/kylin4_cn/3CubeCacu.jpg" alt="" /><br /> +Kylin çæ ¸å¿ææ³æ¯é¢è®¡ç®ï¼å°æ°æ®æç §æå®çç»´åº¦åææ ï¼é¢å 计ç®åºææå¯è½çæ¥è¯¢ç»æï¼å©ç¨ç©ºé´æ¢æ¶é´æ¥å éæ¥è¯¢æ¨¡å¼åºå®ç OLAP æ¥è¯¢ã</p> + +<p>Kylin çç论åºç¡æ¯ Cube çè®ºï¼æ¯ä¸ç§ç»´åº¦ç»åç§°ä¹ä¸º Cuboidï¼ææ Cuboid çé忝 Cubeãå ¶ä¸ç±ææç»´åº¦ç»æç Cuboid 称为 Base Cuboidï¼å¾ä¸ï¼timeï¼itemï¼locationï¼supplierï¼å³ä¸º Base Cuboidï¼ææç Cuboid é½å¯ä»¥åºäº Base Cuboid 计ç®åºæ¥ãCuboid æä»¬å¯ä»¥ç解为就æ¯ä¸å¼ é¢è®¡ç®è¿åç大宽表ï¼å¨æ¥è¯¢æ¶ï¼Kylin ä¼èªå¨éæ©æ»¡è¶³æ¡ä»¶çæåéç Cuboidï¼æ¯å¦ä¸å¾çæ¥è¯¢å°±ä¼å»æ¾Cuboidï¼timeï¼itemï¼locationï¼ï¼ç¸æ¯äºä»ç¨æ·çåå§è¡¨è¿è¡è®¡ç®ï¼ä» Cuboid åæ° æ®è¿è¡è®¡ç®è½æå¤§çé使«æçæ°æ®éå计ç®éã</p> + +<h2 id="apache-kylin--2">03 Apache Kylin æ¥è¯¢åºæ¬æµç¨</h2> +<p><img src="/images/blog/kylin4_cn/4QueryProgress.jpg" alt="" /><br /> +ä¸é¢æ¥ç®åä»ç»ä¸ Kylin æ¥è¯¢çåºæ¬åçï¼å䏿¥æ¯ææ Query engine çå¸¸è§æä½ï¼æä»¬è¿è¾¹åå©äº Apache Calcite æ¡æ¶æ¥å®æè¿ä¸ªæä½ï¼ç½ä¸ç¸å ³çèµææå¾å¤è¿éä¸åè¿å¤å±å¼ï¼æå ´è¶£ç读è å¯ä»¥èªè¡æ¥é ã</p> + +<p>è¿è¾¹ä»ç»éç¹å¨æå两æ¥ï¼Kylin éé å Query æ§è¡ã为ä»ä¹è¦å Kylin éé ï¼å 为æä»¬åé¢å¾å°çæ¥è¯¢è®¡åæ¯ç´æ¥æ ¹æ®ç¨æ·çæ¥è¯¢è½¬åæ¥çï¼è¿ä¸ªæ¥è¯¢è®¡åä¸è½ç´æ¥æ¥è¯¢é¢è®¡ç®è¿çæ°æ®ï¼è¿ééè¦ rewrite è¿ä¸ªæ§è¡è®¡åï¼ä½¿å¾å®å¯ä»¥æ¥è¯¢é¢è®¡ç®è¿åçæ°æ®ï¼ä¹å°±æ¯Cubeæ°æ®ï¼ï¼æ¥çä¸é¢çä¾åï¼</p> + +<p><img src="/images/blog/kylin4_cn/5QueryProgress.jpg" alt="" /></p> + +<p>ç¨æ·æä¸å¼ åå访é®è¡¨ï¼stockï¼ï¼å ¶ä¸ Item ååï¼user_id 表示åå被åªä¸ªç¨æ·è®¿é®è¿ï¼ç¨æ·å¸æåæååç PVãç¨æ·å®ä¹äºä¸ä¸ª Cubeï¼ç»´åº¦æ¯ itemï¼åº¦éæ¯COUNT(user_id)ï¼ç¨æ·å¦ææ³åæååç PVï¼ä¼ååºå¦ä¸ç SQLï¼<br /> +<code class="highlighter-rouge">SELECT itemï¼COUNT(user_id) FROM stock GROUP BY item;</code><br /> +è¿æ¡ SQL åç» Kylin åï¼Kylin ä¸è½ç´æ¥çç¨å®åå§çè¯ä¹å»æ¥æä»¬ç Cube æ°æ®ï¼è¿æ¯å ä¸ºçæ°æ®ç»è¿é¢è®¡ç®åï¼æ¯ä¸ª item ç key åªä¼åå¨ä¸è¡æ°æ®ï¼åå§è¡¨ä¸ç¸å item key çè¡å·²ç»è¢«æåèåæäºï¼çæäºä¸åæ°ç measure åï¼åæ¾æ¯ä¸ª item key æå¤å° user_id 访é®ï¼æä»¥ rewrite ç SQL ä¼ç±»ä¼¼è¿æ ·ï¼<br /> +<code class="highlighter-rouge">SELECT itemï¼SUM(M_C) FROM stockGROUP BY item;</code></p> + +<p>为ä»ä¹è¿éè¿ä¼æä¸æ¥ SUM/ GROUP BY çæä½ï¼è䏿¯ç´æ¥ååºæ°æ®ç´æ¥è¿åå°± OK äºå¢ï¼å 为å¯è½æ¥è¯¢å»ä¸ç Cuboid 䏿¢ item ä¸ä¸ªç»´åº¦ï¼å³å»ä¸ç䏿¯æç²¾ç¡®ç Cuboidï¼æä»¥è¿éä»è¿äºç»´åº¦ä¸åèå䏿¬¡ï¼ä½æ¯é¨åèåçæ°æ®éç¸æ¯èµ·ç¨æ·åå§è¡¨ä¸çæ°æ®ï¼è¿æ¯åå°äºé常å¤çæ°æ®éå计ç®ãå¹¶ä¸å¦ææ¥è¯¢ç²¾ç¡®çå½ä¸Cuboidï¼æä»¬æ¯å¯ä»¥ç´æ¥è·³è¿ Agg/GROUP BY çæµç¨ï¼å¦ä¸å¾ï¼<br /> +<img src="/images/blog/kylin4_cn/6QueryProgress.jpg" alt="" /></p> + +<p>ä¸å¾æ¯æ é¢è®¡ç®çåºæ¯ï¼å ¨é¨éè¦ç°åºè®¡ç®ï¼Agg å Join å 为é½ä¼çµæ¶å° shuffle æä½ï¼æ 彿°æ®éå¾å¤§çæ¶åï¼æ§è½å°±ä¼æ¯è¾å·®ï¼åæ¶ä¹ä¼å ç¨æ´å¤çèµæºï¼è¿ä¹ä¼å½±åæ¥è¯¢çå¹¶åã<br /> +<img src="/images/blog/kylin4_cn/7QueryProgress.jpg" alt="" /></p> + +<p>èè¿è¡äºé¢è®¡ç®è¿åï¼åæ¥æèæ¶çä¸¤æ¥æä½ Agg/Join å¨å颿¹åè¿çæ§è¡è®¡åä¸é½æ¶å¤±äºï¼Cuboid ç²¾åå¹é ï¼ï¼çè³æ´è¿ä¸æ¥ï¼æä»¬å¨å®ä¹ cube çæ¶åè¿å¯ä»¥éæ©æ order by çåè¿è¡æåºï¼é£ä¹ Sort æä½ä¹ä¸ç¨è®¡ç®ï¼æ´ä¸ªç计ç®åªæ¯ä¸ä¸ª stageï¼æ²¡æä¸æ¬¡ shuffleï¼å¯å¨å¾å°ç task å°±å¯ä»¥å®æè®¡ç®ï¼æ¥è¯¢çå¹¶å度ä¹è½å¤æé«ã</p> + +<h2 id="kylin-on-hbase">04 Kylin On HBase</h2> +<p>#### åºæ¬åç<br /> +<img src="/images/blog/kylin4_cn/8KylinOnHbase.jpg" alt="" /><br /> +å¨ç®å弿ºçæ¬çå®ç°ä¸ï¼æå»ºå®çæ°æ®æ¯åå¨å¨ HBase ä¸çï¼å¨ä¸é¢å°èä¸ï¼æä»¬å¾å°äºä¸ä¸ªè½å¤æ¥è¯¢ Cube æ°æ®çé»è¾æ§è¡è®¡åï¼Calcite æ¡æ¶ä¼æ ¹æ®è¿ä¸ªé»è¾æ§è¡è®¡åçæå¯¹åºçç©çæ§è¡è®¡åï¼æç»æ¯ä¸ªç®åé½ä¼éè¿ä»£ç çæçæèªå·±ç®åç坿§è¡ä»£ç ï¼è¿ä¸ªè¿ç¨æ¯ä¸ä¸ªè¿ä»£å¨æ¨¡åï¼æ°æ®ä»æåºå±ç TableScan ç®åå䏿¸¸ç®åæµå¨ï¼æ´ä¸ªè¿ç¨å°±åç«å±±å·å䏿 ·ï¼æ åå Volcano Iterator Modeãèè¿ä¸ª TableScan ç æç代ç ä¼ä» HBase ä¸ååº Cube æ°æ®ï¼å½æ°æ®è¿åå° Kylin ç Query Server 端ä¹åï¼å被ä¸å±çç®åä¸å±å±æ¶è´¹ã</p> + +<h4 id="kylin-on-hbase-">Kylin On HBase ç¶é¢</h4> +<p><img src="/images/blog/kylin4_cn/9KylinOnHbase.jpg" alt="" /><br /> +è¿å¥æ¹æ¡å¯¹äºç®åç SQL 并没æä»ä¹å¤§é®é¢ï¼å 为å¨ç²¾ç¡®å¹é Cuboid çæ åµä¸ï¼ä» HBase ååæ°æ®åï¼å¨ Kylin Query Server 端并ä¸ä¼å太å¤è®¡ç®ï¼ä½å½ä¸äºæ¯è¾å¤æçæ¥è¯¢ï¼ä¾å¦ä¸å¥æ¥è¯¢ join äºä¸¤ä¸ªåæ¥è¯¢ï¼æ¯ä¸ªåæ¥è¯¢é½å½ä¸äºåèªç cubeï¼å¹¶å¨æå¤å±åä¸äºæ¯è¾å¤æç Aggregate æä½ï¼æ¯å¦ COUNT DISTINCT çï¼å¨è¿ç§æ åµä¸ï¼Kylin Query Server 端ä¸ä» è¦ä» HBaseæå大éçæ°æ®ï¼å¹¶ä¸è¿è¦å¨ Kylin Query Server ç«¯è®¡ç® Join/Aggregate çéå¸¸èæ¶èèµæºç æä½ï¼å½æ°æ®éå大ï¼Kylin çQuery Server 端就å¯è½ä¼ OOMï¼è§£å³çæ¹å¼æ¯æé« Query Server 端çå åï¼ä½è¿æ¯ä¸ªåç´æ©å®¹çè¿ç¨ï¼è¿å°±æäºä¸ä¸ªåç¹ç¶é¢ï¼èå¤§æ°æ®æ¹æ¡ä¸åå¨åç¹ç¶é¢ï¼æ¯ä¸ä¸ªé常严éçé®é¢ï¼å¯è½ç´æ¥å¯¼è´å ¬å¸å¨æ¶æéåçæ¶åä¸é® pass æè¿ä¸ªæ¹æ¡ã</p> + +<p>å¦å¤è¿å¥æ¹æ¡å¨ä½¿ç¨ä¸è¿æå¾å¤å ¶ä»çå±éï¼<br /> +- ä¾å¦ HBase çè¿ç»´æ¯åºäºåçé¾ï¼ä¸æ¦ HBase æ§è½ä¸å¥½ï¼é£ä¹å¯æ³èç¥ Kylin çæ§è½ä¹ä¸ä¼å¥½ã<br /> +- HBase çèµæºé离è½å乿¯è¾å¼±ï¼å½æä¸ªæ¶å»ææ¯è¾å¤§çè´è½½çæ¶åï¼å ¶ä»ä½¿ç¨ HBase çä¸å¡ä¹ä¼åå°å½±åï¼ä½ç°å° Kylin å¯è½ä¼æ¯æ¥è¯¢çæ§è½æ¯è¾ä¸ç¨³å®ï¼benchmark 伿æ¯åºï¼è§£éèµ·æ¥æ¯è¾éº»ç¦å¹¶ä¸éè¦é群 metric çæ¯æï¼å¯¹å线人åè¦æ±æ¯è¾é«ã<br /> +- HBase éåå¨ç齿¯ç»è¿ç¼ç åç Byte Array ç±»åï¼åºååååºååçå¼éä¹ä¸è½å¿½è§ãèå¯¹äºæä»¬å¼åäººåæ¥è¯´ï¼Calcite 代ç çææ¯è¾é¾ä»¥è°è¯ï¼å¹¶ä¸æä»¬ HBase çæè½æ ä¿®çæ¯è¾å°ï¼æ³å¯¹ HBase åæºç 级å«çæ§è½æ¹è¿ä¹æ¯è¾å°é¾ã</p> + +<h2 id="kylin-on-parquet">05 Kylin On Parquet</h2> +<p><img src="/images/blog/kylin4_cn/10KylinOnParquet.jpg" alt="" /></p> + +<p>ç±äºä¸è¿° Kylin on HBase æ¹æ¡ç诸å¤å±éæ§ï¼æä»¬å ¬å¸å¾æ©çæ¶åå°±å¨åä¸çæ¬ä¸ç åæ°ä¸ä»£åºäº Spark + Parquet çæ¹æ¡ç¨ä»¥æ¿ä»£å¼æºçæ¹æ¡ãä¸é¢ä»ç»ä¸è¯¥æ¹æ¡çæ´ä½æ¶æï¼</p> + +<p>å ¶å®æ´ä½æ¥è¯´ï¼æ°ç设计éå¸¸ç®æ´ï¼ä½¿ç¨ visitor 模å¼éåä¹åçæçè½å¤æ¥è¯¢ Cube æ°æ®çé»è¾æ§è¡è®¡åæ ï¼æ§è¡è®¡åæ çèç¹ä»£è¡¨ä¸ä¸ªç®åï¼éé¢å ¶å®æ éå°±æ¯ä¿åäºä¸äºä¿¡æ¯ï¼æ¯å¦è¦æ«åªä¸ªè¡¨ï¼è¦ filter/project åªäºåççãå°åæ¥æ ä¸çæ¯ä¸ä¸ªç®åé½ç¿»è¯æä¸ä¸ª Spark å¯¹äº Dataframe çä¸ä¸ªæä½ï¼æ¯ä¸ªä¸æ¸¸èç¹é½é®èªå·±ç䏿¸¸èç¹å®å¤çå®ä¹åçä¸ä¸ª DFï¼ä¸ç´å°æä¸æ¸¸çTableScanèç¹ï¼ç±å®çæåå§ç� � DFï¼å¯ä»¥ç®åçè§£æ cuboidDF= spark.read.parquet(path)ï¼å¾å°åå§ç DFä¹åï¼åå®ç䏿¸¸è¿åï¼ä¸æ¸¸èç¹å对è¿ä¸ªä¸æ¸¸ç DF apply ä¸èªå·±çæä½ï¼åè¿åç»èªå·±ç䏿¸¸ï¼æåæä¸å±èç¹å¯¹è¿ä¸ª DF è¿è¡ collect 就触åäºæ´ä¸ªè®¡ç®æµç¨ãè¿å¥æ¡æ¶çææ³å¾ç®åï¼ä¸è¿ä¸é´ Calcite å Spark ç gap ç忝æä»¬æ³è±¡çè¦å¤ä¸äºï¼æ¯å¦æ°æ®ç±»å/ä¸¤è¾¹æ¯æå½/è¡ä¸ºå®ä¹ä¸ä¸è´ççã忿们乿æç®æ¿æ¢ Calcite 为 Catalystï¼æ´å¥çæ¶æä¼æ´å ç²¾� �´èªç¶ã</p> + +<p><img src="/images/blog/kylin4_cn/11KylinOnParquet.jpg" alt="" /></p> + +<p>è¿ä¸å¥ Kylin On Parquet çæ¹æ¡ï¼ä¾æäº Sparkï¼</p> + +<ul> + <li> + <p>ææè®¡ç®é½æ¯åå¸å¼çï¼ä¸åå¨åç¹ç¶é¢ï¼å¯ä»¥éè¿æ¨ªåæ©å®¹æé«ç³»ç»ç计ç®è½åï¼</p> + </li> + <li> + <p>èµæºè°åº¦æåç§æ¹æ¡å¯ä»¥éæ©ï¼Yarn/K8S/ Mesosï¼æ»¡è¶³ä¼ä¸å¯¹äºèµæºé离çéæ±ï¼</p> + </li> + <li> + <p>Spark 卿§è½æ¹é¢çåªåå¯ä»¥å¤©ç¶äº«åå°ï¼ä¸ææå° Kylin On HBase çåºååååºååå¼éï¼å°±å¯ä»¥ç± Spark ç Tungsten 项ç®è¿è¡ä¼åï¼</p> + </li> + <li> + <p>åå°äº HBase çä¾èµï¼å¸¦æ¥äºè¿ç»´æå¤§çæ¹ä¾¿ï¼ææä¸ä¸æ¸¸ä¾èµå¯ä»¥ç± Spark 帮æä»¬æå®ï¼åå°äºèªå·±çä¾èµï¼ä¹æ¹ä¾¿ä¸äºï¼</p> + </li> + <li> + <p>对äºå¼åäººåæ¥è®²ï¼å¯ä»¥å¯¹æ¯ä¸ªç®åçæç DF ç´æ¥è¿è¡è¿è¡ collectï¼è§å¯æ°æ®å¨è¿ä¸å±ææ²¡æåºç°é®é¢ï¼å¹¶ä¸ Spark + Parquet æ¯ç®åé常æµè¡ç SQL On Hadoop æ¹æ¡ï¼æä»¬å¢é对è¿ä¸¤ä¸ªé¡¹ç®ä¹æ¯è¾çæï¼ç»´æ¤äºä¸ä¸ªèªå·±ç Spark å Parquet 忝ï¼å¨ä¸é¢è¿è¡äºå¾å¤éå¯¹äºæä»¬ç¹å®åºæ¯çæ§è½ä¼ååç¨³å®æ§æåçå·¥ä½ã</p> + </li> +</ul> +</description> + <pubDate>Thu, 29 Jul 2021 08:00:00 -0700</pubDate> + <link>http://kylin.apache.org/blog/2021/07/29/kylin-on-parquet-new-architecture-share/</link> + <guid isPermaLink="true">http://kylin.apache.org/blog/2021/07/29/kylin-on-parquet-new-architecture-share/</guid> + + + <category>blog</category> + + </item> + + <item> <title>Apache Kylin4 â A new storage and compute architecture</title> <description><p>This article will discuss three aspects of Apache Kylin: First, we will briefly introduce query principles of Apache Kylin. Next, we will introduce Apache Parquet Storage, a project our team has been involved in that Kyligence is contributing back to the open source software community by the end of this year (2020). Finally, we will introduce the extensive use of precision count distinct by community users as well as its implementation in Kylin and some extensions.</p> @@ -1598,150 +1695,5 @@ From our users side, the most successful </item> - <item> - <title>Saiku + Kylin æå»ºå¤ç»´ OLAP å¹³å°</title> - <description><p>éçæ°æ®éçæ¿å¢ï¼ä¼ ç»ç OLTP å¹³å°å·²æ æ³æ»¡è¶³ç¨æ·çåæéæ±ãOLAP å¹³å°åºè¿èçï¼OLAP å¹³å°éå¸¸ç± OLAP Engine ä¸ç¨æ·æä½åæé¡µé¢ç»æãæ¬æå°ä¼ä»¥ Saiku + Kylin çç»åæ¹å¼è®²è§£å¤ç»´ OLAP å¹³å°çæå»ºã</p> - -<h3 id="saiku-">Saiku ç®ä»</h3> -<p>Saiku æ¯ä¸ä¸ªç¨äº OLAP åæçå¥ä»¶ãç¨æ·å¯å¨æµè§å¨ä¸éè¿ææ½çæ¹å¼è¿è¡åæãéä½äºä½¿ç¨è çå¦ä¹ ææ¬ãå®è½å¤è¿æ¥å¤ç§æ°æ®æºï¼å¦ Microsoft SQL Server, Oracle Database, MySQL, MongoDB çã<br /> -Saiku æ¯æä¸¤ç§è¿æ¥æ¹å¼ï¼ä¸æ¯ Mondrianï¼äºæ¯ XMLAã<br /> -Mondrian æ¯ä¸ä¸ªå¼æºçåå¡åæå¼æãä½¿ç¨ MDX(MultiDimensionalExpressions) 宿å¤ç»´æ¥è¯¢ã<br /> -XMLAï¼XML for Analysisï¼æ¯ä¸ç§åºäºç®å对象访é®åè®®ï¼SOAPï¼ç XML åè®®ã</p> - -<h3 id="kylin-">Kylin ç®ä»</h3> -<p>Kylin æ¯ä¸ä¸ªåºäº Hadoop ç OLAP 弿ï¼å¯æ¥è¯¢åæåå²ä¸å®æ¶æ°æ®ï¼å¹¶å¨äºç§çº§è¿åæ¥è¯¢ç»æã</p> - -<h3 id="section">åæåå¤</h3> -<ul> - <li>å®è£ JAVA 并设置 JAVA_HOME</li> - <li>ä» <a href="https://community.meteorite.bi/">Saiku 社åº</a>ä¸è½½ Saiku ææ°çæ¬</li> - <li>ä» <a href="http://kylin.apache.org/download/">Kylin å®ç½</a>ä¸è½½ Kylin ææ°çæ¬ï¼å³ 2.6.2</li> - <li>å¨ Kylin v2.6.2 ä¸æå»ºä¸ä¸ª Cube</li> -</ul> - -<h3 id="saiku--kylin">è¿æ¥ Saiku å° Kylin</h3> -<p>1.æ§è¡ <code class="highlighter-rouge">unzip saiku-latest.zip</code> è§£åä¸è½½å¥½ç Saiku å ï¼åæ¢è³ saiku-server æä»¶å¤¹ãè§£åä¸è½½å¥½ç Kylin å ï¼è¿å ¥è§£ååæä»¶å¤¹ï¼å° lib/kylin-jdbc-<version>.jar æ·è´è³ saiku-server/tomcat/webapps/saiku/WEB-INF/lib</version></p> - -<p>2.å¨ saiku-server æä»¶å¤¹ä¸æ§è¡ <code class="highlighter-rouge">./start-saiku.sh</code> å½ä»¤å¯å¨ Saikuï¼å¯å¨åå¯å¨æµè§å¨ä¸è¾å ¥ http://localhost:8080 è®¿é® Saiku 页é¢ãé»è®¤ç«¯å£ä¸º 8080ï¼å¯å¨ saiku-server/tomcat/conf/server.xml ä¸è¿è¡ä¿®æ¹ã<br /> -<img src="/images/blog/saiku/start.png" alt="" /></p> - -<p>3.è®¿é® https://licensing.meteorite.bi/login è¿è¡æ³¨åå¹¶ç»å½ã</p> - -<p>4.ç»å½åï¼å åå»ºå ¬å¸ï¼å¿ é¡»ï¼ï¼åå建 Licenseï¼Hostname 为å¯å¨ Saiku çæºå¨ IPãåå»ºå®æåï¼ä¸è½½ License å°æ¬å°ã<br /> -<img src="/images/blog/saiku/license.png" alt="" /></p> - -<p>5.è®¿é® http://localhost:8080/upload.html ä¸ä¼ Licenseãä¸ä¼ æéç¨æ·åä¸å¯ç å为 admin</p> - -<p>6.è®¿é® http://localhost:8080 è¿è¡ç»å½ï¼ç¨æ·åå¯ç å为 adminã妿䏿§è¡ä¸è¿° 3-5 æ¥éª¤ï¼ç´æ¥ç»å½å°ä¼æ¥å¦ä¸éã</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>Error fetching license. Get a free license from http://licensing.meteorite.bi. You can upload it at /upload.html -</code></pre> -</div> - -<p>7.ç»å½åï¼ç¹å»ç®¡çæ§å¶å°ï¼å³é¡¶é¨å¯¼èªæ æå³è¾¹å å« A ç徿 ãç¶åç¹å» Add Schemaï¼æ·»å Mondrian Schema ç XML æä»¶å Schema Nameï¼æåç¹å» Upload æé®ï¼æ¾ç¤º Upload Successful! å³å¯ãXML æä»¶ç±èªå·±ç¼åï¼å®æ¹æä¾ä¸¤ä¸ªåèæ ·ä¾ Earthquakes.xml å FoodMart4.xmlï¼å¨ saiku-server/data ç®å½ä¸ãå ·ä½è¯æ³å¯åè<a href="https://mondrian.pentaho.com/documentation/schema.php">è¿ä¸ªç½ç«</a><br /> -<img src="/images/blog/saiku/add_schema.png" alt="" /><br /> -å¦ä¸ä¸ºæ¬æ¬¡ä½¿ç¨çç¤ºä¾ XML æä»¶ãå ¶ä¸å å«ä¸å¼ å为 KYLIN_SALES ç表ï¼å å« TRANS_IDï¼PART_DTï¼LSTG_FORMAT_NAME è¿ 3 个维度å 1 个 SUM(PRICE) 度éã<br /> -<em>注æ</em>ï¼è¡¨ï¼åï¼å大å°åææï¼éä¸ Kylin ä¸å è½½çæ°æ®æºè¡¨ï¼åï¼å称对åº</p> - -<div class="highlighter-rouge"><pre class="highlight"><code><span class="cp">&lt;?xml version='1.0'?&gt;</span> -<span class="nt">&lt;Schema</span> <span class="na">name=</span><span class="s">'default'</span> <span class="na">metamodelVersion=</span><span class="s">'4.0'</span><span class="nt">&gt;</span> - <span class="nt">&lt;PhysicalSchema&gt;</span> - <span class="nt">&lt;Table</span> <span class="na">name=</span><span class="s">'KYLIN_SALES'</span><span class="nt">&gt;</span> - <span class="nt">&lt;/Table&gt;</span> - <span class="nt">&lt;/PhysicalSchema&gt;</span> - <span class="nt">&lt;Cube</span> <span class="na">name=</span><span class="s">'kylin_sales_cube'</span> <span class="na">defaultMeasure=</span><span class="s">'Sum PRICE'</span><span class="nt">&gt;</span> - <span class="nt">&lt;Dimensions&gt;</span> - <span class="nt">&lt;Dimension</span> <span class="na">name=</span><span class="s">'Trans_id'</span> <span class="na">table=</span><span class="s">'KYLIN_SALES'</span><span class="nt">&gt;</span> - <span class="nt">&lt;Attributes&gt;</span> - <span class="nt">&lt;Attribute</span> <span class="na">name=</span><span class="s">'Trans_id'</span> <span class="na">keyColumn=</span><span class="s">'TRANS_ID'</span> <span class="na">hasHierarchy=</span><span class="s">'true'</span><span class="nt">/&gt;</span> - <span class="nt">&lt;/Attributes&gt;</span> - <span class="nt">&lt;/Dimension&gt;</span> - <span class="nt">&lt;Dimension</span> <span class="na">name=</span><span class="s">"Date"</span> <span class="na">table=</span><span class="s">'KYLIN_SALES'</span><span class="nt">&gt;</span> - <span class="nt">&lt;Attributes&gt;</span> - <span class="nt">&lt;Attribute</span> <span class="na">name=</span><span class="s">'Order_date'</span> <span class="na">keyColumn=</span><span class="s">'PART_DT'</span> <span class="na">hasHierarchy=</span><span class="s">'true'</span><span class="nt">/&gt;</span> - <span class="nt">&lt;/Attributes&gt;</span> - <span class="nt">&lt;/Dimension&gt;</span> - <span class="nt">&lt;Dimension</span> <span class="na">name=</span><span class="s">'Trans_type'</span> <span class="na">table=</span><span class="s">'KYLIN_SALES'</span><span class="nt">&gt;</span> - <span class="nt">&lt;Attributes&gt;</span> - <span class="nt">&lt;Attribute</span> <span class="na">name=</span><span class="s">'Trans_type'</span> <span class="na">keyColumn=</span><span class="s">'LSTG_FORMAT_NAME'</span> <span class="na">hasHierarchy=</span><span class="s">'true'</span><span class="nt">/&gt;</span> - <span class="nt">&lt;/Attributes&gt;</span> - <span class="nt">&lt;/Dimension&gt;</span> - <span class="nt">&lt;/Dimensions&gt;</span> - <span class="nt">&lt;MeasureGroups&gt;</span> - <span class="nt">&lt;MeasureGroup</span> <span class="na">name=</span><span class="s">'SUM'</span> <span class="na">table=</span><span class="s">'KYLIN_SALES'</span><span class="nt">&gt;</span> - <span class="nt">&lt;Measures&gt;</span> - <span class="nt">&lt;Measure</span> <span class="na">name=</span><span class="s">'Sum PRICE'</span> <span class="na">column=</span><span class="s">'PRICE'</span> <span class="na">aggregator=</span><span class="s">'sum'</span> <span class="na">formatString=</span><span class="s">'Standard'</span><span class="nt">/&gt;</span> - <span class="nt">&lt;/Measures&gt;</span> - <span class="nt">&lt;DimensionLinks&gt;</span> - <span class="nt">&lt;FactLink</span> <span class="na">dimension=</span><span class="s">'Trans_id'</span><span class="nt">/&gt;</span> - <span class="nt">&lt;FactLink</span> <span class="na">dimension=</span><span class="s">'Date'</span><span class="nt">/&gt;</span> - <span class="nt">&lt;FactLink</span> <span class="na">dimension=</span><span class="s">'Trans_type'</span><span class="nt">/&gt;</span> - <span class="nt">&lt;/DimensionLinks&gt;</span> - <span class="nt">&lt;/MeasureGroup&gt;</span> - <span class="nt">&lt;/MeasureGroups&gt;</span> -<span class="nt">&lt;/Cube&gt;</span> -<span class="nt">&lt;/Schema&gt;</span> -</code></pre> -</div> - -<p>8.ç¹å» Add Data Sourceï¼å¡«åå¦ä¸åæ°ã</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>Name: Kylin_Demo -Connection Type: Mondrian -URL: jdbc:kylin://localhost:7070/{project_name} -Schema: {mondrian_schema} -JDBC Driver: org.apache.kylin.jdbc.Driver -Username: {kylin_username} (Default: ADMIN) -Password: {kylin_password} (Default: KYLIN) -Security: (depend on your security setting) -</code></pre> -</div> -<p>ç¹å» Save æé®ä¿åã</p> - -<p>9.ç¹å» Home Tabï¼ç¹å» Create a new query è¿å ¥æ¥è¯¢åæé¡µé¢ã<br /> -<img src="/images/blog/saiku/home.png" alt="" /></p> - -<p>10.ç¹å»éæ©å¤ç»´æ°æ®é䏿æ¡ï¼éæ©ååå建好ç Kylin æ°æ®æºã<br /> -<img src="/images/blog/saiku/mul_datasets.png" alt="" /></p> - -<p>11.éè¿ææ½çæ¹å¼éæ©ç»´åº¦å度éè¿è¡åæãç»æä»¥è¡¨æ ¼å½¢å¼å±ç¤ºï¼å¯å¨é¡µé¢å³è¾¹åæ¢å¾è¡¨æ¨¡å¼ã<br /> -<img src="/images/blog/saiku/query_result.png" alt="" /><br /> -ä¸å¾æç¤ºææ½æ¹å¼ä¼é¦å 转æ¢ä¸º MDX åéç» Mondrianï¼Mondrian ä¼å°å ¶è½¬æ¢ä¸º SQL åéç» Kylinï¼Kylin æ¥æ¾å¯åç该 SQL è¯å¥ç Cubeï¼å°æ¥è¯¢ç»æè¿åç» Mondrianï¼åç± Mondrian è¿åç» Saiku è¿è¡å±ç¤ºãä¸å¾æç¤ºæ¹å¼çæç SQL è¯å¥å¦ä¸ï¼</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>select "KYLIN_SALES"."TRANS_ID" as "c0", "KYLIN_SALES"."LSTG_FORMAT_NAME" as "c1", sum("KYLIN_SALES"."PRICE") as "m0" from "KYLIN_SALES" as "KYLIN_SALES" group by "KYLIN_SALES"."TRANS_ID", "KYLIN_SALES"."LSTG_FORMAT_NAME" -</code></pre> -</div> - -<h3 id="section-1">常è§é®é¢</h3> -<ol> - <li> - <p>tomcat å¯å¨æ¥éãjava.lang.IllegalStateException: Unable to complete the scan for annotations for web application [] due to a StackOverflowError. Possible root causes include a too low setting for -Xss and illegal cyclic inheritance dependencies. The class hierarchy being processed was [org.bouncycastle.asn1.ASN1EncodableVector-&gt;org.bouncycastle.asn1.DEREncodableVector-&gt;org.bouncycastle.asn1.ASN1EncodableVector]<br /> -è§£å³æ¹æ¡ï¼å¨ saiku-server/tomcat/conf/catalina.properties ä¸ç tomcat.util.scan.DefaultJarScanner.jarsToSkip=\ åå ,*</p> - </li> - <li> - <p>éæ© schema åï¼ææ åç»´åº¦ä¸æ¾ç¤ºãæ¥å¿ä¸æ¥å¦ä¸éï¼java.lang.NoClassDefFoundError: mondrian/olap/LevelType<br /> -è§£å³æ¹æ¡ï¼è§£å saiku-server/tomcat/webapps/saiku/WEB-INF/lib ä¸ç saiku-query-0.4-SNAPSHOT.jarï¼å é¤ mondrain æä»¶å¤¹åéæ°æå ï¼å¹¶æ¿æ¢åæ jar å ã</p> - </li> -</ol> - -<h3 id="section-2">åèæç®</h3> -<ul> - <li>https://saiku-documentation.readthedocs.io/en/latest/</li> - <li>https://baike.baidu.com/item/XMLA/8711067</li> - <li>https://community.hitachivantara.com/docs/DOC-1009853</li> - <li>https://www.jianshu.com/p/14b57d000fe5</li> - <li>https://blog.csdn.net/csdn_g_y/article/details/78184747</li> - <li>https://blog.csdn.net/qq_28725695/article/details/84322821</li> -</ul> -</description> - <pubDate>Thu, 23 May 2019 08:00:00 -0700</pubDate> - <link>http://kylin.apache.org/cn_blog/2019/05/23/saiku-kylin-molap/</link> - <guid isPermaLink="true">http://kylin.apache.org/cn_blog/2019/05/23/saiku-kylin-molap/</guid> - - - <category>cn_blog</category> - - </item> - </channel> </rss>
Added: kylin/site/images/blog/kylin4_cn/10KylinOnParquet.jpg URL: http://svn.apache.org/viewvc/kylin/site/images/blog/kylin4_cn/10KylinOnParquet.jpg?rev=1891875&view=auto ============================================================================== Binary file - no diff available. Propchange: kylin/site/images/blog/kylin4_cn/10KylinOnParquet.jpg ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: kylin/site/images/blog/kylin4_cn/11KylinOnParquet.jpg URL: http://svn.apache.org/viewvc/kylin/site/images/blog/kylin4_cn/11KylinOnParquet.jpg?rev=1891875&view=auto ============================================================================== Binary file - no diff available. Propchange: kylin/site/images/blog/kylin4_cn/11KylinOnParquet.jpg ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: kylin/site/images/blog/kylin4_cn/1kylinUseSec.jpg URL: http://svn.apache.org/viewvc/kylin/site/images/blog/kylin4_cn/1kylinUseSec.jpg?rev=1891875&view=auto ============================================================================== Binary file - no diff available. Propchange: kylin/site/images/blog/kylin4_cn/1kylinUseSec.jpg ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: kylin/site/images/blog/kylin4_cn/2CubeCacu.jpg URL: http://svn.apache.org/viewvc/kylin/site/images/blog/kylin4_cn/2CubeCacu.jpg?rev=1891875&view=auto ============================================================================== Binary file - no diff available. Propchange: kylin/site/images/blog/kylin4_cn/2CubeCacu.jpg ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: kylin/site/images/blog/kylin4_cn/3CubeCacu.jpg URL: http://svn.apache.org/viewvc/kylin/site/images/blog/kylin4_cn/3CubeCacu.jpg?rev=1891875&view=auto ============================================================================== Binary file - no diff available. Propchange: kylin/site/images/blog/kylin4_cn/3CubeCacu.jpg ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: kylin/site/images/blog/kylin4_cn/4QueryProgress.jpg URL: http://svn.apache.org/viewvc/kylin/site/images/blog/kylin4_cn/4QueryProgress.jpg?rev=1891875&view=auto ============================================================================== Binary file - no diff available. Propchange: kylin/site/images/blog/kylin4_cn/4QueryProgress.jpg ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: kylin/site/images/blog/kylin4_cn/5QueryProgress.jpg URL: http://svn.apache.org/viewvc/kylin/site/images/blog/kylin4_cn/5QueryProgress.jpg?rev=1891875&view=auto ============================================================================== Binary file - no diff available. Propchange: kylin/site/images/blog/kylin4_cn/5QueryProgress.jpg ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: kylin/site/images/blog/kylin4_cn/6QueryProgress.jpg URL: http://svn.apache.org/viewvc/kylin/site/images/blog/kylin4_cn/6QueryProgress.jpg?rev=1891875&view=auto ============================================================================== Binary file - no diff available. Propchange: kylin/site/images/blog/kylin4_cn/6QueryProgress.jpg ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: kylin/site/images/blog/kylin4_cn/7QueryProgress.jpg URL: http://svn.apache.org/viewvc/kylin/site/images/blog/kylin4_cn/7QueryProgress.jpg?rev=1891875&view=auto ============================================================================== Binary file - no diff available. Propchange: kylin/site/images/blog/kylin4_cn/7QueryProgress.jpg ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: kylin/site/images/blog/kylin4_cn/8KylinOnHbase.jpg URL: http://svn.apache.org/viewvc/kylin/site/images/blog/kylin4_cn/8KylinOnHbase.jpg?rev=1891875&view=auto ============================================================================== Binary file - no diff available. Propchange: kylin/site/images/blog/kylin4_cn/8KylinOnHbase.jpg ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: kylin/site/images/blog/kylin4_cn/9KylinOnHbase.jpg URL: http://svn.apache.org/viewvc/kylin/site/images/blog/kylin4_cn/9KylinOnHbase.jpg?rev=1891875&view=auto ============================================================================== Binary file - no diff available. Propchange: kylin/site/images/blog/kylin4_cn/9KylinOnHbase.jpg ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream