æ¬èšäºã¯ãAWS ã® Worldwide Public Sector ã«ãããããŒãããŒãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã§ãã Nicholas Tunney ã«ãã£ãŠäœæããããã®ã®æ¥æ¬èªçã§ããåæã¯ ãã¡ã ããã確èªããã ããŸãã 2024 幎 10 æ 17 æ¥: Amazon Kinesis Data Analytics for SQL ã®æäŸçµäºãçºè¡šãããŸããã詳现㯠AWS News Blog ãã芧ãã ããã 2024 幎 2 æ 9 æ¥: Amazon Kinesis Data Firehose 㯠Amazon Data Firehose ã«åç§°å€æŽãããŸããã詳现㯠AWS Whatâs New post ãã芧ãã ããã 2023 幎 8 æ 30 æ¥: Amazon Kinesis Data Analytics 㯠Amazon Managed Service for Apache Flink ã«åç§°å€æŽãããŸããã詳现㯠AWS News Blog ãã芧ãã ããã ãã®èšäºã§ã¯ã Apache Flink ã®é«åºŠãªã¹ããªãŒãã³ã°æ©èœã掻çšããããã«ã Kinesis Data Analytics for SQL ã¢ããªã±ãŒã·ã§ã³ãã Amazon Managed Service for Apache Flink ãžã®ç§»è¡ã AWS ãæšå¥šããçç±ã«ã€ããŠèª¬æããŸãããŸãã Amazon Managed Service for Apache Flink Studio ã䜿çšããŠãç§»è¡ããã¢ããªã±ãŒã·ã§ã³ããããã€ããåã«åæã¢ããªã±ãŒã·ã§ã³ããã¹ãã»ãã¥ãŒãã³ã°ããæ¹æ³ã玹ä»ããŸããKinesis Data Analytics for SQL ã¢ããªã±ãŒã·ã§ã³ãå©çšãããŠããªãã客æ§ã«å¯ŸããŠãããã®èšäºã¯ããŒã¿åæã®éçšã§ééããå€ãã®ãŠãŒã¹ã±ãŒã¹ãšãAmazon Managed Service for Apache Flink ãã©ã®ããã«ç®æšéæãæ¯æŽã§ãããã«ã€ããŠãèæ¯ãšãªãæ
å ±ãæäŸããŸãã Amazon Managed Service for Apache Flink ã¯ããã«ãããŒãžãåã® Apache Flink ãµãŒãã¹ã§ããã¢ããªã±ãŒã·ã§ã³ JAR ãŸãã¯å®è¡å¯èœãã¡ã€ã«ãã¢ããããŒãããã ãã§ãAWS ãã€ã³ãã©ã¹ãã©ã¯ãã£ãš Flink ãžã§ãã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã管çããŸãããŸããApache Flink ã䜿çšããããŒãããã¯ç°å¢ã§ãã Amazon Managed Service for Apache Flink Studio ãæŽ»çšããããšã§ãããŒã¿ã¹ããªãŒã ã®ã¯ãšãªã SQL ã¯ãšãªã®éçºããŸãã¯æŠå¿µå®èšŒã¯ãŒã¯ããŒãã®éçºãè¡ãããšã容æãšããã¢ããªã±ãŒã·ã§ã³ã®æ¬çªç°å¢ãžã®å±éãæ°åã§è¡ãããšãã§ããŸãã Kinesis Data Analytics for SQL ããã Amazon Managed Service for Apache Flink ãŸã㯠Amazon Managed Service for Apache Flink Studio ã®äœ¿çšããå§ãããŸããAmazon Managed Service for Apache Flink ãš Amazon Managed Service for Apache Flink Studio ããexactly-once åŠçã»ãã³ãã£ã¯ã¹ãã€ãã³ãæéãŠã£ã³ããŠããŠãŒã¶ãŒå®çŸ©é¢æ° (UDF) ãšã«ã¹ã¿ã çµ±åã䜿çšããæ¡åŒµæ§ãåœä»€åèšèªã®ãµããŒããæ°žç¶çãªã¢ããªã±ãŒã·ã§ã³ç¶æ
ãæ°Žå¹³ã¹ã±ãŒãªã³ã°ãè€æ°ã®ããŒã¿ãœãŒã¹ã®ãµããŒããªã©ãé«åºŠãªããŒã¿ã¹ããªãŒã åŠçæ©èœãæäŸããããã§ããKinesis Data Analytics for SQL ã«ã¯ãªããããã®æ©èœã¯ãããŒã¿ã¹ããªãŒã åŠçã®æ£ç¢ºæ§ãå®å
šæ§ãäžè²«æ§ãä¿¡é Œæ§ãä¿èšŒããäžã§éèŠãªãã®ã§ãã ãœãªã¥ãŒã·ã§ã³æŠèŠ ä»åã®ãŠãŒã¹ã±ãŒã¹ã¯ãããã€ãã® AWS ãµãŒãã¹ã䜿çšããŠããµã³ãã«ã®èªåè»ã»ã³ãµãŒããŒã¿ãã¹ããªãŒãã³ã°ãåã蟌ã¿ã倿ããAmazon Managed Service for Apache Flink Studio ã䜿çšããŠãªã¢ã«ã¿ã€ã ã§åæãããšãããã®ã§ããAmazon Managed Service for Apache Flink Studio ã䜿çšãããšãWeb ããŒã¹ã®éçºç°å¢ã§ããããŒãããã¯ãäœæã§ããŸããããŒãããã¯ã䜿çšãããšãApache Flink ãæäŸããé«åºŠãªæ©èœãšçµã¿åããããã·ã³ãã«ã§ã€ã³ã¿ã©ã¯ãã£ããªéçºãšã¯ã¹ããªãšã³ã¹ãåŸãããšãã§ããŸããAmazon Managed Service for Apache Flink Studio 㯠Apache Zeppelin ãããŒãããã¯ãšããŠäœ¿çšããApache Flink ãã¹ããªãŒã åŠçãšã³ãžã³ãšããŠäœ¿çšããŸããAmazon Managed Service for Apache Flink Studio ã®ããŒãããã¯ã¯ããããã®ãã¯ãããžãŒãã·ãŒã ã¬ã¹ã«çµã¿åãããŠãããããã¹ãã«ã¬ãã«ã®éçºè
ãããŒã¿ã¹ããªãŒã ã®é«åºŠãªåæã«ã¢ã¯ã»ã¹ã§ããããã«ããŸããããŒãããã¯ã¯ããã«ããããžã§ãã³ã°ãããã¹ããªãŒãã³ã°ããŒã¿ãå³åº§ã«è¡šç€ºããã³åæããææ®µãæäŸããŸããApache Zeppelin ã¯ãStudio ããŒãããã¯ã«ä»¥äžãå«ãå®å
šãªåæããŒã«ã¹ã€ãŒããæäŸããŸãã ããŒã¿ã®å¯èŠå ãã¡ã€ã«ãžã®ããŒã¿ã®ãšã¯ã¹ããŒã ããç°¡åãªåæã®ããã®åºåãã©ãŒãããã®å¶åŸ¡ ããŒãããã¯ãã¹ã±ãŒã©ãã«ãªæ¬çªã¢ããªã±ãŒã·ã§ã³ã«å€æããæ©èœ Kinesis Data Analytics for SQL ã¢ããªã±ãŒã·ã§ã³ãšã¯ç°ãªããAmazon Managed Service for Apache Flink ã¯ä»¥äžã® SQL ã远å ã§ãµããŒãããŸãã è€æ°ã® Kinesis ããŒã¿ã¹ããªãŒã éããŸã㯠Kinesis ããŒã¿ã¹ããªãŒã ãš Amazon Managed Streaming for Apache Kafka (Amazon MSK) ãããã¯éã§ã®ã¹ããªãŒã ããŒã¿ã®çµå ããŒã¿ã¹ããªãŒã å
ã®å€æãããããŒã¿ã®ãªã¢ã«ã¿ã€ã å¯èŠå åãã¢ããªã±ãŒã·ã§ã³å
ã§ã® Python ã¹ã¯ãªãããŸã㯠Scala ããã°ã©ã ã®äœ¿çš ã¹ããªãŒãã³ã°ã¬ã€ã€ãŒã®ãªãã»ããã®å€æŽ Amazon Managed Service for Apache Flink ã®ããäžã€ã®å©ç¹ã¯ããããã€åŸã«ãœãªã¥ãŒã·ã§ã³ã®ã¹ã±ãŒã©ããªãã£ãåäžããããšã§ããéèŠã«å¿ããŠåºç€ãšãªããªãœãŒã¹ãã¹ã±ãŒã«ã§ããããã§ããKinesis Data Analytics for SQL ã¢ããªã±ãŒã·ã§ã³ãã¹ã±ãŒãªã³ã°ããããã«ã¯ããã³ãã远å ããŠã¢ããªã±ãŒã·ã§ã³ã«ããå€ãã®ãªãœãŒã¹ã䜿çšããããä¿ãå¿
èŠããããŸãã ãã®ãœãªã¥ãŒã·ã§ã³ã§ã¯ãèªåè»ã»ã³ãµãŒããŒã¿ã«ã¢ã¯ã»ã¹ããããŒã¿ã®ãšã³ãªãããè¡ããçµæã Amazon Data Firehose ã¹ããªãŒã çµç±ã§ã Amazon Simple Storage Service (Amazon S3) ããŒã¿ã¬ã€ã¯ã«é
ä¿¡ãã Amazon Managed Service for Apache Flink Studio ããŒãããã¯ãäœæããŸãããã®ãã€ãã©ã€ã³ã¯ããããªãåŠçãå¯èŠåã®ããã« Amazon OpenSearch Service ããã®ä»ã®ã¿ãŒã²ããã«ããŒã¿ãéä¿¡ããéã«ã䜿çšã§ããŸãã Kinesis Data Analytics for SQL ã¢ããªã±ãŒã·ã§ã³ vs. Amazon Managed Service for Apache Flink ãã®äŸã§ã¯ãã¹ããªãŒãã³ã°ããŒã¿ã«å¯ŸããŠä»¥äžã®ã¢ã¯ã·ã§ã³ãå®è¡ããŸãã Amazon Kinesis Data Streams ããŒã¿ã¹ããªãŒã ã«æ¥ç¶ããã ã¹ããªãŒã ããŒã¿ã衚瀺ããã ããŒã¿ã倿ããã³å
å®ãããã Python ã§ããŒã¿ãæäœããã ããŒã¿ã Firehose ã¹ããªãŒã ã«åã¹ããªãŒãã³ã°ããã Kinesis Data Analytics for SQL ã¢ããªã±ãŒã·ã§ã³ãš Amazon Managed Service for Apache Flink ãæ¯èŒããããã«ããŸã Kinesis Data Analytics for SQL ã¢ããªã±ãŒã·ã§ã³ãã©ã®ããã«æ©èœãããã説æããŸãããã Kinesis Data Analytics for SQL ã¢ããªã±ãŒã·ã§ã³ã®æ ¹å¹¹ã«ã¯ãã¢ããªã±ãŒã·ã§ã³å
ã¹ããªãŒã ã®æŠå¿µããããŸããã¢ããªã±ãŒã·ã§ã³å
ã¹ããªãŒã ã¯ãã¹ããªãŒãã³ã°ããŒã¿ãä¿æããããŒã¿ã«å¯ŸããŠã¢ã¯ã·ã§ã³ãå®è¡ã§ããããŒãã«ãšèããããšãã§ããŸããã¢ããªã±ãŒã·ã§ã³å
ã¹ããªãŒã ã¯ãKinesis Data Streams ãªã©ã®ã¹ããªãŒãã³ã°ãœãŒã¹ã«ãããã³ã°ãããŸããã¢ããªã±ãŒã·ã§ã³å
ã¹ããªãŒã ã«ããŒã¿ãåã蟌ãã«ã¯ããŸã Kinesis Data Analytics for SQL ã¢ããªã±ãŒã·ã§ã³ã®ç®¡çã³ã³ãœãŒã«ã§ãœãŒã¹ãã»ããã¢ããããŸããæ¬¡ã«ããœãŒã¹ã¹ããªãŒã ããããŒã¿ãèªã¿åããããŒãã«ã«é
眮ãããã³ããäœæããŸãããã³ãã¯ãšãªã¯ç¶ç¶çã«å®è¡ããããœãŒã¹ããŒã¿ãã¢ããªã±ãŒã·ã§ã³å
ã¹ããªãŒã ã«äŸçµŠããŸããè€æ°ã®ãœãŒã¹ããè€æ°ã®ãã³ããäœæããŠãã¢ããªã±ãŒã·ã§ã³å
ã¹ããªãŒã ã«ããŒã¿ãäŸçµŠã§ããŸãããã®åŸãã¢ããªã±ãŒã·ã§ã³å
ã¹ããªãŒã ã«å¯ŸããŠã¯ãšãªãå®è¡ãããçµæãè§£éããããããã«åŠçãä¿åã®ããã«ä»ã®å®å
ã«éä¿¡ãããã§ããŸãã 以äžã® SQL ã¯ãã¢ããªã±ãŒã·ã§ã³å
ã¹ããªãŒã ãšãã³ãã®ã»ããã¢ããã瀺ããŠããŸãã CREATE OR REPLACE STREAM "TEMPSTREAM" ( "column1" BIGINT NOT NULL, "column2" INTEGER, "column3" VARCHAR(64)); CREATE OR REPLACE PUMP "SAMPLEPUMP" AS INSERT INTO "TEMPSTREAM" ("column1", "column2", "column3") SELECT STREAM inputcolumn1, inputcolumn2, inputcolumn3 FROM "INPUTSTREAM"; ã¢ããªã±ãŒã·ã§ã³å
ã¹ããªãŒã ããããŒã¿ãèªã¿åãã«ã¯ãSQL SELECT ã¯ãšãªã䜿çšããŸãã SELECT * FROM "TEMPSTREAM" Amazon Managed Service for Apache Flink Studio ã§åæ§ã®ã»ããã¢ãããè¡ãå Žåãåºç€ãšãªã Apache Flink ç°å¢ã䜿çšããŠã¹ããªãŒãã³ã°ãœãŒã¹ã«æ¥ç¶ããã³ãã¯ã¿ã䜿çšã㊠1 ã€ã®ã¯ãšãªã§ããŒã¿ã¹ããªãŒã ãäœæããŸãã以äžã®äŸã¯ã以åãšåããœãŒã¹ã«æ¥ç¶ããŠããŸãããApache Flink ã䜿çšããŠããŸãã CREATE TABLE `MY_TABLE` ( "column1" BIGINT NOT NULL, "column2" INTEGER, "column3" VARCHAR(64) ) WITH ( 'connector' = 'kinesis', 'stream' = sample-kinesis-stream', 'aws.region' = 'aws-kinesis-region', 'scan.stream.initpos' = 'LATEST', 'format' = 'json' ); MY_TABLE ã¯ããµã³ãã«ã® Kinesis Data Streams ããããŒã¿ãç¶ç¶çã«åä¿¡ããããŒã¿ã¹ããªãŒã ã§ããSQL SELECT ã¯ãšãªã䜿çšããŠåãåãããå¯èœã§ãã SELECT column1, column2, column3 FROM MY_TABLE; Kinesis Data Analytics for SQL ã¢ããªã±ãŒã·ã§ã³ã¯ã¹ããªãŒãã³ã°ããŒã¿äžã§ã®æäœãå¯èœã«ããæ¡åŒµæ©èœãæã€ SQL:2008 æšæºã®ãµãã»ãã ã䜿çšããŠããŸããã Apache Flink ã® SQL ãµããŒã 㯠SQL æšæºãå®è£
ãã Apache Calcite ãåºã«ããŠããŸãã ãŸããAmazon Managed Service for Apache Flink Studio ãåãããŒãããã¯å
ã§ã SQL ã®ä»ã« PyFlink ãš Scala ã®å®è¡ããµããŒãããŠããããšãéèŠãªãã€ã³ãã§ããããã«ãããSQL ã ãã§ã¯äžå¯èœãªãããã°ã©ãã³ã°ã«ããè€éãªã¹ããªãŒãã³ã°ããŒã¿åŠçãè¡ãããšãã§ããŸãã åææ¡ä»¶ ãã®æŒç¿ã§ã¯ãããŸããŸãª AWS ãªãœãŒã¹ãã»ããã¢ããããåæã¯ãšãªãå®è¡ããŸããç§»è¡ã®äœæ¥ãé²ããã«ã¯ã管çè
ã¢ã¯ã»ã¹æš©ãæã€ AWS ã¢ã«ãŠã³ããå¿
èŠã§ãããŸã 管çè
ã¢ã¯ã»ã¹æš©ãæã€ AWS ã¢ã«ãŠã³ãããæã¡ã§ãªãå Žåã¯ã äœæ ããŠãã以éã®äœæ¥ãé²ããŠãã ããããã®èšäºã§èª¬æãããµãŒãã¹ã¯ãAWS ã¢ã«ãŠã³ãã«èª²éãããå¯èœæ§ããããŸããäžèŠãªèª²éã忢ããããã«ããã®èšäºã®æåŸã«ããã¯ãªãŒã³ã¢ããæé ã«åŸã£ãŠãã ããã ã¹ããªãŒãã³ã°ããŒã¿ã®æ§æ ã¹ããªãŒãã³ã°ã®é åã«ãããå
žåçãªã¿ã¹ã¯ã¯ãIoT ã»ã³ãµãŒããã®ããŒã¿ã®ååŸã倿ããšã³ãªããã§ããæ¬æŒç¿ã§ã¯ããªã¢ã«ã¿ã€ã ã®ã»ã³ãµãŒããŒã¿ãçæããããã«ã AWS IoT Device Simulator ã䜿çšããŸããã·ãã¥ã¬ãŒã¿ã¯ AWS ã¢ã«ãŠã³ãå
ã§å®è¡ãããWeb ã€ã³ã¿ãŒãã§ã€ã¹ãæäŸããŸãããŠãŒã¶ãŒã¯ããŠãŒã¶ãŒå®çŸ©ã®ãã³ãã¬ãŒãããä»®æ³çã«æ¥ç¶ãããããã€ã¹ã®ããªãŒããèµ·åããããããã·ãã¥ã¬ãŒãããŠå®æçã« AWS IoT Core ã«ããŒã¿ãé
ä¿¡ã§ããŸããæ¬æŒç¿çšã®ãµã³ãã«ããŒã¿ãçæããããã®ä»®æ³ããã€ã¹ããªãŒããæ§ç¯ã§ãããšããããšã§ãã 以äžã® Amazon CloudFormation ãã³ãã¬ãŒã ã䜿çšã㊠IoT Device Simulator ããããã€ããŸããããã«ãããå¿
èŠãªãã¹ãŠã®ãªãœãŒã¹ãã¢ã«ãŠã³ãå
ã«äœæãããŸãã ãã¹ã¿ãã¯ã®è©³çްãæå®ãããŒãžã§ããœãªã¥ãŒã·ã§ã³ã¹ã¿ãã¯ã«ååãå²ãåœãŠãŸãã ããã©ã¡ãŒã¿ãã§ããã®ãœãªã¥ãŒã·ã§ã³ãã³ãã¬ãŒãã®ãã©ã¡ãŒã¿ã確èªããå¿
èŠã«å¿ããŠå€æŽããŸãã ãUser emailãã«ãIoT Device Simulator UI ã«ãã°ã€ã³ããããã®ãªã³ã¯ãšãã¹ã¯ãŒããåãåãããã®æå¹ãªã¡ãŒã«ã¢ãã¬ã¹ãå
¥åããŸãã ãæ¬¡ãžããéžæããŸãã ãã¹ã¿ãã¯ãªãã·ã§ã³ã®èšå®ãããŒãžã§ããæ¬¡ãžããéžæããŸãã ã確èªãããŒãžã§ãèšå®ã確èªããŠç¢ºèªããŸãããã³ãã¬ãŒãã AWS Identity and Access Management (IAM) ãªãœãŒã¹ãäœæããããšãèªèãããã§ãã¯ããã¯ã¹ãéžæããŸãã ãã¹ã¿ãã¯ã®äœæããéžæããŸãã ã¹ã¿ãã¯ã®ã€ã³ã¹ããŒã«ã«ã¯çŽ 10 åããããŸãã æåŸ
ã¡ãŒã«ãåãåã£ãããCloudFront ãªã³ã¯ãéžæããã¡ãŒã«ã«èšèŒãããŠããèªèšŒæ
å ±ã䜿çšã㊠IoT Device Simulator ã«ãã°ã€ã³ããŸãã ãã®ãœãªã¥ãŒã·ã§ã³ã«ã¯ãAWS ã§ããã«ã»ã³ãµãŒããŒã¿ã®é
ä¿¡ãéå§ã§ããããã«ããããã®ãäºåæ§ç¯ãããèªåè»ãã¢ãå«ãŸããŠããŸãã ãDevice TypeãããŒãžã§ããCreate Device TypeããéžæããŸãã ãAutomotive DemoããéžæããŸãã ãã€ããŒãã¯èªåçã«å
¥åãããŸããããã€ã¹ã®ååãå
¥åãããããã¯ãšã㊠âautomotive-topicâ ãå
¥åããŸãã ãSaveããéžæããŸãã æ¬¡ã«ãã·ãã¥ã¬ãŒã·ã§ã³ãäœæããŸãã ãSimulationsãããŒãžã§ããCreate SimulationããéžæããŸãã ãSimulation typeãã§ããAutomotive DemoããéžæããŸãã ãSelect a device typeãã§ãäœæãããã¢ããã€ã¹ãéžæããŸãã ãData transmission intervalããšãData transmission durationãã«åžæã®å€ãå
¥åããŸãã 奜ã¿ã®å€ãå
¥åã§ããŸãããå°ãªããšã 10 ç§ããšã«éä¿¡ãã 10 å°ã®ããã€ã¹ã䜿çšããŠãã ãããããŒã¿éä¿¡æéã¯æ°åã«èšå®ããŠãã ãããããããªããšãã©ãäžã«äœåºŠãã·ãã¥ã¬ãŒã·ã§ã³ãåèµ·åããå¿
èŠããããŸãã ãSaveããéžæããŸãã ããã§ã·ãã¥ã¬ãŒã·ã§ã³ãå®è¡ã§ããŸãã ãSimulationsãããŒãžã§ãç®çã®ã·ãã¥ã¬ãŒã·ã§ã³ãéžæãããStart simulationsããéžæããŸãã ãŸãã¯ãå®è¡ãããã·ãã¥ã¬ãŒã·ã§ã³ã®æšªã«ãããViewããéžæãããStartããéžæããŠã·ãã¥ã¬ãŒã·ã§ã³ãå®è¡ããŸãã ã·ãã¥ã¬ãŒã·ã§ã³ã衚瀺ããã«ã¯ã衚瀺ãããã·ãã¥ã¬ãŒã·ã§ã³ã®æšªã«ãããViewããéžæããŸãã ã·ãã¥ã¬ãŒã·ã§ã³ãå®è¡äžã®å Žåãããã€ã¹ã®äœçœ®ã瀺ãããããšãIoT ãããã¯ã«éä¿¡ãããææ°ã® 100 ä»¶ãŸã§ã®ã¡ãã»ãŒãžã衚瀺ã§ããŸãã æ¬¡ã«ãã·ãã¥ã¬ãŒã¿ã AWS IoT Core ã«ã»ã³ãµãŒããŒã¿ãéä¿¡ããŠããããšã確èªã§ããŸãã AWS IoT Core ã³ã³ãœãŒã«ã«ç§»åããŸãã IoT Device Simulator ããããã€ããã®ãšåããªãŒãžã§ã³ã«ããããšã確èªããŠãã ããã ããã²ãŒã·ã§ã³ãã€ã³ã§ããMQTT Test ClientããéžæããŸãã ãããã¯ãã£ã«ã¿ãŒãšã㊠âautomotive-topicâ ãå
¥åãããSubscribeããéžæããŸãã ã·ãã¥ã¬ãŒã·ã§ã³ãå®è¡ããŠããéããIoT ãããã¯ã«éä¿¡ãããŠããã¡ãã»ãŒãžã衚瀺ãããŸãã æåŸã«ãIoT ã¡ãã»ãŒãžã Kinesis Data Streams ã«ã«ãŒãã£ã³ã°ããã«ãŒã«ãèšå®ã§ããŸãããã®ã¹ããªãŒã ã¯ãAmazon Managed Service for Apache Flink Studio ããŒãããã¯ã®ãœãŒã¹ããŒã¿ãæäŸããŸãã AWS IoT Core ã³ã³ãœãŒã«ã§ããMessage RoutingããšãRulesããéžæããŸãã ã«ãŒã«ã®ååãå
¥åããŸãïŒäŸ: âautomotive_route_kinesisâïŒããããŠãNextããéžæããŸãã 以äžã® SQL ã¯ãšãªãå®è¡ããŸãããã® SQL ã¯ãIoT Device Simulator ãå
¬éããŠãã âautomotive-topicâ ãããã¹ãŠã®ã¡ãã»ãŒãžåãéžæããŸãã SELECT timestamp, trip_id, VIN, brake, steeringWheelAngle, torqueAtTransmission, engineSpeed, vehicleSpeed, acceleration, parkingBrakeStatus, brakePedalStatus, transmissionGearPosition, gearLeverPosition, odometer, ignitionStatus, fuelLevel, fuelConsumedSinceRestart, oilTemp, location FROM 'automotive-topic' WHERE 1=1 ãNextããéžæããŸãã ãRule Actionsãã§ããœãŒã¹ãšããŠãKinesis StreamããéžæããŸãã ãCreate New Kinesis StreamããéžæããŸãã ããã«ããæ°ãããŠã£ã³ããŠãéããŸãã ãData stream nameãã« âautomotive-dataâ ãšå
¥åããŸãã ãã®æŒç¿ã§ã¯ CloudFormation ã«ããäºåã«äœæãããã¹ããªãŒã ã䜿çšããŸãã ãCreate Data StreamããéžæããŸãã ãã®ãŠã£ã³ããŠãéã㊠AWS IoT Core ã³ã³ãœãŒã«ã«æ»ãããšãã§ããŸãã ãStream nameãã®æšªã«ããæŽæ°ãã¿ã³ãéžæããâautomotive-dataâ ã¹ããªãŒã ãéžæããŸãã ãCreate new roleããéžæããããŒã«ã« âautomotive-roleâ ãšããååãä»ããŸãã ãNextããéžæããŸãã ã«ãŒã«ã®ããããã£ã確èªãããCreateããéžæããŸãã ã«ãŒã«ã¯ããã«ããŒã¿ã®ã«ãŒãã£ã³ã°ãéå§ããŸãã Amazon Managed Service for Apache Flink Studio ã®ã»ããã¢ãã ããŒã¿ã AWS IoT Core ãéããŠã¹ããªãŒãã³ã°ãããKinesis Data Streams ã«å
¥åãããããã«ãªã£ãã®ã§ãAmazon Managed Service for Apache Flink Studio ããŒãããã¯ãäœæã§ããŸãã Amazon Kinesis ã³ã³ãœãŒã«ã§ãããã²ãŒã·ã§ã³ãã€ã³ã®ãAnalytics applicationsããéžæããŸãã ãStudioãã¿ãã§ããCreate Studio notebookããéžæããŸãã ãQuick create with sample codeããéžæãããŸãŸã«ããŸãã ããŒãããã¯ã« âautomotive-data-notebookâ ãšããååãä»ããŸãã æ°ãããŠã£ã³ããŠã§ãCreateããéžæããŠã AWS Glue ã® Data Catalog å
ã«æ°èŠã«ããŒã¿ããŒã¹ãäœæããŸãã ãAdd databaseããéžæããŸãã ããŒã¿ããŒã¹ã« âautomotive-notebook-glueâ ãšããååãä»ããŸãã ãCreateããéžæããŸãã ãCreate Studio notebookãã»ã¯ã·ã§ã³ã«æ»ããŸãã æŽæ°ãéžæããæ°ãã AWS Glue ããŒã¿ããŒã¹ãéžæããŸãã ãCreate Studio notebookããéžæããŸãã. Studio ããŒãããã¯ãéå§ããã«ã¯ããRunããéžæããŠç¢ºèªããŸãã ããŒãããã¯ãå®è¡ãããããããŒãããã¯ãéžæãããOpen in Apache ZeppelinããéžæããŸãã ãImport noteããéžæããŸãã ãAdd from URLããéžæããŸãã 以äžã® URL ãå
¥åããŸã: https://aws-blogs-artifacts-public.s3.amazonaws.com/artifacts/BDB-2461/auto-notebook.ipynb ãImport NoteããéžæããŸãã æ°ããããŒããéããŸãã ã¹ããªãŒã åæã®å®è¡ Kinesis Data Analytics for SQL ã¢ããªã±ãŒã·ã§ã³ã§ã¯ã管çã³ã³ãœãŒã«ãéããŠã¹ããªãŒãã³ã°ãœãŒã¹ã远å ããã¢ããªã±ãŒã·ã§ã³å
ã¹ããªãŒã ãšãã³ããå®çŸ©ããŠãKinesis Data Streams ããããŒã¿ãã¹ããªãŒãã³ã°ããŸããã¢ããªã±ãŒã·ã§ã³å
ã¹ããªãŒã ã¯ãããŒã¿ãä¿æããã¯ãšãªã«å©çšã§ããããã«ããããŒãã«ãšããŠæ©èœããŸãããã³ãã¯ããœãŒã¹ããããŒã¿ãåã蟌ã¿ãã¢ããªã±ãŒã·ã§ã³å
ã¹ããªãŒã ã«ã¹ããªãŒãã³ã°ããŸãããã®åŸãä»»æã® SQL ããŒãã«ãã¯ãšãªããã®ãšåãããã«ãSQL ã䜿çšããŠã¢ããªã±ãŒã·ã§ã³å
ã¹ããªãŒã ã«å¯ŸããŠã¯ãšãªãå®è¡ã§ããŸãã以äžã®ã³ãŒããã芧ãã ãã: CREATE OR REPLACE STREAM "AUTOSTREAM" ( `trip_id` CHAR(36), `VIN` CHAR(17), `brake` FLOAT, `steeringWheelAngle` FLOAT, `torqueAtTransmission` FLOAT, `engineSpeed` FLOAT, `vehicleSpeed` FLOAT, `acceleration` FLOAT, `parkingBrakeStatus` BOOLEAN, `brakePedalStatus` BOOLEAN, `transmissionGearPosition` VARCHAR(10), `gearLeverPosition` VARCHAR(10), `odometer` FLOAT, `ignitionStatus` VARCHAR(4), `fuelLevel` FLOAT, `fuelConsumedSinceRestart` FLOAT, `oilTemp` FLOAT, `location` VARCHAR(100), `timestamp` TIMESTAMP(3)); CREATE OR REPLACE PUMP "MYPUMP" AS INSERT INTO "AUTOSTREAM" ("trip_id", "VIN", "brake", "steeringWheelAngle", "torqueAtTransmission", "engineSpeed", "vehicleSpeed", "acceleration", "parkingBrakeStatus", "brakePedalStatus", "transmissionGearPosition", "gearLeverPosition", "odometer", "ignitionStatus", "fuelLevel", "fuelConsumedSinceRestart", "oilTemp", "location", "timestamp") SELECT VIN, brake, steeringWheelAngle, torqueAtTransmission, engineSpeed, vehicleSpeed, acceleration, parkingBrakeStatus, brakePedalStatus, transmissionGearPosition, gearLeverPosition, odometer, ignitionStatus, fuelLevel, fuelConsumedSinceRestart, oilTemp, location, timestamp FROM "INPUT_STREAM" Kinesis Data Analytics for SQL ã¢ããªã±ãŒã·ã§ã³ããã®ã¢ããªã±ãŒã·ã§ã³å
ã¹ããªãŒã ãšãã³ãã Amazon Managed Service for Apache Flink Studio ã«ç§»è¡ããã«ã¯ããã³ãå®çŸ©ãåé€ããkinesis ã³ãã¯ã¿ãå®çŸ©ããããšã§ããããåäžã® CREATE ã¯ãšãªã«å€æããŸããZeppelin ããŒãããã¯ã®æåã®æ®µèœã§ã¯ãããŒãã«ãšããŠæç€ºãããã³ãã¯ã¿ãã»ããã¢ããããŸããåä¿¡ã¡ãã»ãŒãžã®ãã¹ãŠã®é
ç®ããŸãã¯ãã®ãµãã»ããã«å¯ŸããŠåãå®çŸ©ã§ããŸãã ã¯ãšãªãå®è¡ãããšãããŒãããã¯ã«æåçµæãåºåãããŸããããã§ SQL ã䜿çšããŠãã®ããŒãã«ã«ã¯ãšãªãå®è¡ããããPyFlink ã Scala ã䜿çšããŠãã®ããŒã¿ã«ããã°ã©ã ã«ããæäœãå®è¡ãããã§ããŸãã ã¹ããªãŒãã³ã°ããŒã¿ã«ãªã¢ã«ã¿ã€ã åæãå®è¡ããåã«ãããŒã¿ãçŸåšã©ã®ããã«ãã©ãŒããããããŠããããèŠãŠã¿ãŸãããããããè¡ãã«ã¯ãäœæããããŒãã«ã«å¯ŸããŠç°¡å㪠Flink SQL ã¯ãšãªãå®è¡ããŸããã¹ããªãŒãã³ã°ã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšããã SQL ã¯ãSQL ã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšããããã®ãšåãã§ãã æ°ç§åŸã«ã¬ã³ãŒãã衚瀺ãããªãå Žåã¯ãIoT Device Simulator ããŸã å®è¡äžã§ããããšã確èªããŠãã ããã Kinesis Data Analytics for SQL ã³ãŒããå®è¡ããŠããå Žåãçµæã»ãããè¥å¹²ç°ãªãå ŽåããããŸãããã㯠Amazon Managed Service for Apache Flink ã®ããäžã€ã®éèŠãªéãã§ããåŸè
ã«ã¯ exactly once é
ä¿¡ã®æŠå¿µãããããã§ãããã®ã¢ããªã±ãŒã·ã§ã³ãæ¬çªç°å¢ã«ãããã€ãããåèµ·åãããããã¹ã±ãŒãªã³ã°ã¢ã¯ã·ã§ã³ãçºçãããããå ŽåãAmazon Managed Service for Apache Flink ã¯åã¡ãã»ãŒãžãäžåºŠã ãåä¿¡ããããšãä¿èšŒããŸããäžæ¹ãKinesis Data Analytics for SQL ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãçµæã«åœ±é¿ãäžããå¯èœæ§ã®ããéè€ã¡ãã»ãŒãžãç¡èŠããããã«ãåä¿¡ã¹ããªãŒã ãããã«åŠçããå¿
èŠããããŸãã äžæåæ¢ã¢ã€ã³ã³ãéžæããŠãçŸåšã®æ®µèœã忢ã§ããŸããã¯ãšãªã忢ãããšãããŒãããã¯ã«ãšã©ãŒã衚瀺ãããå ŽåããããŸãããç¡èŠããŠæ§ããŸãããããã»ã¹ããã£ã³ã»ã«ãããããšãç¥ãããŠããã ãã§ãã Flink SQL 㯠SQL æšæºãå®è£
ããŠãããããŒã¿ããŒã¹ããŒãã«ãã¯ãšãªããå Žåãšåãããã«ãã¹ããªãŒã ããŒã¿ã«å¯ŸããŠç°¡åã«èšç®ãå®è¡ããæ¹æ³ãæäŸããŸããããŒã¿ã®ãšã³ãªããã«ãããäžè¬çãªã¿ã¹ã¯ãšããŠã¯ãèšç®ãŸãã¯å€æ (è¯æ°ããææ°ãžã®å€æãªã©)çµæãä¿åããããã®æ°èŠãã£ãŒã«ãã®äœæãäžæµã®ã¯ãšãªã®ç°¡çŽ åãå¯èŠåãæ¹åããããã®æ°èŠããŒã¿äœæçãæããããŸããæ¬¡ã®æ®µèœãå®è¡ããŠãã»ã³ãµãŒã®èªã¿åãæã«èªåè»ãå éäžã§ãã£ããã©ãããç°¡åã«ç¥ãããšãã§ãããaccelerating ãšããååã®æ°ãã Boolean å€ã远å ããæ¹æ³ãèŠãŠã¿ãŸãããããã®ããã»ã¹ã¯ãKinesis Data Analytics for SQL ãš Amazon Managed Service for Apache Flink ã®éã§éãã¯ãããŸããã æ°ããåãæ€æ»ããæ°ãã Boolean å€ã FLOAT acceleration åãšæ¯èŒããããæ®µèœã®å®è¡ã忢ã§ããŸãã ã»ã³ãµãŒããéä¿¡ãããããŒã¿ã¯éåžžãã¬ã€ãã³ã·ãŒãšããã©ãŒãã³ã¹ãåäžãããããã«ã³ã³ãã¯ãã§ããå€éšããŒã¿ã§ããŒã¿ã¹ããªãŒã ããšã³ãªããããããšãäŸãã°è¿œå ã®è»äž¡æ
å ±ãçŸåšã®æ°è±¡ããŒã¿ãªã©ã§ã¹ããªãŒã ããšã³ãªããããããšã¯éåžžã«æçšã§ãããã®äŸã§ã¯ãçŸåš Amazon S3 ã«ä¿åãããŠãã CSV ããããŒã¿ãåã蟌ã¿ãçŸåšã®ãšã³ãžã³é床垯ãåæ ãã color ãšããååã®åã远å ããããšä»®å®ããŸãããã Apache Flink SQL ã¯ãAWS ãµãŒãã¹ããã®ä»ã®ãœãŒã¹çšã®ããã€ãã®ãœãŒã¹ ã³ãã¯ã¿ ãæäŸããŠããŸããæåã®æ®µèœã§è¡ã£ãããã«æ°ããããŒãã«ãäœæãã代ããã« filesystem ã³ãã¯ã¿ã䜿çšããããšã§ãFlink ã Amazon S3 ã«çŽæ¥æ¥ç¶ããŠãœãŒã¹ããŒã¿ãèªã¿åãããšãã§ããŸãã以åã® Kinesis Data Analytics for SQL ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãæ°ããåç
§ãã€ã³ã©ã€ã³ã§è¿œå ããããšã¯ã§ããŸããã§ããã代ããã«ã S3 åç
§ããŒã¿ãå®çŸ© ããã¢ããªã±ãŒã·ã§ã³èšå®ã«è¿œå ããŠãSQL JOIN ã§åç
§ãšããŠäœ¿çšã§ããŸããã æ³šæ: us-east-1 ãªãŒãžã§ã³ã䜿çšããŠããªãå Žåã¯ã csv ãããŠã³ããŒã ããŠç¬èªã® S3 ãã±ããã«ãªããžã§ã¯ããé
眮ã§ããŸããcsv ãã¡ã€ã«ã s3a:/// ãšããŠåç
§ããŠãã ããã æåŸã®ã¯ãšãªãåºã«ãæ¬¡ã®æ®µèœã§ã¯çŸåšã®ããŒã¿ãšæ°ããäœæããã«ãã¯ã¢ãããœãŒã¹ããŒãã«ã«å¯Ÿã㊠SQL JOIN ãå®è¡ããŸãã ãšã³ãªãããããããŒã¿ãå床ã¹ããªãŒãã³ã°ããŸããå®éã®ã·ããªãªã§ã¯ãããŒã¿ã®æ±ãæ¹ã«å€ãã®éžæè¢ããããŸããäŸãã°ãS3 ããŒã¿ã¬ã€ã¯ã«ããŒã¿ãéä¿¡ãããããããªãåæã®ããã«å¥ã® Kinesis ããŒã¿ã¹ããªãŒã ã«éä¿¡ããããå¯èŠåã®ããã« OpenSearch Service ã«ããŒã¿ãä¿åãããããããšãã§ããŸããç°¡åã«ããããã«ãããŒã¿ã Amazon Data Firehose ã«éä¿¡ããããŒã¿ã¬ã€ã¯ãšããŠæ©èœãã S3 ãã±ããã«ããŒã¿ãã¹ããªãŒãã³ã°ããŸãã Amazon Data Firehose ã¯ããããæ°ã¯ãªãã¯ã§ Amazon S3ãOpenSearch Serviceã Amazon Redshift ããŒã¿ãŠã§ã¢ããŠã¹ãããã³ Splunk ã«ããŒã¿ãã¹ããªãŒãã³ã°ã§ããŸãã Amazon Data Firehose ã¹ããªãŒã ã®äœæ Firehose ã¹ããªãŒã ãäœæããã«ã¯ã以äžã®æé ãå®è¡ããŸãïŒ Amazon Data Firehose ã³ã³ãœãŒã«ã§ããCreate delivery streamããéžæããŸãã ã¹ããªãŒã ãœãŒã¹ãšããŠãDirect PUTããéžæããã¿ãŒã²ãããšããŠãAmazon S3ããéžæããŸãã é
ä¿¡ã¹ããªãŒã ã« âautomotive-firehoseâ ãšããååãä»ããŸãã ãDestination settingsãã§ãæ°ãããã±ãããäœæããããæ¢åã®ãã±ããã䜿çšããŸãã S3 ãã±ããã® URL ãã¡ã¢ããŠãããŸãã ãCreate delivery streamããéžæããŸãã ã¹ããªãŒã ã®äœæã«ã¯æ°ç§ããããŸãã Amazon Managed Service for Apache Flink ã³ã³ãœãŒã«ã«æ»ãããStreaming applicationsããéžæããŸãã ãStudioãã¿ãã§ãStudio ããŒãããã¯ãéžæããŸãã ãIAM roleãã®äžã«ãããªã³ã¯ãéžæããŸãã IAM ãŠã£ã³ããŠã§ããAdd permissionsããéžæãããAttach policiesããéžæããŸãã ãAmazonKinesisFullAccessããšãCloudWatchFullAccessããæ€çŽ¢ããŠéžæãããAttach policyããéžæããŸãã Zeppelin ããŒãããã¯ã«æ»ãããšãã§ããŸãã Amazon Data Firehose ãžã®ããŒã¿ã®ã¹ããªãŒãã³ã° Apache Flink v1.15 以éãFirehose ã¹ããªãŒã ãžã®ã³ãã¯ã¿ã®äœæã¯ãä»»æã® Kinesis Data Streams ãžã®ã³ãã¯ã¿ã®äœæãšåæ§ã«æ©èœããŸãã2ã€ã®éããããããšã«æ³šæããŠãã ãããã³ãã¯ã¿ã¯ firehose ã§ãstream 屿§ã¯ delivery-stream ã«ãªããŸãã ã³ãã¯ã¿äœæåŸã¯ãSQL ããŒãã«ã®ããã«ããŒã¿ãæžã蟌ãããšãã§ããŸãã Firehose ã¹ããªãŒã ãéããŠããŒã¿ãååŸãããŠããããšã確èªããã«ã¯ãAmazon S3 ã³ã³ãœãŒã«ãéãããã¡ã€ã«ãäœæãããŠããããšã確èªããŸãããã¡ã€ã«ãéããŠæ°ããããŒã¿ãæ€æ»ããŸãã Kinesis Data Analytics for SQL ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãSQL ã¢ããªã±ãŒã·ã§ã³ããã·ã¥ããŒãã§æ°ããå®å
ãäœæããŠããŸãããæ¢åã®å®å
ãç§»è¡ããã«ã¯ãæ°ããå®å
ãå®çŸ©ãã SQL ã¯ãšãªãããŒãããã¯ã«è¿œå ããŸããæ°ããããŒãã«åãåç
§ããªãããINSERT ã䜿çšããŠæ°ããå®å
ã«æžã蟌ã¿ç¶ããããšãã§ããŸãã æç³»åããŒã¿ Amazon Managed Service for Apache Flink Studio ããŒãããã¯ã§å®è¡ã§ããããäžã€ã®äžè¬çãªæäœã¯ãã¿ã€ã ãŠã£ã³ããŠ(äžå®ã®æé)ã«ãããéèšã§ãããã®ãããªããŒã¿ã¯ãç°åžžãç¹å®ããããã¢ã©ãŒããéä¿¡ããããããã«åŠçããããã«ä¿åãããããããã«ãå¥ã® Kinesis Data Streams ã«éä¿¡ã§ããŸããæ¬¡ã®æ®µèœã«ã¯ãã¿ã³ããªã³ã°ãŠã£ã³ããŠã䜿çšãã30 ç§ééã§èªåè»ããªãŒãã®ç·çææ¶è²»éãéèšãã SQL ã¯ãšãªãå«ãŸããŠããŸããæåŸã®äŸãšåæ§ã«ãå¥ã®ããŒã¿ã¹ããªãŒã ã«æ¥ç¶ããŠãã®ããŒã¿ãæ¿å
¥ããããã«åæããããšãã§ããŸãã Scala ãš PyFlink ããŒã¿ã¹ããªãŒã ã«å¯ŸããŠå®è¡ãã颿°ã¯ãåçŽããšã¡ã³ããã³ã¹æ§ã®äž¡æ¹ã®èгç¹ãããSQL ãããããã°ã©ãã³ã°èšèªã§æžãæ¹ãç°¡åãªå ŽåããããŸããäŸãšããŠãSQL 颿°ããã€ãã£ãã«ãµããŒãããŠããªãè€éãªèšç®ãç¹å®ã®æååæäœãããŒã¿ã®è€æ°ã®ã¹ããªãŒã ãžã®åå²ãä»ã® AWS ãµãŒãã¹(ããã¹ãç¿»èš³ãææ
åæãªã©)ãšã®é£æºãªã©ãæããããŸããAmazon Managed Service for Apache Flink ã¯ãZeppelin ããŒãããã¯å
ã§è€æ°ã® Flink ã€ã³ã¿ãŒããªã¿ãŒ ã䜿çšããæ©èœãæã£ãŠããŸãããã㯠Kinesis Data Analytics for SQL ã¢ããªã±ãŒã·ã§ã³ã«ã¯ãªãæ©èœã§ãã ããŒã¿ã«æ³šææ·±ãç®ãéããŠããã°ãlocation ãã£ãŒã«ãã JSON æååã§ããããšã«æ°ä»ããã§ããããKinesis Data Analytics for SQL ã§ã¯ãæåå颿°ã䜿çšã㊠SQL 颿° ãå®çŸ©ããJSON æååãåè§£ããããšãã§ããŸãããããã¯ãã¡ãã»ãŒãžããŒã¿ã®å®å®æ§ã«äŸåããè匱ãªã¢ãããŒãã§ãããããã€ãã® SQL 颿°ã䜿çšããŠæ¹åããããšãã§ããŸããKinesis Data Analytics for SQL ã§é¢æ°ãäœæããæ§æã¯ä»¥äžã®ãã¿ãŒã³ã«åŸããŸãã CREATE FUNCTION ''<function_name>'' ( ''<parameter_list>'' ) RETURNS ''<data type>'' LANGUAGE SQL [ SPECIFIC ''<specific_function_name>'' | [NOT] DETERMINISTIC ] CONTAINS SQL [ READS SQL DATA ] [ MODIFIES SQL DATA ] [ RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT ] RETURN ''<SQL-defined function body>'' Amazon Managed Service for Apache Flink ã§ãæè¿å©çšå¯èœãšãªã£ã Apache Flink v1.15 ã§ã¯ãApache Flink SQL ã®ããŒãã« SQL ã« JSON Path æ§æã«äŒŒã JSON 颿° ã远å ããŸãããããã«ãããSQL å
ã§çŽæ¥ JSON æååã«ã¯ãšãªãå®è¡ã§ããŸãã以äžã®ã³ãŒããã芧ãã ããã %flink.ssql(type=update) SELECT JSON_STRING(location, '$.latitude) AS latitude, JSON_STRING(location, '$.longitude) AS longitude FROM my_table ãããã¯ãApache Flink v1.15 以åã®æ¹æ³ã§ãããããŒãããã¯å
ã§ Scala ãŸã㯠PyFlink ã䜿çšããŠãã£ãŒã«ãã倿ããããŒã¿ãåã¹ããªãŒãã³ã°ããããšãã§ããŸããäž¡èšèªãšããå
ç¢ãª JSON æåååŠçãæäŸããŸãã 以äžã® PyFlink ã³ãŒãã¯ãã¡ãã»ãŒãžã® location ãã£ãŒã«ããã緯床ãšçµåºŠãæœåºãã 2 ã€ã® ãŠãŒã¶ãŒå®çŸ©é¢æ° ãå®çŸ©ããŸãããããã® UDF ã¯ããã®åŸ Flink SQL ããåŒã³åºãããšãã§ããŸããç°å¢å€æ° st_env ãåç
§ããŠããŸããPyFlink 㯠Zeppelin ããŒãããã¯å
ã§ 6 ã€ã®å€æ° ãäœæããŸããZeppelin ã¯ã倿° z ãšã㊠ã³ã³ããã¹ã ãå
¬éããŠããŸãã ã¡ãã»ãŒãžã«äºæããªãããŒã¿ãå«ãŸããŠããå Žåããšã©ãŒãçºçããå¯èœæ§ããããŸããKinesis Data Analytics for SQL ã¢ããªã±ãŒã·ã§ã³ã¯ãã¢ããªã±ãŒã·ã§ã³å
ãšã©ãŒã¹ããªãŒã ãæäŸããŸãããããã®ãšã©ãŒã¯å¥éåŠçãããåã¹ããªãŒãã³ã°ããããåé€ãããŸããKinesis Data Analytics ã¹ããªãŒãã³ã°ã¢ããªã±ãŒã·ã§ã³ã® PyFlink ã§ã¯ãè€éãªãšã©ãŒåŠçæŠç¥ãæžããå³åº§ã«å埩ããŠããŒã¿ã®åŠçãç¶ããããšãã§ããŸããJSON æååã UDF ã«æž¡ãããéãããã¯äžæ£ãªåœ¢åŒã§ãã£ãããäžå®å
šã§ãã£ããã空ã§ãã£ããããå¯èœæ§ããããŸããUDF å
ã§ãšã©ãŒããã£ããããããšã§ããšã©ãŒãçºçããå Žåã§ã Python ã¯åŠçãç¶ç¶ããå€ãè¿ãããšãã§ããŸãã 以äžã®ãµã³ãã«ã³ãŒãã¯ã2 ã€ã®ãã£ãŒã«ãã«å¯ŸããŠé€ç®èšç®ãå®è¡ããå¥ã® PyFlink ã¹ããããã瀺ããŠããŸãããŒãé€ç®ãšã©ãŒãçºçããå Žåãããã©ã«ãå€ãæäŸããŠã¹ããªãŒã ãã¡ãã»ãŒãžã®åŠçãç¶è¡ã§ããããã«ããŸãã %flink.pyflink @udf(input_types=[DataTypes.BIGINT()], result_type=DataTypes.BIGINT()) def DivideByZero(price): try: price / 0 except: return -1 st_env.register_function("DivideByZero", DivideByZero) 次ã®ã¹ããã ãã®èšäºã§è¡ã£ããããªãã€ãã©ã€ã³ã®æ§ç¯ã¯ãAWS ã®è¿œå ãµãŒãã¹ããã¹ãããããã®åºç€ãæäŸããŸããã¹ããªãŒã ãåé€ããåã«ãã¹ããªãŒãã³ã°åæã®åŠç¿ãç¶ããããšããå§ãããŸãã以äžãæ€èšããŠãã ããã Amazon Managed Service for Apache Flink Studio ããŒãããã¯ã æ°žç¶çãªç¶æ
ãæã€ã¢ããªã±ãŒã·ã§ã³ ãšããŠå
¬éããã Kinesis Data Firehose é
ä¿¡ã¹ããªãŒã ã䜿çšã㊠OpenSearch Service ã«çŽæ¥æžã蟌ãã OpenSearch Dashboards ã䜿çšããŠã¹ããªãŒãã³ã°ããŒã¿ãå¯èŠåããã äžè¬ç㪠SQL ããŒã¹ã® Kinesis Data Analytics ã¢ããªã±ãŒã·ã§ã³ãã Amazon Managed Service for Apache Flink Studio ãžã®ã¯ãšãªæžãæãã®äŸã«ã€ããŠã Migrating to Amazon Managed Service for Apache Flink: Examples ããã¥ã¡ã³ãã確èªããã ã¯ãªãŒã³ã¢ãã ãã®æŒç¿ã§äœæãããµãŒãã¹ãã¯ãªãŒã³ã¢ããããã«ã¯ã以äžã®æé ãå®è¡ããŸãã CloudFormation ã³ã³ãœãŒã«ã«ç§»åããIoT Device Simulator ã¹ã¿ãã¯ãåé€ããŸãã AWS IoT Core ã³ã³ãœãŒã«ã§ããMessage RoutingããšãRulesããéžæããã«ãŒã« âautomotive_route_kinesisâ ãåé€ããŸãã Kinesis Data Stream ã³ã³ãœãŒã«ã§ Kinesis ããŒã¿ã¹ããªãŒã âautomotive-dataâ ãåé€ããŸãã IAM ã³ã³ãœãŒã«ã§ IAM ããŒã« âautomotive-roleâ ãåé€ããŸãã AWS Glue ã³ã³ãœãŒã«ã§ãâautomotive-notebook-glueâ ããŒã¿ããŒã¹ãåé€ããŸãã Amazon Managed Service for Apache Flink Studio ããŒããã㯠âautomotive-data-notebookâ ãåé€ããŸãã Firehose é
ä¿¡ã¹ããªãŒã âautomotive-firehoseâ ãåé€ããŸãã ãŸãšã Amazon Managed Service for Apache Flink Studio ã«é¢ãããã®ãã¥ãŒããªã¢ã«ãã芧ããã ãããããšãããããŸããçŸåšãã¬ã¬ã·ãŒã® Amazon Managed Service for Apache Flink Studio SQL ã¢ããªã±ãŒã·ã§ã³ã䜿çšããŠããå Žåã¯ãAWS ãã¯ãã«ã«ã¢ã«ãŠã³ããããŒãžã£ãŒãŸãã¯ãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã«é£çµ¡ããAmazon Managed Service for Apache Flink Studio ãžã®ç§»è¡ã«ã€ããŠçžè«ããããšããå§ãããŸãã Amazon Kinesis Data Streams Developer Guide ã§åŠç¿ãç¶ãã GitHub ã§ã³ãŒããµã³ãã«ã«ã¢ã¯ã»ã¹ã§ããŸãã èè
ã«ã€ã㊠Nicholas Tunney ã¯ãAWS ã®ã¯ãŒã«ãã¯ã€ããããªãã¯ã»ã¯ã¿ãŒããŒãããŒãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã§ãã圌ã¯ã°ããŒãã« SI ããŒãããŒãšååããŠãæ¿åºãéå¶å©ã®å»çãå
¬çäºæ¥ãæè²éšéã®ã¯ã©ã€ã¢ã³ãåãã« AWS ã«ãããã¢ãŒããã¯ãã£ã®éçºãè¡ã£ãŠããŸãã