±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜLakehouse: ͳһÊý¾Ý²Ö¿âºÍ¸ß¼¶·ÖÎöµÄÐÂÒ»´ú¿ª·Åƽ̨,Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚ²©¿ÍÔ°
£¬ÓÉAlice±à¼¡¢ÍƼö¡£ |
|
1. ÕªÒª
Êý²Ö¼Ü¹¹ÔÚδÀ´Ò»¶Îʱ¼äÄÚ»áÖð½¥ÏûÍö£¬»á±»Ò»ÖÖеÄLakehouse¼Ü¹¹È¡´ú£¬¸Ã¼Ü¹¹Ö÷ÒªÓÐÈçÏÂÌØÐÔ
»ùÓÚ¿ª·ÅµÄÊý¾Ý¸ñʽ£¬ÈçParquet£»
»úÆ÷ѧϰºÍÊý¾Ý¿ÆÑ§½«±»×÷ΪͷµÈ¹«ÃñÖ§³Ö£»
Ìṩ׿ԽµÄÐÔÄÜ£»
Lakehouse¿ÉÒÔ½â¾öÊý¾Ý²Ö¿âÃæÁٵöÖ÷ÒªÌôÕ½£¬Èç Êý¾Ý³Â¾É £¬ ¿É¿¿ÐÔ £¬ ×ܳɱ¾ £¬ Êý¾Ý¸ñʽ²»¿ª·Å ºÍ ÓÐÏÞ³¡¾°Ö§³Ö ¡£
2. Êý¾Ý·ÖÎöƽ̨·¢Õ¹
Êý¾Ý²Ö¿â½«ÒµÎñÊý¾Ý¿âµÄÊý¾ÝÊÕ¼¯µ½¼¯ÖÐʽ²Ö¿âÀ´°ïÖúÆóÒµÁìµ¼Õß»ñµÃ·ÖÎö¼û½â£¬È»ºó½«ÆäÓÃÓÚ¾ö²ßÖ§³ÖºÍÉÌÒµÖÇÄÜ£¨BI£©£¬²Ö¿âʹÓÃдģʽ£¨schema-on-write£©Ð´ÈëÊý¾Ý£¬¶ÔÏÂÓÎÏû·ÑÕß½øÐÐÁËÓÅ»¯£¬´ËΪµÚÒ»´úÊý¾Ý·ÖÎöƽ̨¡£

ÂýÂýµØµÚÒ»´úϵͳ¿ªÊ¼ÃæÁÙÈô¸ÉÌôÕ½£¬Ê×ÏÈÊǼÆËãÓë´æ´¢ñîºÏʹµÃÀ©Èݳɱ¾Ôö¼Ó£»Æä´ÎÔ½À´Ô½¶àµÄÊý¾Ý¼¯ÊǷǽṹ»¯µÄ£¬ÀýÈçÊÓÆµ£¬ÒôƵºÍÎı¾Îĵµ£¬Êý¾Ý²Ö¿âÎÞ·¨´æ´¢ºÍ²éѯÕâЩÊý¾Ý¡£
ΪÁ˽â¾öÕâЩÎÊÌ⣬ÒýÈëµÚ¶þ´úÊý¾Ý·ÖÎöƽ̨£¬Æä½«ËùÓÐÔʼÊý¾Ýµ¼ÈëÊý¾Ýºþ£º¾ßÓÐÎļþAPIµÄµÍ³É±¾´æ´¢ÏµÍ³£¬¸ÃAPIÒÔͨÓÃÇÒͨ³£ÊÇ¿ª·ÅµÄÎļþ¸ñʽ±£´æÊý¾Ý£¬ÀýÈçApache ParquetºÍORC£¬¿ÉÒÔ»ùÓÚHDFSʵÏֵͳɱ¾Êý¾Ýºþ´æ´¢£¬Êý¾ÝºþÊÇÒ»ÖÖ¶Áģʽ£¨schema-on-read£©¼Ü¹¹£¬¿ÉÒÔÁé»îµØÒԵͳɱ¾´æ´¢ÈκÎÊý¾Ý¡£
¸Ã¼Ü¹¹ÖеÄһС²¿·ÖÊý¾ÝËæºó½«±»ETLµ½ÏÂÓÎÊý¾Ý²Ö¿âÒÔÌṩ×îÖØÒªµÄ¾ö²ßÖ§³ÖºÍBIÓ¦ÓóÌÐò¡£

´Ó2015ÄêÆð£¬S3£¬ADLS£¬GCS£¬OSSµÈÔÆÊý¾Ýºþ¿ªÊ¼È¡´úHDFS£¬ÔÆÉϵļܹ¹ÓëµÚ¶þ´úϵͳÖеļܹ¹»ù±¾Ïàͬ£¬ÔÆÉÏÓÐRedshift¡¢SnowflakeºÍADBµÈÊý¾Ý²Ö¿â£¬ÕâÖÖÁ½²ãµÄÊý¾Ýºþ+Êý²Ö¼Ü¹¹ÔÚÐÐÒµÖÐÕ¼Ö÷µ¼µØÎ»£¨²Æ¸»500Ç¿ÆóÒµÖм¸ºõ¶¼ÔÚʹÓã©¡£µ«ÕâÖּܹ¹Ò²ÃæÁÙÁËһЩÌôÕ½£¬¾¡¹ÜÓÉÓÚ·Ö¿ªµÄ´æ´¢£¨ÀýÈçS3£©ºÍ¼ÆË㣨ÀýÈçRedshift£©¶øÊ¹ÔÆÊý¾ÝºþºÍ²Ö¿âµÄÌåϵ¼Ü¹¹±íÃæÉϱãÒË£¬µ«ÊǶÔÓÚÓû§À´Ëµ£¬Á½²ãÌåϵ½á¹¹È´·Ç³£¸´ÔÓ¡£ÔÚµÚÒ»´úƽ̨ÖÐËùÓÐÊý¾Ý¶¼´ÓÔËÓªÊý¾Ýϵͳֱ½ÓETLµ½²Ö¿â£¬¶øÔÚÕâÖּܹ¹ÖУ¬Êý¾ÝÊ×Ïȱ»ETLµ½Êý¾Ýºþ£¬È»ºóÓÖ±»ELTµ½Êý²Ö£¬ÒýÈë¶îÍâµÄ¸´ÔÓÐÔ¡¢Ñӳٺ͹ÊÕÏÂÊ£¬¶øÇÒÆóÒµÓÃÀýÖаüÀ¨»úÆ÷ѧϰ֮ÀàµÄ¸ß¼¶·ÖÎö£¬Êý¾ÝºþºÍ²Ö¿â¶¼Ö§³ÖµÃ²»ÀíÏ룬¾ßÌåÀ´Ëµ£¬µ±Ç°µÄÊý¾Ý¼Ü¹¹Í¨³£»áÓöµ½ÈçÏÂËĸöÎÊÌ⣺
¿É¿¿ÐÔ ¡£±£³ÖÊý¾ÝºþºÍÊý²ÖÒ»ÖÂÊÇÀ§ÄÑÇÒ°º¹óµÄ£¬ÐèÒª¶ÔÁ½¸öϵͳ֮¼äµÄETL×÷Òµ½øÐÐ×ÐϸÉè¼Æ£¬Ã¿¸öETL²½Ö軹Óз¢Éú¹ÊÕÏ»òÒýÈë´íÎóµÄ·çÏÕ£¬ÀýÈçÓÉÓÚÊý¾ÝºþºÍ²Ö¿âÒýÇæÖ®¼äµÄϸ΢²î±ð¶øµ¼ÖÂÊý¾ÝÖÊÁ¿½µµÍµÄ·çÏÕ¡£
Êý¾Ý³Â¾É ¡£ÓëÊý¾ÝºþµÄÊý¾ÝÏà±È£¬²Ö¿âÖеÄÊý¾ÝÊdz¾ɵģ¬ÐÂÊý¾ÝµÄ¼ÓÔØÍ¨³£ÐèÒª¼¸ÌìµÄʱ¼ä¡£ÓëµÚÒ»´ú·ÖÎöϵͳÏà±ÈÊǸöµ¹ÍË£¬µÚÒ»´ú·ÖÎöϵͳÖÐеÄÔËÓªÊý¾Ý¿ÉÁ¢¼´ÓÃÓÚ²éѯ¡£
¶Ô¸ß¼¶·ÖÎöµÄÖ§³ÖÓÐÏÞ ¡£ÆóҵϣÍûʹÓÃÊý¾Ý½øÐÐÔ¤²â£¬µ«TensorFlow£¬PyTorchºÍXGBoostµÈ»úÆ÷ѧϰϵͳ¶¼ÎÞ·¨ÔÚÊý²ÖÖ®ÉϹ¤×÷£¬ÓëBI²éѯÌáÈ¡ÉÙÁ¿Êý¾Ý²»Í¬£¬ÕâЩϵͳÐèҪʹÓø´ÔӵķÇSQL´úÂë´¦Àí´óÐÍÊý¾Ý¼¯£¬¶øÍ¨¹ýODBC/JDBC¶ÁÈ¡´ËÊý¾ÝЧÂʺܵͣ¬²¢ÇÒÎÞ·¨Ö±½Ó·ÃÎʲֿâÄÚ²¿×¨Óиñʽ£¬¶ÔÓÚÕâЩÓÃÀý»á½¨Ò齫Êý¾Ýµ¼³öµ½ÎļþÖУ¬Õâ½øÒ»²½Ôö¼ÓÁ˸´ÔÓÐԺͳ¾ÉÐÔ£¨Ìí¼ÓÁ˵ÚÈý¸öETL²½Ö裡£©£¬»òÕßÓû§¿ÉÒÔÕë¶Ô¿ª·Å¸ñʽµÄÊý¾ÝºþÊý¾ÝÔËÐÐÕâЩϵͳ£¬µ«»áʧȥÊý¾Ý²Ö¿âµÄ·á¸»¹ÜÀí¹¦ÄÜ£¬ÀýÈçACIDÊÂÎñ£¬Êý¾Ý°æ±¾¿ØÖƺÍË÷Òý¡£
×ܳɱ¾ ¡£³ýÁËÖ§¸¶ETL×÷Òµ·ÑÓÃÍ⣬Óû§»¹Îª¸´ÖƵ½²Ö¿âµÄÊý¾ÝÖ§¸¶ÁËÁ½±¶µÄ´æ´¢³É±¾£¬¶øÉÌÒµ²Ö¿âʹÓÃÄÚ²¿×¨ÓиñʽÔö¼ÓÁ˽«Êý¾Ý»ò¹¤×÷¸ºÔØÇ¨ÒƵ½ÆäËûϵͳµÄ³É±¾¡£
Ò»ÖÖ±»¹ã·º²ÉÓõĽâ¾ö·½°¸ÊDz»Ê¹ÓÃÊý¾Ýºþ£¬½«ËùÓÐÊý¾Ý´æ´¢ÔÚÄÚÖÃÁ˼ÆËãºÍ´æ´¢·ÖÀ빦ÄܵIJֿâÖУ¬µ«ÕâÖÖ½â¾ö·½°¸¿ÉÐÐÐÔÓÐÏÞ£¬ÒòΪÆä²»Ö§³Ö¹ÜÀíÊÓÆµ/ÒôƵ/Îı¾Êý¾Ý»ò´ÓMLºÍÊý¾Ý¿ÆÑ§¹¤×÷¸ºÔØÖÐÖ±½Ó·ÃÎÊ¡£
Ëæ×ÅÔ½À´Ô½¶àµÄÒµÎñÓ¦ÓÿªÊ¼ÒÀÀµÔËÓªÊý¾ÝºÍ¸ß¼¶·ÖÎö£¬Lakehouse¼Ü¹¹¿ÉÒÔÏû³ýÊý¾Ý²Ö¿âÖеÄһЩÖ÷ÒªÌôÕ½£¬LakehouseµÄʱ»úÒѾµ½À´¡£

LakehouseΪÒÔϹؼüÎÊÌâÌṩ½â¾ö·½°¸£º
Êý¾ÝºþÉϿɿ¿µÄÊý¾Ý¹ÜÀí £ºLakehouseÐèÒª´æ´¢ÔʼÊý¾Ý£¬Í¬Ê±Ö§³ÖETL/ELTÁ÷³ÌÀ´Ìá¸ßÊý¾Ý·ÖÎöÖÊÁ¿£¬¶ø´«Í³Êý¾Ýºþ½«°ë½á¹¹»¯¸ñʽÊý¾Ý×÷Ϊ"Ò»¶ÑÎļþ"½øÐйÜÀí£¬ºÜÄÑÌṩһЩ¼ò»¯Êý¾Ý²Ö¿âÖÐETL/ELTµÄ¹Ø¼ü¹ÜÀí¹¦ÄÜ£¬ÀýÈçÊÂÎñ¡¢°æ±¾»Ø¹öÒÔ¼°Á㿽±´µÈ¡£Ò»Ð©ÐÂÐ͵ÄÊý¾Ýºþ¿ò¼Ü£¨ÈçDelta¡¢Hudi¡¢Iceberg£©ÌṩÁËÊý¾ÝºþµÄÊÂÎñÊÓͼ£¬²¢ÌṩÁ˹ÜÀí¹¦ÄÜ£¬¼õÉÙÁËETL²½Ö裬²¢ÇÒ·ÖÎöÈËÔ±¿ÉÒÔ¸ßЧµØ²éѯÔʼÊý¾Ý±í£¬ÕâÓëµÚÒ»´ú·ÖÎöƽ̨·Ç³£ÀàËÆ¡£
Ö§³Ö»úÆ÷ѧϰºÍÊý¾Ý¿ÆÑ§ £ºMLϵͳ֧³ÖÖ±½Ó¶ÁÈ¡Êý¾Ýºþ¸ñʽ£¬ºÜ¶àMLϵͳ²ÉÓÃDataFrames×÷Ϊ²Ù×÷Êý¾ÝµÄ³éÏ󣬶øÉùÃ÷ʽDataFrame API¿ÉÒÔ¶ÔML¹¤×÷¸ºÔØÖеÄÊý¾Ý·ÃÎʽøÐвéѯÓÅ»¯£¬¿ÉÒÔÖ±½ÓÏíÊÜÔÚLakehouseÖеÄÐí¶àÓÅ»¯¡£
SQLÐÔÄÜ £ºLakehouseÐèÒªÔÚº£Á¿Parquet/ORCÊý¾Ý¼¯ÉÏÌṩºÜºÃµÄSQLÐÔÄÜ£¬Ïà±È֮ϾµäÊý²Ö¶ÔSQL½øÐиü³¹µ×µÄÓÅ»¯£¨°üÀ¨Ê¹ÓÃרÓд洢¸ñʽ£©¡£Lakehouse¿ÉÒÔʹÓöàÖÖ¼¼ÊõÀ´Î¬»¤ÓйØParquet/ORCÊý¾Ý¼¯µÄ¸¨ÖúÊý¾Ý£¬²¢ÔÚÕâЩÏÖÓиñʽÄÚÓÅ»¯Êý¾Ý²¼¾ÖÒÔʵÏÖ¸üºÃµÄÐÔÄÜ¡£
µ±Ç°µÄÐÐÒµÇ÷ÊÆ±íÃ÷¿Í»§¶ÔÁ½²ãÊý¾Ýºþ+Êý²Ö¼Ü¹¹²¢²»ÂúÒ⣬Ê×ÏȽüÄêÀ´¼¸ºõËùÓеÄÊý¾Ý²Ö¿â¶¼Ôö¼ÓÁ˶ÔParquetºÍORC¸ñʽµÄÍⲿ±íÖ§³Ö£¬ÕâʹÊý²ÖÓû§¿ÉÒÔ´ÓÏàͬµÄSQLÒýÇæ²éѯÊý¾Ýºþ±í£¨Í¨¹ýÁ¬½ÓÆ÷·ÃÎÊ£©£¬µ«Ëü²»»áʹÊý¾Ýºþ±í¸üÒ×ÓÚ¹ÜÀí£¬Ò²²»»áÏû³ý²Ö¿âÖÐÊý¾ÝµÄETL¸´ÔÓÐÔ¡¢³Â¾ÉÐԺ͸߼¶·ÖÎöÌôÕ½¡£Êµ¼ÊÉÏÕâЩÁ¬½ÓÆ÷µÄÐÔÄÜͨ³£½Ï²î£¬ÒòΪSQLÒýÇæÖ÷ÒªÊÇÕë¶ÔÆäÄÚ²¿Êý¾Ý¸ñʽ½øÐÐÁËÓÅ»¯£¬¶ø½öƾÕâЩ·ÖÎöÒýÇæ²¢²»Äܽâ¾öÊý¾ÝºþµÄËùÓÐÎÊÌⲢȡ´ú²Ö¿â£¬Êý¾ÝºþÈÔȻȱ·¦»ù±¾µÄ¹ÜÀí¹¦ÄÜ£¨ÀýÈçACIDÊÂÎñ£©ºÍÓÐЧµÄ·ÃÎÊ·½·¨£¨ÀýÈçÓëÊý¾Ý²Ö¿âÐÔÄÜÆ¥ÅäµÄË÷Òý£©¡£
3. Lakehouse¼Ü¹¹
Lakehouse¿É¶¨ÒåΪ »ùÓڵͳɱ¾£¬¿ÉÖ±½Ó·ÃÎÊ´æ´¢µÄÊý¾Ý¹ÜÀíϵͳ£¬¸Ãϵͳ»¹Ìṩ´«Í³µÄ·ÖÎöÐÍDBMS¹ÜÀíºÍÐÔÄܹ¦ÄÜ£¬ÀýÈçACIDÊÂÎñ£¬Êý¾Ý°æ±¾£¬É󼯣¬Ë÷Òý£¬»º´æºÍ²éѯÓÅ»¯ ¡£Òò´ËLakehouse½áºÏÁËÊý¾ÝºþºÍÊý¾Ý²Ö¿âµÄÖ÷ÒªÓÅÊÆ£º¿ª·Å¸ñʽµÄµÍ³É±¾´æ´¢¿Éͨ¹ýǰÕߵĸ÷ÖÖϵͳ·ÃÎÊ£¬¶øºóÕßÔò¾ßÓÐÇ¿´óµÄ¹ÜÀíºÍÓÅ»¯¹¦ÄÜ¡£¶øºËÐÄÎÊÌâÊÇÄÜ·ñ¿ÉÒÔÓÐЧµØ½áºÏÕâЩÓÅÊÆ£ºÌرðÊÇLakehouse¶ÔÖ±½Ó·ÃÎʵÄÖ§³ÖÒâζ×ÅËüÃÇ·ÅÆúÁËÊý¾Ý¶ÀÁ¢ÐÔµÄijЩ·½Ã棬ÕâÒ»Ö±ÊǹØÏµÐÍDBMSÉè¼ÆµÄ»ù´¡¡£
LakehouseÌØ±ðÊʺϾßÓе¥¶À¼ÆËãºÍ´æ´¢µÄÔÆ»·¾³£º²»Í¬µÄ¼ÆËãÓ¦ÓóÌÐò¿ÉÒÔÔÚÍêÈ«¶ÀÁ¢µÄ¼ÆËã½Úµã£¨ÀýÈçMLµÄGPUȺ¼¯£©Éϰ´ÐèÔËÐУ¬Í¬Ê±Ö±½Ó·ÃÎÊÏàͬµÄ´æ´¢Êý¾Ý£¬µ«Ò²¿ÉÒÔÔÚ±¾µØ´æ´¢ÏµÍ³£¨ÀýÈçHDFS£©ÉÏʵÏÖLakehouse¡£
3.1 ʵÏÖLakehouseϵͳ
ʵÏÖLakehouseµÄµÚÒ»¸ö¹Ø¼ü˼ÏëÊÇ Ê¹Óñê×¼Îļþ¸ñʽ£¨ÈçApache Parquet£©½«Êý¾Ý´æ´¢Ôڵͳɱ¾µÄ¶ÔÏó´æ´¢£¨ÀýÈçAmazon S3£©ÖУ¬²¢ÔÚ¶ÔÏó´æ´¢ÉÏʵÏÖÔªÊý¾Ý²ã£¬Æä¶¨ÒåÄÄЩ¶ÔÏóÊÇ±í°æ±¾Ò»²¿·Ö ¡£Õâʹϵͳ¿ÉÒÔÔÚÔªÊý¾Ý²ãʵÏÖÖîÈçACIDÊÂÎñ´¦Àí»ò°æ±¾¿ØÖÆÖ®ÀàµÄ¹ÜÀí¹¦ÄÜ£¬Í¬Ê±½«´óÁ¿Êý¾Ý±£ÁôÔڵͳɱ¾¶ÔÏó´æ´¢ÖУ¬²¢ÔÊÐí¿Í»§¶ËʹÓñê×¼Îļþ¸ñʽֱ½Ó´Ó¸Ã´æ´¢ÖжÁÈ¡¶ÔÏ󣬾¡¹ÜÔªÊý¾Ý²ãÔö¼ÓÁ˹ÜÀí¹¦ÄÜ£¬µ«²»×ãÒÔʵÏÖÁ¼ºÃµÄSQLÐÔÄÜ£¬Êý¾Ý²Ö¿âʹÓöàÖÖ¼¼Êõ»ñµÃºÜºÃµÄÐÔÄÜ£¬ÀýÈ罫ÈÈÊý¾Ý´æ´¢ÔÚSSDµÈ¸ßËÙÉ豸¡¢Î¬»¤Í³¼ÆÐÅÏ¢¡¢¹¹½¨ÓÐЧµÄ·ÃÎÊ·½·¨£¨ÀýÈçË÷Òý£©ÒÔ¼°ÓÅ»¯Êý¾Ý¸ñʽºÍ¼ÆËãÒýÇæ¡£»ùÓÚÏÖÓд洢¸ñʽµÄLakehouseÖÐÎÞ·¨±ä¸ü¸ñʽ£¬µ«ÊÇÒ²¿ÉÒÔʵÏÖÔÚ±£³ÖÊý¾ÝÎļþ²»±äÇé¿öÏÂµÄÆäËûÓÅ»¯£¬°üÀ¨»º´æ¡¢¸¨ÖúÊý¾Ý½á¹¹£¨ÀýÈçË÷ÒýºÍͳ¼ÆÐÅÏ¢£©ºÍÊý¾Ý²¼¾ÖÓÅ»¯¡£
Lakehouse¼È¿ÉÒÔ¼Ó¿ì¸ß¼¶·ÖÎö¸ºÔØ£¬ÓÖ¿ÉÒÔΪÆäÌṩ¸üºÃµÄÊý¾Ý¹ÜÀí¹¦ÄÜ¡£Ðí¶àML¿â£¨ÀýÈçTensorFlowºÍSpark MLlib£©ÒѾ¿ÉÒÔ¶ÁÈ¡Êý¾ÝºþÎļþ¸ñʽ£¨ÈçParquet£©¡£Òò´Ë½«ËüÃÇÓëLakehouse¼¯³ÉµÄ×î¼òµ¥·½·¨ÊDzéѯԪÊý¾Ý²ã£¬ÒÔÈ·¶¨ÄÄЩParquetÎļþÊôÓÚ±í£¬È»ºó½«ËüÃÇ´«µÝ¸øML¿â¡£

3.2 ÓÃÓÚÊý¾Ý¹ÜÀíµÄÔªÊý¾Ý²ã
LakehousesµÄµÚÒ»¸ö×é¼þÊÇÔªÊý¾Ý²ã£¬Æä¿ÉÒÔʵÏÖACIDÊÂÎñºÍÆäËû¹ÜÀí¹¦ÄÜ¡£ÖîÈçS3»òHDFSÖ®ÀàµÄÊý¾Ýºþ´æ´¢ÏµÍ³½öÌṩÁ˵ͼ¶µÄ¶ÔÏó´æ´¢»òÎļþϵͳ½Ó¿Ú£¬ÔÚÕâЩ½Ó¿ÚÖУ¬¼´Ê¹ÊǼòµ¥µÄ²Ù×÷£¨Èç¸üпç¶à¸öÎļþµÄ±í£©Ò²²»ÊÇÔ×ӵģ¬Õâ¸öÎÊÌâʹµÃһЩ×éÖ¯¿ªÊ¼Éè¼Æ¸ü·á¸»µÄÊý¾Ý¹ÜÀí²ã£¬´ÓApache Hive ACID¿ªÊ¼£¬ÆäʹÓÃOLTP DBMS¸ú×Ù¸ø¶¨±í°æ±¾ÖÐÄÄЩÊý¾ÝÎļþÊÇHive±íµÄÒ»²¿·Ö£¬²¢ÔÊÐí²Ù×÷ÒÔÊÂÎñ·½Ê½¸üд˼¯ºÏ¡£½üÄêÀ´Ò»Ð©ÐÂϵͳÌṩÁ˸ü¶à¹¦Äܺ͸ĽøµÄ¿ÉÉìËõÐÔ£¬Èç2016ÄêDatabricks¿ª·¢µÄDelta Lake£¬Æä½«ÓйØÄÄЩ¶ÔÏóÊDZíÖÐÒ»²¿·ÖµÄÐÅÏ¢´æ´¢ÔÚÊý¾ÝºþÖУ¬×÷ΪParquet¸ñʽµÄÊÂÎñÈÕÖ¾£¬Ê¹ÆäÄܹ»À©Õ¹µ½Ã¿ÕűíÊýÊ®ÒÚ¸ö¶ÔÏó£»NetflixµÄApache IcebergҲʹÓÃÀàËÆµÄÉè¼Æ£¬²¢Ö§³ÖParquetºÍORC´æ´¢£»Apache HudiʼÓÚUberÒ²ÀàËÆ£¬¾¡¹ÜËü²»Ö§³Ö²¢·¢Ð´È루ÕýÔÚÖ§³ÖÖУ©£¬¸Ãϵͳ²àÖØÓÚ¼ò»¯Á÷ʽÊý¾ÝÈëÊý¾Ýºþ¡£
ÕâЩϵͳµÄ¾Ñé±íÃ÷ËüÃÇ¿ÉÒÔÌṩÓëÔʼParquet/ORCÊý¾ÝºþÀàËÆ»ò¸üºÃµÄÐÔÄÜ£¬Í¬Ê±»¹Ôö¼ÓÁ˷dz£ÓÐÓõĹÜÀí¹¦ÄÜ£¬ÀýÈçÊÂÎñ´¦Àí£¬Á㿽±´ºÍʱ¼äÂÃÐС£ÔªÊý¾Ý²ã¶ÔÊý¾ÝÖÊÁ¿·Ç³£ÖØÒª£¬ÀýÈç¿ÉÒÔ¶ÔSchema½øÐÐУÑ飬ʹÆä²»ÆÆ»µÊý¾ÝÖÊÁ¿£¬ÁíÍâÔªÊý¾Ý²ã¿ÉÒÔʵÏÖÖîÈç·ÃÎÊ¿ØÖƺÍÉóºËÈÕÖ¾¼Ç¼֮ÀàµÄÖÎÀí¹¦ÄÜ£¬ÀýÈçÔªÊý¾Ý²ã¿ÉÒÔÔÚÊÚÓè¿Í»§¶Ëƾ¾ÝÒÔ´ÓÔÆ¶ÔÏó´æ´¢¶ÁÈ¡±íÖеÄÔʼÊý¾Ý֮ǰ£¬¼ì²éÊÇ·ñÔÊÐí¿Í»§¶Ë·ÃÎÊ±í£¬²¢ÇҼǼËùÓзÃÎÊÐÐΪ¡£
δÀ´·½ÏòºÍÌæ´úÉè¼Æ ¡£ÓÉÓÚÊý¾ÝºþµÄÔªÊý¾Ý²ã·Ç³£Ð£¬Òò´Ë´æÔÚÐí¶àÐü¶øÎ´¾öµÄÎÊÌâºÍÌæ´úÉè¼Æ¡£ÀýÈçDelta LakeÉè¼ÆÎª½«ÊÂÎñÈÕÖ¾´æ´¢ÔÚËüÔËÐеÄͬһ¶ÔÏó´æ´¢ÖУ¨ÀýÈçS3£©ÒÔ¼ò»¯¹ÜÀí£¨Ïû³ýÁËÔËÐе¥¶À´æ´¢ÏµÍ³µÄÐèÒª£©²¢Ìṩ¸ß¿ÉÓÃÐԺ͸߶ÁÈ¡´ø¿í£¬µ«¶ÔÏó´æ´¢µÄ¸ßÑÓ³ÙÏÞÖÆÁËËü¿ÉÒÔÖ§³ÖµÄÿÃëÊÂÎñ´¦ÀíËÙÂÊ£¬ÔÚijЩÇé¿öϽ«ÔªÊý¾ÝʹÓøü¿ìµÄ´æ´¢ÏµÍ³µÄÉè¼Æ¿ÉÄܸü¿ÉÈ¡¡£Í¬ÑùDelta Lake£¬IcebergºÍHudi½öÖ§³Öµ¥±íÊÂÎñ£¬µ«Ò²¿ÉÒÔÀ©Õ¹ÒÔÖ§³Ö¿ç±íÊÂÎñ£¬ÓÅ»¯ÊÂÎñÈÕÖ¾µÄ¸ñʽºÍ¹ÜÀí¶ÔÏóµÄ´óСҲÊÇδ½â¾öµÄÎÊÌâ¡£
3.3 LakehouseÖеÄSQLÐÔÄÜ
Lakehouse·½°¸µÄ×î´ó¼¼ÊõÎÊÌâ¿ÉÄÜÊÇÈçºÎÌṩ×îеÄSQLÐÔÄÜ£¬Í¬Ê±ÓÖ·ÅÆúÁË´«Í³DBMSÉè¼ÆÖкܴóÒ»²¿·ÖµÄÊý¾Ý¶ÀÁ¢ÐÔ£¬Óкܶà½â¾ö·½°¸£¬ÀýÈç¿ÉÒÔÔÚ¶ÔÏó´æ´¢ÉÏÌí¼ÓÒ»¸ö»º´æ²ã£¬ÒÔ¼°ÊÇ·ñ¿ÉÒÔ¸ü¸ÄÊý¾Ý¶ÔÏó´æ´¢¸ñʽ¶ø²»Ê¹ÓÃÏÖÓеıê×¼£¨ÀýÈçParquetºÍORC£¨²»¶Ï¸Ä½øÕâЩ¸ñʽµÄÐÂÉè¼Æ²»¶ÏÓ¿ÏÖ£©£©¡£ÎÞÂÛ²ÉÓúÎÖÖÉè¼Æ£¬ºËÐÄÌôÕ½ÔÚÓÚÊý¾Ý´æ´¢¸ñʽÒѳÉΪϵͳ¹«¹²APIµÄÒ»²¿·ÖÒÔÔÊÐí¿ìËÙÖ±½Ó·ÃÎÊ£¬ÕâÓ봫ͳDBMS²»Í¬¡£
ÎÒÃÇÌá³öÁ˼¸ÖÖ¼¼Êõ¿ÉÒÔÔÚLakehouseÖÐÓÅ»¯SQLÐÔÄÜ£¬²¢ÇÒÓëÊý¾Ý¸ñʽÎ޹أ¬Òò´Ë¿ÉÒÔ½«ÆäÓëÏÖÓиñʽ»òδÀ´Êý¾Ý¸ñʽһÆðʹÓã¬ÕâЩÓë¸ñʽÎ޹صÄÓÅ»¯´óÖÂÈçÏ£º
»º´æ £ºÊ¹ÓÃÔªÊý¾Ý²ãʱ£¬Lakehouseϵͳ¿ÉÒÔ°²È«µØ½«ÔƶÔÏó´æ´¢ÖеÄÎļþ»º´æÔÚ´¦Àí½ÚµãÉϸü¿ìµÄ´æ´¢É豸£¨ÀýÈçSSDºÍRAM£©ÉÏ£¬ÕýÔÚÔËÐеÄÊÂÎñ¿ÉÒÔÈ·¶¨¶ÁÈ¡»º´æµÄÎļþÊÇ·ñ»¹ÓÐЧ£¬´ËÍ⻺´æ¿ÉÒÔ²ÉÓÃתÂë¸ñʽ£¬Æä¶ÔÓÚ²éѯÒýÇæÔËÐÐЧÂʸü¸ß£¬ÀýÈçÔÚDatabricksµÄ»º´æ»á½âѹÁ˲¿·ÖËü¼ÓÔØµÄParquetÊý¾Ý¡£
¸¨ÖúÊý¾Ý £º¼´Ê¹LakehouseΪ֧³ÖÖ±½ÓI/O·ÃÎÊÐèÒª¿ª·Å±í´æ´¢¸ñʽ£¨ÈçParquet£©£¬ËüÒ²¿ÉÒÔά»¤ÆäËûÊý¾ÝÀ´°ïÖúÓÅ»¯²éѯ£¬ÈçÔÚParquetÎļþÖÐά»¤±íÖÐÿ¸öÊý¾ÝÎļþµÄÁÐ×îС-×î´óͳ¼ÆÐÅÏ¢£¬ÓÐÖúÓÚÌø¹ýÊý¾Ý£¬ÒÔ¼°»ùÓÚBloom¹ýÂËÆ÷µÄË÷Òý¡£¿ÉÒÔʵÏÖ¸÷ÖÖ¸÷ÑùµÄ¸¨ÖúÊý¾Ý½á¹¹£¬ÀàËÆÓÚΪ"Ôʼ"Êý¾Ý½¨Á¢Ë÷Òý¡£
Êý¾Ý²¼¾Ö £ºÊý¾Ý²¼¾ÖÔÚ·ÃÎÊÐÔÄÜÖÐÆð×ÅÖØÒª×÷Óá£LakehouseϵͳҲ¿ÉÒÔÓÅ»¯¶à¸ö²¼¾Ö¾ö²ß£¬×îÃ÷ÏÔµÄÊǼǼÅÅÐò£ºÄÄЩ¼Ç¼¾Û¼¯ÔÚÒ»Æð¿ÉÒÔ×îÈÝÒ×±»ÅúÁ¿¶ÁÈ¡£¬DeltaÖÐʹÓÃZ-Order£¬HudiÖÐʹÓûùÓÚÄÄЩÁнøÐÐClustering¡£
¶ÔÓÚ·ÖÎöϵͳÖеĵäÐÍ·ÃÎÊģʽ£¬ÕâÈý¸öÓÅ»¯¿ÉÒԺܺõØÐͬ¹¤×÷¡£µäÐ͵Ť×÷¸ºÔØÖдó¶àÊý²éѯÇãÏòÓÚ¼¯ÖÐÔÚÊý¾ÝµÄ"ÈÈ"×Ó¼¯ÉÏ£¬Lakehouse¿ÉÒÔʹÓÃÓëÊý¾Ý²Ö¿âÏàͬµÄÓÅ»¯Êý¾Ý½á¹¹¶ÔÆä½øÐлº´æ£¬ÒÔÌṩÏàͬµÄ²éѯÐÔÄÜ¡£ ¶ÔÓÚÔÆ¶ÔÏó´æ´¢ÖеÄ"Àä"Êý¾Ý£¬ÐÔÄܵÄÖ÷Òª¾ö¶¨ÓÚÿ¸ö²éѯ¶ÁÈ¡µÄÊý¾ÝÁ¿£¬ÔÚ¸ÃÇé¿öÏÂÊý¾Ý²¼¾ÖÓÅ»¯£¨½«¹²Í¬·ÃÎʵÄÊý¾Ý¾ÛÀࣩºÍ¸¨ÖúÊý¾Ý½á¹¹£¨ÈçÇøÓòͼ£¬Ê¹ÒýÇæ¿ìËÙÈ·¶¨Òª¶ÁÈ¡µÄÊý¾ÝÎļþ·¶Î§£©µÄ×éºÏ¿ÉÒÔʹLakehouseϵͳÓëÊý²ÖÒ»Ñù×îС»¯I/O¿ªÏú£¬¾¡¹ÜʹÓñê×¼µÄ¿ª·ÅÎļþ¸ñʽ£¨Ïà±ÈÓÚÊý²ÖÄÚÖÃÎļþ¸ñʽ£©¡£
3.4 ¸ß¼¶·ÖÎö¸ßЧ·ÃÎÊ
¸ß¼¶·ÖÎö¿âͨ³£²»ÊÇʹÓÃSQLÃüÁî±àд£¬ÆäÐèÒª·ÃÎÊ´óÁ¿Êý¾Ý£¬ÈçºÎÉè¼ÆÊý¾Ý·ÃÎʲãÒÔ×î´ó³Ì¶ÈµØÌá¸ßÔËÐÐÔÚ¶¥²¿µÄ´úÂëµÄÁé»îÐÔ£¬ÈÔÈ»¿ÉÒÔ´ÓLakehouseµÄÓÅ»¯ÖÐÊÜÒæ¡£
»úÆ÷ѧϰAPIѸËÙ·¢Õ¹£¬µ«ÊÇһЩÊý¾Ý·ÃÎÊAPI£¨ÀýÈçTensorFlowµÄtf.data£©Ã»Óг¢ÊÔ½«²éѯÓïÒåÍÆÈëµ×²ã´æ´¢ÏµÍ³£¬Ò»Ð©API»¹×¨×¢ÓÚCPUµ½GPUµÄ´«ÊäºÍGPU¼ÆË㣬ÕâÔÚÊý¾Ý²Ö¿âÖв¢Î´ÒýÆðÌ«¶à¹Ø×¢¡£
ÎÒÃÇÐèÒª±ê×¼ML½Ó¿ÚÒÔʹÊý¾Ý¿ÆÑ§¼ÒÄܹ»³ä·ÖÀûÓÃLakehouse£¨ÉõÖÁÊý¾Ý²Ö¿â£©ÖÐÇ¿´óµÄÊý¾Ý¹ÜÀí¹¦ÄÜ£¬ÈçÊÂÎñ£¬Êý¾Ý°æ±¾¿ØÖƺÍʱ¼äÂÃÐеȡ£
4. Ñо¿ÎÊÌâºÍÆôʾ
Lakehouse»¹Ìá³öÁËÆäËûһЩÑо¿ÎÊÌ⣬¹¦ÄÜÈÕÒæ·á¸»µÄÊý¾ÝºþµÄÐÐÒµÇ÷ÊÆÒ²¶ÔÊý¾ÝϵͳÑо¿µÄÆäËûÁìÓò²úÉúÁËÓ°Ïì¡£
»¹ÓÐÆäËû·½·¨¿ÉÒÔʵÏÖLakehouseÄ¿±êÂ𣿠¿ÉÒÔÏëÏñÆäËû·½·¨À´ÊµÏÖLakehouseµÄÖ÷ҪĿ±ê£¬ÀýÈç¹¹½¨ÓÃÓÚÊý¾Ý²Ö¿âµÄ´ó¹æÄ£²¢ÐзþÎñ²ã£¬¿ÉÒÔÖ§³Ö¶Ô¸ß¼¶·ÖÎö¹¤×÷¸ºÔصIJ¢ÐжÁÈ¡£¬µ«ÊÇÓ빤×÷¸ºÔØÖ±½Ó·ÃÎʶÔÏó´æ´¢¿âÏà±È³É±¾½«¸ü¸ß£¬ÄÑÒÔ¹ÜÀí£¬²¢ÇÒÐÔÄÜ¿ÉÄܻήµÍ¡£ÕâÖÖ·þÎñ²ã²¢Î´µÃµ½¹ã·ºÓ¦Óã¬ÀýÈçHive LLAP¡£³ýÁËÔÚÐÔÄÜ¡¢¿ÉÓÃÐÔ¡¢³É±¾ºÍËø¶¨·½ÃæµÄÌôÕ½Í⣬»¹ÓÐÒ»Ð©ÖØÒªµÄ¹ÜÀíÔÒò£¬ÈçÆóÒµ¿ÉÄܸüϲ»¶½«Êý¾Ý±£ÁôΪ¿ª·Å¸ñʽ¡£Ëæ×ŶÔÊý¾Ý¹ÜÀíµÄ·¨¹æÒªÇó²»¶ÏÌá¸ß£¬×éÖ¯¿ÉÄÜÐèÒªÔÚ¶Ìʱ¼äÄÚËÑË÷¾ÉÊý¾Ý¼¯£¬É¾³ý¸÷ÖÖÊý¾Ý»ò¸ü¸ÄÆäÊý¾Ý´¦Àí»ù´¡½á¹¹£¬²¢ÇÒ²ÉÓÿª·Å¸ñʽ½øÐбê×¼»¯Òâζ×ÅËüÃǽ«Ê¼ÖÕ¿ÉÒÔÖ±½Ó·ÃÎÊÊý¾Ý£¬Èí¼þÐÐÒµµÄ³¤ÆÚÇ÷ÊÆÒ»Ö±ÊÇ¿ª·ÅÊý¾Ý¸ñʽ£¬ÆóÒµÊý¾ÝÓ¦¸Ã¼ÌÐø±£³ÖÕâÖÖÇ÷ÊÆ¡£
ʲôÊÇÕýÈ·µÄ´æ´¢¸ñʽºÍ·ÃÎÊAPI£¿ LakehouseµÄ·ÃÎʽӿڰüÀ¨Ôʼ´æ´¢¸ñʽÒÔ¼°Ö±½Ó¶ÁÈ¡´Ë¸ñʽµÄ¿Í»§¶Ë¿â£¨ÀýÈçʹÓÃTensorFlow¶Áȡʱ£©ÒÔ¼°¸ß¼¶SQL½Ó¿Ú¡£Óкܶ಻ͬµÄ·½·¨¿ÉÒÔÔÚÕâЩ²ãÉÏ·ÅÖ÷ḻµÄ¹¦ÄÜ£¬ÀýÈçͨ¹ýÒªÇó¶ÁÕßÖ´Ðиü¸´Ôӵġ°¿É±à³Ì¡±½âÂëÂß¼£¬¿ÉÒÔΪϵͳÌṩ¸ü´óµÄÁé»îÐԵĴ洢·½°¸¡£Óдý¹Û²ìÄÄÖÖ´æ´¢¸ñʽ¡¢ÔªÊý¾Ý²ãÉè¼ÆºÍ·ÃÎÊAPIµÄ×éºÏЧ¹û×î¼Ñ¡£
LakehouseÈçºÎÓ°ÏìÆäËûÊý¾Ý¹ÜÀíÑо¿ºÍÇ÷ÊÆ£¿ Êý¾ÝºþµÄÁ÷ÐÐÒÔ¼°¶Ô·á¸»¹ÜÀí½Ó¿ÚµÄʹÓò»¶ÏÔö¼Ó£¬ÎÞÂÛËüÃÇÊÇÔªÊý¾Ý²ã»¹ÊÇÍêÕûµÄLakehouseÉè¼Æ£¬¶¼¶ÔÊý¾Ý¹ÜÀíÑо¿µÄÆäËûÁìÓò²úÉúÁËÓ°Ïì¡£PolystoreÖ¼ÔÚ½â¾ö¿ç²»Í¬´æ´¢ÒýÇæ²éѯÊý¾ÝÕâÒ»ÄÑÌ⣬¸ÃÎÊÌâÔÚÆóÒµÖгÖÐø´æÔÚ£¬µ«ÊÇÔÚÔÆÊý¾ÝºþÖÐÒÔ¿ª·Å¸ñʽÌṩµÄÊý¾Ý±ÈÀýÔ½À´Ô½¸ß£¬Ò²¿ÉÒÔͨ¹ýÖ±½ÓÕë¶ÔÔÆ¶ÔÏó´æ´¢ÔËÐÐÐí¶àpolystore²éѯ£¬¼´Ê¹»ù´¡Êý¾ÝÎļþÊÇÂß¼ÉÏ·Ö¿ªµÄLakehouseµÄÒ»²¿·Ö¡£»¹¿ÉÒÔÔÚLakehouseÉÏÉè¼ÆÊý¾Ý¼¯³ÉºÍÇåÀí¹¤¾ß£¬²¢¿ÉÒÔ¿ìËÙ²¢ÐзÃÎÊËùÓÐÊý¾Ý£¬Õâ¿ÉÒÔ¿ªÆô´óÐÍÁª½ÓºÍ¾ÛÀàµÈÐÂËã·¨¡£¿ÉÒÔ½«HTAPϵͳ¹¹½¨ÎªLakehouseÇ°ÃæµÄ"¸½¼Ó"²ã£¬Í¨¹ýʹÓÃÆäÊÂÎñ¹ÜÀíAPI½«Êý¾ÝÖ±½Ó¹éµµµ½LakehouseϵͳÖУ¬Lakehouse½«Äܹ»²éѯÊý¾ÝµÄÒ»Ö¿ìÕÕ¡£MLµÄÊý¾Ý¹ÜÀíÒ²»á±äµÃ¸ü¼Ó¼òµ¥ºÍÇ¿´ó£¬Èç½ñ×éÖ¯ÕýÔÚ¹¹½¨¸÷ÖÖ¿ÉÖØÐÂʵÏÖ±ê×¼DBMS¹¦Äܵģ¬Ìض¨ÓÚMLµÄÊý¾Ý°æ±¾¿ØÖƺÍÌØÕ÷´æ´¢ÏµÍ³£¬Ê¹ÓôøÓÐÄÚÖÃDBMS¹ÜÀí¹¦ÄܵÄÊý¾ÝºþÀ´ÊµÏÖÌØÕ÷´æ´¢¹¦ÄÜ¿ÉÄÜ»á¸ü¼òµ¥¡£ÎÞ·þÎñÆ÷ÒýÇæÖ®ÀàµÄÔÆÔÉúDBMSÉè¼Æ½«ÐèÒªÓë¸ü·á¸»µÄÔªÊý¾Ý²ã¼¯³É£¬¶ø²»ÊÇÖ±½ÓɨÃèÊý¾ÝºþÖеÄÔʼÎļþ£¬¿ÉÒÔÄܹ»Ìá¸ß²éѯÐÔÄÜ¡£×îºóLakehouseµÄÉè¼ÆÒ×ÓÚ·Ö²¼Ê½Ð×÷£¬ÒòΪ¿ÉÒÔ´Ó¶ÔÏó´æ´¢¿âÖ±½Ó·ÃÎÊËùÓÐÊý¾Ý¼¯£¬ÕâʹµÃ¹²ÏíÊý¾Ý±äµÃºÜ¼òµ¥¡£
5. ½áÂÛ
ÔÚ¿ª·ÅµÄÊý¾ÝºþÎļþ¸ñʽÉÏʵÏÖÊý¾Ý²Ö¿â¹¦ÄܵÄͳһÊý¾Ýƽ̨Ìåϵ½á¹¹¿ÉÒÔΪµ±½ñµÄÊý¾Ý²Ö¿âϵͳÌṩ¾ßÓоºÕùÁ¦µÄÐÔÄÜ£¬²¢ÓÐÖúÓÚÓ¦¶ÔÊý¾Ý²Ö¿âÓû§ÃæÁÙµÄÐí¶àÌôÕ½£¬¾¡¹ÜÏÞÖÆÊý¾Ý²Ö¿âµÄ´æ´¢²ãÒÔ±ê×¼¸ñʽֱ½Ó·ÃÎÊ¿´ÆðÀ´ËƺõÊÇÒ»¸öÖØ´óÏÞÖÆ£¬µ«ÖîÈçÈÈÊý¾Ý»º´æºÍÀäÊý¾ÝÊý¾Ý²¼¾ÖÓÅ»¯Ö®ÀàµÄÓÅ»¯¿ÉÒÔʹLakehouse»ñµÃºÜ²»´íµÄÐÔÄÜ£¬ÁíÍâ¼øÓÚÊý¾ÝºþÖÐÒÑÓдóÁ¿Êý¾Ý£¬²¢ÇÒÓлú»á´ó´ó¼ò»¯ÆóÒµÊý¾Ý¼Ü¹¹£¬ÐÐÒµºÜ¿ÉÄÜ»áÏòLakehouse¼Ü¹¹Öð²½¹ý¶É¡£
|