あるIoT企業は、工場の数千台のセンサーからJSON形式のデータをAmazon Data Firehoseで受信しています。Amazon S3に保存する前に以下の処理を行う必要があります。 ・センサーIDをもとに設置場所情報を付加するエンリッチメント処理 ・温度が-50℃未満または500℃超の異常値レコードを除去するフィルタリング ・保存コスト削減のためにJSONからParquet形式に変換する Amazon Data Firehoseを中心に、これらの要件をすべて満たす構成として正しいものはどれか?
Amazon Data Firehoseは2つの変換機能を持ちます。①データ配信前にAWS Lambda関数を呼び出してカスタム処理(エンリッチメント・フィルタリング)を行う「データ変換」機能、②AWS Glue Data CatalogのスキーマをもとにJSONをParquet/ORC形式に自動変換する「レコード形式変換」機能です。両機能を組み合わせることで3要件すべてに対応できます。 選択肢AはGlue ETLジョブをFirehoseの前段処理として直接連携させる構成を示していますが、GlueはバッチETLが主用途であり、Firehoseの前段でリアルタイム変換するアーキテクチャは正式にサポートされていません。 選択肢BはFirehoseに「組み込みSQL変換機能」があると記述していますが、これは存在しません。SQLベースのストリーム処理はAmazon Managed Service for Apache Flinkが担当します。 選択肢DはFirehoseを迂回してKinesis Data StreamsとLambdaで処理する構成であり、Firehoseを活用するという前提から外れています。