±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁË
Presto ÊÇʲô£¿Presto ÔÚÓÐÔÞµÄʹÓó¡¾°£¬Presto ÔÚÓÐÔÞµÄÑݽøÖ®Â·µÈÏà¹ØÄÚÈÝ¡£
±¾ÎÄÀ´×Ôcsdn£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼¡¢ÍƼö¡£ |
|
Ò»¡¢Presto ½éÉÜ
Presto ÊÇÓÉ Facebook ¿ª·¢µÄ¿ªÔ´´óÊý¾Ý·Ö²¼Ê½¸ßÐÔÄÜ SQL ²éѯÒýÇæ¡£Æð³õ£¬Facebook
ʹÓà Hive À´½øÐн»»¥Ê½²éѯ·ÖÎö£¬µ« Hive ÊÇ»ùÓÚ MapReduce ΪÅú´¦Àí¶øÉè¼ÆµÄ£¬ÑÓʱºÜ¸ß£¬Âú×ã²»ÁËÓû§¶ÔÓÚ½»»¥Ê½²éѯÏëÒª¿ìËÙ³ö½á¹ûµÄ³¡¾°¡£ÎªÁ˽â¾ö
Hive ²¢²»Éó¤µÄ½»»¥Ê½²éѯÁìÓò£¬Facebook ¿ª·¢ÁË Presto£¬×¨ÃÅΪ½»»¥Ê½²éѯËùÉè¼Æ£¬Ìṩ·ÖÖÓ¼¶ÄËÖÁÑÇÃë¼¶µÍÑÓʱµÄ²éѯÐÔÄÜ¡£
1.1 Presto ¼Ü¹¹

1.2 Presto Ö´Ðвéѯ¹ý³Ì
Client ·¢ËÍÇëÇó¸ø Coordinator¡£
SQL ͨ¹ý ANTLR ½øÐнâÎöÉú³É AST¡£
AST ͨ¹ýÔªÊý¾Ý½øÐÐÓïÒå½âÎö¡£
ÓïÒå½âÎöºóµÄÊý¾ÝÉú³ÉÂß¼Ö´Ðмƻ®£¬²¢ÇÒͨ¹ý¹æÔò½øÐÐÓÅ»¯¡£
ÇзÖÂß¼Ö´Ðмƻ®Îª²»Í¬ Stage£¬²¢µ÷¶È Worker ½ÚµãÈ¥Éú³É Task¡£
Task Éú³ÉÏàÓ¦ÎïÀíÖ´Ðмƻ®¡£
µ÷¶ÈÍêºó¸ù¾Ýµ÷¶È½á¹û Coordinator ½« Stage ´®ÁªÆðÀ´¡£
Worker Ö´ÐÐÏàÓ¦µÄÎïÀíÖ´Ðмƻ®¡£
Client ²»¶ÏµØÏò Coordinator ÀÈ¡²éѯ½á¹û£¬Coordinator ´Ó×îÖÕ»ã¾ÛÊä³öµÄ
Worker ½ÚµãÀÈ¡²éѯ½á¹û¡£
1.3 Presto ΪºÎ¸ßÐÔÄÜ
Pipeline, È«ÄÚ´æ¼ÆËã¡£
SQL ²éѯ¼Æ»®¹æÔòÓÅ»¯¡£
¶¯Ì¬´úÂëÉú³É¼¼Êõ¡£
Êý¾Ýµ÷¶È±¾µØ»¯£¬×¢ÖØÄڴ濪ÏúЧÂÊ£¬ÓÅ»¯Êý¾Ý½á¹¹£¬Cache£¬·Ç¾«È·²éѯµÈÆäËü¼¼Êõ¡£
¶þ¡¢Presto ÔÚÓÐÔÞµÄʹÓó¡¾°

Êý¾Ýƽ̨(DP)µÄÁÙʱ²éѯ: ÓÐÔ޵ĴóÊý¾ÝÍŶÓʹÓÃÁÙʱ²éѯ½øÐÐ̽Ë÷ÐÔµÄÊý¾Ý·ÖÎöµÄͳһÈë¿Ú£¬Í¬Ê±Ò²ÌṩÁËÍÑÃô£¬Éó¼ÆµÈ¹¦ÄÜ¡£
BI ±¨±íÒýÇæ£ºÎªÉ̼ÒÌṩÁ˸÷Àà·ÖÎöÐ͵ı¨±í¡£
ÔªÊý¾ÝÊý¾ÝÖÊÁ¿Ð£ÑéµÈ£ºÔªÊý¾Ýϵͳ»áʹÓà Presto ½øÐÐÊý¾ÝÖÊÁ¿Ð£Ñé¡£
Êý¾Ý²úÆ·£º±ÈÈç CRM Êý¾Ý·ÖÎö£¬ÈËȺ»ÏñµÈ»áʹÓà Presto ½øÐмÆËã¡£
Èý¡¢Presto ÔÚÓÐÔÞµÄÑݽøÖ®Â·
µÚÒ»½×¶Î: Presto ºÍ Hadoop »ìºÏ²¿Êð½×¶Î:
Æð³õ£¬Presto ÊÇºÍ Hadoop ÀëÏß¼¯Èº»ìºÏÔÚÒ»Æð²¿ÊðµÄ¡£µ«ÊÇÄÇʱºòÓû§¾³£»á±§Ô¹ Presto
Ö´ÐÐÐÔÄܲ»Îȶ¨£¬¶ÔÓÚͬÑùµÄ SQL£¬Ê±¿ìʱÂý¡£ÎÒÃǹ۲쵽ͬÑùµÄ Task£¬´¦ÀíµÄÊý¾ÝÁ¿ºÍ»¨·ÑµÄCPU
Time ÀàËÆ£¬µ«ÊÇÓÐʱºò¾Í»á³öÏÖÄ³Ð©ÌØ±ð³¤µÄElapsed TimeµÄTask£¬´Ó¶øÍÏÂýÕûÌåµÄ²éѯÐÔÄÜ¡£¾·ÖÎö£¬ÊÇÒòΪÔÚÕâ¸öʱ¼äµã´ÅÅÌ
IO ´ø¿í±» Hadoop ÀëÏßÈÎÎñ´òÂúµ¼Öµġ£ËäÈ» Hadoop ÀëÏß¼¯ÈºÒ»°ãÈÎÎñ¶¼»áÔÚÁ賿½øÐе÷¶È£¬µ«ÊÇ
Ò²ÓÐһЩÈÎÎñ»áÔÚ°×Ìì²»¶¨ÆÚµØÅÜ£¬ÕâÖÖʱºòÍùÍù»á±È½ÏÓ°ÏìÐÔÄÜ¡£ÓÚÊÇÎÒÃǾö¶¨ÍêÈ«¶ÀÁ¢ Presto ¼¯Èº£¬²¢ÇÒµ¥¶À°²×°
HDFS »·¾³¡£
µÚ¶þ½×¶Î: Presto ¼¯ÈºÍêÈ«¶ÀÁ¢½×¶Î:
ÎÒÃÇ×¼±¸½« Presto µ¥¶À¹æ»®³öÒ»¸ö¼¯Èº£¬²¢ÇÒµ¥¶À°²×° HDFS »·¾³£¬¶øÀëÏß Hadoop ¼¯ÈºÖ»ÐèÒª½«Êý¾ÝÿÌìµ¼Èëµ½Õâ¸ö
HDFS »·¾³ÖУ¬´ËºóÀëÏß Hadoop ¼¯ÈºËùÓеÄÈÎÎñ¶¼²»»áÓ°Ïì Presto ¼¯Èº¡£µÚÒ»¸öÎÊÌâ¾ÍÓöµ½ÁËÎÒÃÇÈçºÎÈ¥½«ÏÖÓÐÀëÏß
Hadoop ¼¯ÈºµÄÊý¾Ý±íµ¼È뵽еļ¯Èº¡£Ä¿Ç°ÎÒÃǵķ½°¸Êǹ²Í¬Ê¹ÓÃÒ»¸ö Hive£¬Í¨¹ýΪרÃÅн¨Ò»¸ö¿â£¬ÔÚ´´½¨¿âµÄʱºòÖ¸¶¨LocationµÄ·½Ê½È¥¹ØÁªµ½
Presto ¼¯ÈºµÄ HDFS NameService¡£ºóÃæÓû§ÔÚÕâ¸ö¿âÏÂÃæ½¨±í¾Í»á½« Hive ±í´æ´¢µ½
Presto ¼¯Èº¡£ÕâʱºòÎÒÃÇµÄ Presto ÐÔÄܾͻáÏà¶ÔÎȶ¨µÃ¶à£¬»ù±¾²»ÔÙ»áͬÑùµÄtask´¦Àí²î²»¶àÊý¾ÝÁ¿µÄʱºòÓм¸¸ö
Elapsed Time ÌØ±ð¸ßµÄÇé¿öÁË¡£
µÚÈý½×¶Î: µÍÑÓʱҵÎñרÓà Presto ¼¯Èº½×¶Î:
ÔÚµÚ¶þ½×¶ÎÎÒÃǵÄÒµÎñÖ®¼äµÄ×ÊÔ´¸ôÀëÖ÷Òª»¹ÊÇ¿¿ Resource Group£¬µ«ÊÇÕâÖÖ¸ôÀ뷽ʽÏà¶Ô±È½ÏÈõ£¬²»ÄÜÌṩϸÁ£¶ÈµÄ¸ôÀ룬ÈÎÎñÖ®¼ä»¹ÊǻụÏàÓ°Ïì¡£´ËÍ⣬²»Í¬ÒµÎñµÄsqlÀàÐÍ£¬²éѯÊý¾ÝÁ¿£¬²éѯʱ¼ä£¬¿ÉÈÝÈ̵Ä
SLA£¬¿ÉÌṩµÄ×îÓÅÅäÖö¼ÊDz»Ò»ÑùµÄ¡£ÓÐЩҵÎñ·½ÐèÒªÒ»¸öÌØ±ðµÍµÄÏìӦʱ¼ä±£Ö¤£¬ÓÚÊÇÎÒÃǸøÕâÀàÒµÎñ²¿ÊðÁËרÃŵļ¯ÈºÈ¥´¦Àí¡£²¿ÊðÔÚÕâ¸ö¼¯ÈºÉϵÄÒµÎñÒªÇóµÍÑÓʱ£¬Í¨³£ÊÇ3ÃëÄÚ£¬ÉõÖÁÓÐЩÄܹ»´ïµ½1ÃëÄÚ£¬¶øÇÒ»áÓÐÒ»¶¨Á¿µÄ²¢·¢¡£²»¹ýÕâÀàÒµÎñͨ³£Êý¾ÝÁ¿²»ÊǷdz£´ó£¬¶øÇÒͨ³£¶¼ÊÇ´ó¿í±í£¬Ò²¾Í²»ÐèÒªÔÙÈ¥
Join ±ðµÄÊý¾Ý£¬Group By ÐÎ³ÉµÄ Group »ùÊýºÍ²úÉúµÄ¾ÛºÏÊý¾ÝÁ¿²»ÊÇÌØ±ð´ó£¬²éѯʱ¼äÖ÷ÒªÏûºÄÔÚÊý¾ÝɨÃè¶Áȡʱ¼äÉÏ¡£ÎÒÃÇͬÑùÒ²ÌṩÁË×ÊÔ´ÍêÈ«¶ÀÁ¢£¬¾ßÓб¾µØ
HDFS µÄרÓà Presto ¼¯Èº¸øÕâÀàÒµÎñ·½È¥Ê¹ÓᣴËÍ⣬ÎÒÃÇ»áΪÕâÖÖÒµÎñÌṩÉî¶ÈµÄÐÔÄܲâÊÔ£¬µ÷ÕûÏàÓ¦µÄÅäÖ㬱ÈÈ罫
Task Concurrency ¸Ä³É1£¬ÔÚ²¢·¢Á¿¸ßµÄ²âÊÔ³¡¾°ÖУ¬·´¶øÓÉÓÚ¼õÉÙÁËÏ̼߳äÇл»£¬ÐÔÄÜ»á¸üºÃ¡£
ËÄ¡¢Presto ÔÚÓÐÔÞʹÓÃÖеÄÓöµ½µÄÎÊÌâ
4.1 HDFS СÎļþÎÊÌâ
HDFS СÎļþÎÊÌâÔÚ´óÊý¾ÝÁìÓòÊǸö³£¼ûµÄÎÊÌâ¡£ÎÒÃÇ·¢ÏÖÎÒÃǵÄÊý²Ö
Hive ±íÓÐЩ±íµÄÎļþÓм¸Ç§¸ö£¬²éÑ¯ÌØ±ðÂý¡£Presto ÕâÁ½¸ö²ÎÊýÏÞÖÆÁË Presto ÿ¸ö½Úµãÿ¸ö
Task ¿ÉÖ´ÐеÄ×î´ó Split ÊýÄ¿¡£
node-scheduler.max-splits-per-node=100
node-scheduler.max-pending-splits-per-task=10 |
Òò´Ëµ±²éѯÓÐÐí¶àСÎļþµÄ±íµÄʱºò£¬ÎÊÌâ¾Í±¬·¢³öÀ´ÁË£¬²éѯÆðÀ´ÌرðÂý¡£ÎªÁ˽â¾öÕâ¸öÎÊÌ⣬ÎÒÃÇ·ÖÁ½²½×ß:
Êʵ±µ÷´óÁËÕâÁ½¸ö²ÎÊý.
ÔÚ Spark£¬Hive ETL ²ãÃæÒýÈë Adaptive Spark ºÍСÎļþºÏ²¢¹¤¾ßÈ¥½â¾öÕâ¸öСÎļþÎÊÌâ¡£
4.2 ÕýÔò±í´ïʽָÊý¼¶±ð»ØËÝÎÊÌâ
ÓÐÒ»Ì죬ÓиöÓû§Ò»¸öÁÙʱ²éѯÅÜÁË1¸öСʱҲûÍ˳ö£¬Í¨¹ý jstack£¬ÕÒµ½Á˶ÔÓ¦´úÂ룬·¢¾õÊÇÔÚÔËÐÐ
Presto ÀïÃæµÄÕýÔò±í´ïʽÒýÇæ Joni ¿âÆ¥ÅäµÄ´úÂ룬ºóÀ´·¢ÏÖËûдµÄÊÇÒ»¸ö»á²úÉúÖ¸Êý¼¶±ð»ØËݵÄÕýÔò±í´ïʽ¡£ÉçÇøµÄ·´À¡ÊÇ¿ÉÒÔ½«
Presto µÄÕýÔò±í´ïʽÅäÖÃ³É Google RE2J£¬µ«ÊÇ RE2J »áÎþÉüµôһЩÕýÔò±í´ïʽµÄÓï·¨¡£ºóÀ´ÎÒÃǾ¡¹Ü
Presto ÊǸö¶àÏß³ÌÖ´ÐÐÒýÇæ£¬µ«ÊÇ Joni ÒýÇæÔÚÉè¼ÆÉÏ»¹ÊÇ¿ÉÒÔ±» Interrupt µÄ£¬ÓÚÊǼÓÉÏÁ˲éѯ×î´óÔËÐÐʱ¼äµÄÏÞÖÆ£¬²¢ÇÒ֪ͨÁËÏà¹ØµÄÓû§¡£Ïê¼û
(https://github.com/prestodb/presto/issues/12191)
4.3 ¶à¸öÁÐ Distinct µÄÎÊÌâ
ÓÐһЩ±¨±íÒµÎñÊÇʹÓà Presto Ö±½ÓÀ´Ëãת»¯Âʵģ¬ÕâÑùµÄ±¨±í¾Í»áÒýÆðÒ»¸ö²éѯÓï¾äÖÐÓжà¸ö count
distinct ÁеÄÎÊÌ⡣Ȼ¶ø²é¿´ÐÔÄܵÄʱºò»á·¢¾õÕâÖÖÓï¾äÌØ±ðÂý£¬ºóÀ´·¢¾õ£¬¾ÍËãÎÒÊÖ¶¯½«Õâ¸ö²éѯÓï¾ä·Ö³É¶à¸öÓï¾ä£¬Ã¿¸öÓï¾äÈ¥Ö´ÐÐÒ»¸ö
count distinct ʱ£¬Ò²±ÈºÏÆðÀ´Òª¿ì¡£ÓÚÊÇÉîÈëµ÷ÑÐÁËÏ£¬Spark£¬Hive TEZ£¬Calcite
Ö®ÀàµÄ·¢¾õ count distinct ÔÚ SQL ÓÅ»¯Æ÷ÄDZ߻ᱻÓÅ»¯µô£¬À´½â¾öÊý¾ÝÇãбµÄÎÊÌâ¡£
¼òµ¥À´Ëµ: µ¥ÁÐµÄ count distinct:
select A, count(distinct
B) from T group by A.
ת»»³É
select A, count(B) from (select A, B from T group
by A, B) group by A |
¶ø¶à¸ö count distinct ÁеÄÔÀíÀàËÆ£¬¾ÍÊÇ»áʹÓà grouping
sets È¥½«¶à¸ö group by ÕûºÏµ½Ò»ÆðÀ´ÌáÉý
SELECT a1, a2,...,
an, F1(b1), F2(b2), F3(b3), ...., Fm(bm), F1(distinct
c1), ...., Fm(distinct cm) FROM Table GROUP BY
a1, a2, ..., an
ת»»Îª
SELECT a1, a2,..., an, arbitrary (if(group = 0,
f1)),...., arbitrary (if(group = 0, fm)), F(if(group
= 1, c1)), ...., F(if(group = m, cm)) FROM
SELECT a1, a2,..., an, F1(b1) as f1, F2(b2) as
f2,...., Fm(bm) as fm, c1,..., cm group FROM
SELECT a1, a2,..., an, b1, b2, ... ,bn, c1,...,
cm FROM Table GROUP BY GROUPING SETS ((a1, a2,...,
an, b1, b2, ... ,bn), (a1, a2,..., an, c1), ...,
((a1, a2,..., an, cm)))
GROUP BY a1, a2,..., an, c1,..., cm group
GROUP BY a1, a2,..., an |
Presto ¶ÔÓÚ¶à¸ö count distinct ÁÐÕâ·½Ãæ²¢Ã»ÓÐȥʵÏÖ¡£
Õâ±ßÎÒÃÇĿǰ²ÉÓõķ½°¸ÊÇ:
Ð޸ĴúÂëȥʵÏÖ£¬²¢ÇÒÌá½»ÁË Issue ºÍ PR ¸øÉçÇø£¬Ò»¸ö±» merge ÁË£¬»¹ÓÐÒ»¸ö»¹ÔÚ review
ÖУ¬ºóÐø»¹»á¼ÌÐø¸ú½ø¡£
Issue: [Optimize distinct aggregation on multi column
PR1: Fix Count(*) on empty relation returns NULL
when optimizemixeddistinct_aggregation is turned on
Merged
PR2: [Optimize distinct aggregation on multiple columns
Reviewing
ÈÃÒµÎñ·½¿ÉÒÔÈÝÈ̷Ǿ«È·È¥ÖصÄÑ¡Óà approxmate_distinct ȥʵÏÖ¡£
4.4 HDFS Namenode µ¼ÖÂÓÐÉÙÊý²éѯ»áÏà¶ÔÂýÒ»µã
ÔÚÎÒÃǸøÓû§×öרÓÃpresto¼¯Èº¶ÀÁ¢µÄÐÔÄܲâÊÔʱ£¬ÎÒÃÇ·¢ÏÖͬÑùµÄSQL»áÓкÜÉÙÊý²éѯÂýÒ»µã£¬ºóÀ´Ñо¿ÁËÏ·¢ÏÖ
Presto Coordinator ȥͨ¹ý
public RemoteIterator< LocatedFileStatus>
listLocatedStatus(final Path f) |
µ÷ÓÃÇëÇó HDFS NameNode µÄʱºò£¬ÓÐʱºò»áÑÓ³Ù1Ãëºó·µ»Ø¡£ºóÀ´·¢¾õÕâ¸öʱºòÕýºÃÊÇ NameNode
ÔÚ×ö Edit Log Rolling µÄʱºò£¬ÓÉÓÚÕâ¸öʱºò NameNode »áÈ¥ÄöÁÐ´ËøµÄÐ´Ëø£¬´Ó¶ø×èÈûÁ˶ÁÇëÇó»ñµÃ¶ÁËø£¬Òò´ËÓÐʱºòÑÓ³Ù1Ãëºó·µ»Ø¡£
Õâ¸öÎÊÌâĿǰÓÉÓÚ»ù±¾¿ÉÈÝÈÌ£¬ÏÖ½×¶ÎÒ²Âú×ãÁËÒµÎñ·½µÄ SLA£¬ËùÒÔºóÃæÃ»ÓÐÈ¥½â¾ö: ÎÒ¸öÈ˾õµÃ£¬HDFS
²¢²»ÊÇΪÁËÔÚÏß·þÎñÉè¼ÆµÄ£¬ÒªÌá¸ß HDFS RPC ÇëÇóµÄÎȶ¨ÐÔ£¬ÓÐÒÔϼ¸ÖÖ·½Ê½:
²Î¿¼[
Uber ÒýÈëÁË Observer NameNode ]¡£
ʹÓà Alluxio£¬ÎÒÃǼòµ¥²âÊÔÁËÏ Alluxio£¬Alluxio Master ºÃÏñ²»»á³öÏÖÕâÖÖÎÊÌ⣬ÔÚºóÃæ¶ÔδÀ´µÄÕ¹ÍûС½ÚÖУ¬ÎÒÃÇÌáµ½ÁË
Alluxio + Presto µÄÒâÒå¡£
³¢ÊÔ¸ü»» NameNode µÄÅÌΪ SSD ÅÌ£¬¼õÉÙ Edit Log Rolling µÄʱ¼ä¡£
Îå¡¢¶ÔδÀ´µÄÕ¹Íû
5.1 Presto + Alluxio
Alluxio ͨ¹ýÄܹ»Ï¸Á£¶ÈµÄÈ¥¿ØÖÆÄڴ棬»á±È´¿´âµÄ¿¿ OS Page Cache È¥¿ØÖÆÒ³¼¶±ð»º´æ¸ü¾ßÓÐÓÅÊÆ¡£Äã¿ÉÒÔ½«Ò»¸ö±í¼ÓÔØµ½
Alluxio ÀïÃæ£¬È»ºóÿ´Î¶ÔËüµÄ·ÃÎÊ IO Õâ¿é»¨·ÑµÄʱ¼ä»ù±¾¿ÉÒÔ˵ÊÇ¿ìËÙÇҺ㶨µÄ¡£µ±È»£¬ÎÒÃÇÒ²ÐèÒªÀíÐÔ¿´´ý
Alluxio£¬´ÓÔÀí±¾ÖÊÉÏÀ´½²£¬¾Í Presto ¶ÁÈ¡Êý¾ÝÕâ¿é£¬Õâ¸öÒªÊÓÇé¿ö¶øÂÛ. ÎÒÃDzâÊÔ¹ý Presto
ÌṩµÄ HiveFileFormatBenchmark£¬´ó¼ÒÒ²¿ÉÒÔ×Ô¼ºÅÜһϣ¬½áÂÛ¾ÍÊǵ¥¸ö CPU
ºË¶ÁÈ¡ TPCH µÄÒ»¸ö Lineitem ±í£¬ORC ZLIB ѹËõ·½Ê½´ó¸ÅÊÇÔÚ40MB/s, µ±È»²»Í¬Êý¾Ý¸ñʽ£¬²»Í¬Ñ¹Ëõ±È»áÓÐËù²»Í¬¡£Òò´Ë£¬ÏÖ´ú´ÅÅÌ˳Ðò¶ÁдµÄËÙ¶È¿ÉÒÔ´ïµ½150MB/s£¬Èç¹û¾ÍÒ»¸öÈÎÎñÊDz»»áÓÐÆ¿¾±µÄ¡£Õâʱºò
CPU ÊÇÆ¿¾±£¬ µ«ÊÇÏÖʵÊÇÒ»¸ö²éѯ¶à¸öÈÎÎñÅÜ£¬¶à¸ö²éѯ²¢ÐÐÅÜ£¬ÄãÕâ¸öʱºò¾ÍºÜÄѱ£Ö¤´ÅÅÌ˳Ðò¶Áд£¬ÍÌÍ£¬ÒÔ¼°ÊÇ·ñÔÚ
OS Page Cache ÖУ¬Õâ¸öʱºò¾ÍºÜÓпÉÄÜ´ÅÅÌ IO ÊÇÆ¿¾±ÁË¡£Òò´Ë Alluxio »¹ÊÇÓÐÓÃÎäÖ®µØµÄ£¬ÖÁÉÙ¿ÉÒÔ°Ñ´ÅÅÌ
IO Õâ¸ö²»¿É¿ØÒòËØ¸øºã¶¨ÏÂÀ´¡£
5.2 Presto session property managers
а汾µÄ Presto ʵÏÖÁË Session property manager ¶ÔÓÚ²»Í¬µÄ WorkLoad£¬²»Í¬µÄÒµÎñ
SQL ÀàÐÍ£¬Êý¾ÝÁ¿£¬Í¨¹ý²»Í¬µÄÅäÖÃÄܹ»´ïµ½×îºÃµÄЧ¹û¡£Õâ¸ö¿¿Óû§×Ô¼ºÈ¥ÉèÖà Session Property
ÊDz»Ì«ÏÖʵµÄ£¬±ØÐëÔÚ Presto ·þÎñ¶Ë½øÐйÜÀí¡£
5.3 Presto¶à×â»§¸ôÀë
Ŀǰ Presto ¹Ù·½²¢Ã»ÓÐʵÏÖºÍ Apache Ranger ½áºÏµÄ¶à×â»§¸ôÀë»úÖÆ£¬ÎÒÃÇĿǰÓÐÒ»¸ö
Sql Parser·þÎñ£¬È¥½âÎö Presto£¬Hive£¬Spark ÈýÖÖÒýÇæµÄÓï·¨£¬È¥×öÍÑÃô£¬É󼯣¬ÖÇÄÜÑ¡ÔñµÈ¹¦ÄÜ£¬ºóÃæ»áÈ¥×ö½áºÏ
Apache Ranger ͨ¹ý sql ÖØÐ´À´ÊµÏÖÊý¾Ý¸ôÀ룬ÀàËÆÓÚÏÖÔÚµÄÍÑÃôʵÏÖ¡£
|