Azure非リレーショナル応用

あるビジネスインテリジェンスチームがAzure Synapse Analytics(データウェアハウス)でAzure Data Lake Storage Gen2(ADLS Gen2)に保存されたパーケット形式のデータを分析しています。「日次バッチ処理で毎晩10TB のデータをロード」「クエリのスキャン効率が徐々に低下」という課題が発生しました。原因として最も可能性の高いものと改善案はどれか?

A.パーケットファイルが日々小分割化(多数の小さいファイル)され、メタデータオーバーヘッドが増加している。ファイルを定期的に統合(コンパクション)すべき← 正解
✓ 正解です。日次バッチで小さいファイルが増加するとメタデータ管理の負荷が増え、クエリプランの最適化が困難になります。定期的なコンパクション(ファイル統合)により、パーティション単位のファイル数を削減し、スキャン効率を改善します。
B.ADLS Gen2のアクセス層がCoolアクセス層に自動遷移し、読み取りレイテンシが増加している。ホットアクセス層に戻すため、キャッシュレイヤーを導入すべき
✗ ADLS Gen2でもBlob Storageと同様にライフサイクル管理ポリシーによるアクセス層の自動遷移(Hot→Cool→Archive)を設定できます。ただしアクセス層の遷移が「スキャン効率の徐々の低下」の根本原因にはなりにくく、分析クエリ性能の問題とは別の課題です。この選択肢は根本原因として不適切です。
C.Synapse Analyticsのスター型スキーマ設計に誤りがあり、分析クエリの複雑度が増加している。テーブル統合により正規化度を上げるべき
✗ スキーマ設計の問題はクエリプランの複雑度に影響しますが、スキャン効率の「徐々の低下」とは異なります。スキーマ問題は導入時に顕在化するはずです。
D.パーケットファイルの圧縮方式が不効率な設定のままで、I/O負荷が増加している。Snappy圧縮からGzip圧縮に変更すれば読み取り効率が向上する
✗ Snappyは高速展開で読み取りに適し、Gzipは圧縮率が高い代わりに展開が遅いため、スキャン効率を低下させます。むしろSnappyが分析ワークロードに推奨されます。

この問題のポイント

日次バッチで小さいファイルが増加するとメタデータ管理の負荷が増え、クエリプランの最適化が困難になります。定期的なコンパクション(ファイル統合)により、パーティション単位のファイル数を削減し、スキャン効率を改善します。

DP-900:Microsoft Azure Data Fundamentals の問題一覧