Azure認定資格 WEB問題集&徹底解説

DP-900:Microsoft Azure Data Fundamentals

正解 D問題
分野1:データの主要概念の説明 タスクステートメント1.2:データストレージのオプションの特定
合格に向けて、もっと深く学習する
豊富な問題と詳細なAzureサービス解説を、1 時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
ある小売企業は、オンラインストアのクリックストリームログを Azure Data Lake Storage に蓄積し、データレイク上の分析エンジン(Apache Spark など)で集計する計画である。ログ 1 件には 200 を超える項目があるが、日々の集計クエリが参照するのは毎回そのうちの数項目だけである。ストレージ容量と、クエリごとに読み込むデータ量の両方をできるだけ小さくしたい。
この要件に最も適したファイル形式はどれか。
  • Avro
  • CSV
  • JSON
  • Parquet
解説 頻出度★★★★★
この問題は、「項目が 200 を超える × 毎回数項目しか読まない × 容量も読み込み量も小さくしたい」という要件から、列指向で圧縮効率の高い Parquetを導けるかがポイント。同じく圧縮されたバイナリ形式であるAvro(行ベース)との区別が分かれ目です。

A. Avro

Avro は Apache プロジェクトの行ベース(行指向)のバイナリ形式です。データの構造を JSON のヘッダーに持ち、Learn も「データを圧縮し、必要なストレージとネットワーク帯域幅を最小限に抑えるのに優れた形式」と説明しているため、容量を小さくする要件だけなら満たせます。
しかしデータはレコード(行)単位でブロックに格納されるため、200 を超える項目のうち数項目しか使わないクエリでも行ごと全項目を読み込むことになります。「クエリごとに読み込むデータ量を小さくする」要件を満たせません。

B. CSV

CSV は、人間が判読でき幅広いアプリケーションから扱える区切りテキスト形式ですが、Learn が述べるとおり人間が判読できる形式は記憶領域や処理には最適化されていません。
行単位のテキストなので、数項目だけを集計する場合でも各行を全項目分読み取って区切り文字で分解する必要があり、容量・読み込み量の両方で不利です。

C. JSON

JSON は階層的なドキュメント構造で構造化・半構造化データの両方を表せる柔軟なテキスト形式で、クリックストリームログの出力形式としても身近です。
しかしオブジェクト(ログ 1 件)ごとに項目名を毎回テキストで書き込むため容量がかさみ、必要な項目だけを使う場合も各オブジェクト全体を読んで解析しなければなりません。容量・読み込み量の両方で要件に反します。

正解

D. Parquet

Parquet は、データレイクやレイクハウスで広く使用されている列指向(列形式)のファイル形式です。行グループの中で各列のデータがまとめて格納され、ファイル内のメタデータを使って必要な列のデータだけを取得できるため、200 超の項目のうち数項目だけを参照するクエリでは読み込むデータ量を大幅に絞れます。
さらに効率的な圧縮とエンコードをサポートしており、同じ列の似た値をまとめて圧縮できるためストレージ容量も小さくなります。容量と読み込み量の両方を小さくする要件を満たす唯一の選択肢です。

これだけ覚える(記憶フック)
一部の列だけ読む分析は列指向の Parquet。Avro は圧縮バイナリでも行ベース。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
ログ 1 件に 200 超の項目があり、クエリが参照するのは毎回数項目 必要な列だけを読める列指向の形式が有利。行単位で格納する形式では全項目を読むことになる
→選択肢(D)は候補
ストレージ容量を小さくしたい テキスト形式の CSV・JSON は人間が判読できる反面、記憶領域や処理に最適化されていない
→選択肢(B・C)を消す
クエリごとに読み込むデータ量も小さくしたい Avro は圧縮されたバイナリで容量は小さいが行ベースのため、数項目のために全項目を読む
→選択肢(A)を消す
容量と読み込み量の両方を最小化 列ごとにまとめて格納し、圧縮とエンコードも効く Parquet
→選択肢(D)が正解
ひっかけポイント
  • Avro も「圧縮されたバイナリ形式」で容量は小さいため正解に見える。決め手は行ベースか列ベースかで、数項目だけ読む集計なら列指向の Parquet
  • JSON はクリックストリームの出力形式として身近で半構造化データも表せるが、書き出しやすさと分析時の読み込み効率は別の評価軸
  • 「データレイクには何でも置ける」から形式は問わない、と考えない。問われているのは置けるかどうかではなく、容量と読み込み量を最適化できるか
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
「データレイク上のファイルに対してACID トランザクションやデータのバージョン管理、確実な更新が必要」 Parquet の上にトランザクション ログを加えたDelta Lake が正解に変わる。
「イベントを1 件ずつ(行単位で)書き込み、データの構造情報と一緒にコンパクトに受け渡したい」 構造を JSON のヘッダーに持つ行ベースのAvro が正解に変わる。
「人間が判読でき、幅広いアプリケーションやサービスから読み込める構造化データにしたい」 CSV(区切りテキスト)が正解に変わる。
「顧客ごとに入れ子の連絡先リストを持つような階層構造のデータを、人が読める形でやり取りしたい」 JSON が正解に変わる。
関連サービスの解説 Azure Data Lake
リファレンス この問題を解くために必要な知識を扱う公式ドキュメントです。
知識項目 公式ドキュメント
区切りテキスト・JSON と最適化されたファイル形式(Parquet は列形式、Avro は行ベース、Delta Lake)の違い ファイル ストレージについて調べる - Training | Microsoft Learn
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 0%
No.11 解説
ある小売企業は、オンラインストアのクリックストリームログを Azure Data Lake Storage に蓄積し、データレイク上の分析エンジン(Apache Spark など)で集計する計画である。ログ 1 件には 200 を超える項目があるが、日々の集計クエリが参照するのは毎回そのうちの数項目だけである。ストレージ容量と、クエリごとに読み込むデータ量の両方をできるだけ小さくしたい。
この要件に最も適したファイル形式はどれか。
  • Avro
  • CSV
  • JSON
  • Parquet

(会員限定)当問題の評価をお願いします。改善に活用します。