Azure認定資格 WEB問題集&徹底解説
DP-900:Microsoft Azure Data Fundamentals
問題文と選択肢
Lakehouse のテーブルとして OneLake へデータを書き込む際、Fabric の分析エンジンが共通して採用する保存形式として最も適切なものはどれか。
- Avro
- CSV
- Parquet
- Delta Lake
A. Avro
Avro は行指向のバイナリ形式で、データ構造を表すスキーマ(JSON で記述)とデータを一緒に持ち、レコードを行単位で格納します。メッセージやイベントのシリアル化・受け渡しによく使われます。
しかし Avro は 1 つ 1 つのファイルの書式にすぎず、トランザクションログを持たないため、複数エンジンからの書き込みを一貫したテーブルとして管理する仕組みがありません。分析向けの列指向でもなく、Fabric の Lakehouse がテーブルを保存する形式でもありません。
B. CSV
CSV は値を区切り文字で並べ、1 行 1 レコードで表す行指向のテキスト形式です。人が読めて扱いやすい反面、列の型情報を持たず、圧縮効率や列単位の読み取りにも優れません。
トランザクションログも無いため、複数エンジンからの書き込みに対する一貫性を保証できず、Lakehouse のテーブル形式にはなりません。CSV は取り込み元のファイルとして Lakehouse の Files 領域に置かれることはあっても、テーブルとして保存される形式ではありません。
C. Parquet
Parquet は列指向のオープンなファイル形式で、圧縮効率と列単位の読み取りに優れた分析用途の定番です。実は Delta Lake のテーブルも、データ本体は Parquet ファイルとして保存されています。
ただし Parquet ファイル単体には、どの書き込みが確定したかを記録するトランザクションログが無いため、複数のエンジンが書き込んだときに書き込み途中のファイルを読んでしまうといった不整合を防げず、スキーマの適用やバージョン管理もできません。Fabric のエンジンが共通して採用する「テーブル」の保存形式は、Parquet にトランザクションログを加えた Delta Lake です。
D. Delta Lake
Delta Lake は、Parquet のデータファイルに、変更履歴を記録するトランザクションログ(_delta_log フォルダー)を組み合わせたオープンソースのテーブル形式です。Learn は「Parquet ファイルの上にリレーショナル ストレージ機能を追加し、スキーマとトランザクションの一貫性を適用するテーブルを定義できる」と説明しています。
またFabric Lakehouse は OneLake に Delta Lake 形式でデータを格納し、Delta Lake は Microsoft Fabric と Azure Databricks の両方で使われる標準的なレイクハウス形式とされています。Spark ノートブックで書き込んだテーブルを SQL 分析エンドポイントや Power BI から一貫して読めるのは、すべてのエンジンがこの形式を共有しているからです。
Fabric も Databricks もテーブルは Delta Lake。中身は Parquet、一貫性はトランザクションログが担う。
正解への思考ルート
問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。| 要件 | 判断ポイント |
|---|---|
| Spark・SQL 分析エンドポイント・Power BI から同じデータにアクセスする | Fabric の全エンジンが共有する OneLake 上のテーブルの保存形式はDelta Lake →選択肢(D)が正解 |
| 異なるエンジンで書き込んでも一貫してテーブルとして読み書きしたい | 一貫性を担うのはトランザクションログ。ファイル形式単体の Parquet にはログが無い →選択肢(C)を消す |
| 分析エンジンが共通して採用する保存形式 | Avro・CSV は行指向で分析向けの列指向ではなく、トランザクションログも持たない →選択肢(A・B)を消す |
| Lakehouse のテーブルとして OneLake へ書き込む | Lakehouse はTables(Delta テーブル)とFiles(任意形式のファイル)を分けて持つ。テーブルとして書くなら Delta →選択肢(D)が正解 |
ひっかけポイント
- Delta Lake のデータ本体は Parquet なので「Parquet でも同じ」と思いがちだが、テーブルとしての一貫性(トランザクション・スキーマの適用・バージョン管理)は _delta_log のトランザクションログが担う。Parquet 単体では実現できない
- Avro は「スキーマを持つバイナリ形式」なのでテーブル向きに見えるが、行指向でトランザクションログも無い。主な用途はメッセージやイベントのシリアル化
- 問われているのは「ファイル形式」と「テーブル形式」の区別。Parquet・Avro・CSV は1 つ 1 つのファイルの書式、Delta Lake はファイル群とログをまとめて 1 つのテーブルとして扱う形式
- Fabric 固有の話と思いがちだが、Azure Databricks もネイティブのストレージ形式は Delta Lake。「Fabric でも Databricks でもレイクハウスのテーブルは Delta」と押さえる
出題バリエーション
同じ知識が本番では条件を変えて出題されます。| 問題文がこう変わったら | 正解はこう変わる |
|---|---|
| 「テーブル管理は問わず、分析用に列単位の読み取りと圧縮効率に優れたファイル形式を選べ」 | Parquet が正解に変わる。 |
| 「イベントやメッセージを行単位でシリアル化し、スキーマ付きでやり取りしたい」 | Avro が正解軸に。 |
| 「Spark ではなくT-SQL で構造化データを扱い、強いスキーマの適用と多数の同時ユーザーをサポートしたい」 | Fabric Warehouse が正解軸に(データは同じく OneLake 上に置かれる)。 |
| 「Azure Databricks のテーブルでトランザクション・スキーマの適用・バージョン管理を使いたい」 | こちらもDelta Lake(Databricks のネイティブ形式)が正解。 |
| 補足として、「既に Apache Iceberg 形式で書かれたテーブルを Fabric から参照したい」 | OneLake のテーブル形式の仮想化(メタデータ変換)で扱えるが、Fabric のエンジンが書き込む既定の形式は Delta Lake のまま。 |
リファレンス
この問題を解くために必要な知識を扱う公式ドキュメントです。| 知識項目 | 公式ドキュメント |
|---|---|
| Delta Lake(Parquet+トランザクションの一貫性)と Fabric Lakehouse・Azure Databricks の保存形式 | 分析データ ストアを調べる - Training | Microsoft Learn |
Lakehouse のテーブルとして OneLake へデータを書き込む際、Fabric の分析エンジンが共通して採用する保存形式として最も適切なものはどれか。
- Avro
- CSV
- Parquet
- Delta Lake
次の問題前の問題
会員機能
お役立ち情報
姉妹サイト
AWS
- CLF:クラウドプラクティショナー
- SAA:ソリューションアーキテクト-アソシエイト
- AIF:AIプラクティショナー
- SOA:CloudOpsエンジニア-アソシエイト
- DVA:デベロッパー-アソシエイト
- DEA:データエンジニア-アソシエイト
- MLA:機械学習エンジニア-アソシエイト
- SAP:ソリューションアーキテクト-プロフェッショナル
- DOP:DevOpsエンジニア-プロフェッショナル
- AIP:生成AIデベロッパー-プロフェッショナル
- SCS:セキュリティ-専門知識
Microsoft Azure
- AZ-900:Microsoft Azure Fundamentals
- AZ-104:Microsoft Azure Administrator
- AI-901:Microsoft Azure AI Fundamentals
- DP-900:Microsoft Azure Data Fundamentals