無限ノック › DEA 練習問題一覧 › 問題
DEAデータの取り込みと変換

あるeコマース企業は、Amazon Aurora MySQLで稼働するOLTPデータベースのデータをAmazon Redshiftにほぼリアルタイムで反映させるシステムを構築しようとしています。以下の要件があります。 ・ソースデータベース(Aurora MySQL)への処理負荷を最小限に抑えること ・INSERT・UPDATE・DELETEの変更差分のみを継続的にRedshiftに反映すること ・初回全件移行の完了後は差分同期のみを行うこと 最も適切な方法はどれか?

A
AWS Glue ETLジョブを毎時スケジュール実行し、タイムスタンプ列を使って変更レコードのみを抽出してRedshiftにロードする
Glue ETLジョブによるタイムスタンプ差分抽出は、DELETEされたレコードを捕捉できず、バッチ実行のため遅延が生じます。またタイムスタンプ列の存在が前提となる設計上の制約があります。
B
AWS Database Migration Service(DMS)のフルロードタスクを毎日定期実行してRedshiftを同期する
DMSフルロードを定期実行する方法は、毎回全件データを転送するためソースDBへの負荷が高く、大規模テーブルでは処理時間も長くなり「ほぼリアルタイム」の要件を満たしません。
C
AWS Database Migration Service(DMS)のCDC(Change Data Capture)機能を使い、初回フルロード後に継続的レプリケーションタスクを設定する
✓ 正解
AWS DMS CDCは、ソースデータベースのトランザクションログ(MySQLのバイナリログ)を読み取ることでINSERT・UPDATE・DELETEの変更差分のみを継続的に取得します。ログベースの読み取りはソースDBへの追加負荷を最小限に抑え、Aurora MySQLからRedshiftへのCDCは正式サポートされています。初回フルロードタスクと継続的レプリケーションタスクを組み合わせることで要件を満たせます。
D
Amazon Kinesis Data Streamsを使用し、アプリケーション層でAurora MySQLへの書き込み時にKinesisへストリームイベントを発行してRedshiftに連携する
Kinesis Data Streamsへのイベント発行にアプリケーション層の改修が必要であり、ETLインフラではなくアプリケーションコードへの侵襲的な変更を伴います。

解説

AWS DMS CDCは、ソースデータベースのトランザクションログ(MySQLのバイナリログ)を読み取ることでINSERT・UPDATE・DELETEの変更差分のみを継続的に取得します。ログベースの読み取りはソースDBへの追加負荷を最小限に抑え、Aurora MySQLからRedshiftへのCDCは正式サポートされています。初回フルロードタスクと継続的レプリケーションタスクを組み合わせることで要件を満たせます。 選択肢AのGlue ETLジョブによるタイムスタンプ差分抽出は、DELETEされたレコードを捕捉できず、バッチ実行のため遅延が生じます。またタイムスタンプ列の存在が前提となる設計上の制約があります。 選択肢BのDMSフルロードを定期実行する方法は、毎回全件データを転送するためソースDBへの負荷が高く、大規模テーブルでは処理時間も長くなり「ほぼリアルタイム」の要件を満たしません。 選択肢DはKinesis Data Streamsへのイベント発行にアプリケーション層の改修が必要であり、ETLインフラではなくアプリケーションコードへの侵襲的な変更を伴います。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDEAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DEA の問題一覧に戻る