Amazon DEA-C01: データクエリと分析 — 学習ガイド
こちらの一部です: Amazon Data Engineer Associate DEA-C01 — 学習ガイド. 検証済みの解答で練習: Amazon試験ハブ, または時間制限付き模擬試験に挑戦: ExamRoll.io.
このドメインは、大規模データセットに対する分析クエリとBIをサポートするAWSサービスの設計、チューニング、運用を対象とします。Athena、Redshift、OpenSearch、QuickSightにわたるコスト効率とパフォーマンスに優れたクエリパターン、およびそれらがS3、Glue、トランザクションストアとどのように連携するかに焦点を当てています。この分野を習得するには、ストレージフォーマット、パーティショニング、コンピューティングタイプ、データ配置のバランスを取り、スキャンされるバイト数とネットワークスキューを最小限に抑えながら、低レイテンシーのインサイトを提供する必要があります。
Amazon Athenaのクエリ最適化
Athenaの料金はスキャンされたバイト数に基づいているため、物理的なデータレイアウトとメタデータが主要な最適化のポイントとなります。カラムナフォーマット(ParquetまたはORC)を圧縮(Parquetの場合はSnappy、Zlib/ORCオプション)と併用して、サイズとCPU使用率を削減します。カーディナリティが高く、クエリでフィルタリングされる列(日付、リージョンなど)でデータをパーティション化し、そのパーティションをGlueデータカタログに登録します。一般的なパターン:
- s3://bucket/events/date=2026-08-02/ のようなパスにデータをS3に書き込み、GlueクローラーまたはMSCK REPAIR TABLEを使用してパーティションを登録します。
- CREATE EXTERNAL TABLE … STORED AS PARQUET TBLPROPERTIES (‘parquet.compress’=‘SNAPPY’) を使用して、カラムナ圧縮を強制します。
- パーティションキーを参照するWHERE句を介したプロジェクションとパーティションプルーニングを使用して、不要なパーティションのスキャンを回避します。
クエリがトランザクションストアとの結合を必要とする場合、Athena Federated Query(Lambdaコネクタ)を使用して、RDS、DynamoDB、またはRedshiftとのクロスソース結合を実行します。コネクタはLambda関数としてデプロイされ、Athenaにデータソースとして登録されます。コンソールのフロー例:Athena > データソース > コネクタ > 新規。決定基準:
- RDS/DynamoDBのデータ量が中程度である場合、または小さなディメンションテーブルをS3の大きなデータセットに結合する場合にFederated Queryを使用します。
- 繰り返し行われる重い結合の場合は、運用データをS3(Parquet)に抽出・マテリアライズして、結合コストを単一のETLに移行し、繰り返しの読み取りにはAthenaを使用します。
Amazon Redshiftのクエリチューニングと分散
Redshiftのパフォーマンスは、データ移動を最小限に抑え、ゾーンマップを有効にするための分散スタイルとソートキーにかかっています。以下の決定ポイントを使用してDISTスタイルを選択します:
- DISTKEY (KEY): カーディナリティの高い結合キーで大きなテーブルを結合する場合に便利です。両方のテーブルが同じDISTKEYを共有している場合、再分散を回避できます。
- ALL: 小さなディメンションテーブルをすべてのノードに複製し、結合時のネットワークシャッフルを回避します。
- EVEN: 予測不能なワークロードや適切なキーが存在しない場合のデフォルトです。ホットスポットを回避します。
- AUTO: 明確な指針がない場合に、テーブルサイズとワークロードに基づいてRedshiftに選択させます。
範囲フィルターやORDER BYで使用される列にSORTKEYを定義して、ゾーンマップを有効にし、ディスク読み取りを削減します。一般的な運用コマンド:
- CREATE TABLE sales (…) DISTKEY(user_id) SORTKEY(order_date);
- 定期的にVACUUMとANALYZEを使用します:VACUUM; ANALYZE VERBOSE table; SVV_TABLE_INFOとSTL_QUERYを監視して、スキューと分散のメトリクスを確認します。 Redshift Spectrumを使用すると、Glueデータカタログを介してS3の外部テーブルにクエリを実行できます。外部スキーマは次のように作成します:
- CREATE EXTERNAL SCHEMA spectrum FROM DATA CATALOG DATABASE ’ext_db’ IAM_ROLE ‘arn:aws:iam::123456789012:role/RedshiftSpectrumRole’ CREATE EXTERNAL DATABASE IF NOT EXISTS; SpectrumとネイティブRedshiftの決定基準:
- S3に保存されている、クエリ頻度の低い大規模なコールドデータや、階層化データアーキテクチャにSpectrumを使用します。
- パフォーマンスのために、ホットで頻繁に結合されるデータセットはRedshift内に保持します。Spectrumと結合する際は、結合キーを同じ場所に配置するためにDISTKEYを選択するか、再分散を使用してネットワークI/Oを最小限に抑えます。
ログ分析のためのAmazon OpenSearch Service
OpenSearchは、取り込みと高速なアドホックログ分析に最適化されています。そのインデックスとクラスター構成がスループットとコストを決定します。インデックスの設計とライフサイクル:
- logs-YYYY.MM.DDのようなインデックスパターンとインデックステンプレートを使用して、index.number_of_shards(小さなインデックス:1シャード、大きなインデックス:サイズが約10〜50 GBの複数シャード)と可用性のためのindex.number_of_replicasを設定します。
- インデックスライフサイクルポリシー(ILM)を設定して、コスト管理のためにインデックスをホット、ウォーム、コールド、UltraWarm階層に移行させます。UltraWarmは、履歴データのホットノードストレージコストを削減します。 シャーディングとレプリカは、クエリとインデックス作成のパフォーマンスに影響します:
- シャードを増やすと並列処理能力は向上しますが、オーバーヘッドも増加します。ヒープとCPUに基づいてノードあたりのシャード数を調整します。
- レプリカは読み取りスループットと耐障害性を向上させます。クエリの同時実行性とSLAに基づいてレプリカを設定します。 運用コマンドとコンソールのパターン:
- OpenSearch Dev Tools(またはcurl)を使用してインデックステンプレートとILMポリシーをPUTし、クラスターヘルスAPIで監視します。ノード属性を割り当て、シャードアロケーションアウェアネスを使用してホットスポットを防ぎます。 決定基準:
- 履歴ログに対するクエリのレイテンシー要件が、より低いストレージコストと引き換えに高い読み取りレイテンシーを許容できる場合にUltraWarmを選択します。
- 高速な集計とダッシュボードをサポートするために、最新のインデックスはホットノードに保持します。
BIと可視化のためのQuickSight
QuickSightは、SPICE(インメモリ)と直接クエリの2つの主要な取り込みモードで高速なダッシュボードを提供します。SPICEはダッシュボードにサブ秒のパフォーマンスを提供し、繰り返しの読み取りに適しています。直接SQLクエリ(Athena、Redshift、RDSへ)は、非常に大きなデータセットや頻繁に変更されるデータに適しています。主要な設定とベストプラクティス:
- コンソールでデータセットを作成します:新しいデータセット > ソースを選択(Athena/Redshift/RDS/OpenSearch) > SPICEにインポート または 直接クエリを使用。
- 毎日またはニアリアルタイムのニーズには、スケジュールされたSPICEの更新を使用します。タイムスタンプパーティショニングによる増分更新を構成して、データ移動を制限します。 セキュリティとガバナンス:
- QuickSightのユーザー/グループマッピングとデータセットルールを介して、行レベルセキュリティを実装します。
- クロスアカウントのデータアクセスには、QuickSightが引き受けるためのIAMロールとリソースベースの権限をデプロイします。 決定基準:
- 多くの同時閲覧者がいて、更新ウィンドウが予測可能なダッシュボードにはSPICEを使用します。
- データの鮮度が重要であるか、SPICEの容量に制約がある場合は、直接クエリを使用します。インタラクティブなUXのために、計算フィールドやパラメータと組み合わせます。
← データオーケストレーションとワークフロー管理 · すべてのドメイン · データセキュリティ、ガバナンス、コンプライアンス →
これらの問題を練習する → · ExamRoll.ioで時間制限付き練習 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
試験に合格する →