±³¾°½éÉÜ
Òý×Ó£ºËæ×Å´«Í³»ùÓÚRDBMSµÄEDWÍù´óÊý¾ÝµÄÑݽøµÄ¹ý³ÌÖУ¬Batch¿É´¦ÀíµÄÊý¾ÝÁ¿Ô½À´Ô½´ó£¬Ê±¼äÔ½À´Ô½¿ì£¬µ«ÊÇAd-hocµÄÏìÓ¦ËÙ¶ÈȴʼÖÕÊÇ´óÊý¾ÝµÄÆ¿¾±¡£
ÔÚ2015Äê ΨƷ»áµÄÊý¾Ý·ÖÎöÅöµ½ÁËÒÔÏÂÁ½¸öÆ¿¾±£ºµÚÒ»ÊÇÊý¾Ý×¼±¸µÄÁ÷³Ì³¤£¬µÚ¶þÊÇȱÉÙºÏÊÊÊý¾ÝÌáÈ¡ºÍ·ÖÎö¹¤¾ß¡£
Ê×ÏÈ£¬´ÓÊý¾Ý×¼±¸Á÷³ÌÀ´¿´£¬³£¼ûµÄÁ÷³ÌÊÇÒµÎñÈËÔ±Ìá³öÐèÇó£¬BIͬʶ¨½Ç¶È¡¢ÕÒÊý¾Ý£¬ Èç¹ûÊý¾Ý²»ÍêÉÆ£¬»¹µÃ¼ÌÐøÕÒÊý¾Ý¿ª·¢¡£Õâ¾Íµ¼ÖÂͬһ¸öÐèÇó£¬ÐèÒªºÍ²»Í¬µÄÈË·´¸´¹µÍ¨£¬ÔÚ¹µÍ¨¹ý³ÌÖвÎÓëµÄÈËÔ½¶à£¬ÐÅϢ˥¼õÒ²¾ÍÔ½À÷º¦¡£ÔÙ¼ÓÉÏÅÅÆÚµÄµÈ´ý£¬×îÖյĽá¹ûÒ»·½Ãæ¿ÉÄÜÓë³õÖÔÓÐËùÆ«²î£¬ÁíÒ»·½ÃæÊ±¼äÒ»³¤Ò²Ê§È¥Á˶ÔÈÈµã¹Ø×¢¶È£¬·ÖÎö±äµÃ·Ç³£Öͺ󣬲»Äܼ°Ê±µÄ·´Ó¦ÏßÉÏÒµÎñ²¢¼ÓÒԸĽø¡£
Æä´Î£¬¶ÔÓÚÓзÖÎöÄÜÁ¦µÄÒµÎñ²àͬѧ£¬Ã»ÓгÃÊֵŤ¾ß¾Íµ¼Ö¼´Ê¹ÓÐÄÜÁ¦×¼±¸ÁÃÐä×Ó´ó¸ÉÒ»³¡ÁËÒ²·¢ÏÖÇɸ¾ÄÑΪÎÞÃ×Ö®´¶£¬´ó¼ÒÖ»Äܸп®´óÊý¾ÝµÄÃż÷Ì«¸ßÁË£¬Óֻص½Á˵ÚÒ»µãµÄ³¤Ê±¼äµÈ´ýµÄ¶ñÐÔÑ»·ÀïÈ¥ÁË¡£
ÎÒÃÇ×ܽáÏÂÀ´£¬ÔÚΨƷ»áÕâÑù¹æÄ£µÄ¹«Ë¾ÀÊý¾Ý·ÖÎöÓÐÁ½¸öÍ´µã£º
ÐèÒªÒ»¸ö¿ÉÒÔ×ÔÓÉ×éºÏµÄά¶ÈºÍÖ¸±êµÄƽ̨£¬ÒµÎñÈËÔ±¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÊÓ½Ç×Ô¸ø×Ô×ãµÄÍê³ÉÊý¾ÝÌáÈ¡ºÍ·ÖÎö£»
Õâ¸öƽ̨£¬²»½öÊý¾ÝÒª¹»·á¸»£¬¼´Ê¹´óÊý¾ÝÁ¿ÏìÓ¦ËÙ¶ÈÒ²Òª¿ì¡£
Õë¶ÔÕâÁ½¸öÍ´µã£¬±¾×Å¡°ÈôóÊý¾Ý³ÉΪΨƷ»áµÄÔö³¤ÒýÇæ¡±Õâ¸öÄ¿±ê£¬ÎÒÃÇ´óÊý¾Ý²¿ÃŵÄÌṩÁËÒ»Ì×ÍêÕûµÄ½â¾ö·½°¸£º×ÔÖú¶àά·ÖÎöƽ̨¡£ÎÒÃÇͨ¹ýÓнϸ߿ÉÀ©Õ¹ÐÔµÄά¶È½¨Ä£×¼±¸Êý¾Ý£¬ÔÚ´ËÖ®ÉϴһÌ×Êý¾Ý²éѯÒýÇæ£¬²¢ÅäÉϲÙ×÷¼òµ¥µÄÊý¾Ý¿ÉÊÓ»¯Ç°¶Ë£¬ÎªÒµÎñÈËÔ±´îÁËÊý¾Ý·ÖÎöµĄ̈×Ó¡£Ëæ×Å´ó¼ÒÊý¾Ý·ÖÎö¼¼ÄܵÄÌáÉý£¬ÈËÈ˶¼ÊÇÊý¾Ý·ÖÎöʦµÄÕâ¸öÀíÄî¾ÍÖð½¥ÔÚ¹«Ë¾ÄÚ²¿À©Õ¹¿ªÀ´ÁË¡£

ΨƷ»áÈçºÎʹÓÃKylin
Êý¾ÝºÍǰ¶ËÊÇÆ¤ºÍÈ⣬ÐèҪͨ¹ýºÃµÄÊý¾ÝÒýÇæ²ÅÄÜÖ§³ÅÆðÀ´¡£ÔÚÊý¾ÝÒýÇæ½Ç¶È£¬ÎÒÃÇͨ¹ýÒ»¶Îʱ¼äµÄ»ýÀÛºÍÑݽø£¬´Ó»ùÓÚPrestoµÄROLAPÄ£Ðͽø»¯µ½ÁË»ùÓÚKylinºÍPrestoµÄË«¼ÆËãÒýÇæ¡£Íù³¬´óÊý¾Ý¼¯Ò²Òª¿ìËÙad-hocÏìÓ¦µÄ·½Ïò×ß½üÁËÒ»²½¡£
µÚÒ»½×¶Î£¬ÎÒÃǵÄÄ¿±êÊÇÔÚAd-hocÏìӦʱ¼ä<= 10ÃëµÄǰÌáÌõ¼þÏ£¬Ö§³Ö£º
ƽ¾ùÿ´Î²éѯ10ÒÚ+Ã÷ϸÊý¾Ý×ö»ã×Ü£»
ƽ¾ùÿ¸ö²éѯ0-15¸öά¶È£»
ƽ¾ùÿ¸ö²éѯ1-5¸öÖ¸±ê¡£
¸ù¾ÝÕâ¸öÄ¿±ê£¬ÎÒÃÇÑ¡ÔñʹÓÃPresto×÷Ϊ¼ÆËãÒýÇæ£¬Presto MPPµÄ¼Ü¹¹ + ͨ¹ýHive ConnectorÖ±½Ó·ÃÎÊHDFSÉϵÄÊý¾Ý£¬ÎªÎÒÃÇÌṩÁ¼ºÃµÄAd-hocÏìÓ¦ËٶȺÍÏà¶Ô½ÏµÍµÄά»¤³É±¾¡£ÎªÁËÂú×ã¸ßAd-hocÏìÓ¦ËٶȵÄÐèÇ󣬳£¼ûµÄ×ö·¨ÊǰÑHDFSÉÏ´¦ÀíÍêµÄÊý¾Ýͬ²½µ½Ad-hocÏìÓ¦ÓѺõÄÊý¾Ý¿âÖУ¬±ÈÈçGreenPlum»òHbaseµÈ£¬µ«ÕâÑùµÄȱµãÊÇËäÈ»ËÙ¶ÈÉÏÈ¥ÁË£¬µ«Êý¾ÝÄ£ÐÍÔÚHiveºÍAd-hoc¿âÖÐÐèҪά»¤Á½·Ý²¢±£³ÖÒ»Ö£¬Î¬»¤µÄ³É±¾·Ç³£¸ß¡£PrestoµÄConnector»úÖÆºÜºÃµÄ½â¾öÁËÕâ¸öÎÊÌ⣬ͬʱËûµÄ¼ÆËãÄÜÁ¦Ò²Âú×ãÁËÎÒÃǵÚÒ»½×¶ÎµÄÐèÇó¡£
È»ºóÎÒÃÇͨ¹ýSQL Parser£¬½«Ç°¶ËÍÏ×§»òʼþÃèÊöµÄ¶ÔÏóת»¯ÎªSQL£¬Í¬Ê±Íê³ÉSQLµÄ±äÐκÍÐÔÄÜÓÅ»¯£¬°Ñ¼ÆËãÒýÇæºÍÓû§²Ù×÷Á¬½ÓÔÚÒ»Æð£¬Íê³ÉÁ˵ÚÒ»½×¶ÎµÄÄ¿±ê¡£

×ÔÖú¶àά·ÖÎöƽ̨һ½×¶ÎÂß¼¼Ü¹¹
Ëæ×ÅÒµÎñµÄ²»¶ÏÔö³¤£¬ÔÚ×ÔÖú¶àά·ÖÎöƽ̨ÉÏÖð½¥³öÏÖÁ˺ܶàά¶ÈºÍÖ¸±ê×éºÏÀàËÆ¡¢ÆµÂʽϸߵIJéѯ£¬ÕâЩ²éѯÓÐ×ÅÃ÷ÏÔµÄģʽ£¬ÇÒͨ¹ý·ÖÎöÎÒÃÇÁ˽⵽ÕâЩά¶ÈºÍÖ¸±êµÄ×éºÏÊÇÒµÎñ²¿Ãų£ÓõĺËÐÄÊý¾Ý¡£ÕâЩ²éѯ·´¸´µÄÔÚPrestoÉÏÖ´ÐУ¬ÏÔÈ»²»ÊÇ×î¼ÑÑ¡Ôñ£¬Ò²´ï²»µ½ÒµÎñ²¿ÃÅÌá³öµÄÐÂÄ¿±ê£¬ºËÐÄÊý¾Ý²éѯÏìӦʱ¼ä<=3Ãë¡£´Ëʱ£¬Kylin¾Í³ÉÁËÎÒÃǵÄÊ×Ñ¡¡£ÎÒÃǵÄÊý¾ÝÒýÇæµÄ¼Ü¹¹£¬Ò²´Óµ¥´¿µÄ²Ù×ÝSQLÀ©Õ¹µ½¼ÆËãÒýÇæµÄ·ÓÉ¡£Í¨¹ý¶ÁÈ¡Metadata²¢¸ù¾Ý¹æÔò£¬ÔÚKylinºÍPrestoÁ½¸ö¼ÆËãÒýÇæÖ®¼ä·ÓÉ£¬ÎÒÃÇ¿ÉÒÔÔÚ²»ÏÔÖøÌá¸ßÊý¾ÝÄ£ÐÍά»¤³É±¾µÄǰÌáÌõ¼þÏ£¬Í¨¹ýKylin¶Ô¹Ø¼üÊý¾Ý×öÔ¤¼ÆË㣬Ìá¸ßºËÐÄÊý¾ÝµÄÏìÓ¦ËÙ¶È¡£

ΪʲôѡÔñKylin
Ê×ÏÈ£¬KylinÀûÓÿռ任ʱ¼ä£¬´ÓÔÀíÉÏÒѾȷ±£ÁËAd-hocÏìÓ¦ËÙ¶È´ï±ê£¬ºÍOracle CUBE/ÎﻯÊÓͼµÄÔÀíÏàͬÒ×ÓÚÀí½â¡£
µÚ¶þ£¬KylinÖ§³ÖSQL£¬Õâ¶ÔÓÚÊý¾Ý·ÖÎö¶øÑÔÖÁ¹ØÖØÒª£¬Í¬Ê±Âú×ãÎÒÃÇÒ»¸öSQLÔÚ²»Í¬¼ÆËãÒýÇæÖ®¼ä·ÓɵÄÐèÇó¡£
ÁíÍ⣬KylinµÄSQL on HbaseµÄʵÏÖÒ²ºÜºÃµÄ½â¾öÁËHbase²»ÒײéѯµÄÎÊÌâ¡£µÚÈýÊÇÖ§³ÖDimension-FactµÄjoin£¬Õ⼫´óµÄ½âñîÁËÊý¾ÝÄ£ÐͺͼÆËãÒýÇæÖ®¼äµÄ¹ØÏµ£¬²»ÏñES»òPinotÖ»Ö§³Öµ¥±í£¬»¹ÓÐΪËûÃÇרÃÅ´¦ÀíÊý¾ÝµÄ¶îÍ⹤×÷¡£µÚËÄÊǶÔÊý¾Ý¿ª·¢À´Ëµ£¬´´½¨ºÍ¹ÜÀíCUBE±È½Ï¼òµ¥£¬ÇÒ͸Ã÷»¯ÁËMRºÍHBASEͬ²½¡£µÚÎåÊÇ¿ÉÒԺܷ½±ãµÄÔÚµ÷¶ÈϵͳÖе÷ÓÃKylin
API¶¨Ê±Ë¢ÐÂCUBE¡£×ÛÉÏËùÊö£¬Kylin¶ÔÓÚÒ»¸öÊý¾Ý·ÖÎöϵͳÀ´ËµÊÇÒ»¸öºÃµÄ½â¾ö·½°¸¡£
¾¹ýÒ»¶Îʱ¼äµÄ²âÊÔºÍÏßÉÏÔËÐУ¬ÎÒÃÇÔÚ֮ǰ°ÑKylin¸²¸Çµ½ºËÐÄÖ¸±êµÄ²éѯ»ù´¡ÉÏ»¹À©Õ¹µ½ÁËÔÚPrestoÉϲéѯÐèÒª30ÃëÒÔÉϵÄÖ¸±êºÍά¶È×éºÏÉÏ¡£ÒòΪÕâÀà²éѯÍùÍùÐèҪɨÃè´óÁ¿µÄ»ù´¡Êý¾Ý£¬ÔÚKylinÉÏÔ¤¼ÆËã¿ÉÒÔÓÐЧµÄ½ÏµÍ×ÊԴʹÓá£ÁíÒ»·½Ã棬»ùÓÚ×ÔÖú¶àά·ÖÎöƽ̨µÄÒµÎñ³¡¾°£¬ÎÒÃÇÒ²ÔÚÒÔÏÂÁ½¸ö³¡¾°Öв»ÆôÓÃKylin¡£µÚÒ»ÊÇά¶ÈµÄ»ùÊý´óÓÚ1Òڵij¡¾°£¬Ö÷ÒªÊÇÓÉÓÚ´ó»ùÊýµÄά¶È¼ÓÔØµÄKylin
ServerµÄÄÚ´æÖÐÈÝÒ×ÒýÆðOOM¡£µÚ¶þÊÇÊý¾ÝÄ£Ð;³£±ä»¯µÄÖ÷Ì⣬ÔÚKylinÖÐά»¤CUBEµÄ³É±¾¾ÍºÜ¸ßÁË£¬Ã¿´Î±ä»¯¶¼ÐèÒªÖØ½¨CUBE£¬ÖØË¢Êý¾Ý£¬ÕâÏÔÈ»ÓëÎÒÃÇÌá¸ß¸´ÓýµµÍÖØ¸´¿ª·¢µÄ³õÖÔ²»·û¡£¶ÔÓÚÕâÁ½¸ö³¡¾°£¬ÓÉPrestoÍê³É¼ÆËãÒ²¿ÉÒԺܺõÄÂú×ãÐèÇó¡£
»ùÓÚÒÔÉϵÄÔÔò£¬Ä¿Ç°ÎÒÃÇÀÛ¼ÆÓÐ20+¸öCUBE£¬10+T´æ´¢£¬×î´óCUBE¼Ç¼ÊýÉÏǧÒÚ£¬¸²¸ÇÁË23%µÄ²éѯ¡£Í¬Ê±£¬Ad-hocµÄÏìÓ¦ËÙ¶ÈÒ²ÁîÈËÂúÒâ¡£KylinµÄƽ¾ùÏìÓ¦ËÙ¶ÈÊÇPrestoµÄ10.5±¶£¬ÖÐλÊýÏìÓ¦ËÙ¶ÈÊÇPrestoµÄ4.5±¶¡£

ΨƷ»á¶ÔKylin×öµÄ¸Ä½ø
Õë¶ÔΨƷ»áµÄÍ´µã£¬ÎÒÃÇÒ²ÔÚ¿ªÔ´¿ò¼ÜµÄ»ù´¡ÉϽøÐÐÁËÐ޸ġ£»ù´¡Éý¼¶·½Ã棬ÎÒÃÇÕë¶Ô×ÔÖú¶àά·ÖÎöƽ̨µÄÐèÇó½øÐÐÁËÉý¼¶¡£±ÈÈ磬ÔÚ²éÕÒCUBEµÄʱºò£¬½öµ±CUBEÄÚÊý¾Ý°üº¬SQL²éѯµÄʱ¼ä·¶Î§²ÅÃüÖÐCUBE£¬±ÜÃâ¸øÓû§²»ÍêÕûµÄÊý¾Ý¼¯¡£Í¬Ê±ÎÒÃDzɼ¯ÁËKylinÔËÐÐÖÐmetadata£¬²¢¸øÓèÕâЩÊý¾ÝÌṩSQL·ÖÎöAPIÒÔ½âÎöKylinÄÜÔËÐеÄSQL×Ó²éѯ¡£ÁíÍâһЩBUGÐÞ¸´Ò²Ìá½»µ½ÁËÉçÇø¡£
³ý´ËÖ®Í⣬ÎÒÃÇ»ùÓÚPresto+KylinË«ÒýÇæµÄ¼Ü¹¹£¬¿ª·¢ÁËPresto on KylinÕâ¸ö¹¦ÄÜ¡£Í¨¹ýÔÚPresto²àÔö¼ÓKylin
Connector£¬ÎÒÃÇÖ§³ÖÁËKylinÓëHiveÊý¾ÝÔ´µÄ¿çÔ´Join£¬Ö§³ÖRaw data»ã×ܺóµÄÊý¾ÝºÍKylin
Cube Êý¾ÝJoin¡£ÎªÁËÖ§³ÖÒÔÉÏÁ½¸ö¹¦ÄÜ£¬ÎÒÃÇÔÚKylinÔö¼ÓÁËExplain¹¦Äܼò»¯ÁËCubeÃüÖÐ̽²éµÄ¸´ÔÓ¶È¡£Í¬Ê±£¬ÎªÁ˽øÒ»²½½µµÍÊý¾Ý¿ª·¢Ñ°ÕÒ²éѯ×éºÏµÄ¸´ÔÓ¶È£¬ÎÒÃÇ¿ª·¢ÁËCube
Advisor£¬Í¨¹ýͳ¼Æ·ÖÎöPresto SQL»ñµÃËùÓÐά¶ÈºÍÖ¸±êµÄ×éºÏƵ´Î£¬¸ù¾Ý×ʹÓúÍÏìӦʱ¼ä³¤Á½¸öÌõ¼þ£¬ÍƼöºÏÊʵÄCube¶¨Ò彨Ò飬Êý¾Ý¿ª·¢¿ÉÒÔÖ±½Ó¸ù¾ÝÍÆ¼öµÄ½¨Òé´´½¨Cube¡£
ÏÂÒ»²½£¬ÎÒÃÇ»á¸ÄÔìKylinά±íµÄCache»úÖÆ£¬½â¾ö´ó»ùÊýά±í²»ÄÜ´´½¨CUBEµÄÎÊÌ⣬ͬʱ½øÒ»²½À©Õ¹CUBE
AdvisorÖ§³ÖÒ»¼üÉú³ÉCUBEµÄ¹¦Äܲ¢Äܹ»Ö§³Ö×Ô¶¯Ë¢ÐÂÀúÊ·Êý¾Ý£¬½µµÍÈ˹¤Î¬»¤³É±¾¡£Í¬Ê±£¬½«KylinµÄÓ¦ÓÃÍÆ¹ãµ½±¨±íÀàÊý¾Ý²úÆ·¡£
ÔÚÌá¸ß´óÊý¾Ý·ÖÎöAd-hocÏìÓ¦ËٶȵÄ·ÉÏ£¬¿Éν°ËÏɹýº£¸÷ÏÔÉñͨ£¬ÎÒÃÇͨ¹ýPrestoºÍKylinµÄ½áºÏÂú×ãÁ˵±Ç°µÄÐèÇ󣬺óÃæÎÒÃÇÒ²»á¼ÌÐøÌ½Ë÷¸ü¶à½â¾ö·½°¸£¬Ñ°ÕÒÏÂÒ»´úµÄ¶àά·ÖÎöÒýÇæ£¬Ôڴ˹ý³ÌÖУ¬»¶Ó´ó¼ÒÓëÎÒÃÇÒ»ÆðÌÖÂÛ¡£ |