Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Êý¾Ýºþ | Apache Hudi Éè¼ÆÓë¼Ü¹¹×îÇ¿½â¶Á
 
×÷Õߣºvinoyang
  7336  次浏览      32
2020-8-31 
 
±à¼­ÍƼö:
±¾ÎĽ«½éÉÜApache HudiµÄ»ù±¾¸ÅÄî¡¢Éè¼ÆÒÔ¼°×ÜÌå»ù´¡¼Ü¹¹¡£
±¾ÎÄÀ´×ÔÓÚ΢ÐÅ Flink£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­¡¢ÍƼö¡£

1.¼ò½é

Apache Hudi(¼ò³Æ£ºHudi)ʹµÃÄúÄÜÔÚhadoop¼æÈݵĴ洢֮ÉÏ´æ´¢´óÁ¿Êý¾Ý£¬Í¬Ê±Ëü»¹ÌṩÁ½ÖÖÔ­ÓʹµÃ³ýÁ˾­µäµÄÅú´¦ÀíÖ®Í⣬»¹¿ÉÒÔÔÚÊý¾ÝºþÉϽøÐÐÁ÷´¦Àí¡£

ÕâÁ½ÖÖÔ­Óï·Ö±ðÊÇ£º

Update/Delete¼Ç¼£ºHudiʹÓÃϸÁ£¶ÈµÄÎļþ/¼Ç¼¼¶±ðË÷ÒýÀ´Ö§³ÖUpdate/Delete¼Ç¼£¬Í¬Ê±»¹Ìṩд²Ù×÷µÄÊÂÎñ±£Ö¤¡£²éѯ»á´¦Àí×îºóÒ»¸öÌá½»µÄ¿ìÕÕ£¬²¢»ùÓÚ´ËÊä³ö½á¹û¡£

±ä¸üÁ÷£ºHudi¶Ô»ñÈ¡Êý¾Ý±ä¸üÌṩÁËÒ»Á÷µÄÖ§³Ö£º¿ÉÒÔ´Ó¸ø¶¨µÄʱ¼äµã»ñÈ¡¸ø¶¨±íÖÐÒÑupdated/inserted/deletedµÄËùÓмǼµÄÔöÁ¿Á÷£¬²¢½âËøÐµIJéѯ×ËÊÆ£¨Àà±ð£©¡£

ÕâЩԭÓï½ôÃܽáºÏ£¬½âËøÁË»ùÓÚDFS³éÏóµÄÁ÷/ÔöÁ¿´¦ÀíÄÜÁ¦¡£Èç¹ûÄúÊìϤÁ÷´¦Àí£¬ÄÇôÕâºÍ´ÓkafkaÖ÷ÌâÏû·Ñʼþ£¬È»ºóʹÓÃ״̬´æ´¢Öð²½ÀÛ¼ÓÖмä½á¹ûÀàËÆ¡£

ÕâÔڼܹ¹ÉÏ»áÓÐÒÔϼ¸µãÓÅÊÆ£º

1£© ЧÂʵÄÌáÉý£ºÉãÈ¡Êý¾Ýͨ³£ÐèÒª´¦Àí¸üС¢É¾³ýÒÔ¼°Ç¿ÖÆÎ¨Ò»¼üÔ¼Êø¡£È»¶ø£¬ÓÉÓÚȱ·¦ÏñHudiÕâÑùÄܶÔÕâЩ¹¦ÄÜÌṩ±ê×¼Ö§³ÖµÄϵͳ£¬Êý¾Ý¹¤³ÌʦÃÇͨ³£»á²ÉÓôóÅúÁ¿µÄ×÷ÒµÀ´ÖØÐ´¦ÀíÒ»ÕûÌìµÄʼþ£¬»òÕßÿ´ÎÔËÐж¼ÖØÐ¼ÓÔØÕû¸öÉÏÓÎÊý¾Ý¿â£¬´Ó¶øµ¼Ö´óÁ¿µÄ¼ÆËã×ÊÔ´ÀË·Ñ¡£ÓÉÓÚHudiÖ§³Ö¼Ç¼¼¶¸üУ¬Ëüͨ¹ýÖ»´¦ÀíÓбä¸üµÄ¼Ç¼²¢ÇÒÖ»ÖØÐ´±íÖÐÒѸüÐÂ/ɾ³ýµÄ²¿·Ö£¬¶ø²»ÊÇÖØÐ´Õû¸ö±í·ÖÇøÉõÖÁÕû¸ö±í£¬ÎªÕâЩ²Ù×÷´øÀ´Ò»¸öÊýÁ¿¼¶µÄÐÔÄÜÌáÉý¡£

2£© ¸ü¿ìµÄETL/ÅÉÉúPipelines£º´ÓÍⲿϵͳÉãÈëÊý¾Ýºó£¬ÏÂÒ»²½ÐèҪʹÓÃApache Spark/Apache Hive»òÕßÈÎºÎÆäËûÊý¾Ý´¦Àí¿ò¼ÜÀ´ETLÕâЩÊý¾ÝÓÃÓÚÖîÈçÊý¾Ý²Ö¿â¡¢»úÆ÷ѧϰ»òÕß½ö½öÊÇÊý¾Ý·ÖÎöµÈһЩӦÓó¡¾°¡£Í¨³££¬ÕâЩ´¦ÀíÔÙ´ÎÒÀÀµÒÔ´úÂë»òSQL±íʾµÄÅú´¦Àí×÷Òµ£¬ÕâЩ×÷Òµ½«ÅúÁ¿´¦ÀíËùÓÐÊäÈëÊý¾Ý²¢ÖØÐ¼ÆËãËùÓÐÊä³ö½á¹û¡£Í¨¹ýʹÓÃÔöÁ¿²éѯ¶ø²»ÊÇ¿ìÕÕ²éѯÀ´²éѯһ¸ö»ò¶à¸öÊäÈë±í£¬¿ÉÒÔ´ó´ó¼ÓËÙ´ËÀàÊý¾Ý¹ÜµÀ£¬´Ó¶øÔÙ´ÎÏñÉÏÃæÒ»Ñù½ö´¦ÀíÀ´×ÔÉÏÓαíµÄÔöÁ¿¸ü¸Ä£¬È»ºóupsert»òÕßdeleteÄ¿±êÅÉÉú±í¡£

3£© ÐÂÏÊÊý¾ÝµÄ»ñÈ¡£º¼õÉÙ×ÊÔ´»¹ÄÜ»ñÈ¡ÐÔÄÜÉϵÄÌáÉý²¢²»Êdz£¼ûµÄÊ¡£±Ï¾¹ÎÒÃÇͨ³£»áʹÓøü¶àµÄ×ÊÔ´£¨ÀýÈçÄڴ棩À´ÌáÉýÐÔÄÜ£¨ÀýÈç²éѯÑÓ³Ù£©¡£Hudiͨ¹ý´Ó¸ù±¾ÉϰÚÍÑÊý¾Ý¼¯µÄ´«Í³¹ÜÀí·½Ê½£¬½«ÅúÁ¿´¦ÀíÔöÁ¿»¯´øÀ´ÁËÒ»¸ö¸½¼ÓµÄºÃ´¦£ºÓëÒÔǰµÄÊý¾ÝºþÏà±È£¬pipelineÔËÐеÄʱ¼ä»á¸ü¶Ì£¬Êý¾Ý½»¸¶»á¸ü¿ì¡£

4£© ͳһ´æ´¢£º»ùÓÚÒÔÉÏÈý¸öÓŵ㣬ÔÚÏÖÓÐÊý¾ÝºþÖ®ÉϽøÐиü¿ìËÙ¡¢¸üÇáÁ¿µÄ´¦ÀíÒâζ׎ö³öÓÚ·ÃÎʽüʵʱÊý¾ÝµÄÄ¿µÄʱ²»ÔÙÐèҪרÃŵĴ洢»òÊý¾Ý¼¯ÊС£

2.Éè¼ÆÔ­Ôò

Á÷ʽ¶Á/д:Hudi½è¼øÁËÊý¾Ý¿âÉè¼ÆµÄÔ­Àí£¬´ÓÁãÉè¼Æ£¬Ó¦ÓÃÓÚ´óÐÍÊý¾Ý¼¯¼Ç¼Á÷µÄÊäÈëºÍÊä³ö¡£Îª´Ë£¬HudiÌṩÁËË÷ÒýʵÏÖ£¬¿ÉÒÔ½«¼Ç¼µÄ¼ü¿ìËÙÓ³Éäµ½ÆäËùÔÚµÄÎļþλÖá£Í¬Ñù£¬¶ÔÓÚÁ÷ʽÊä³öÊý¾Ý£¬Hudiͨ¹ýÆäÌØÊâÁÐÌí¼Ó²¢¸ú×ټǼ¼¶µÄÔªÊý¾Ý£¬´Ó¶ø¿ÉÒÔÌṩËùÓз¢Éú±ä¸üµÄ¾«È·ÔöÁ¿Á÷¡£

×Ô¹ÜÀí£ºHudi×¢Òâµ½Óû§¿ÉÄܶÔÊý¾ÝÐÂÏʶȣ¨Ð´ÓѺã©Óë²éѯÐÔÄÜ£¨¶Á/²éѯÓѺã©Óв»Í¬µÄÆÚÍû£¬ËüÖ§³ÖÁËÈýÖÖ²éѯÀàÐÍ£¬ÕâЩÀàÐÍÌṩʵʱ¿ìÕÕ£¬ÔöÁ¿Á÷ÒÔ¼°ÉÔÔçµÄ´¿ÁÐÊý¾Ý¡£ÔÚÿһ²½£¬Hudi¶¼Å¬Á¦×öµ½×ÔÎÒ¹ÜÀí£¨ÀýÈç×Ô¶¯ÓÅ»¯±àд³ÌÐòµÄ²¢ÐÐÐÔ£¬±£³ÖÎļþ´óС£©ºÍ×ÔÎÒÐÞ¸´£¨ÀýÈ磺×Ô¶¯»Ø¹öʧ°ÜµÄÌá½»£©£¬¼´Ê¹ÕâÑù×ö»áÉÔ΢Ôö¼ÓÔËÐÐʱ³É±¾£¨ÀýÈ磺ÔÚÄÚ´æÖлº´æÊäÈëÊý¾ÝÒÑ·ÖÎö¹¤×÷¸ºÔØ£©¡£Èç¹ûûÓÐÕâЩÄÚÖõIJÙ×÷¸Ü¸Ë/×ÔÎÒ¹ÜÀí¹¦ÄÜ£¬ÕâЩ´óÐÍÁ÷Ë®ÏßµÄÔËÓª³É±¾Í¨³£»á·­±¶¡£

ÍòÎï½ÔÈÕÖ¾:Hudi»¹¾ßÓÐ append only¡¢ÔÆÊý¾ÝÓѺõÄÉè¼Æ£¬¸ÃÉè¼ÆÊµÏÖÁËÈÕÖ¾½á¹¹»¯´æ´¢ÏµÍ³µÄÔ­Àí£¬¿ÉÒÔÎÞ·ì¹ÜÀíËùÓÐÔÆÌṩÉ̵ÄÊý¾Ý¡£

¼ü-ÖµÊý¾ÝÄ£ÐÍ£ºÔÚд·½Ã棬Hudi±í±»½¨Ä£Îª¼üÖµ¶ÔÊý¾Ý¼¯£¬ÆäÖÐÿÌõ¼Ç¼¶¼ÓÐÒ»¸öΨһµÄ¼Ç¼¼ü¡£´ËÍ⣬һ¸ö¼Ç¼¼ü»¹¿ÉÒÔ°üÀ¨·ÖÇøÂ·¾¶£¬Ôڸ÷¾¶Ï£¬¿ÉÒԶԼǼ½øÐзÖÇøºÍ´æ´¢¡£Õâͨ³£ÓÐÖúÓÚ¼õÉÙË÷Òý²éѯµÄËÑË÷¿Õ¼ä¡£

3. ±íÉè¼Æ

Á˽âÁËHudiÏîÄ¿µÄ¹Ø¼ü¼¼Êõ¶¯»úºó£¬ÏÖÔÚÈÃÎÒÃǸüÉîÈëµØÑо¿Hudiϵͳ±¾ÉíµÄÉè¼Æ¡£ÔڽϸߵIJã´ÎÉÏ£¬ÓÃÓÚдHudi±íµÄ×é¼þʹÓÃÁËÒ»ÖÖÊÜÖ§³ÖµÄ·½Ê½Ç¶Èëµ½Apache Spark×÷ÒµÖУ¬Ëü»áÔÚÖ§³ÖDFSµÄ´æ´¢ÉÏÉú³É´ú±íHudi±íµÄÒ»×éÎļþ¡£È»ºó£¬ÔÚ¾ßÓÐÒ»¶¨±£Ö¤µÄÇé¿öÏ£¬ÖîÈçApache Spark¡¢Presto¡¢Apache HiveÖ®ÀàµÄ²éѯÒýÇæ¿ÉÒÔ²éѯ¸Ã±í¡£

Hudi±íµÄÈý¸öÖ÷Òª×é¼þ£º

1£© ÓÐÐòµÄʱ¼äÖáÔªÊý¾Ý¡£ÀàËÆÓÚÊý¾Ý¿âÊÂÎñÈÕÖ¾¡£

2£© ·Ö²ã²¼¾ÖµÄÊý¾ÝÎļþ£ºÊµ¼ÊдÈë±íÖеÄÊý¾Ý¡£

3£© Ë÷Òý£¨¶àÖÖʵÏÖ·½Ê½£©£ºÓ³Éä°üº¬Ö¸¶¨¼Ç¼µÄÊý¾Ý¼¯¡£

HudiÌṩÁËÒÔϹ¦ÄÜÀ´¶Ô»ù´¡Êý¾Ý½øÐÐдÈë¡¢²éѯ£¬ÕâʹÆä³ÉΪ´óÐÍÊý¾ÝºþµÄÖØÒªÄ£¿é£º

1£© Ö§³Ö¿ìËÙ£¬¿É²å°ÎË÷ÒýµÄupsert();

2£© ¸ßЧ¡¢Ö»É¨ÃèÐÂÊý¾ÝµÄÔöÁ¿²éѯ£»

3£© Ô­×ÓÐÔµÄÊý¾Ý·¢²¼ºÍ»Ø¹ö£¬Ö§³Ö»Ö¸´µÄSavepoint£»

4£© ʹÓÃmvcc(¶à°æ±¾²¢·¢¿ØÖÆ)·ç¸ñÉè¼ÆµÄ¶ÁºÍд¿ìÕÕ¸ôÀ룻

5£© ʹÓÃͳ¼ÆÐÅÏ¢¹ÜÀíÎļþ´óС£»

6£© ÒÑÓмǼupdate/deltaµÄ×Ô¹ÜÀíѹËõ£»

7£© ÉóºËÊý¾ÝÐ޸ĵÄʱ¼äÖáÔªÊý¾Ý£»

8£© Âú×ãGDPR(ͨÓÃÊý¾Ý±£»¤ÌõÀý)¡¢Êý¾Ýɾ³ý¹¦ÄÜ¡£

3.1 ʱ¼äÖá

ÔÚÆäºËÐÄ£¬Hudiά»¤ÁËÒ»Ìõ°üº¬ÔÚ²»Í¬µÄ¼´Ê±Ê±¼ä£¨instant time£©¶ÔÊý¾Ý¼¯×öµÄËùÓÐinstant²Ù×÷µÄtimeline£¬´Ó¶øÌṩ±íµÄ¼´Ê±ÊÓͼ£¬Í¬Ê±»¹ÓÐЧ֧³Ö°´µ½´ï˳Ðò½øÐÐÊý¾Ý¼ìË÷¡£Ê±¼äÖáÀàËÆÓÚÊý¾Ý¿âµÄredo/transactionÈÕÖ¾£¬ÓÉÒ»×éʱ¼äÖáʵÀý×é³É¡£Hudi±£Ö¤ÔÚʱ¼äÖáÉÏÖ´ÐеIJÙ×÷µÄÔ­×ÓÐԺͻùÓÚ¼´Ê±Ê±¼äµÄʱ¼äÖáÒ»ÖÂÐÔ¡£Ê±¼äÖᱻʵÏÖΪ±í»ù´¡Â·¾¶ÏÂ.hoodieÔªÊý¾ÝÎļþ¼ÐϵÄÒ»×éÎļþ¡£¾ßÌåÀ´Ëµ£¬×îеÄinstant±»±£´æÎªµ¥¸öÎļþ£¬¶ø½Ï¾ÉµÄinstant±»´æµµµ½Ê±¼äÖá¹éµµÎļþ¼ÐÖУ¬ÒÔÏÞÖÆwritersºÍqueriesÁгöµÄÎļþÊýÁ¿¡£

Ò»¸öHudi ʱ¼äÖáinstantÓÉÏÂÃæ¼¸¸ö×é¼þ¹¹³É£º

1£© ²Ù×÷ÀàÐÍ£º¶ÔÊý¾Ý¼¯Ö´ÐеIJÙ×÷ÀàÐÍ£»

2£© ¼´Ê±Ê±¼ä£º¼´Ê±Ê±¼äͨ³£ÊÇÒ»¸öʱ¼ä´Á(ÀýÈ磺20190117010349)£¬¸Ãʱ¼ä´Á°´²Ù×÷¿ªÊ¼Ê±¼äµÄ˳Ðòµ¥µ÷Ôö¼Ó£»

3£© ¼´Ê±×´Ì¬£ºinstantµÄµ±Ç°×´Ì¬;

ÿ¸öinstant¶¼ÓÐavro»òÕßjson¸ñʽµÄÔªÊý¾ÝÐÅÏ¢£¬ÏêϸµÄÃèÊöÁ˸òÙ×÷µÄ״̬ÒÔ¼°Õâ¸ö¼´Ê±Ê±¿ÌinstantµÄ״̬¡£

¹Ø¼üµÄInstant²Ù×÷ÀàÐÍÓУº

1£© COMMIT£ºÒ»´ÎÌá½»±íʾ½«Ò»×é¼Ç¼ԭ×ÓдÈëµ½Êý¾Ý¼¯ÖУ»

2£© CLEAN: ɾ³ýÊý¾Ý¼¯Öв»ÔÙÐèÒªµÄ¾ÉÎļþ°æ±¾µÄºǫ́»î¶¯;

3£© DELTA_COMMIT:½«Ò»Åú¼Ç¼ԭ×ÓдÈëµ½MergeOnRead´æ´¢ÀàÐ͵ÄÊý¾Ý¼¯ÖУ¬ÆäÖÐһЩ/ËùÓÐÊý¾Ý¶¼¿ÉÒÔֻдµ½ÔöÁ¿ÈÕÖ¾ÖÐ;

4£© COMPACTION: Эµ÷HudiÖвîÒìÊý¾Ý½á¹¹µÄºǫ́»î¶¯£¬ÀýÈ磺½«¸üдӻùÓÚÐеÄÈÕÖ¾Îļþ±ä³ÉÁиñʽ¡£ÔÚÄÚ²¿£¬Ñ¹Ëõ±íÏÖΪʱ¼äÖáÉϵÄÌØÊâÌá½»;

5£© ROLLBACK: ±íʾÌá½»/ÔöÁ¿Ìá½»²»³É¹¦ÇÒÒѻعö£¬É¾³ýÔÚдÈë¹ý³ÌÖвúÉúµÄËùÓв¿·ÖÎļþ;

6£© SAVEPOINT: ½«Ä³Ð©Îļþ×é±ê¼ÇΪ"Òѱ£´æ"£¬ÒÔ±ãÇåÀí³ÌÐò²»»á½«Æäɾ³ý¡£ÔÚ·¢ÉúÔÖÄÑ/Êý¾Ý»Ö¸´µÄÇé¿öÏ£¬ËüÓÐÖúÓÚ½«Êý¾Ý¼¯»¹Ô­µ½Ê±¼äÖáÉϵÄij¸öµã;

Èκθø¶¨µÄ¼´Ê±¶¼»á´¦ÓÚÒÔÏÂ״̬֮һ£º

1£© REQUESTED:±íʾÒѵ÷¶Èµ«ÉÐδ³õʼ»¯£»

2£© INFLIGHT: ±íʾµ±Ç°ÕýÔÚÖ´ÐиòÙ×÷;

3£© COMPLETED: ±íʾÔÚʱ¼äÖáÉÏÍê³ÉÁ˸òÙ×÷.

3.2 Êý¾ÝÎļþ

Hudi½«±í×éÖ¯³ÉDFSÉÏ»ù±¾Â·¾¶ÏµÄÎļþ¼Ð½á¹¹ÖС£Èç¹û±íÊÇ·ÖÇøµÄ£¬ÔòÔÚ»ù±¾Â·¾¶Ï»¹»áÓÐÆäËûµÄ·ÖÇø£¬ÕâЩ·ÖÇøÊǰüº¬¸Ã·ÖÇøÊý¾ÝµÄÎļþ¼Ð£¬ÓëHive±í·Ç³£ÀàËÆ¡£Ã¿¸ö·ÖÇø¾ùÓÉÏà¶ÔÓÚ»ù±¾Â·¾¶µÄ·ÖÇøÂ·¾¶Î¨Ò»±êʶ¡£ÔÚÿ¸ö·ÖÇøÄÚ£¬Îļþ±»×éÖ¯³ÉÎļþ×飬ÓÉÎļþIDΨһ±êʶ¡£ÆäÖÐÿ¸öÇÐÆ¬°üº¬ÔÚij¸öÌá½»/ѹËõ¼´Ê±Ê±¼äÉú³ÉµÄ»ù±¾ÁÐÎļþ£¨*.parquet£©ÒÔ¼°Ò»×éÈÕÖ¾Îļþ£¨*.log*£©£¬¸ÃÎļþ°üº¬×ÔÉú³É»ù±¾ÎļþÒÔÀ´¶Ô»ù±¾ÎļþµÄ²åÈë/¸üС£Hudi²ÉÓÃÁËMVCCÉè¼Æ£¬Ñ¹Ëõ²Ù×÷»á½«ÈÕÖ¾ºÍ»ù±¾ÎļþºÏ²¢ÒÔ²úÉúеÄÎļþƬ£¬¶øÇåÀí²Ù×÷Ôò½«Î´Ê¹ÓõÄ/½Ï¾ÉµÄÎļþƬɾ³ýÒÔ»ØÊÕDFSÉϵĿռ䡣

3.3 Ë÷Òý

Hudiͨ¹ýË÷Òý»úÖÆÌṩ¸ßЧµÄupsert²Ù×÷£¬¸Ã»úÖÆ»á½«Ò»¸ö¼Ç¼¼ü+·ÖÇøÂ·¾¶×éºÏÒ»ÖÂÐÔµÄÓ³Éäµ½Ò»¸öÎļþID.Õâ¸ö¼Ç¼¼üºÍÎļþ×é/ÎļþIDÖ®¼äµÄÓ³Éä×ԼǼ±»Ð´ÈëÎļþ×鿪ʼ¾Í²»»áÔٸı䡣¼ò¶øÑÔÖ®£¬Õâ¸öÓ³ÉäÎļþ×é°üº¬ÁËÒ»×éÎļþµÄËùÓа汾¡£Hudiµ±Ç°ÌṩÁË3ÖÖË÷ÒýʵÏÖ£¨HBaseIndex,¡¢HoodieBloomIndex£¨HoodieGlobalBloomIndex£©¡¢InMemoryHashIndex£©À´Ó³ÉäÒ»¸ö¼Ç¼¼üµ½°üº¬¸Ã¼Ç¼µÄÎļþID¡£Õ⽫ʹÎÒÃÇÎÞÐèɨÃè±íÖеÄÿÌõ¼Ç¼£¬¾Í¿ÉÏÔÖøÌá¸ßupsertËÙ¶È¡£

HudiË÷Òý¿ÉÒÔ¸ù¾ÝÆä²éѯ·ÖÇø¼Ç¼µÄÄÜÁ¦½øÐзÖÀࣺ

1£© È«¾ÖË÷Òý£º²»ÐèÒª·ÖÇøÐÅÏ¢¼´¿É²éѯ¼Ç¼¼üÓ³ÉäµÄÎļþID¡£±ÈÈ磬д³ÌÐò¿ÉÒÔ´«Èënull»òÕßÈκÎ×Ö·û´®×÷Ϊ·ÖÇøÂ·¾¶£¨partitionPath£©,µ«Ë÷ÒýÈÔÈ»»á²éÕÒµ½¸Ã¼Ç¼µÄλÖá£È«¾ÖË÷ÒýÔڼǼ¼üÔÚÕûÕűíÖб£Ö¤Î¨Ò»µÄÇé¿öÏ·dz£ÓÐÓ㬵«ÊDzéѯµÄÏûºÄËæ×űíµÄ´óС³Êº¯ÊýʽÔö¼Ó¡£

2£© ·ÇÈ«¾ÖË÷Òý£ºÓëÈ«¾ÖË÷Òý²»Í¬£¬·ÇÈ«¾ÖË÷ÒýÒÀÀµ·ÖÇøÂ·¾¶(partitionPath),¶ÔÓÚ¸ø¶¨µÄ¼Ç¼¼ü£¬ËüÖ»»áÔÚ¸ø¶¨·ÖÇøÂ·¾¶Ï²éÕҸüǼ¡£Õâ±È½ÏÊʺÏ×ÜÊÇͬʱÉú³É·ÖÇøÂ·¾¶ºÍ¼Ç¼¼üµÄ³¡¾°£¬Í¬Ê±»¹ÄÜÏíÊܵ½¸üºÃµÄÀ©Õ¹ÐÔ£¬ÒòΪ²éѯË÷ÒýµÄÏûºÄÖ»ÓëдÈëµ½¸Ã·ÖÇøÏÂÊý¾Ý¼¯´óСÓйØÏµ¡£

4. ±íÀàÐÍ

4.1 Copy On Write±í

COW±íдµÄʱºòÊý¾ÝÖ±½ÓдÈëbasefile,£¨parquet£©²»Ð´logÎļþ¡£ËùÒÔCOW±íµÄÎļþƬֻ°üº¬basefile(Ò»¸öparquetÎļþ¹¹³ÉÒ»¸öÎļþƬ)¡£

ÕâÖֵĴ洢·½Ê½µÄSpark DAGÏà¶Ô¼òµ¥¡£¹Ø¼üÄ¿±êÊÇÊÇʹÓÃpartitioner½«tagged Hudi¼Ç¼RDD£¨ËùνµÄtaggedÊÇÖ¸ÒѾ­Í¨¹ýË÷Òý²éѯ£¬±ê¼ÇÿÌõÊäÈë¼Ç¼ÔÚ±íÖеÄλÖã©·Ö³ÉһЩÁеÄupdatesºÍinserts.ΪÁËά»¤Îļþ´óС£¬ÎÒÃÇÏȶÔÊäÈë½øÐвÉÑù£¬»ñµÃÒ»¸ö¹¤×÷¸ºÔØprofile,Õâ¸öprofile¼Ç¼ÁËÊäÈë¼Ç¼µÄinsertºÍupdate¡¢ÒÔ¼°ÔÚ·ÖÇøÖеķֲ¼µÈÐÅÏ¢¡£°ÑÊý¾Ý´Óдò°ü£¬ÕâÑù£º

1£© ¶ÔÓÚupdates, ¸ÃÎļþIDµÄ×îа汾¶¼½«±»ÖØÐ´Ò»´Î£¬²¢¶ÔËùÓÐÒѸü¸ÄµÄ¼Ç¼ʹÓÃÐÂÖµ

2£© ¶ÔÓÚinserts.¼Ç¼Ê×ÏÈ´ò°üµ½Ã¿¸ö·ÖÇøÂ·¾¶ÖеÄ×îСÎļþÖУ¬Ö±µ½´ïµ½ÅäÖõÄ×î´ó´óС¡£Ö®ºóµÄËùÓÐÊ£Óà¼Ç¼½«Ôٴδò°üµ½ÐµÄÎļþ×飬еÄÎļþ×éÒ²»áÂú×ã×î´óÎļþ´óСҪÇó¡£

4.2 Merge On Read±í

MOR±íдÊý¾Ýʱ£¬¼Ç¼Ê×ÏȻᱻ¿ìËÙµÄд½øÈÕÖ¾Îļþ£¬ÉÔºó»áʹÓÃʱ¼äÖáÉϵÄѹËõ²Ù×÷½«ÆäÓë»ù´¡ÎļþºÏ²¢¡£¸ù¾Ý²éѯÊǶÁÈ¡ÈÕÖ¾Öеĺϲ¢¿ìÕÕÁ÷»¹ÊDZä¸üÁ÷£¬»¹Êǽö¶ÁȡδºÏ²¢µÄ»ù´¡Îļþ£¬MOR±íÖ§³Ö¶àÖÖ²éѯÀàÐÍ¡£

Ôڸ߲ã´ÎÉÏ£¬MOR writerÔÚ¶ÁÈ¡Êý¾Ýʱ»á¾­ÀúÓëCOW writer ÏàͬµÄ½×¶Î¡£ÕâЩ¸üн«×·¼Óµ½×îÐÂÎļþƪµÄ×îÐÂÈÕÖ¾ÎļþÖУ¬¶ø²»»áºÏ²¢¡£

¶ÔÓÚinsert,HudiÖ§³ÖÁ½ÖÖģʽ£º

1£© ²åÈëµ½ÈÕÖ¾Îļþ£ºÓпÉË÷ÒýÈÕÖ¾ÎļþµÄ±í»áÖ´Ðд˲Ù×÷£¨HBaseË÷Òý£©£»

2£© ²åÈëparquetÎļþ£ºÃ»ÓÐË÷ÒýÎļþµÄ±í£¨ÀýÈ粼¡Ë÷Òý£©

Óëдʱ¸´ÖÆ£¨COW£©Ò»Ñù£¬¶ÔÒѱê¼ÇλÖõÄÊäÈë¼Ç¼½øÐзÖÇø£¬ÒԱ㽫ËùÓз¢ÍùÏàͬÎļþidµÄupsert·Öµ½Ò»×é¡£ÕâÅúupsert»á×÷Ϊһ¸ö»ò¶à¸öÈÕÖ¾¿éдÈëÈÕÖ¾Îļþ¡£HudiÔÊÐí¿Í»§¶Ë¿ØÖÆÈÕÖ¾Îļþ´óС¡£¶ÔÓÚдʱ¸´ÖÆ£¨COW£©ºÍ¶ÁʱºÏ²¢£¨MOR£©writerÀ´Ëµ£¬HudiµÄWriteClientÊÇÏàͬµÄ¡£¼¸ÂÖÊý¾ÝµÄдÈ뽫»áÀÛ»ýÒ»¸ö»ò¶à¸öÈÕÖ¾Îļþ¡£ÕâЩÈÕÖ¾ÎļþÓë»ù±¾µÄparquetÎļþ£¨ÈçÓУ©Ò»Æð¹¹³ÉÒ»¸öÎļþƬ£¬¶øÕâ¸öÎļþƬ´ú±í¸ÃÎļþµÄÒ»¸öÍêÕû°æ±¾¡£

ÕâÖÖ±íÊÇÓÃ;×î¹ã¡¢×î¸ß¼¶µÄ±í¡£ÎªÐ´£¨¿ÉÒÔÖ¸¶¨²»Í¬µÄѹËõ²ßÂÔ£¬ÎüÊÕÍ»·¢Ð´Á÷Á¿£©ºÍ²éѯ£¨ÀýÈçȨºâÊý¾ÝµÄÐÂÏʶȺͲéѯÐÔÄÜ£©ÌṩÁ˺ܴóµÄÁé»îÐÔ¡£Í¬Ê±Ëü°üº¬Ò»¸öѧϰÇúÏߣ¬ÒÔ±ãÔÚ²Ù×÷ÉÏÕÆ¿ØËû¡£

5. дÉè¼Æ

5.1 д²Ù×÷

Á˽âHudiÊý¾ÝÔ´»òÕßdeltastreamer¹¤¾ßÌṩµÄ3ÖÖ²»Í¬Ð´²Ù×÷ÒÔ¼°ÈçºÎ×îºÃµÄÀûÓÃËûÃÇ¿ÉÄÜ»áÓÐËù°ïÖú¡£ÕâЩ²Ù×÷¿ÉÒÔÔÚ¶ÔÊý¾Ý¼¯·¢³öµÄÿ¸öcommit/delta commitÖнøÐÐÑ¡Ôñ/¸ü¸Ä¡£

1£© upsert²Ù×÷£ºÕâÊÇĬÈϲÙ×÷£¬ÔڸòÙ×÷ÖУ¬Ê×ÏÈͨ¹ý²éѯË÷Òý½«Êý¾Ý¼Ç¼±ê¼ÇΪ²åÈë»ò¸üУ¬È»ºóÔÙÔËÐÐÊÔ̽·¨È·¶¨ÈçºÎ×îºÃµØ½«ËûÃÇ´ò°üµ½´æ´¢£¬ÒÔ¶ÔÎļþ´óС½øÐÐÓÅ»¯£¬×îÖÕ½«¼Ç¼дÈë¡£¶ÔÓÚÖîÈçÊý¾Ý¿â¸ü¸Ä²¶»ñÖ®ÀàµÄÓÃÀý£¬½¨ÒéÔÚÊäÈ뼸ºõ¿Ï¶¨°üº¬¸üеÄÇé¿öÏÂʹÓô˲Ù×÷¡£

2£© insert²Ù×÷£ºÓëupsertÏà±È£¬insert²Ù×÷Ò²»áÔËÐÐÊÔ̽·¨È·¶¨´ò°ü·½Ê½£¬ÓÅ»¯Îļþ´óС£¬µ«»áÍêÈ«Ìø¹ýË÷Òý²éѯ¡£Òò´Ë¶ÔÓÚÖîÈçÈÕÖ¾ÖØ¸´Êý¾Ýɾ³ý£¨½áºÏÏÂÃæÌáµ½µÄ¹ýÂËÖØ¸´ÏîÑ¡ÏµÄÓÃÀý¶øÑÔ£¬Ëü±ÈupsertµÄËÙ¶È¿ìµÃ¶à¡£ÕâÒ²ÊÊÓÃÓÚÊý¾Ý¼¯¿ÉÒÔÈÝÈÌÖØ¸´Ïµ«Ö»ÐèÒªHudi¾ßÓÐÊÂÎñÐÔд/ÔöÁ¿À­È¡/´æ´¢¹ÜÀí¹¦ÄܵÄÓÃÀý¡£

3£© bulk insert²Ù×÷£ºupsert ºÍinsert²Ù×÷¶¼»á½«ÊäÈë¼Ç¼±£ÁôÔÚÄÚ´æÖУ¬ÒÔ¼Ó¿ì´æ´¢Æô·¢Ê½¼ÆËãËÙ¶È£¬Òò´Ë¶ÔÓÚ×î³õ¼ÓÔØ/Òýµ¼HudiÊý¾Ý¼¯µÄÓÃÀý¶øÑÔ¿ÉÄÜ»áºÜÂé·³¡£Bulk insertÌṩÁËÓëinsertÏàͬµÄÓïÒ壬ͬʱʵÏÖÁË»ùÓÚÅÅÐòµÄÊý¾ÝдÈëËã·¨£¬¸ÃËã·¨¿ÉÒԺܺõÄÀ©Õ¹Êý°ÙTBµÄ³õʼ¸ºÔØ¡£µ«ÊÇÕâÖ»ÊÇÔÚµ÷ÕûÎļþ´óС·½Ãæ½øÐеÄ×î´óŬÁ¦£¬¶ø²»ÊÇÏñinsert/updateÄÇÑù±£Ö¤Îļþ´óС¡£

5.2 ѹËõ

ѹËõÊÇÒ»¸ö instant²Ù×÷£¬Ëü½«Ò»×éÎļþƬ×÷ΪÊäÈ룬½«Ã¿¸öÎļþÇÐÆ¬ÖеÄËùÓÐÈÕÖ¾ÎļþÓëÆäbasefileÎļþ£¨parquetÎļþ£©ºÏ²¢£¬ÒÔÉú³ÉеÄѹËõÎļþƬ£¬²¢Ð´ÎªÊ±¼äÖáÉϵÄÒ»¸öcommit¡£Ñ¹Ëõ½öÊÊÓÃÓÚ¶ÁʱºÏ²¢£¨MOR£©±íÀàÐÍ£¬²¢ÇÒÓÉѹËõ²ßÂÔ£¨Ä¬ÈÏÑ¡Ôñ¾ßÓÐ×î´óδѹËõÈÕÖ¾µÄÎļþƬ£©¾ö¶¨Ñ¡ÔñÒª½øÐÐѹËõµÄÎļþƬ¡£Õâ¸öѹËõ²ßÂÔ»áÔÚÿ¸öд²Ù×÷Ö®ºóÆÀ¹À¡£

´Ó¸ß²ã´ÎÉϽ²£¬Ñ¹ËõÓÐÁ½ÖÖ·½Ê½£º

1£©Í¬²½Ñ¹Ëõ£ºÕâÀïµÄѹËõÓÉд³ÌÐò½ø³Ì±¾ÉíÔÚÿ´ÎдÈëÖ®ºóͬ²½Ö´Ðе쬼´Ö±µ½Ñ¹ËõÍê³Éºó²ÅÄÜ¿ªÊ¼ÏÂÒ»¸öд²Ù×÷¡£¾Í²Ù×÷¶øÑÔ£¬Õâ¸öÊÇ×î¼òµ¥µÄ£¬ÒòΪÎÞÐè°²Åŵ¥¶ÀµÄѹËõ¹ý³Ì£¬µ«±£Ö¤µÄÊý¾ÝÐÂÏʶÈ×îµÍ¡£²»¹ý£¬Èç¹û¿ÉÒÔÔÚÿ´Îд²Ù×÷ÖÐѹËõ×îеıí·ÖÇø£¬Í¬Ê±ÓÖÄÜÑӳٳٵ½/½Ï¾É·ÖÇøµÄѹËõ£¬ÕâÖÖ·½Ê½ÈÔÈ»·Ç³£ÓÐÓá£

2£©Ò첽ѹËõ£ºÊ¹ÓÃÕâÖÖ·½Ê½£¬Ñ¹Ëõ¹ý³Ì¿ÉÒÔÓë±íµÄд²Ù×÷ͬʱÒì²½ÔËÐС£ÕâÑù¾ßÓÐÃ÷ÏԵĺô¦£¬¼´Ñ¹Ëõ²»»á×èÈûÏÂÒ»ÅúÊý¾ÝдÈ룬´Ó¶ø²úÉú½üʵʱµÄÊý¾ÝÐÂÏʶȡ£Hudi DeltaStreamerÖ®ÀàµÄ¹¤¾ßÖ§³Ö±ß½çµÄÁ¬ÐøÄ£Ê½£¬ÆäÖеÄѹËõºÍдÈë²Ù×÷¾ÍÊÇÒÔÕâÖÖ·½Ê½ÔÚµ¥¸öSparkÔËÐÐʱ¼¯ÈºÖнøÐеġ£

5.3 ÇåÀí

ÇåÀíÊÇÒ»Ïî»ù±¾µÄ¼´Ê±²Ù×÷£¬ÆäÖ´ÐеÄÄ¿µÄÊÇɾ³ý¾ÉµÄÎļþƬ£¬²¢ÏÞÖÆ±íÕ¼ÓõĴ洢¿Õ¼ä¡£ÇåÀí»áÔÚÿ´Îд²Ù×÷Ö®ºó×Ô¶¯Ö´ÐУ¬²¢ÀûÓÃʱ¼äÖá·þÎñÆ÷ÉÏ»º´æµÄʱ¼äÖáÔªÊý¾ÝÀ´±ÜÃâɨÃèÕû¸ö±íÀ´ÆÀ¹ÀÇåÀíʱ»ú¡£

HudiÖ§³ÖÁ½ÖÖÇåÀí·½Ê½£º

1£© °´commits / deltacommitsÇåÀí£ºÕâÊÇÔöÁ¿²éѯÖÐ×î³£¼ûÇÒ±ØÐëʹÓõÄģʽ¡£ÒÔÕâÖÖ·½Ê½£¬Cleaner»á±£Áô×î½üN´Îcommit/delta commitÌá½»ÖÐдÈëµÄËùÓÐÎļþÇÐÆ¬£¬´Ó¶øÓÐЧÌṩÔÚÈκμ´Ê±·¶Î§ÄÚ½øÐÐÔöÁ¿²éѯµÄÄÜÁ¦¡£¾¡¹ÜÕâ¶ÔÓÚÔöÁ¿²éѯºÜÓаïÖú£¬µ«ÓÉÓÚ±£ÁôÁËÅäÖ÷¶Î§ÄÚËùÓа汾µÄÎļþƬ£¬Òò´Ë£¬ÔÚijЩ¸ßдÈë¸ºÔØµÄ³¡¾°Ï¿ÉÄÜÐèÒª¸ü´óµÄ´æ´¢¿Õ¼ä¡£

2£© °´±£ÁôµÄÎļþƬÇåÀí£ºÕâÊÇÒ»ÖÖ¸üΪ¼òµ¥µÄÇåÀí·½Ê½£¬ÕâÀïÎÒÃǽö±£´æÃ¿¸öÎļþ×éÖеÄ×îºóN¸öÎļþƬ¡£ÖîÈçApache HiveÖ®ÀàµÄijЩ²éѯÒýÇæ»á´¦Àí·Ç³£´óµÄ²éѯ£¬ÕâЩ²éѯ¿ÉÄÜÐèÒª¼¸¸öСʱ²ÅÄÜÍê³É£¬ÔÚÕâÖÖÇé¿öÏ£¬½«NÉèÖÃΪ×ã¹»´óÒÔÖÁÓÚ²»»áɾ³ý²éѯÈÔÈ»¿ÉÒÔ·ÃÎʵÄÎļþƬÊǺÜÓÐÓõġ£

´ËÍ⣬ÇåÀí²Ù×÷»á±£Ö¤Ã¿¸öÎļþ×éÏÂÃæ»áÒ»Ö±Ö»ÓÐÒ»¸öÎļþƬ£¨×îеÄһƬ£©¡£

5.4 DFS·ÃÎÊÓÅ»¯

Hudi»¹¶Ô±íÖд洢µÄÊý¾ÝÖ´ÐÐÁ˼¸ÖÖÃØÔ¿´æ´¢¹ÜÀí¹¦ÄÜ¡£ÔÚDFSÉÏ´æ´¢Êý¾ÝµÄ¹Ø¼üÊǹÜÀíÎļþ´óСºÍ¼ÆÊýÒÔ¼°»ØÊÕ´æ´¢¿Õ¼ä¡£ÀýÈ磬HDFSÔÚ´¦ÀíСÎļþÎÊÌâÉϳôÃûÕÑÖø--ÔÚNameNodeÉÏÊ©¼ÓÄÚ´æ/RPCѹÁ¦£¬¿ÉÄÜÆÆ»µÕû¸ö¼¯ÈºµÄÎȶ¨ÐÔ¡£Í¨³££¬²éѯÒýÇæ¿ÉÔÚÊʵ±´óСµÄÁÐÎļþÉÏÌṩ¸üºÃµÄÐÔÄÜ£¬ÒòΪËüÃÇ¿ÉÒÔÓÐЧµØÌ¯Ïú»ñÈ¡ÁÐͳ¼ÆÐÅÏ¢µÈµÄ³É±¾¡£¼´Ê¹ÔÚÄ³Ð©ÔÆÊý¾Ý´æ´¢ÉÏ£¬Áгö°üº¬´óÁ¿Ð¡ÎļþµÄĿ¼Ҳ»á²úÉú³É±¾¡£

ÏÂÃæÊÇһЩHudi¸ßЧд£¬¹ÜÀíÊý¾Ý´æ´¢µÄ·½·¨£º

1£©Ð¡Îļþ´¦ÀíÌØÐÔ»áÆÊÎöÊäÈëµÄ¹¤×÷¸ºÔØ£¬²¢½«ÄÚÈÝ·ÖÅäµ½ÏÖÓеÄÎļþ×飬¶ø²»ÊÇ´´½¨ÐÂÎļþ×飨Õâ»áµ¼ÖÂÉú³ÉСÎļþ£©¡£

2£©ÔÚwriterÖÐʹÓÃÒ»¸öʱ¼äÖỺ´æ£¬ÕâÑùÖ»ÒªSpark¼¯Èº²»Ã¿´Î¶¼ÖØÆô£¬ºóÐøµÄд²Ù×÷¾Í²»ÐèÒªÁгöDFSĿ¼À´»ñȡָ¶¨·ÖÇøÂ·¾¶ÏµÄÎļþƬÁÐ±í¡£

3£©Óû§»¹¿ÉÒÔµ÷Õû»ù±¾ÎļþºÍÈÕÖ¾Îļþ´óС֮¼äµÄ±ÈֵϵÊýÒÔ¼°ÆÚÍûµÄѹËõÂÊ£¬ÒԱ㽫×ã¹»ÊýÁ¿µÄinsert·Öµ½Í³Ò»Îļþ×飬´Ó¶øÉú³É´óСºÏÊʵĻù±¾Îļþ¡£

4£©ÖÇÄܵ÷Õûbulk insert²¢Ðжȣ¬¿ÉÒÔÔٴε÷Õû´óСºÏÊʵijõʼÎļþ×顣ʵ¼ÊÉÏ£¬ÕýÈ·Ö´Ðд˲Ù×÷·Ç³£¹Ø¼ü£¬ÒòΪÎļþ×éÒ»µ©´´½¨¾Í²»Äܱ»É¾³ý£¬¶øÖÇÄÜÈçÇ°ÃæËùÊö¶ÔÆä½øÐÐÀ©Õ¹¡£

6.²éѯ

¼øÓÚÕâÖÖÁé»î¶øÈ«ÃæµÄÊý¾Ý²¼¾ÖºÍ·á¸»µÄʱ¼äÏߣ¬HudiÄܹ»Ö§³ÖÈýÖÖ²»Í¬µÄ²éѯ±í·½Ê½£¬¾ßÌåÈ¡¾öÓÚ±íµÄÀàÐÍ¡£

6.1 ¿ìÕÕ²éѯ

¿É²é¿´¸ø¶¨delta commit»òÕßcommit¼´Ê±²Ù×÷ºó±íµÄ×îпìÕÕ¡£ÔÚ¶ÁʱºÏ²¢£¨MOR£©±íµÄÇé¿öÏ£¬Ëüͨ¹ý¼´Ê±ºÏ²¢×îÐÂÎļþƬµÄ»ù±¾ÎļþºÍÔöÁ¿ÎļþÀ´Ìṩ½üʵʱ±í£¨¼¸·ÖÖÓ£©¡£¶ÔÓÚдʱ¸´ÖÆ£¨COW£©£¬Ëü¿ÉÒÔÌæ´úÏÖÓеÄparquet±í£¨»òÏàͬ»ù±¾ÎļþÀàÐÍµÄ±í£©£¬Í¬Ê±Ìṩupsert/deleteºÍÆäËûдÈë·½ÃæµÄ¹¦ÄÜ¡£

6.2 ÔöÁ¿²éѯ

¿É²é¿´×Ô¸ø¶¨commit/delta commit¼´Ê±²Ù×÷ÒÔÀ´ÐÂдÈëµÄÊý¾Ý¡£ÓÐЧµÄÌṩ±ä¸üÁ÷À´ÆôÓÃÔöÁ¿Êý¾Ý¹ÜµÀ¡£

6.3 ¶ÁÓÅ»¯²éѯ

¿É²é¿´¸ø¶¨µÄcommit/compact¼´Ê±²Ù×÷µÄ±íµÄ×îпìÕÕ¡£½ö½«×îÐÂÎļþƬµÄ»ù±¾/ÁÐÎļþ±©Â¶¸ø²éѯ£¬²¢±£Ö¤Óë·ÇHudi±íÏàͬµÄÁвéѯÐÔÄÜ¡£

 

 

   
7336 ´Îä¯ÀÀ       32
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]
 
×îÐÂÎÄÕÂ
InfluxDB¸ÅÄîºÍ»ù±¾²Ù×÷
InfluxDB TSM´æ´¢ÒýÇæÖ®Êý¾ÝдÈë
Éî¶ÈÂþ̸Êý¾Ýϵͳ¼Ü¹¹¡ª¡ªLambda architecture
Lambda¼Ü¹¹Êµ¼ù
InfluxDB TSM´æ´¢ÒýÇæÖ®Êý¾Ý¶ÁÈ¡
×îпγÌ
OracleÊý¾Ý¿âÐÔÄÜÓÅ»¯¡¢¼Ü¹¹Éè¼ÆºÍÔËÐÐά»¤
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
NoSQLÊý¾Ý¿â£¨Ô­Àí¡¢Ó¦Óá¢×î¼Ñʵ¼ù£©
ÆóÒµ¼¶Hadoop´óÊý¾Ý´¦Àí×î¼Ñʵ¼ù
OracleÊý¾Ý¿âÐÔÄÜÓÅ»¯×î¼Ñʵ¼ù
³É¹¦°¸Àý
ij½ðÈÚ¹«Ë¾ Mysql¼¯ÈºÓëÐÔÄÜÓÅ»¯
±±¾© ²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
ÖªÃûijÐÅϢͨÐŹ«Ë¾ NoSQL»º´æÊý¾Ý¿â¼¼Êõ
±±¾© oracleÊý¾Ý¿âSQLÓÅ»¯
ÖйúÒÆ¶¯ IaaSÔÆÆ½Ì¨-Ö÷Á÷Êý¾Ý¿â¼°´æ´¢¼¼Êõ