助け合いフォーラム
AWS ソリューションアーキテクト - アソシエイト(SAA-C02)
問題ID : 24636
問題を開く
大量のストリーミングデータをリアルタイムで処理したい。処理の過程で、ストリーミングデータ内の値に基づいて分類するためにSQLクエリを発行する。
リアルタイム性を重視するためにデータベースクラスターを管理したくない場合、要件に合う適切なAWSサービスはどれか。
リアルタイム性を重視するためにデータベースクラスターを管理したくない場合、要件に合う適切なAWSサービスはどれか。
正解
Amazon Kinesis Data Analytics
解説
Amazon Kinesisでは4つのサービスが提供されています。
そのうち、Kinesis Data Analyticsは、Kinesis上のストリーミングデータを処理し、可視化・分析できるサービスです。処理用のテンプレートが用意されていたり、標準SQLのクエリが発行できたり、JavaやPythonなどのプログラミング言語がサポートされているなど、柔軟に処理を組み込むことができます。データをデータベースへ移行することなく処理することで、リアルタイムに結果を得ることができます。
以上より正解は
・Amazon Kinesis Data Analytics
です。
その他の選択肢については以下の通りです。
・Amazon Kinesis Data Firehose
Kinesis Data FirehoseはストリーミングデータをAmazon S3(ストレージ)、Redshift(データベース)、Elasticsearch Service(データ分析)などのサービスへ配信するサービスです。配信先をRedshiftへ指定することでSQLを発行することはできますが、設問の「データベースクラスターを構築したくない」という条件に適していませんので誤りです。
・Amazon Redshift
Redshiftは大量データを高速に扱えるデータベースサービスです。本設問の「データベースクラスターを構築したくない」という条件に適していませんので誤りです。
・Amazon DynamoDB
DynamoDBはNoSQLのデータベースサービスです。SQLを発行する運用には適していませんので誤りです。
そのうち、Kinesis Data Analyticsは、Kinesis上のストリーミングデータを処理し、可視化・分析できるサービスです。処理用のテンプレートが用意されていたり、標準SQLのクエリが発行できたり、JavaやPythonなどのプログラミング言語がサポートされているなど、柔軟に処理を組み込むことができます。データをデータベースへ移行することなく処理することで、リアルタイムに結果を得ることができます。
以上より正解は
・Amazon Kinesis Data Analytics
です。
その他の選択肢については以下の通りです。
・Amazon Kinesis Data Firehose
Kinesis Data FirehoseはストリーミングデータをAmazon S3(ストレージ)、Redshift(データベース)、Elasticsearch Service(データ分析)などのサービスへ配信するサービスです。配信先をRedshiftへ指定することでSQLを発行することはできますが、設問の「データベースクラスターを構築したくない」という条件に適していませんので誤りです。
・Amazon Redshift
Redshiftは大量データを高速に扱えるデータベースサービスです。本設問の「データベースクラスターを構築したくない」という条件に適していませんので誤りです。
・Amazon DynamoDB
DynamoDBはNoSQLのデータベースサービスです。SQLを発行する運用には適していませんので誤りです。
参考
【Amazon Kinesis】
Amazon Kinesisはストリーミングデータをリアルタイムで収集・処理するサービスです。
ストリーミングデータとは継続的に生成されるデータのことをいいます。例えばスマートフォンアプリなどでユーザーが生成するログや、証券取引所の株取引情報、SNSやオンラインゲームのデータなどの継続的に生成されるデータが該当します。Kinesisではこのようなストリーミングデータを収集し、サンプリングや分析などの処理を通して、リアルタイムなトレンド情報をユーザーへフィードバックしたり、企業の経営戦略などに繋げることができます。なお、ストリーミングデータを処理することを「ストリーム処理」といいます。
また、その他のデータ処理方式に「バッチ処理」があります。バッチ処理はまとまったデータに対して一括で処理を行う方式です。バッチ処理は、日次、週次、月次、年次の集計処理のように特定範囲のデータに対して定期的に実行されます。
多くの企業ではストリーム処理とバッチ処理の両方を用いてシステムを構築し、柔軟なデータ解析を行っています。
Kinesisでは4つのサービスが提供されています。
●Kinesis Data Streams
Kinesis Data Streamsは外部から送信されるストリーミングデータを収集するサービスです。センサーなどが生成したストリーミングデータをKinesis Data Streamsのストリームへ送信し、ストリーム上のデータは分析や機械学習などを行うアプリケーションがリアルタイムに読みだして処理します。なお、収集したデータには保持期間(デフォルトで24時間、最長で1年)があります。
なお、Kinesisではストリーミングデータを生成し送信するデバイスやサービスなどを「プロデューサー」、ストリーミングデータを読みだして処理する側を「コンシューマー」と呼びます。
○Kinesis Data Streamsのアーキテクチャ
Kinesis Data Streamsでは、ストリーミングデータを「データレコード」という単位で処理します。データレコードには、データそのものに加えて「パーティションキー」「シーケンス番号」が含まれます。
・パーティションキー ... どのシャード(後述)で処理するかを決めるもの。プロデューサー側で設定する
・シーケンス番号 ... シャードごとに一意の番号。シャード内のデータレコードの順序性が保証される
データレコードは「シャード」に分散され処理されます。シャードは、ストリームで処理できるデータの容量を決めるもので、シャードが多いほど並列処理の数が増えてスループットが上がります。
●Kinesis Data Firehose
Kinesis Data FirehoseはストリーミングデータをAmazon S3(ストレージ)、Amazon Redshift(データベース)、Amazon Elasticsearch Service(データ分析)などのサービスへ配信します。Kinesis Data Firehoseへ送信されたストリーミングデータは事前に設定されたデータ配信先へ配信されます。中継するアプリケーションを独自に実装する必要はありません。
●Kinesis Data Analytics
Kinesis Data Analyticsは、Kinesis上のストリーミングデータを処理し、可視化・分析できるサービスです。処理用のテンプレートが用意されていたり、標準SQLのクエリが発行できたり、JavaやPythonなどのプログラミング言語がサポートされているなど、柔軟に処理を組み込むことができます。データをデータベースへ移行することなく処理することで、リアルタイムに結果を得ることができます。
●Kinesis Video Streams
カメラやビデオなどの動画(ビデオストリーム)を取り込むサービスです。取り込んだ動画データはアプリケーションなどによって解析や加工、再生などを行うことができます。
Amazon Kinesisはストリーミングデータをリアルタイムで収集・処理するサービスです。
ストリーミングデータとは継続的に生成されるデータのことをいいます。例えばスマートフォンアプリなどでユーザーが生成するログや、証券取引所の株取引情報、SNSやオンラインゲームのデータなどの継続的に生成されるデータが該当します。Kinesisではこのようなストリーミングデータを収集し、サンプリングや分析などの処理を通して、リアルタイムなトレンド情報をユーザーへフィードバックしたり、企業の経営戦略などに繋げることができます。なお、ストリーミングデータを処理することを「ストリーム処理」といいます。
また、その他のデータ処理方式に「バッチ処理」があります。バッチ処理はまとまったデータに対して一括で処理を行う方式です。バッチ処理は、日次、週次、月次、年次の集計処理のように特定範囲のデータに対して定期的に実行されます。
多くの企業ではストリーム処理とバッチ処理の両方を用いてシステムを構築し、柔軟なデータ解析を行っています。
Kinesisでは4つのサービスが提供されています。
●Kinesis Data Streams
Kinesis Data Streamsは外部から送信されるストリーミングデータを収集するサービスです。センサーなどが生成したストリーミングデータをKinesis Data Streamsのストリームへ送信し、ストリーム上のデータは分析や機械学習などを行うアプリケーションがリアルタイムに読みだして処理します。なお、収集したデータには保持期間(デフォルトで24時間、最長で1年)があります。
なお、Kinesisではストリーミングデータを生成し送信するデバイスやサービスなどを「プロデューサー」、ストリーミングデータを読みだして処理する側を「コンシューマー」と呼びます。
○Kinesis Data Streamsのアーキテクチャ
Kinesis Data Streamsでは、ストリーミングデータを「データレコード」という単位で処理します。データレコードには、データそのものに加えて「パーティションキー」「シーケンス番号」が含まれます。
・パーティションキー ... どのシャード(後述)で処理するかを決めるもの。プロデューサー側で設定する
・シーケンス番号 ... シャードごとに一意の番号。シャード内のデータレコードの順序性が保証される
データレコードは「シャード」に分散され処理されます。シャードは、ストリームで処理できるデータの容量を決めるもので、シャードが多いほど並列処理の数が増えてスループットが上がります。
●Kinesis Data Firehose
Kinesis Data FirehoseはストリーミングデータをAmazon S3(ストレージ)、Amazon Redshift(データベース)、Amazon Elasticsearch Service(データ分析)などのサービスへ配信します。Kinesis Data Firehoseへ送信されたストリーミングデータは事前に設定されたデータ配信先へ配信されます。中継するアプリケーションを独自に実装する必要はありません。
●Kinesis Data Analytics
Kinesis Data Analyticsは、Kinesis上のストリーミングデータを処理し、可視化・分析できるサービスです。処理用のテンプレートが用意されていたり、標準SQLのクエリが発行できたり、JavaやPythonなどのプログラミング言語がサポートされているなど、柔軟に処理を組み込むことができます。データをデータベースへ移行することなく処理することで、リアルタイムに結果を得ることができます。
●Kinesis Video Streams
カメラやビデオなどの動画(ビデオストリーム)を取り込むサービスです。取り込んだ動画データはアプリケーションなどによって解析や加工、再生などを行うことができます。
解説、参考の誤字について
投稿日 2022/06/22
解説、参考の以下の文でPhthonと表記されていますが、おそらくPyshonのことだと思います。
ご確認よろしくお願いいたします。
「Amazon Kinesisでは4つのサービスが提供されています。
そのうち、Kinesis Data Analyticsは、Kinesis上のストリーミングデータを処理し、可視化・分析できるサービスです。処理用のテンプレートが用意されていたり、標準SQLのクエリが発行できたり、JavaやPhthonなどのプログラミング言語がサポートされているなど、柔軟に処理を組み込むことができます。データをデータベースへ移行することなく処理することで、リアルタイムに結果を得ることができます。」
スタッフからの返信
この投稿に対して返信しませんか?
s staff_khira0410
2022/06/22 13:26
A0IGam1ng さん ご指摘の点を修正いたしました。 ご報告、誠にありがとうございました。