ãã®ã¬ãŒãã§æ°ããªæµããå§ãŸãããšãæåŸ
ããŠ
ÐбзПÑ
ã¢ããªã±ãŒã·ã§ã³ãè€æ°ã®ããŒã¿ ã¹ãã¢ã䜿çšãããããªãäžè¬çãªãã¿ãŒã³ã«ã€ããŠèª¬æããŸããåã¹ãã¢ã¯ãããšãã°ãæ£èŠåœ¢åŒã®ããŒã¿ (MySQL ãªã©) ãä¿åããããé«åºŠãªæ€çŽ¢æ©èœ (ElasticSearchããªã©) .)ããã£ãã·ã¥ (Memcached ãªã©) ãªã©ã éåžžãè€æ°ã®ããŒã¿ ã¹ãã¢ã䜿çšããå Žåããã®ãã¡ã® XNUMX ã€ã¯ãã©ã€ã㪠ã¹ãã¢ãšããŠæ©èœããä»ã®ããŒã¿ ã¹ãã¢ã¯æŽŸçã¹ãã¢ãšããŠæ©èœããŸãã å¯äžã®åé¡ã¯ããããã®ããŒã¿ ã¹ãã¢ãåæããæ¹æ³ã§ãã
ç§ãã¡ã¯ãäºéæžã蟌ã¿ãåæ£ãã©ã³ã¶ã¯ã·ã§ã³ãªã©ãè€æ°ã¹ãã¢ã®åæã®åé¡ã解決ããããšããããŸããŸãªãã¿ãŒã³ãæ€èšããŸããã ãã ãããããã®ã¢ãããŒãã«ã¯ãå®éã®äœ¿çšãä¿¡é Œæ§ãã¡ã³ããã³ã¹ã®ç¹ã§å€§ããªå¶éããããŸãã ããŒã¿ã®åæã«å ããŠãäžéšã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãå€éšãµãŒãã¹ãåŒã³åºããŠããŒã¿ã匷åããå¿
èŠããããŸãã
ãã«ã¿ã¯ãããã®åé¡ã解決ããããã«éçºãããŸããã ãã«ã¿ã¯æçµçã«ãããŒã¿ã®åæãšåŒ·åã®ããã®äžè²«ããã€ãã³ãé§ååã®ãã©ãããã©ãŒã ãæäŸããŸãã
æ¢åã®ãœãªã¥ãŒã·ã§ã³
ããã«ãšã³ããªãŒ
XNUMX ã€ã®ããŒã¿ ã¹ãã¢ã®åæãä¿ã€ã«ã¯ãäžæ¹ã®ã¹ãã¢ã«æžã蟌ã¿ããã®çŽåŸã«ããäžæ¹ã®ã¹ãã¢ã«æžã蟌ããã¥ã¢ã«æžã蟌ã¿ã䜿çšã§ããŸãã æåã®èšé²ã¯åè©Šè¡ã§ããè©Šè¡åæ°ã䜿ãæãããåŸã«æåã®èšé²ã倱æããå Žå㯠XNUMX çªç®ã®èšé²ãäžæ¢ã§ããŸãã ãã ããXNUMX çªç®ã®ã¹ãã¢ãžã®æžã蟌ã¿ã倱æãããšãXNUMX ã€ã®ããŒã¿ ã¹ãã¢ãåæããªããªãå¯èœæ§ããããŸãã ãã®åé¡ã¯éåžžã第 XNUMX ã®ã¹ãã¬ãŒãžãã第 XNUMX ã®ã¹ãã¬ãŒãžã«ããŒã¿ãå®æçã«å転éããããããŒã¿ã«å·®ç°ãæ€åºãããå Žåã«ã®ã¿å転éãããªã«ããªæé ãäœæããããšã§è§£æ±ºããŸãã
åé¡ç¹
å埩æé ã®å®è¡ã¯ãåå©çšã§ããªãç¹å®ã®ãžã§ãã§ãã ããã«ã埩å æé ãå®è¡ããããŸã§ãä¿ç®¡å Žæéã®ããŒã¿ã¯åæãããªããŸãŸã«ãªããŸãã XNUMX ã€ä»¥äžã®ããŒã¿ ã¹ãã¢ã䜿çšãããå Žåããœãªã¥ãŒã·ã§ã³ã¯ããè€éã«ãªããŸãã æåŸã«ã埩å æé ã«ãããå ã®ããŒã¿ ãœãŒã¹ã«è² è·ããããå¯èœæ§ããããŸãã
å€æŽãã°ããŒãã«
äžé£ã®ããŒãã«ã«å€æŽãçºçãããš (ã¬ã³ãŒãã®æ¿å ¥ãæŽæ°ãåé€ãªã©)ãå€æŽã¬ã³ãŒãã¯åããã©ã³ã¶ã¯ã·ã§ã³ã®äžéšãšããŠãã° ããŒãã«ã«è¿œå ãããŸãã å¥ã®ã¹ã¬ãããŸãã¯ããã»ã¹ã¯åžžã«ãã° ããŒãã«ã«ã€ãã³ããèŠæ±ããå¿ èŠã«å¿ã㊠XNUMX ã€ä»¥äžã®ããŒã¿ ã¹ãã¢ã«ã€ãã³ããæžã蟌ã¿ãã¬ã³ãŒãããã¹ãŠã®ã¹ãã¢ã«ãã£ãŠç¢ºèªãããåŸã«ãã° ããŒãã«ããã€ãã³ããåé€ããŸãã
åé¡ç¹
ãã®ãã¿ãŒã³ã¯ã©ã€ãã©ãªãšããŠå®è£ ããå¿ èŠããããçæ³çã«ã¯ããã䜿çšããã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒããå€æŽããã«å®è£ ããå¿ èŠããããŸãã å€èšèªç°å¢ã§ã¯ããã®ãããªã©ã€ãã©ãªã®å®è£ ã¯å¿ èŠãªèšèªã§ååšããå¿ èŠããããŸãããèšèªéã§æ©èœãšåäœã®äžè²«æ§ã確ä¿ããããšã¯éåžžã«å°é£ã§ãã
ãã 1 ã€ã®åé¡ã¯ãMySQL ãªã©ã®ãã©ã³ã¶ã¯ã·ã§ã³ ã¹ããŒãå€æŽããµããŒãããŠããªãã·ã¹ãã ã§ã¹ããŒãå€æŽãååŸããéã«ãããŸã [2][XNUMX]ã ãããã£ãŠãå€æŽ (ã¹ããŒãå€æŽãªã©) ãè¡ã£ãŠããããå€æŽãã° ããŒãã«ã«ãã©ã³ã¶ã¯ã·ã§ã³çã«èšé²ãããšãããã¿ãŒã³ã¯ãåžžã«æ©èœãããšã¯éããŸããã
åæ£ãã©ã³ã¶ã¯ã·ã§ã³
åæ£ãã©ã³ã¶ã¯ã·ã§ã³ã䜿çšãããšããã©ã³ã¶ã¯ã·ã§ã³ãè€æ°ã®ç°çš®ããŒã¿ ã¹ãã¢ã«åå²ããŠã䜿çšããããã¹ãŠã®ããŒã¿ ã¹ãã¢ã«æäœãã³ãããããããã©ã®ããŒã¿ ã¹ãã¢ã«ãã³ãããããªãããã«ããããšãã§ããŸãã
åé¡ç¹
åæ£ãã©ã³ã¶ã¯ã·ã§ã³ã¯ãç°çš®ããŒã¿ ã¹ãã¢ã«ãšã£ãŠéåžžã«å€§ããªåé¡ã§ãã ãã®æ§è³ªäžãé¢é£ããã·ã¹ãã ã®æå°å ¬åæ°ã«ã®ã¿äŸåã§ããŸãã ããšãã°ãæºå段éã§ã¢ããªã±ãŒã·ã§ã³ ããã»ã¹ã倱æããå ŽåãXA ãã©ã³ã¶ã¯ã·ã§ã³ã¯å®è¡ããããã¯ããŸãã ããã«ãXA ã¯ãããããã¯æ€åºãæäŸããããªããã£ãã¹ãã£ãã¯åæå®è¡å¶åŸ¡ã¹ããŒã ããµããŒãããŸããã ããã«ãElasticSearch ãªã©ã®äžéšã®ã·ã¹ãã ã¯ãXA ãŸãã¯ãã®ä»ã®ç°çš®ãã©ã³ã¶ã¯ã·ã§ã³ ã¢ãã«ããµããŒãããŠããŸããã ãããã£ãŠãããŸããŸãªããŒã¿ ã¹ãã¬ãŒãž ãã¯ãããžã§æžã蟌ã¿ã¢ãããã¯æ§ã確ä¿ããããšã¯ãã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠäŸç¶ãšããŠéåžžã«å°é£ãªèª²é¡ã§ã [3]ã
ãã«ã¿
Delta ã¯ãæ¢åã®ããŒã¿åæãœãªã¥ãŒã·ã§ã³ã®å¶éã«å¯ŸåŠããããã«èšèšãããŠããããªã³ã¶ãã©ã€ã®ããŒã¿åŒ·åãå¯èœã«ããŸãã ç§ãã¡ã®ç®æšã¯ãã¢ããªã±ãŒã·ã§ã³éçºè ãããããã¹ãŠã®è€éããæœè±¡åããŠãããžãã¹æ©èœã®å®è£ ã«å®å šã«éäžã§ããããã«ããããšã§ããã 次ã«ãNetflixã®Deltaã®å®éã®äœ¿çšäŸã§ãããæ ç»æ€çŽ¢ãã«ã€ããŠèª¬æããŸãã
Netflix ã¯ãã€ã¯ããµãŒãã¹ ã¢ãŒããã¯ãã£ãåºã䜿çšããŠãããåãã€ã¯ããµãŒãã¹ã¯éåžž XNUMX çš®é¡ã®ããŒã¿ãæäŸããŸãã æ ç»ã«é¢ããåºæ¬æ
å ±ã¯ Movie Service ãšåŒã°ãããã€ã¯ããµãŒãã¹ã«å«ãŸããŠããããããã¥ãŒãµãŒã俳åªããã³ããŒãªã©ã«é¢ããæ
å ±ãªã©ã®é¢é£ããŒã¿ã¯ãä»ã®ããã€ãã®ãã€ã¯ããµãŒãã¹ (ã€ãŸããDeal ServiceãTalent ServiceãVendor Service) ã«ãã£ãŠç®¡çãããŸãã
Netflix ã¹ã¿ãžãªã®ããžãã¹ ãŠãŒã¶ãŒã¯ãå€ãã®å ŽåãããŸããŸãªæ ç»åºæºã察象ã«æ€çŽ¢ããå¿
èŠãããããããã¹ãŠã®æ ç»é¢é£ããŒã¿ãæ€çŽ¢ã§ããããšãéåžžã«éèŠã§ãã
Delta ãå°å ¥ãããåã¯ãæ ç»æ€çŽ¢ããŒã ã¯æ ç»ããŒã¿ã«ã€ã³ããã¯ã¹ãä»ããåã«ãè€æ°ã®ãã€ã¯ããµãŒãã¹ããããŒã¿ãååŸããå¿ èŠããããŸããã ããã«ãããŒã ã¯ããŸã£ããå€æŽããªãå Žåã§ããä»ã®ãã€ã¯ããµãŒãã¹ã«å€æŽããªã¯ãšã¹ãããããšã§æ€çŽ¢ã€ã³ããã¯ã¹ãå®æçã«æŽæ°ããã·ã¹ãã ãéçºããå¿ èŠããããŸããã ãã®ã·ã¹ãã ã¯ããã«è€éã«ãªããä¿å®ãå°é£ã«ãªããŸããã
å³ 1. ãã«ã¿ãžã®ããŒãªã³ã° ã·ã¹ãã
ãã«ã¿ã®äœ¿çšåŸãã·ã¹ãã ã¯æ¬¡ã®å³ã«ç€ºãããã«ã€ãã³ãé§ååã·ã¹ãã ã«ç°¡çŽ åãããŸããã CDC (Change-Data-Capture) ã€ãã³ãã¯ãDelta-Connector ã䜿çšã㊠Keystone Kafka ãããã¯ã«éä¿¡ãããŸãã Delta Stream Processing Framework (Flink ããŒã¹) ã䜿çšããŠæ§ç¯ããã Delta ã¢ããªã±ãŒã·ã§ã³ã¯ããããã¯ãã CDC ã€ãã³ããåä¿¡ããä»ã®ãã€ã¯ããµãŒãã¹ãåŒã³åºããŠã€ãã³ãã匷åããæåŸã«åŒ·åãããããŒã¿ã Elasticsearch ã®æ€çŽ¢ã€ã³ããã¯ã¹ã«æž¡ããŸãã ããã»ã¹å
šäœã¯ã»ãŒãªã¢ã«ã¿ã€ã ã§è¡ãããŸããã€ãŸããå€æŽãããŒã¿ ãŠã§ã¢ããŠã¹ã«ã³ãããããããšããã«ãæ€çŽ¢ã€ã³ããã¯ã¹ãæŽæ°ãããŸãã
å³ 2. Delta ã䜿çšããããŒã¿ ãã€ãã©ã€ã³
次ã®ã»ã¯ã·ã§ã³ã§ã¯ãã¹ãã¬ãŒãžã«æ¥ç¶ããCDC ã€ãã³ãã Kafka ãããã¯ã«ã«ãŒãã£ã³ã°ãããªã¢ã«ã¿ã€ã ããŒã¿éä¿¡ã€ã³ãã©ã¹ãã©ã¯ãã£ã§ãããã©ã³ã¹ããŒã局㫠CDC ã€ãã³ããçºè¡ãããã«ã¿ã³ãã¯ã¿ã®åäœã«ã€ããŠèª¬æããŸãã ãããŠæåŸã«ãã¢ããªã±ãŒã·ã§ã³éçºè
ãããŒã¿åŠçãšãšã³ãªããã¡ã³ã ããžãã¯ã«äœ¿çšã§ãããã«ã¿ ã¹ããªãŒã åŠçãã¬ãŒã ã¯ãŒã¯ã«ã€ããŠèª¬æããŸãã
CDC (å€æŽããŒã¿ãã£ããã£)
ç§ãã¡ã¯ãã³ããããããå€æŽãããŒã¿ ã¹ãã¢ãããªã¢ã«ã¿ã€ã ã§ãã£ããã£ããã¹ããªãŒã ã«æžã蟌ãããšãã§ãã Delta-Connector ãšåŒã°ãã CDC ãµãŒãã¹ãéçºããŸããã ãªã¢ã«ã¿ã€ã ã®å€æŽã¯ããã©ã³ã¶ã¯ã·ã§ã³ ãã°ãšã¹ãã¬ãŒãž ãã³ãããååŸãããŸãã éåžžããã©ã³ã¶ã¯ã·ã§ã³ ãã°ã«ã¯å€æŽå±¥æŽå šäœãä¿åãããªãããããã³ãã䜿çšãããŸãã éåžžãå€æŽã¯ãã«ã¿ ã€ãã³ããšããŠã·ãªã¢ã«åããããããåä¿¡è ã¯å€æŽãã©ãããæ¥ãã®ããå¿é ããå¿ èŠã¯ãããŸããã
ãã«ã¿ã³ãã¯ã¿ã¯ã次ã®ãããªããã€ãã®è¿œå æ©èœããµããŒãããŠããŸãã
- Kafka ãè¶ ããã«ã¹ã¿ã åºåããŒã¿ãæžã蟌ãæ©èœã
- ãã¹ãŠã®ããŒãã«ãç¹å®ã®ããŒãã«ããŸãã¯ç¹å®ã®äž»ããŒã«å¯ŸããŠãã€ã§ãæåãã³ããã¢ã¯ãã£ãåããæ©èœã
- ãã³ãã¯åå²ããŠååŸã§ããããã倱æããŠãæåããããçŽãå¿ èŠã¯ãããŸããã
- ããŒãã«ã«ããã¯ãèšå®ããå¿ èŠã¯ãããŸãããããã¯ãããŒã¿ããŒã¹ã®æžã蟌ã¿ãã©ãã£ãã¯ããµãŒãã¹ã«ãã£ãŠãããã¯ãããªãããã«ããããã«éåžžã«éèŠã§ãã
- AWS ã¢ãã€ã©ããªãã£ãŒãŸãŒã³ã®åé·ã€ã³ã¹ã¿ã³ã¹ã«ããé«å¯çšæ§ã
çŸåšãAWS RDS ãš Aurora ã§ã®ãããã€ã¡ã³ããå«ããMySQL ãš Postgres ããµããŒãããŠããŸãã Cassandra (ãã«ããã¹ã¿ãŒ) ããµããŒãããŠããŸãã Delta-Connector ã®è©³çŽ°ã«ã€ããŠã¯ããã¡ããã芧ãã ããã
Kafka ãšãã©ã³ã¹ããŒãå±€
ãã«ã¿èªç©ºã®ã€ãã³ã ãã©ã³ã¹ããŒãå±€ã¯ããã©ãããã©ãŒã ã®ã¡ãã»ãŒãžã³ã° ãµãŒãã¹äžã«æ§ç¯ãããŠããŸã
æŽå²çã«ãNetflix ãžã®æçš¿ã¯ãåç¶æéã§ã¯ãªãã¢ã¯ã»ã·ããªãã£ãéèŠããŠæé©åãããŠããŸãã (äžèšãåç
§)ã
ãã«ã¿ã§ã¯ã掟çã¹ãã¢ãžã® CDC ã€ãã³ãã®é ä¿¡ã確å®ã«ããããã«ããã匷åãªèä¹ æ§ä¿èšŒãæ±ããŠããŸããã ãã®ç®çã®ããã«ãç§ãã¡ã¯ç¹å¥ã«èšèšããã Kafka ã¯ã©ã¹ã¿ãŒããã¡ãŒã¹ãã¯ã©ã¹ã®ãªããžã§ã¯ããšããŠææ¡ããŸããã 以äžã®è¡šã§ããã€ãã®ãããŒã«ãŒèšå®ã確èªã§ããŸãã
Keystone Kafka ã¯ã©ã¹ã¿ãŒã§ã¯ã æ±ãããªãŒããŒéžæ éåžžãçºè¡è
ã®ã¢ã¯ã»ã·ããªãã£ã確ä¿ããããã«å«ãŸããŠããŸãã åæãããŠããªãã¬ããªã«ããªãŒããŒãšããŠéžæããããšãã¡ãã»ãŒãžã倱ãããå¯èœæ§ããããŸãã æ°ããé«å¯çšæ§ Kafka ã¯ã©ã¹ã¿ãŒã®å Žåããªãã·ã§ã³ æ±ãããªãŒããŒéžæ ã¡ãã»ãŒãžã®æ倱ãé²ãããã«ãªãã«ãªã£ãŠããŸãã
ãã¡ãå¢ããŸãã è€è£œä¿æ° 2ãã3ãŸã§ããã㊠æå°ã®åæã¬ããªã« 1 ãã 2ããã®ã¯ã©ã¹ã¿ãŒã«æžã蟌ããããªãã·ã£ãŒã¯ãä»ã®ãã¹ãŠã®ã¬ããªã«ããã®ç¢ºèªå¿çãå¿ èŠãšãã2 ã€ã®ã¬ããªã«ã®ãã¡ 3 ã€ããããªãã·ã£ãŒããéä¿¡ãããææ°ã®ã¡ãã»ãŒãžãæã€ããã«ããŸãã
ãããŒã«ãŒ ã€ã³ã¹ã¿ã³ã¹ãçµäºãããšãå€ãã€ã³ã¹ã¿ã³ã¹ãæ°ããã€ã³ã¹ã¿ã³ã¹ã«çœ®ãæããããŸãã ãã ããæ°ãããããŒã«ãŒã¯éåæã¬ããªã«ã«è¿œãã€ãå¿ èŠããããããã«ã¯æ°æéãããå ŽåããããŸãã ãã®ã·ããªãªã®åŸ©æ§æéãççž®ããããã«ãããŒã«ã« ãããŒã«ãŒ ãã£ã¹ã¯ã®ä»£ããã«ããã㯠ããŒã¿ ã¹ãã¬ãŒãž (Amazon Elastic Block Store) ã®äœ¿çšãéå§ããŸããã æ°ããã€ã³ã¹ã¿ã³ã¹ãçµäºãããããŒã«ãŒ ã€ã³ã¹ã¿ã³ã¹ã眮ãæãããšãçµäºããã€ã³ã¹ã¿ã³ã¹ãæã£ãŠãã EBS ããªã¥ãŒã ãæ¥ç¶ããæ°ããã¡ãã»ãŒãžã®åä¿¡ãéå§ããŸãã ãã®ããã»ã¹ã«ãããæ°ããã€ã³ã¹ã¿ã³ã¹ã空ã®ç¶æ ããã¬ããªã±ãŒãããå¿ èŠããªããªããããããã¯ãã°ã®ã¯ãªã¢æéãæ°æéããæ°åã«ççž®ãããŸãã å šäœãšããŠãã¹ãã¬ãŒãžãšãããŒã«ãŒã®ã©ã€ããµã€ã¯ã«ãåããããšã§ããããŒã«ãŒã®åãæ¿ãã«ãã圱é¿ãå€§å¹ ã«è»œæžãããŸãã
ããŒã¿é
ä¿¡ã®ä¿èšŒãããã«é«ããããã«ã次ã䜿çšããŸããã
ã¹ããªãŒã åŠçãã¬ãŒã ã¯ãŒã¯
ãã«ã¿ã®åŠçã¬ã€ã€ãŒã¯ãNetflix SPaaS ãã©ãããã©ãŒã äžã«æ§ç¯ãããŠãããApache Flink ãš Netflix ãšã³ã·ã¹ãã ãšã®çµ±åãæäŸããŸãã ãã®ãã©ãããã©ãŒã ã¯ãTitus ã³ã³ãã管çãã©ãããã©ãŒã äžã§ Flink ãžã§ãã®å±éãš Flink ã¯ã©ã¹ã¿ãŒã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã管çãããŠãŒã¶ãŒ ã€ã³ã¿ãŒãã§ã€ã¹ãæäŸããŸãã ãã®ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãžã§ãæ§æã管çãããŠãŒã¶ãŒã Flink ãžã§ããåã³ã³ãã€ã«ããããšãªãæ§æãåçã«å€æŽã§ããããã«ããŸãã
ãã«ã¿ã¯ãFlink ããã³ SPaaS ã«åºã¥ããã¹ããªãŒã åŠçãã¬ãŒã ã¯ãŒã¯ãæäŸããŸãã 泚éããŒã¹ã® æè¡çãªè©³çŽ°ãæœè±¡åãã DSL (Domain Specific Language)ã ããšãã°ãå€éšãµãŒãã¹ãåŒã³åºããŠã€ãã³ãã匷åããã¹ããããå®çŸ©ããã«ã¯ããŠãŒã¶ãŒã¯æ¬¡ã® DSL ãèšè¿°ããå¿ èŠããããŸãããã¬ãŒã ã¯ãŒã¯ã¯ããã«åºã¥ããŠã¢ãã«ãäœæããFlink ã«ãã£ãŠå®è¡ãããŸãã
å³ 3. ãã«ã¿ã«ããã DSL ã®ãšã³ãªããã¡ã³ãã®äŸ
ãã®åŠçãã¬ãŒã ã¯ãŒã¯ã¯ãåŠç¿æ²ç·ãççž®ããã ãã§ãªããäžè¬çãªéçšäžã®åé¡ã解決ããããã®éè€æé€ãå³åŒåãæè»æ§ãšåŸ©å åãªã©ã®äžè¬çãªã¹ããªãŒã åŠçæ©èœãæäŸããŸãã
ãã«ã¿ ã¹ããªãŒã åŠçãã¬ãŒã ã¯ãŒã¯ã¯ãDSL & API ã¢ãžã¥ãŒã«ãšã©ã³ã¿ã€ã ã¢ãžã¥ãŒã«ãšãã XNUMX ã€ã®äž»èŠãªã¢ãžã¥ãŒã«ã§æ§æãããŠããŸãã DSL & API ã¢ãžã¥ãŒã«ã¯ããŠãŒã¶ãŒãç¬èªã®åŠçããžã㯠(ãã£ã«ã¿ãªã³ã°ãå€æãªã©) ãäœæã§ããããã«ãDSL ããã³ UDF (ãŠãŒã¶ãŒå®çŸ©é¢æ°) API ãæäŸããŸãã ã©ã³ã¿ã€ã ã¢ãžã¥ãŒã«ã¯ãDAG ã¢ãã«ã®åŠçã¹ãããã®å éšè¡šçŸãæ§ç¯ãã DSL ããŒãµãŒã®å®è£ ãæäŸããŸãã å®è¡ã³ã³ããŒãã³ãã¯ãDAG ã¢ãã«ã解éããŠå®éã® Flink ã¹ããŒãã¡ã³ããåæåããæçµçã« Flink ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããŸãã ãã¬ãŒã ã¯ãŒã¯ã®ã¢ãŒããã¯ãã£ã次ã®å³ã«ç€ºããŸãã
å³ 4. ãã«ã¿ ã¹ããªãŒã åŠçãã¬ãŒã ã¯ãŒã¯ã®ã¢ãŒããã¯ãã£
ãã®ã¢ãããŒãã«ã¯ããã€ãã®å©ç¹ããããŸãã
- ãŠãŒã¶ãŒã¯ãFlink ã SPaaS æ§é ã®è©³çŽ°ãæ·±ãæãäžããããšãªããããžãã¹ ããžãã¯ã«éäžã§ããŸãã
- æé©åã¯ãŠãŒã¶ãŒã«å¯ŸããŠééçãªæ¹æ³ã§å®è¡ã§ãããŠãŒã¶ãŒ ã³ãŒã (UDF) ãå€æŽããããšãªããšã©ãŒãä¿®æ£ã§ããŸãã
- ãã«ã¿ ã¢ããªã±ãŒã·ã§ã³ã®ãšã¯ã¹ããªãšã³ã¹ã¯ããã®ãã©ãããã©ãŒã ãããã«äœ¿ããæè»æ§ãšåŸ©å åãæäŸããã¢ã©ãŒãã«äœ¿çšã§ããããŸããŸãªè©³çŽ°ãªã¡ããªã¯ã¹ãåéããããããŠãŒã¶ãŒã«ãšã£ãŠç°¡çŽ åãããŠããŸãã
çç£çšé
Delta 㯠XNUMX 幎以äžã«ããã£ãŠéçšãéå§ããŠãããå€ãã® Netflix Studio ã¢ããªã±ãŒã·ã§ã³ã§éèŠãªåœ¹å²ãæãããŠããŸãã 圌女ã¯ãããŒã ãæ€çŽ¢ã€ã³ããã¯ã¹äœæãããŒã¿ ã¹ãã¬ãŒãžãã€ãã³ãé§ååã¯ãŒã¯ãããŒãªã©ã®ãŠãŒã¹ã±ãŒã¹ãå®è£ ããã®ãæ¯æŽããŸããã 以äžã¯ãDelta ãã©ãããã©ãŒã ã®é«ã¬ãã«ã®ã¢ãŒããã¯ãã£ã®æŠèŠã§ãã
å³ 5. Delta ã®é«ã¬ãã«ã®ã¢ãŒããã¯ãã£ã
æè¬
Netflix ã§ãã«ã¿ã®äœæãšéçºã«æºãã£ã次ã®æ¹ã ã«æè¬ããŸã: Allen WangãCharles ZhaoãJaebin YoonãJosh SnyderãKasturi ChatterjeeãMark ChoãOlof JohanssonãPiyush GoyalãPrashanth RamdasãRaghuram Onti SrinivasanãSandeep GuptaãSteven WuãTharanga GamaethigeãYun WangãZhenzhong Xuã
ãœãŒã¹
dev.mysql.com/doc/refman/5.7/en/implicit-commit.html dev.mysql.com/doc/refman/5.7/en/cannot-roll-back.html - Martin KleppmannãAlastair R. BeresfordãBoerge Svingen: ãªã³ã©ã€ã³ ã€ãã³ãåŠçã å
±éã ACM 62(5): 43â49 (2019)ã åäºïŒ
doi.org/10.1145/3312527
åºæïŒ habr.com