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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
СÃ×Á÷ʽƽ̨¼Ü¹¹ÑݽøÓëʵ¼ù
 
×÷ÕߣºÏľü@СÃ×
 
  1309  次浏览      27
2020-11-30 
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜÁË Ð¡Ã×Á÷ʽƽ̨·¢Õ¹ÀúÊ·¡¢»ùÓÚ Flink µÄʵʱÊý²ÖÒÔ¼°Î´À´¹æ»®
±¾ÎÄÀ´×Ô΢ÐÅ Flink ÖÐÎÄÉçÇø£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­¡¢ÍƼö¡£

±³¾°½éÉÜ

СÃ×Á÷ʽƽ̨µÄÔ¸¾°ÊÇΪСÃ×ËùÓеÄÒµÎñÏßÌṩÁ÷ʽÊý¾ÝµÄÒ»Ì廯¡¢Æ½Ì¨»¯½â¾ö·½°¸¡£¾ßÌåÀ´½²°üÀ¨ÒÔÏÂÈý¸ö·½Ã棺

Á÷ʽÊý¾Ý´æ´¢£ºÁ÷ʽÊý¾Ý´æ´¢Ö¸µÄÊÇÏûÏ¢¶ÓÁУ¬Ð¡Ã׿ª·¢ÁËÒ»Ì××Ô¼ºµÄÏûÏ¢¶ÓÁУ¬ÆäÀàËÆÓÚ Apache kafka£¬µ«ËüÓÐ×Ô¼ºµÄÌØµã£¬Ð¡Ã×Á÷ʽƽ̨ÌṩÏûÏ¢¶ÓÁеĴ洢¹¦ÄÜ£»

Á÷ʽÊý¾Ý½ÓÈëºÍת´¢£ºÓÐÁËÏûÏ¢¶ÓÁÐÀ´×öÁ÷ʽÊý¾ÝµÄ»º´æÇøÖ®ºó£¬¼Ì¶øÐèÒªÌṩÁ÷ʽÊý¾Ý½ÓÈëºÍת´¢µÄ¹¦ÄÜ£»

Á÷ʽÊý¾Ý´¦Àí£ºÖ¸µÄÊÇÆ½Ì¨»ùÓÚ Flink¡¢Spark Streaming ºÍ Storm µÈ¼ÆËãÒýÇæ¶ÔÁ÷ʽÊý¾Ý½øÐд¦ÀíµÄ¹ý³Ì¡£

ÏÂͼչʾÁËÁ÷ʽƽ̨µÄÕûÌå¼Ü¹¹¡£´Ó×óµ½ÓÒµÚÒ»ÁгÈÉ«²¿·ÖÊÇÊý¾ÝÔ´£¬°üº¬Á½²¿·Ö£¬¼´ User ºÍ Database¡£

User Ö¸µÄÊÇÓû§¸÷ÖÖ¸÷ÑùµÄÂñµãÊý¾Ý£¬ÈçÓû§ APP ºÍ WebServer µÄÈÕÖ¾£¬Æä´ÎÊÇ Database Êý¾Ý£¬Èç MySQL¡¢HBase ºÍÆäËûµÄ RDS Êý¾Ý¡£

ÖмäÀ¶É«²¿·ÖÊÇÁ÷ʽƽ̨µÄ¾ßÌåÄÚÈÝ£¬ÆäÖÐ Talos ÊÇСÃ×ʵÏÖµÄÏûÏ¢¶ÓÁУ¬ÆäÉϲã°üº¬ Consumer SDK ºÍ Producer SDK¡£

´ËÍâСÃ×»¹ÊµÏÖÁËÒ»Ì×ÍêÕûµÄ Talos Source£¬Ö÷ÒªÓÃÓÚÊÕ¼¯¸Õ²ÅÌáµ½µÄÓû§ºÍÊý¾Ý¿âµÄÈ«³¡¾°µÄÊý¾Ý¡£

Talos Sink ºÍ Source ¹²Í¬×éºÏ³ÉÒ»¸öÊý¾ÝÁ÷·þÎñ£¬Ö÷Òª¸ºÔ𽫠Talos µÄÊý¾ÝÒÔ¼«µÍµÄÑÓ³Ùת´¢µ½ÆäËûϵͳÖУ»Sink ÊÇÒ»Ì×±ê×¼»¯µÄ·þÎñ£¬µ«Æä²»¹»¶¨ÖÆ»¯£¬ºóÐø»á»ùÓÚ Flink SQL ÖØ¹¹ Talos Sink Ä£¿é¡£

ÏÂͼչʾÁËСÃ×µÄÒµÎñ¹æÄ£¡£ÔÚ´æ´¢²ãÃæÐ¡Ã×ÿÌì´ó¸ÅÓÐ 1.2 ÍòÒÚÌõÏûÏ¢£¬·åÖµÁ÷Á¿¿ÉÒÔ´ïµ½ 4300 ÍòÌõÿÃ롣ת´¢Ä£¿é½ö Talos Sink ÿÌìת´¢µÄÊý¾ÝÁ¿¾Í¸ß´ï 1.6 PB£¬×ª´¢×÷ҵĿǰ½«½üÓÐ 1.5 Íò¸ö¡£Ã¿ÌìµÄÁ÷ʽ¼ÆËã×÷Òµ³¬¹ý 800 ¸ö£¬Flink ×÷Òµ³¬¹ý 200 ¸ö£¬Flink ÿÌì´¦ÀíµÄÏûÏ¢Á¿¿ÉÒÔ´ïµ½ 7000 ÒÚÌõ£¬Êý¾ÝÁ¿ÔÚ 1 PB ÒÔÉÏ¡£

СÃ×Á÷ʽƽ̨·¢Õ¹ÀúÊ·

СÃ×Á÷ʽƽ̨·¢Õ¹ÀúÊ··ÖΪÈçÏÂÈý¸ö½×¶Î£º

Streaming Platform 1.0£ºÐ¡Ã×Á÷ʽƽ̨µÄ 1.0 °æ±¾¹¹½¨ÓÚ 2010 Ä꣬Æä×î³õʹÓõÄÊÇ Scribe¡¢Kafka ºÍ Storm£¬ÆäÖÐ Scribe ÊÇÒ»Ì×½â¾öÊý¾ÝÊÕ¼¯ºÍÊý¾Ýת´¢µÄ·þÎñ¡£

Streaming Platform 2.0£ºÓÉÓÚ 1.0 °æ±¾´æÔÚµÄÖÖÖÖÎÊÌ⣬ÎÒÃÇ×ÔÑÐÁËСÃ××Ô¼ºµÄÏûÏ¢¶ÓÁÐ Talos£¬»¹°üÀ¨ Talos Source¡¢Talos Sink£¬²¢½ÓÈëÁË Spark Streaming¡£

Streaming Platform 3.0£º¸Ã°æ±¾ÔÚÉÏÒ»¸ö°æ±¾µÄ»ù´¡ÉÏÔö¼ÓÁË Schema µÄÖ§³Ö£¬»¹ÒýÈëÁË Flink ºÍ Stream SQL¡£

Streaming Platform 1.0 ÕûÌåÊÇÒ»¸ö¼¶ÁªµÄ·þÎñ£¬Ç°Ãæ°üÀ¨ Scribe Agent ºÍ Scribe Server µÄ¶à¼¶¼¶Áª£¬Ö÷ÒªÓÃÓÚÊÕ¼¯Êý¾Ý£¬È»ºóÂú×ãÀëÏß¼ÆËãºÍʵʱ¼ÆËãµÄ³¡¾°¡£ÀëÏß¼ÆËãʹÓõÄÊÇ HDFS ºÍ Hive£¬ÊµÊ±¼ÆËãʹÓõÄÊÇ Kafka ºÍ Storm¡£ËäÈ»ÕâÖÖÀëÏß¼ÓʵʱµÄ·½Ê½¿ÉÒÔ»ù±¾Âú×ãСÃ×µ±Ê±µÄÒµÎñÐèÇ󣬵«Ò²´æÔÚһϵÁеÄÎÊÌâ¡£

Ê×ÏÈÊÇ Scribe Agent ¹ý¶à£¬¶øÅäÖúͰü¹ÜÀí»úÖÆÈ±·¦£¬µ¼ÖÂά»¤³É±¾·Ç³£¸ß£»

Scribe ²ÉÓÃµÄ Push ¼Ü¹¹£¬Òì³£Çé¿öÏÂÎÞ·¨ÓÐЧ»º´æÊý¾Ý£¬Í¬Ê± HDFS / Kafka Êý¾ÝÏ໥ӰÏ죻

×îºóÊý¾ÝÁ´¼¶Áª±È½Ï³¤µÄʱºò£¬Õû¸öÈ«Á´Â·Êý¾ÝºÚºÐ£¬È±·¦¼à¿ØºÍÊý¾Ý¼ìÑé»úÖÆ¡£

ΪÁ˽â¾ö Streaming Platform 1.0 µÄÎÊÌ⣬СÃ×ÍÆ³öÁË Streaming Platform 2.0 °æ±¾¡£¸Ã°æ±¾ÒýÈëÁË Talos£¬½«Æä×÷ΪÊý¾Ý»º´æÇøÀ´½øÐÐÁ÷ʽÊý¾ÝµÄ´æ´¢£¬×ó²àÊǶàÖÖ¶àÑùµÄÊý¾ÝÔ´£¬ÓÒ²àÊǶàÖÖ¶àÑùµÄ Sink£¬¼´½«Ô­±¾µÄ¼¶Áª¼Ü¹¹×ª»»³ÉÐÇÐͼܹ¹£¬ÓŵãÊÇ·½±ãµØÀ©Õ¹¡£

ÓÉÓÚ Agent ×ÔÉíÊýÁ¿¼°¹ÜÀíµÄÁ÷½Ï¶à£¨¾ßÌåÊý¾Ý¾ùÔÚÍò¼¶±ð£©£¬Îª´Ë¸Ã°æ±¾ÊµÏÖÁËÒ»Ì×ÅäÖùÜÀíºÍ°ü¹ÜÀíϵͳ£¬¿ÉÒÔÖ§³Ö Agent Ò»´ÎÅäÖÃÖ®ºóµÄ×Ô¶¯¸üкÍÖØÆôµÈ¡£

´ËÍ⣬СÃ×»¹ÊµÏÖÁËÈ¥ÖÐÐÄ»¯µÄÅäÖ÷þÎñ£¬ÅäÖÃÎļþÉ趨ºÃºó¿ÉÒÔ×Ô¶¯µØ·Ö·¢µ½·Ö²¼Ê½½áµãÉÏÈ¥¡£

×îºó£¬¸Ã°æ±¾»¹ÊµÏÖÁËÊý¾ÝµÄ¶Ëµ½¶Ë¼à¿Ø£¬Í¨¹ýÂñµãÀ´¼à¿ØÊý¾ÝÔÚÕû¸öÁ´Â·ÉϵÄÊý¾Ý¶ªÊ§Çé¿öºÍÊý¾Ý´«ÊäÑÓ³ÙÇé¿öµÈ¡£

Streaming Platform 2.0 µÄÓÅÊÆÖ÷ÒªÓУº

ÒýÈëÁË Multi Source & Multi Sink£¬Ö®Ç°Á½¸öϵͳ֮¼äµ¼Êý¾ÝÐèÒªÖ±½ÓÁ¬½Ó£¬ÏÖÔڵļܹ¹½«ÏµÍ³¼¯³É¸´ÔÓ¶ÈÓÉÔ­À´µÄ O(M*N) ½µµÍΪ O(M+N)£»

ÒýÈëÅäÖùÜÀíºÍ°ü¹ÜÀí»úÖÆ£¬³¹µ×½â¾öϵͳÉý¼¶¡¢Ð޸ĺÍÉÏÏßµÈһϵÁÐÎÊÌ⣬½µµÍÔËάµÄѹÁ¦£»

ÒýÈë¶Ëµ½¶ËÊý¾Ý¼à¿Ø»úÖÆ£¬ÊµÏÖÈ«Á´Â·Êý¾Ý¼à¿Ø£¬Á¿»¯È«Á´Â·Êý¾ÝÖÊÁ¿£»

²úÆ·»¯½â¾ö·½°¸£¬±ÜÃâÖØ¸´½¨É裬½â¾öÒµÎñÔËάÎÊÌâ¡£

ÏÂͼÏêϸ½éÉÜһϠMySQL ͬ²½µÄ°¸Àý£¬³¡¾°Êǽ« MySQL µÄÒ»¸ö±íͨ¹ýÉÏÊöµÄ»úÖÆÍ¬²½µ½ÏûÏ¢¶ÓÁÐ Talos¡£¾ßÌåÁ÷³ÌÊÇ Binlog ·þÎñαװ³É MySQL µÄ Slave£¬Ïò MySQL ·¢ËÍ Dump binlog ÇëÇó£»MySQL ÊÕµ½ Dump ÇëÇóºó£¬¿ªÊ¼Íƶ¯ Binlog ¸ø Binlog ·þÎñ£»Binlog ·þÎñ½« binlog ÒÔÑϸñÓÐÐòµÄÐÎʽת´¢µ½ Talos¡£Ö®ºó»á½ÓÈë Spark Streaming ×÷Òµ£¬¶Ô binlog ½øÐнâÎö£¬½âÎö½á¹ûдÈëµ½ Kudu ±íÖС£Ä¿Ç°Æ½Ì¨Ö§³ÖдÈëµ½ Kudu ÖеıíµÄÊýÁ¿¼¶³¬¹ý 3000 ¸ö¡£

Agent Source µÄ¹¦ÄÜÄ£¿éÈçÏÂͼËùʾ¡£ÆäÖ§³Ö RPC¡¢Http ЭÒ飬²¢¿ÉÒÔͨ¹ý File À´¼àÌý±¾µØÎļþ£¬ÊµÏÖÄÚ´æºÍÎļþË«»º´æ£¬±£Ö¤Êý¾ÝµÄ¸ß¿É¿¿¡£Æ½Ì¨»ùÓÚ RPC ЭÒéʵÏÖÁË Logger Appender ºÍ RPC ЭÒéµÄ SDK£»¶ÔÓÚ Http ЭÒéʵÏÖÁË HttpClient£»¶ÔÓÚÎļþʵÏÖÁË File Watcher À´¶Ô±¾µØÎļþ½øÐÐ×Ô¶¯µØ·¢ÏÖºÍɨÃ裬Offset Manager ×Ô¶¯¼Ç¼ offset£»Agent »úÖÆÓë K8S »·¾³Éî¶ÈÕûºÏ£¬¿ÉÒÔºÜÈÝÒ׵غͺó¶ËµÄÁ÷ʽ¼ÆËãµÈÏà½áºÏ¡£

ÏÂͼÊÇ Talos Sink µÄÂß¼­Á÷³Ìͼ£¬Æä»ùÓÚ Spark Streaming À´ÊµÏÖһϵÁÐÁ÷³Ì¡£×î×ó²àÊÇһϵÁÐ Talos Topic µÄ Partition ·ÖƬ£¬»ùÓÚÿ¸ö batch ³éÏ󹫹²Âß¼­£¬Èç startProcessBatch() ºÍ stopProcessBatch()£¬²»Í¬ Sink Ö»ÐèҪʵÏÖ Write Âß¼­£»²»Í¬µÄ Sink ¶ÀÁ¢Îª²»Í¬µÄ×÷Òµ£¬±ÜÃâÏ໥ӰÏ죻Sink ÔÚ Spark Streaming »ù´¡ÉϽøÐÐÁËÓÅ»¯£¬ÊµÏÖÁ˸ù¾Ý Topic Á÷Á¿½øÐж¯Ì¬×ÊÔ´µ÷¶È£¬±£Ö¤ÏµÍ³ÑÓ³ÙµÄǰÌáÏÂ×î´óÏ޶ȽÚÊ¡×ÊÔ´¡£

ÏÂͼÊÇÆ½Ì¨ÊµÏֵĶ˵½¶ËÊý¾Ý¼à¿Ø»úÖÆ¡£¾ßÌåʵÏÖÊÇΪÿ¸öÏûÏ¢¶¼ÓÐÒ»¸öʱ¼ä´Á EventTime£¬±íʾÕâ¸öÏûÏ¢ÕæÕýÉú³ÉµÄʱ¼ä£¬¸ù¾Ý EventTime À´»®·Öʱ¼ä´°¿Ú£¬´°¿Ú´óСΪһ·ÖÖÓ£¬Êý¾Ý´«ÊäµÄÃ¿Ò»ÌøÍ³¼Æµ±Ç°Ê±¼ä´°¿ÚÄÚ½ÓÊܵ½µÄÏûÏ¢ÊýÁ¿£¬×îºóͳ¼Æ³öÏûÏ¢µÄÍêÕû¶È¡£ÑÓ³ÙÊǼÆËãÄ³Ò»Ìø ProcessTime ºÍ EventTime Ö®¼äµÄ²îÖµ¡£

Streaming Platform 2.0 ĿǰµÄÎÊÌâÖ÷ÒªÓÐÈýµã£º

Talos Êý¾Ýȱ·¦ Schema ¹ÜÀí£¬Talos ¶ÔÓÚ´«ÈëµÄÊý¾ÝÊDz»Àí½âµÄ£¬ÕâÖÖÇé¿öÏÂÎÞ·¨Ê¹Óà SQL À´Ïû·Ñ Talos µÄÊý¾Ý£»

Talos Sink Ä£¿é²»Ö§³Ö¶¨ÖÆ»¯ÐèÇó£¬ÀýÈç´Ó Talos ½«Êý¾Ý´«Êäµ½ Kudu ÖУ¬Talos ÖÐÓÐÊ®¸ö×ֶΣ¬µ« Kudu ÖÐÖ»ÐèÒª 5 ¸ö×ֶΣ¬¸Ã¹¦ÄÜĿǰÎÞ·¨ºÜºÃµØÖ§³Ö£»

Spark Streaming ×ÔÉíÎÊÌ⣬²»Ö§³Ö Event Time£¬¶Ëµ½¶Ë Exactly Once ÓïÒå¡£

»ùÓÚ Flink µÄʵʱÊý²Ö

ΪÁ˽â¾ö Streaming Platform 2.0 µÄÉÏÊöÎÊÌ⣬СÃ×½øÐÐÁË´óÁ¿µ÷ÑУ¬Ò²ºÍ°¢ÀïµÄʵʱ¼ÆËãÍŶÓ×öÁËһϵÁйµÍ¨ºÍ½»Á÷£¬×îÖÕ¾ö¶¨½«Ê¹Óà Flink À´¸ÄÔìÆ½Ì¨µ±Ç°µÄÁ÷³Ì£¬ÏÂÃæ¾ßÌå½éÉÜСÃ×Á÷ʽ¼ÆËãÆ½Ì¨»ùÓÚFlinkµÄʵ¼ù¡£

ʹÓà Flink ¶Ôƽ̨½øÐиÄÔìµÄÉè¼ÆÀíÄîÈçÏ£º

È«Á´Â· Schema Ö§³Ö£¬ÕâÀïµÄÈ«Á´Â·²»½ö°üº¬ Talos µ½ Flink µÄ½×¶Î£¬¶øÊÇ´Ó×ʼµÄÊý¾ÝÊÕ¼¯½×¶ÎÒ»Ö±µ½ºó¶ËµÄ¼ÆËã´¦Àí¡£ÐèҪʵÏÖÊý¾ÝУÑé»úÖÆ£¬±ÜÃâÊý¾ÝÎÛȾ£»×ֶαä¸üºÍ¼æÈÝÐÔ¼ì²é»úÖÆ£¬ÔÚ´óÊý¾Ý³¡¾°Ï£¬Schema ±ä¸üƵ·±£¬¼æÈÝÐÔ¼ì²éºÜÓбØÒª£¬½è¼ø Kafka µÄ¾­Ñ飬ÔÚ Schema ÒýÈëÏòǰ¡¢Ïòºó»òÈ«¼æÈݼì²é»úÖÆ¡£

½èÖú Flink ÉçÇøµÄÁ¦Á¿È«ÃæÍƽø Flink ÔÚСÃ×µÄÂ䵨£¬Ò»·½Ãæ Streaming ʵʱ¼ÆËãµÄ×÷ÒµÖð½¥´Ó Spark¡¢Storm Ç¨ÒÆµ½ Flink£¬±£Ö¤Ô­±¾µÄÑÓ³ÙºÍ×ÊÔ´½ÚÊ¡£¬Ä¿Ç°Ð¡Ã×ÒѾ­ÔËÐÐÁ˳¬¹ý 200 ¸ö Flink ×÷Òµ£»ÁíÒ»·½ÃæÆÚÍûÓà Flink ¸ÄÔì Sink µÄÁ÷³Ì£¬ÌáÉýÔËÐÐЧÂʵÄͬʱ£¬Ö§³Ö ETL£¬ÔÚ´Ë»ù´¡ÉÏ´óÁ¦Íƽø Streaming SQL£»

ʵÏÖ Streaming ²úÆ·»¯£¬ÒýÈë Streaming Job ºÍ Streaming SQL µÄƽ̨»¯¹ÜÀí£»

»ùÓÚ Flink SQL ¸ÄÔì Talos Sink£¬Ö§³ÖÒµÎñÂß¼­¶¨ÖÆ»¯

ÏÂͼÊÇ Streaming Platform 3.0 °æ±¾µÄ¼Ü¹¹Í¼£¬Óë 2.0 °æ±¾µÄ¼Ü¹¹Éè¼ÆÀàËÆ£¬Ö»ÊDZí´ïµÄ½Ç¶È²»Í¬¡£¾ßÌå°üº¬ÒÔϼ¸¸öÄ£¿é£º

³éÏó Table£º¸Ã°æ±¾Öи÷Öִ洢ϵͳÈç MySQL ºÍ Hive µÈ¶¼»á³éÏó³É Table£¬Îª SQL »¯×ö×¼±¸¡£

Job ¹ÜÀí£ºÌṩ Streaming ×÷ÒµµÄ¹ÜÀíÖ§³Ö£¬°üÀ¨¶à°æ±¾Ö§³Ö¡¢ÅäÖÃÓëJar·ÖÀë¡¢±àÒ벿ÊðºÍ×÷ҵ״̬¹ÜÀíµÈ³£¼ûµÄ¹¦ÄÜ¡£

SQL ¹ÜÀí£ºSQL ×îÖÕҪת»»ÎªÒ»¸ö Data Stream ×÷Òµ£¬¸Ã²¿·Ö¹¦ÄÜÖ÷ÒªÓÐ Web IDE Ö§³Ö¡¢Schema ̽²é¡¢UDF/ά±í Join¡¢SQL ±àÒë¡¢×Ô¶¯¹¹½¨ DDL ºÍ SQL ´æ´¢µÈ¡£

Talos Sink£º¸ÃÄ£¿é»ùÓÚ SQL ¹ÜÀí¶Ô 2.0 °æ±¾µÄ Sink ÖØ¹¹£¬°üº¬µÄ¹¦ÄÜÖ÷ÒªÓÐÒ»¼ü½¨±í¡¢Sink ¸ñʽ×Ô¶¯¸üС¢×Ö¶ÎÓ³Éä¡¢×÷ÒµºÏ²¢¡¢¼òµ¥ SQL ºÍÅäÖùÜÀíµÈ¡£Ç°ÃæÌáµ½µÄ³¡¾°ÖУ¬»ùÓÚ Spark Streaming ½« Message ´Ó Talos ¶ÁÈ¡³öÀ´£¬²¢Ô­·â²»¶¯µØ×ªµ½ HDFS ÖÐ×öÀëÏßÊý²ÖµÄ·ÖÎö£¬´Ëʱ¿ÉÒÔÖ±½ÓÓà SQL ±í´ïºÜ·½±ãµØÊµÏÖ¡£Î´À´Ï£ÍûʵÏÖ¸ÃÄ£¿éÓëСÃ×ÄÚ²¿µÄÆäËûϵͳÈç ElasticSearch ºÍ Kudu µÈ½øÐÐÉî¶ÈÕûºÏ£¬¾ßÌåµÄ³¡¾°ÊǼÙÉèÒÑÓÐ Talos Schema£¬»ùÓÚ Talos Topic Schema ×Ô¶¯°ïÖúÓû§´´½¨ Kudu ±í¡£

ƽ̨»¯£ºÎªÓû§ÌṩһÌ廯¡¢Æ½Ì¨»¯µÄ½â¾ö·½°¸£¬°üÀ¨µ÷ÊÔ¿ª·¢¡¢¼à¿Ø±¨¾¯ºÍÔËάµÈ¡£

Job ¹ÜÀí

Job ¹ÜÀíÌṩ Job È«ÉúÃüÖÜÆÚ¹ÜÀí¡¢Job ȨÏÞ¹ÜÀíºÍ Job ±êÇ©¹ÜÀíµÈ¹¦ÄÜ£»Ö§³ÖJob ÔËÐÐÀúʷչʾ£¬·½±ãÓû§×·ËÝ£»Ö§³Ö Job ״̬ÓëÑÓ³Ù¼à¿Ø£¬¿ÉÒÔʵÏÖʧ°Ü×÷Òµ×Ô¶¯À­Æð¡£

SQL ¹ÜÀí

Ö÷Òª°üÀ¨ÒÔÏÂËĸö»·½Ú£º

½«Íⲿ±íת»»Îª SQL DDL£¬¶ÔÓ¦ Flink 1.9 Öбê×¼µÄ DDL Óï¾ä£¬Ö÷Òª°üº¬ Table Schema¡¢Table Format ºÍ Connector Properities¡£

»ùÓÚÍêÕû¶¨ÒåµÄÍⲿ SQL ±í£¬Ôö¼Ó SQL Óï¾ä£¬¼È¿ÉÒԵõ½Íê³ÉµÄ±í´ïÓû§µÄÐèÇó¡£¼´ SQL Config ±íʾÍêÕûµÄÓû§Ô¤¼Æ±í´ï£¬ÓÉ Source Table DDL¡¢Sink Table DDL ºÍ SQL DMLÓï¾ä×é³É¡£

½« SQL Config ת»»³É Job Config£¬¼´×ª»»Îª Stream Job µÄ±íÏÖÐÎʽ¡£

½« Job Config ת»»Îª JobGraph£¬ÓÃÓÚÌá½» Flink Job¡£

Íⲿ±íת»»³É SQL DDL µÄÁ÷³ÌÈçÏÂͼËùʾ¡£

Ê×Ïȸù¾ÝÍⲿ±í»ñÈ¡ Table Schema ºÍ Table Format ÐÅÏ¢£¬ºóÕßÓÃÓÚ·´½âÊý¾Ý£¬Èç¶ÔÓÚ Hive Êý¾Ý·´ÐòÁл¯£»

È»ºóÔÙºó¶ËÉú³ÉĬÈ쵀 Connector ÅäÖ㬸ÃÅäÖÃÖ÷Òª·ÖΪÈý²¿·Ö£¬¼´²»¿ÉÐ޸ĵġ¢´øÄ¬ÈÏÖµµÄÓû§¿ÉÐ޸ĵġ¢²»´øÄ¬ÈÏÖµµÄÓû§±ØÐëÅäÖõġ£

²»¿ÉÐ޸ĵÄÅäÖÃÇé¿öÊǼÙÉèÏû·ÑµÄÊÇ Talos ×é¼þ£¬ÄÇô connector.type Ò»¶¨ÊÇ talos£¬Ôò¸ÃÅäÖò»ÐèÒª¸Ä£»¶øÄ¬ÈÏÖµÊÇ´Ó Topic Í·²¿¿ªÊ¼Ïû·Ñ£¬µ«Óû§¿ÉÒÔÉèÖôÓβ²¿¿ªÊ¼Ïû·Ñ£¬ÕâÖÖÇé¿öÊôÓÚ´øÄ¬ÈÏÖµµ«ÊÇÓû§¿ÉÐ޸ĵÄÅäÖã»¶øÒ»Ð©È¨ÏÞÐÅÏ¢ÊÇÓû§±ØÐëÅäÖõġ£

Ö®ËùÒÔ×öÈý²ãÅäÖùÜÀí£¬ÊÇΪÁ˾¡¿ÉÄܼõÉÙÓû§ÅäÖõĸ´ÔÓ¶È¡£Table Schema¡¢Table Format ºÍ Connector 1 ÆäËûÅäÖÃÐÅÏ¢£¬×é³ÉÁËSQL DDL¡£½« SQL Config ·µ»Ø¸øÓû§Ö®ºó£¬¶ÔÓÚ¿ÉÐ޸ĵÄÐèÒªÓû§Ìîд£¬ÕâÑù±ã¿ÉÒÔÍê³É´ÓÍⲿ±íµ½ SQL DDL µÄת»»£¬ºìÉ«×ÖÌå±íʾµÄÊÇÓû§Ð޸ĵÄÐÅÏ¢¡£

SQL ¹ÜÀíÒýÈëÁËÒ»¸ö External Table µÄÌØÐÔ¡£¼ÙÉèÓû§ÔÚÆ½Ì¨ÉÏÑ¡ÔñÏû·Ñij¸ö Topic µÄʱºò£¬¸ÃÌØÐÔ»á×Ô¶¯µØ»ñÈ¡ÉÏÃæÌáµ½µÄ Table µÄ Schema ºÍ Format ÐÅÏ¢£¬²¢ÇÒÏÔʾȥµôÁË×¢²á Flink Table µÄÂß¼­£»»ñÈ¡ Schema ʱ£¬¸ÃÌØÐԻὫÍⲿ±í×Ö¶ÎÀàÐÍ×Ô¶¯×ª»»Îª Flink Table ×Ö¶ÎÀàÐÍ£¬²¢×Ô¶¯×¢²áΪ Flink Tab ÁË¡£Í¬Ê±½« Connector Properties ·Ö³ÉÈýÀ࣬²ÎÊý´øÄ¬ÈÏÖµ£¬Ö»ÓбØÐëÏîÒªÇóÓû§Ìîд£»ËùÓвÎÊý¾ù²ÉÓà Map<string,string> µÄÐÎʽ±í´ï£¬·Ç³£±ãÓÚºóÐø×ª»¯Îª Flink ÄÚ²¿µÄ TableDescriptor¡£

ÉÏÃæ½éÉÜÁË SQL DDL µÄ´´½¨¹ý³Ì£¬ÔÚÒѾ­´´½¨µÄ SQL DDL µÄ»ù´¡ÉÏ£¬Èç Source SQL DDL ºÍ Sink SQL DDL£¬ÒªÇóÓû§Ìîд SQL query ²¢·µ»Ø¸øºó¶Ë£¬ºó¶Ë»á¶Ô SQL ½øÐÐÑéÖ¤£¬È»ºó»áÉú³ÉÒ»¸ö SQL Config£¬¼´Ò»¸ö SQL Óï¾äµÄÍêÕû±í´ï¡£

SQL Config ת»»Îª Job Config µÄÁ÷³ÌÈçÏÂͼËùʾ¡£

Ê×ÏÈÔÚ SQL Config µÄ»ù´¡ÉÏÔö¼Ó×÷ÒµËùÐèÒªµÄ×ÊÔ´¡¢Job µÄÏà¹ØÅäÖã¨Flink µÄ state ²ÎÊýµÈ£©£»

È»ºó½« SQLConfig ±àÒë³ÉÒ»¸ö Job Descriptor£¬¼´ Job Config µÄÃèÊö£¬Èç Job µÄ Jar °üµØÖ·¡¢MainClass ºÍ MainArgs µÈ¡£

ÏÂͼչʾÁË Job Config ת»»Îª Job Graph µÄ¹ý³Ì¡£¶ÔÓÚ DDL ÖÐµÄ Schema¡¢Format ºÍ Property ÊÇºÍ Flink ÖÐµÄ Table Descriptor ÊÇÒ»Ò»¶ÔÓ¦µÄ£¬ÕâÖÖÇé¿öÏÂÖ»ÐèÒªµ÷Óà Flink µÄÏà¹ØÄÚÖýӿھͿÉÒԺܷ½±ãµØ½«ÐÅϢת»»Îª Table Descriptor£¬Èç CreateTableSource()¡¢RegistorTableSource() µÈ¡£Í¨¹ýÉÏÊö¹ý³Ì£¬DDL ±ã¿ÉÒÔ×¢²áµ½ Flink ϵͳÖÐÖ±½ÓʹÓ᣶ÔÓÚ SQL Óï¾ä£¬¿ÉÒÔÖ±½ÓʹÓà TableEnv µÄ sqlUpdate() ¿ÉÒÔÍê³Éת»»¡£

SQL Config ת»»ÎªÒ»¸ö Template Job µÄÁ÷³ÌÈçÏÂËùʾ¡£Ç°ÃæÌîдµÄ Jar °üµØÖ·¼´¸Ã Template µÄ Jar µØÖ·£¬MainClass ÊǸà Template Job¡£¼ÙÉèÒѾ­ÓÐÁË SQL DDL£¬¿ÉÒÔÖ±½Óת»»³É Table Descriptor£¬È»ºóͨ¹ý TableFactorUtil µÄ findAndCreateTableSource() ·½·¨µÃµ½Ò»¸ö Table Source£¬Table Sink µÄת»»¹ý³ÌÀàËÆ¡£Íê³ÉǰÁ½²½²Ù×÷ºó£¬×îºó½øÐÐ sqlUpdate() ²Ù×÷¡£ÕâÑù±ã¿ÉÒÔ½«Ò»¸ö SQL Job ת»»Îª×îºó¿ÉÖ´ÐÐµÄ Job Graph Ìá½»µ½¼¯ÈºÉÏÔËÐС£

Talos Sink ²ÉÓÃÁËÏÂͼËùʾµÄÈýÖÖģʽ£º

Row£ºTalos µÄÊý¾ÝÔ­·â²»¶¯µØ¹àµ½Ä¿±êϵͳÖУ¬ÕâÖÖģʽµÄºÃ´¦ÊÇÊý¾Ý¶ÁÈ¡ºÍдÈëµÄʱºòÎÞÐè½øÐÐÐòÁл¯ºÍ·´ÐòÁл¯£¬Ð§Âʽϸߣ»

ID mapping£º¼´×óÓÒÁ½±ß×ֶνøÐÐ mapping£¬name ¶ÔÓ¦ field_name£¬timestamp ¶ÔÓ¦ timestamp£¬ÆäÖÐ Region µÄ×ֶ檵ô£»

SQL£ºÍ¨¹ý SQL ±í´ïÀ´±íʾÂß¼­ÉϵĴ¦Àí¡£

δÀ´¹æ»®

СÃ×Á÷ʽƽ̨δÀ´µÄ¼Æ»®Ö÷ÒªÓÐÒÔϼ¸µã£º

ÔÚ Flink Â䵨µÄʱºò³ÖÐøÍÆ½ø Streaming Job ºÍƽ̨»¯½¨É裻

ʹÓà Flink SQL ͳһÀëÏßÊý²ÖºÍʵʱÊý²Ö£»

ÔÚ Schema µÄ»ù´¡ÉÏÊý¾ÝѪԵ·ÖÎöºÍչʾ£¬°üÀ¨Êý¾ÝÖÎÀí·½ÃæµÄÄÚÈÝ£»

³ÖÐø²ÎÓë Flink ÉçÇøµÄ½¨Éè¡£

 
   
1309 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

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

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

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
´óÊý¾Ýƽ̨ϵÄÊý¾ÝÖÎÀí
ÈçºÎÉè¼ÆÊµÊ±Êý¾Ýƽ̨£¨¼¼Êõƪ£©
´óÊý¾Ý×ʲú¹ÜÀí×ÜÌå¿ò¼Ü¸ÅÊö
Kafka¼Ü¹¹ºÍÔ­Àí
ELK¶àÖּܹ¹¼°ÓÅÁÓ
×îпγÌ
´óÊý¾Ýƽ̨´î½¨Óë¸ßÐÔÄܼÆËã
´óÊý¾Ýƽ̨¼Ü¹¹ÓëÓ¦ÓÃʵս
´óÊý¾ÝϵͳÔËά
´óÊý¾Ý·ÖÎöÓë¹ÜÀí
Python¼°Êý¾Ý·ÖÎö
³É¹¦°¸Àý
ijͨÐÅÉ豸ÆóÒµ PythonÊý¾Ý·ÖÎöÓëÍÚ¾ò
Ä³ÒøÐÐ È˹¤ÖÇÄÜ+Python+´óÊý¾Ý
±±¾© Python¼°Êý¾Ý·ÖÎö
ÉñÁúÆû³µ ´óÊý¾Ý¼¼Êõƽ̨-Hadoop
ÖйúµçÐÅ ´óÊý¾Ýʱ´úÓëÏÖ´úÆóÒµµÄÊý¾Ý»¯ÔËӪʵ¼ù