Data Engineer Associate — 第 16

DEA 直前仕上げ — 方式選定・出題範囲対応表・数値総まとめ・引っかけの型

読了 22確認 12更新 2026-08-09

この章で学ぶこと

  • 件数と頻度から取り込み方式を選び分ける
  • 章と公式セクションの対応を確認する
  • 既定値・上限値・構文をまとめて見直す
  • 捏造されたオプション名を選択肢から外す
  • 複数選択問題を排他ペアで解き切る

この章に出てくる用語

マネージドコネクタ
ソースごとの認証や CDC のコードを自分で書かずに済ませる仕組みです。Salesforce や SQL Server に対応し、接続・取り込みパイプライン・宛先ストリーミングテーブルの 3 要素で構成されます。
Auto Loader
クラウドストレージへ次々と届くファイルを取りこぼさず一度だけ処理する仕組みです。format に cloudFiles を指定し、検出済みファイルをチェックポイント内の RocksDB で追跡し続けます。
COPY INTO
同じロード用の SQL を何度実行しても重複行を作らないための取り込みコマンドです。取り込み済みのファイル名を Delta のメタデータに記録しており、force を true にしない限り再ロードしません。
Run if
上流タスクが失敗したときに後片付けや通知だけを走らせたい、という要求に答える設定です。All succeeded など 6 種あり、条件が外れると Upstream failed か Excluded の状態になります。
タスク値
タスクをまたいで件数や日付といった小さな値を渡すための公式の仕組みです。dbutils.jobs.taskValues.set で書き込み、JSON にしたときの大きさは 48 KiB までに制限されています。
Liquid Clustering
パーティション設計をやり直すたびにテーブル全体の書き換えが要る問題を解く配置機能です。キーは最大 4 列で、ALTER TABLE の CLUSTER BY で後から変更でき、ZORDER とは併用できません。
行フィルタ
同じテーブルを見せながら人によって見える行を絞りたいときに使う機能です。Unity Catalog の SQL UDF が BOOLEAN を返し、true になった行だけがクエリ結果に残る仕組みになっています。
Automation Bundles
dev と prod で設定がずれる事故を防ぐための宣言的なデプロイ機能です。databricks.yml の resources に資産を書き、targets に環境差分を書いて -t オプションで切り替えます。

取り込み方式の選定フロー — 件数・頻度・再アップロードから方式を決める

取り込みの設計で最初に迷うのは「どの仕組みで運ぶか」です。いきなり Structured Streaming を自分で書くと、認証・リトライ・スキーマ進化・API のレート制限まで全部を自前で面倒みることになります。ドキュメントが示す進め方は逆で、最もマネージドな層から始め、その層が要件を満たさないときだけ下の層へ降りるというものです。試験ではこの順序そのものが問われます。

4 つの層を「何が自動化されるか」で並べる

代表例自動化される範囲下へ降りる理由
マネージドコネクタSalesforce / Workday / SQL Server / MySQL / PostgreSQLソース固有の認証、CDC、リトライ、スキーマ進化ソースが未対応
標準コネクタAuto Loader (`cloudFiles`)、Kafka / Kinesis / Pub/Sub増分検出、チェックポイント、スキーマ推論宣言的な依存管理や品質チェックが欲しい
Lakeflow パイプラインストリーミングテーブル、マテリアライズドビュー依存解決、増分更新、Expectations、監視枠の外に出る細かい制御が要る
Structured Streaming`readStream` / `writeStream`耐障害性と exactly-once の保証だけこれ以上は降りられない

マネージドコネクタが作る宛先はストリーミングテーブル、つまり増分処理に対応した Delta テーブルです。外部表でも一時ビューでもありません。SaaS ソースの構成は「接続 + 取り込みパイプライン + 宛先ストリーミングテーブル」の 3 要素で、データベースの CDC ではここに取り込みゲートウェイとステージング用の Unity Catalog ボリュームが加わります。ゲートウェイはソース側の変更ログが切り詰められる前に変更を捕まえる必要があるため継続的に稼働し、取り込みパイプラインがアイドルでも課金が発生します。列の増減は既定で自動的に扱われ、ソースで消えた列は宛先から物理削除されずに非アクティブになります。

COPY INTO と Auto Loader は「頻度」と「件数」で割れる

比較軸COPY INTOAuto Loader
実行モデルSQL のバッチコマンドStructured Streaming のソース
重複防止の仕組み取り込み済みファイル名をテーブルのメタデータに記録チェックポイント内の RocksDB で検出済みファイルを追跡
ターゲット表事前に存在している必要があるストリームの書き込み先として作れる
規模数千件規模の定期ロード向き数百万件でも通知モードなら一定コスト
同時実行入力ファイル集合が互いに素なら並行できるチェックポイント単位で 1 本
SQL だけで拡張したいとき`CREATE STREAMING TABLE` と `read_files` が推奨代替ストリーミングテーブルの裏側で動く本体

再アップロードされたファイルの扱いが分岐点になる

  • COPY INTO はファイル名で照合します。中身が書き換わっても取り込み済みならスキップされ、再ロードするには `COPY_OPTIONS ('force' = 'true')` を明示します。既定は `false` です。
  • Auto Loader は `cloudFiles.allowOverwrites` が既定 `false` で、上書きされたファイルを再処理しません。
  • 重複排除の追跡期間は `cloudFiles.maxFileAge` です。短くしすぎると追跡から外れた古いファイルが新規として再検出され、かえって重複取り込みになります。
  • まだ届いていないファイルだけを処理したいなら `cloudFiles.includeExistingFiles` を `false` にします。既定は `true` で、開始時点の既存ファイルも対象です。
  • 処理済みファイルを片付けるには `cloudFiles.cleanSource` に `MOVE` を指定し、退避先を `cleanSource.moveDestination` で与えます。移動元と移動先は同じバケットまたはコンテナ内に限られます。既定は `OFF` です。

ファイル検出モードは規模で切り替える

ディレクトリリスティングは既定のモードで、LIST API を毎回叩くためファイル数に比例して検出コストとレイテンシが増えます。ファイル通知モードはクラウドのオブジェクト作成イベントを購読するため、数百万ファイルでもコストがほぼ一定です。ただしクラウド側はイベントの 100% 配信を保証しないので、欠損が許されない要件では `cloudFiles.backfillInterval` を設定して定期バックフィルを併用します。検出モードはストリームの再起動をまたいで切り替えられ、その際も exactly-once は維持されます。読み取り元の外部ロケーションには `READ FILES` 権限が必要で、Unity Catalog の外部ロケーションでファイルイベントを有効にしておくと、ストリーム設定時に追加の権限付与が不要になります。

4 つの質問で方式が決まる

  1. ソースは SaaS か、変更ログを持つデータベースか。該当すればマネージドコネクタで終わりです。
  2. ファイルがオブジェクトストレージに並ぶか。並ぶなら Auto Loader、SQL だけで完結させたいなら COPY INTO です。
  3. 到着は連続か、1 日数回か。数回なら `trigger(availableNow=True)` をジョブのスケジュールから起動するのが最も安く済みます。連続で低レイテンシが要るなら既定のマイクロバッチトリガーのまま常時稼働させます。いつ来るか分からないファイルを待つなら、ジョブ側の File arrival トリガーを使います。検知は 1 分ごとのベストエフォートです。
  4. ファイル数は数百万を超えるか。超えるならディレクトリリスティングではなくファイル通知モードを選びます。

この 4 つは必ず上から順に当てます。件数から入ると Salesforce のような SaaS ソースにまで Auto Loader を当ててしまい、レイテンシから入ると常時稼働のストリームばかり増えます。設問も「ソースは何か」「どれくらいの規模か」の順で情報を出してくるので、読む順番と判断の順番を揃えると迷いが減ります。

確認 — 穴あけ 3

0 / 3

空欄を押すと選択肢が出ます。間違えても減点はありません。

ドキュメントは取り込み方式を選ぶとき、最も な層から始め、要件を満たさなければ下の層へ降りることを推奨しています。

COPY INTO で取り込み済みのファイルを強制的に再ロードするには、COPY_OPTIONS の を true にします。

数百万ファイル規模で LIST API のコストを避けるには、Auto Loader を モードで動かします。

DEA 出題範囲対応表 — 章 × 公式セクション × 演習問題 ID のトレーサビリティ

直前期にやるべきことは、新しい知識を足すことではありません。自分が落とした問題を、公式セクションのどこに属するかで束ねることです。演習カテゴリ ID は公式セクション名を英小文字のスラッグにしたもので、模試の結果画面に出る ID を控えれば読み直すべき章が絞れます。

公式セクションと本書の章の対応

公式セクション戻る章演習カテゴリ ID落としたときの典型症状
Databricks Intelligence Platform第 1〜3 章`databricks-intelligence-platform`Single Node とジョブコンピュートの使い分けが出てこない
Data Ingestion and Loading第 4〜6 章`data-ingestion-and-loading``COPY INTO` と Auto Loader の役割を逆に覚えている
Data Transformation and Modeling第 7〜9 章`data-transformation-and-modeling`Expectations の 3 アクションと Delta の DDL 制約が混ざる
Working with Lakeflow Jobs第 10〜11 章`working-with-lakeflow-jobs`Run if の 6 条件と、条件未達時の状態名が出てこない
Implementing CI/CD第 12〜13 章`implementing-ci-cd``databricks.yml` のキーと CLI のサブコマンドが混ざる
Troubleshooting, Monitoring, and Optimization第 14 章`troubleshooting-monitoring-and-optimization`VACUUM の既定値や統計を取る列数など、数値だけが抜ける
Governance and Security第 15 章`governance-and-security`行フィルタと列マスクの構文が入れ替わる

セクションごとに「取りこぼしやすい形」が違う

  • Data Ingestion and Loading は既定値の暗記が中心です。`maxFilesPerTrigger` や `FORMAT_OPTIONS` と `COPY_OPTIONS` の区別など、覚えていれば取れる問題の比率が最も高い領域です。
  • Working with Lakeflow Jobs は状態遷移と上限値です。Run if 未達時の状態、Run Job タスクの入れ子の深さ、SQL タスクが要求するウェアハウス種別が狙われます。
  • Troubleshooting, Monitoring, and Optimization は数値と「どちらが先か」です。VACUUM とタイムトラベルの関係、Liquid Clustering とパーティショニングの排他関係が定番です。
  • Governance and Security は SQL 構文そのものです。付与と解除で書き方が違う点、Unity Catalog では使えない構文がある点が狙われます。
  • Implementing CI/CD は「バンドルは便利だ」で済む設問ばかりではありません。既存クラスタ ID を `lookup:` で解決する、構造化した値に `type: complex` を使う、`mode: production` が何を検証するか、変数値の解決順序はどれか、といった知識問題が並びます。
  • Data Transformation and Modeling はコードを読ませる問題が混ざります。`when` の評価順に加え、`outputMode` の制約や `MERGE INTO` の失敗条件など、実行結果を頭の中で追う練習が要ります。
  • Databricks Intelligence Platform はコンピュートの選び分けに加え、Databricks Connect、init script の保存先、プールとオートスケールの関係まで広がります。

何が問われているのかを 4 分類で見る

本書が分析した DEA の実問題 850 問を「何を答えさせているか」で分類すると、次のようになりました。

問われ方割合典型的な問い
概念15.5%メダリオンの Silver 層の役割はどれか
仕組み33.6%Auto Loader が同じファイルを二度処理しないのはなぜか
操作・構文30.9%行フィルタを外す ALTER 文はどれか
設定値の暗記20.0%VACUUM の既定の保持期間は何時間か

操作・構文と設定値の暗記だけで 50.9% を占めます。直前期の投資先は、次の第 3 節にまとめた数値と構文です。概念問題は落としにくく伸びしろも小さいので後回しで構いません。

復習の順番と、この表の限界

  1. 演習アプリでカテゴリ別に解き、正答率が最も低いカテゴリを 2 つ選びます。
  2. そのカテゴリを上の表で公式セクションに変換し、対応する章へ戻ります。
  3. 章の数値と既定値だけを読み直し、第 3 節の表と突き合わせます。表にない数値が章にあれば、そこが自分の穴です。
  4. 同じカテゴリを解き直し、間違いが「知識不足」か「引っかけ」かを仕分けます。後者なら第 4 節です。

ただし 1 つの設問が複数のセクションにまたがることがあります。「Auto Loader を実行するユーザーに必要な権限」は取り込みに見えて、答えは外部ロケーションへの `READ FILES` というガバナンスの知識です。カテゴリ ID は入口にすぎません。なお受験料や申込方法といった受験情報は本書では扱わず、演習アプリ側の解説記事と無料問題集に置いています。

確認 — 穴あけ 3

0 / 3

空欄を押すと選択肢が出ます。間違えても減点はありません。

本書が分析した DEA の実問題 850 問の分類では、操作・構文と設定値の暗記を合わせて全体の約 を占めます。

Auto Loader と COPY INTO を扱う章は、公式セクションの に対応します。

VACUUM や Liquid Clustering の数値は、公式セクションでは に分類されます。

数値・既定値・構文の総まとめ(直前チェック)

この節は暗記用です。前日に上から指でなぞってください。2 周目は右の欄を隠し、値だけで症状を言えるか試します。数値そのものより、数値と症状の結びつきが問われます

Auto Loader の既定値

オプション既定値知らないと起きること
`cloudFiles.maxFilesPerTrigger`1000バックログ消化のバッチ数を見誤る
`cloudFiles.maxBytesPerTrigger`既定なし大きいファイルで 1 バッチが肥大化
`cloudFiles.inferColumnTypes`falseJSON / CSV の全列が文字列になる
`cloudFiles.includeExistingFiles`true既存の大量ファイルを全部取り込む
`cloudFiles.allowOverwrites`false上書きされたファイルが反映されない
`cloudFiles.validateOptions`true綴り違いで起動に失敗
`cloudFiles.schemaEvolutionMode`addNewColumns新列で停止する理由が分からない

スキーマ推論のサンプリングは最初に検出した 50 GB または 1000 ファイルのうち先に達した方までです。`schemaEvolutionMode` は `addNewColumns` / `addNewColumnsWithTypeWidening` / `rescue` / `failOnNewColumns` / `none` の 5 種類で、古い教材は先頭を除く 4 種類としています。int から long のような型の拡張まで許すのは 2 番目だけです。既定の `addNewColumns` は新列で `UnknownFieldException` を投げて止まり、再起動すると続きから取り込みます。スキーマに合わない値は `rescuedDataColumn`(既定名 `_rescued_data`)へ JSON で退避されます。`cloudFiles.schemaLocation` は推論を使うなら必須です。

COPY INTO の構文と上限

COPY INTO target_table
FROM ( SELECT CAST(c1 AS DECIMAL(10,2)), c2 FROM 's3://bucket/path' )
FILEFORMAT = CSV
FORMAT_OPTIONS ('header' = 'true', 'multiLine' = 'true')
COPY_OPTIONS ('mergeSchema' = 'true')
  • `FORMAT_OPTIONS` はリーダーへ渡す引数で、`header` や `multiLine` はこちらです。
  • `COPY_OPTIONS` が持つのは `force` と `mergeSchema` の 2 つだけで、どちらも既定は `false` です。
  • `FILES` 句は最大 1000 ファイルまで列挙でき、`PATTERN` とは同時に指定できません。
  • `VALIDATE ALL` や `VALIDATE 20 ROWS` は書き込まずに検証し、プレビューは 50 行以下です。
  • `BY POSITION` は列を序数位置で対応付けます。ヘッダー行のない CSV 専用です。
  • ターゲット表は自動作成されません。

Delta のメンテナンスと履歴

項目知らないと起きること
VACUUM の既定保持期間7 日 = 168 時間`RETAIN 1 HOURS` が例外になる
安全機構の解除`spark.databricks.delta.retentionDurationCheck.enabled = false`短縮できないと思う
ログの既定保持期間30 日 (`delta.logRetentionDuration`)タイムトラベル範囲を誤る
統計を取る列数先頭 32 列 (`delta.dataSkippingNumIndexedCols`)33 列目では効かない
Liquid Clustering のキー最大 4 列5 列目を足して失敗する
Liquid Clustering の一般提供Databricks Runtime 15.4 LTS 以上版の下限を答えられない
自動 Liquid Clustering15.4 LTS 以上 + Unity Catalog マネージドテーブル + 予測的最適化外部表で有効化しようとする
他レイアウトとの関係パーティショニング・ZORDER と併用不可移行手順を誤る

版の下限は出題時期で揺れます。現行ドキュメントは一般提供を 15.4 LTS 以上としますが、プレビュー時代の 13.3 LTS 以上を正解とする設問も残っています。

RESTORE TABLE sales TO VERSION AS OF 5;
SELECT * FROM sales TIMESTAMP AS OF '2026-01-01T00:00:00';
ALTER TABLE sales CLUSTER BY (region, order_date);
CONVERT TO DELTA parquet.`/mnt/raw/sales`;

Change Data Feed はテーブル側で `delta.enableChangeDataFeed = true`、読み取り側で `readChangeFeed` と `startingVersion` を指定します。記録は有効化したあとの書き込みからで、遡れません。付与される列は `_change_type` / `_commit_version` / `_commit_timestamp` の 3 つで、SQL では `table_changes('sales', 5)` を使います。

変換とストリーミングの必修事項

項目値または構文
`outputMode``append` / `update` / `complete` の 3 つ
ウォーターマークなしの集約 + `append`起動時に `AnalysisException`
ウォーターマークの宣言`withWatermark("event_time", "10 minutes")`
`checkpointLocation` 未指定の `writeStream`起動時に `AnalysisException` で失敗
Expectations の違反時アクション警告のみ / `ON VIOLATION DROP ROW` / `ON VIOLATION FAIL UPDATE`
ストリーミングテーブルとマテリアライズドビュー前者は増分追記、後者(旧 LIVE TABLE)は再計算
生成列`event_date DATE GENERATED ALWAYS AS (CAST(event_ts AS DATE))`
`MERGE INTO` の前提ターゲットが Delta。1 ターゲット行に複数ソース行が一致すると例外

`complete` は毎バッチ全集約を書き出すためファイルシンクでは使えず、`update` はバッチ writer には存在しません。

Lakeflow Jobs の上限と既定

項目
1 ジョブのタスク数最大 1,000 (100 超は新しい CLI/SDK が要る)
ワークスペースの同時タスク実行2,000
Run job / For each の親タスクの同時実行750 (2,000 とは別枠)
Maximum concurrent runs の既定1
キューイング既定で有効、最大 48 時間待機
タスク値の JSON サイズ48 KiB
For each の Concurrency の既定1
For each の Inputs直接記述は 5,000 文字、タスク値参照なら 48 KiB
Run Job タスクの入れ子3 段を超える入れ子は非対応。循環依存も不可
SQL タスクのコンピュートサーバーレスまたは Pro の SQL ウェアハウス (Classic 不可)
ノートブック出力全セル合計 30 MB、単一セル 8 MB
リトライの設定名`max_retries` / `min_retry_interval_millis` / `retry_on_timeout`

`Run if` は 6 種類です。`All succeeded`(既定)/ `At least one succeeded` / `None failed` / `All done` / `At least one failed` / `All failed`。狙われるのは条件が満たされなかったときの状態です。上の並びで成功系の 3 つが未達なら `Upstream failed`、失敗系の 2 つが未達なら `Excluded` になります。`All done` は上流の結果によらず必ず実行されます。

dbutils.jobs.taskValues.set(key="record_count", value=1500)
# 下流タスクのパラメータ欄: {{tasks.count_rows.values.record_count}}
# For each のネストタスク内では {{input}} / {{input.region}}

If/else 条件タスクでは `==` と `!=` が文字列比較なので `12.0 == 12` は false ですが、`>=` などは数値比較なので `12.0 >= 12` は true です。必須フィールドは `left` / `op` / `right` の 3 つです。

CI/CD — databricks.yml と CLI

項目値または構文
構成ファイル`databricks.yml`(旧 `bundle.yml`)
主なトップレベルキー`bundle` / `variables` / `resources` / `targets` / `include` / `workspace`
環境差分`targets` 配下で `variables` と `resources` を上書きし `-t prod` で切り替える
構造化した値変数定義に `type: complex` を書く
既存オブジェクトの ID 解決変数定義に `lookup:` を書き `cluster:` に名前を指定する
変数値の解決順序`--var` → `BUNDLE_VAR_` 環境変数 → `variable-overrides.json` → `targets` の変数 → `default`
`mode: production` の検証パイプラインがすべて `development: false` か、Git ブランチがターゲット指定と一致するか
主なコマンド`bundle validate` / `bundle deploy` / `bundle run <key> -t prod` / `bundle generate job`

ガバナンスとコンピュート

操作構文または要件
行フィルタの付与と解除`ALTER TABLE t SET ROW FILTER fn ON (col)` / `DROP ROW FILTER`(列は書かない)
列マスクの付与と解除`ALTER TABLE t ALTER COLUMN c SET MASK fn` / `DROP MASK`
DENYUnity Catalog では未サポート。`hive_metastore` 配下のみ
ジョブ監視`system.lakeflow.jobs` と `job_run_timeline`。コストは `system.billing.usage` と結合
init script の保存先Unity Catalog ボリュームまたはワークスペースファイル (DBFS は非推奨)
Single Nodeドライバのみ。pandas や小規模 ML 向け
プールとオートスケールプール優先で割り当て、不足分だけ新規 VM を起動
ローカル SSD と EBS前者は高 IOPS で揮発、後者は低速で永続

確認 — 穴あけ 3

0 / 3

空欄を押すと選択肢が出ます。間違えても減点はありません。

cloudFiles.maxFilesPerTrigger の既定値は ファイルです。

VACUUM を引数なしで実行したときの既定の保持期間は 時間です。

バンドル構成の記述が正しいかをデプロイ前に確認するコマンドは databricks bundle です。

引っかけの型 — 捏造オプション名の見分け方と複数選択問題の攻略

知識はあるのに 4 択で外す状態には原因があります。誤答の選択肢は数種類の型を使い回して作られており、型を覚えれば知識があいまいでも選択肢を 2 つまで絞れます。

型 1: 存在しないオプション名

最も多い型です。もっともらしい英単語を組み合わせた、実在しない名前が並びます。知らない名前は「まだ習っていない機能」ではなく「捏造」を先に疑ってください。Auto Loader のオプションは必ず `cloudFiles.` で始まりますが、プレフィックスが正しいことは実在を意味しません。`cloudFiles.onViolation` は存在せず、`ON VIOLATION` は Expectations 側のキーワードです。

捏造されがちな名前実在する正しい名前
`enableCDF` / `changeDataFeed` / `fromVersion``readChangeFeed` と `startingVersion`
`COMPUTED FROM` / `VIRTUAL AS``GENERATED ALWAYS AS (式)`
`MASKED BY` / テーブル単位の `WITH MASK`列定義の直後に書く `MASK 関数名`
`retry_count` / `backoff_factor``max_retries` と `min_retry_interval_millis`
If/else の単一 `expression` フィールド`left` / `op` / `right` の 3 つ
`%git` マジックコマンドGit UI、Databricks CLI、Repos REST API
`databricks bundle test` / `bundle check``databricks bundle validate`
`dbutils.lineage.start()`リネージは Unity Catalog が自動収集する
`dbutils.jobs.taskValues.emit()``.set()` と `.get()`

型 2: 「存在しない」と「存在するが対象外」の混同

型 1 の裏返しで、実在する機能を「そんな構文はない」と切る失点です。`DENY` は Databricks SQL に実在しますが、Unity Catalog では非対応で `hive_metastore` 配下にのみ適用されます。捏造だと決めつけると、正解が「Unity Catalog では未サポート」だったときに落とします。切るときは「無い」のか「あるが対象外」なのかを言葉にします。

型 3: 名前空間の取り違え

実在する 2 つの入れ物のうち、間違った方に正しいオプションを入れて見せる型です。名前は正しいので、うろ覚えだと引っかかります。

  • `header` / `multiLine` / `ignoreCorruptFiles` は `FORMAT_OPTIONS`。`COPY_OPTIONS` に入れると誤りです。
  • CDF はテーブル側が `delta.enableChangeDataFeed`、読み取り側が `readChangeFeed` です。
  • 行フィルタの解除は列を指定しません。列を指定するのは `ALTER COLUMN ... DROP MASK` の側です。
  • Photon の有効化は `spark_version` を `-photon` 付きにするか `runtime_engine` を指定します。Spark conf のキーで切り替える方法はありません。

型 4: 役割の入れ替え

2 つの機能の説明文を丸ごと交換してある型です。ペアで覚えているものほど弱いので、どちらがどちらかを一言で言えるようにしておきます

  • `trigger(once=True)` は単一マイクロバッチで停止、`trigger(availableNow=True)` は複数マイクロバッチに分割して全消化してから停止。後者が後継です。
  • マテリアライズドビューは再計算、ストリーミングテーブルは増分追記。
  • ディレクトリリスティングは LIST 駆動、ファイル通知はイベント駆動。
  • ローカル SSD は高速で揮発、EBS やマネージドディスクは低速で永続。
  • 取り込みゲートウェイはソース DB から変更を抽出する側、取り込みパイプラインは宛先へ適用する側です。

型 5: 数値のすり替えと極端な限定語

正しい数値の周辺に、それらしい別の数値を置く型です。24 時間・168 時間・30 日、100・1,000・2,000 のように、同じ単位で別の正解になり得る数値が混ざります。ここは推理が効かないので、第 3 節の表を数字だけ縦読みして覚えてください。とくに `VACUUM` の 168 時間と `logRetentionDuration` の 30 日は取り違えを誘われます。あわせて「常に」「必ず」「一切」「唯一」が入った記述は疑ってかかります。ただし例外もあります。「For each タスクを入れ子にすることはできない」のように、仕様として本当に例外がない文はそのまま正解になります。限定語は「疑うためのフラグ」であって「消すためのフラグ」ではありません。

複数選択問題の攻略

「2 つ選んでください」の問題は、正解が1 本の軸の両端になっていることが多いという性質があります。Auto Loader のスキーマ進化なら「新しい列を取り込む設定」と「型が合わない値を救う設定」で 1 組です。

  1. まず互いに矛盾する 2 つ (排他ペア) を探し、両方が正解になり得ないことを使って片方を落とします。
  2. 残りのうち、機能のカテゴリが明らかに違うもの (性能の話に混ざったガバナンスの話など) を落とします。
  3. 最後に残った 2 つが「別々の軸をカバーしているか」を確認します。同じことを言い換えただけの 2 つは、たいてい片方が誤りです。

排他関係を知っていると一気に絞れる論点があります。Liquid Clustering とパーティショニングは同一テーブルで併用できません。For each タスクは入れ子にできず、Run Job タスクは 3 段を超えて入れ子にできません。行フィルタはテーブル属性であって権限ではないため、`REVOKE ROW FILTER` のような構文は存在しません。「両方できます」と書かれた選択肢は、排他関係の知識で落とせることが多いのが DEA の特徴です。

決められないときはより狭く具体的な記述を選びます。「Photon は SQL と DataFrame の演算を高速化する」と「Photon はすべてのワークロードを高速化する」なら前者が正解です。Python UDF のように JVM と Python をまたぐ処理では効果が限定的だからです。反転設問にも注意します。「誤っているものを選んでください」では正しい説明が 3 つ並ぶので、設問文の末尾を読んでから選択肢に入る順番を固定します。

時間配分

DEA は 45 問を 90 分で解くため、1 問あたりの平均は 2 分です。5 つの型は数秒で判定できます。捏造名を消し、名前空間を確かめ、極端な限定語を疑うところまでを機械的に済ませ、残った選択肢だけに時間を使います。1 分で決まらない問題は印を付けて先へ進みます。全問を一巡してから戻るほうが確実に点が伸びます。復習では解説の後半まで読みます。捏造オプションは「そのようなオプションは存在しない」と一言だけ書かれることが多く、そこを飛ばすと次も引っかかります。

確認 — 穴あけ 3

0 / 3

空欄を押すと選択肢が出ます。間違えても減点はありません。

Change Data Feed を読むときの読み取り側オプションは で、似た名前の enableCDF は存在しません。

COPY INTO で header や multiLine を渡す先は です。

「常に」「必ず」「一切」のような を含む記述は、まず疑ってから真偽を確かめます。

この章のまとめ

  1. 迷ったら最もマネージドな層から始め、必要な分だけ下へ降りる。
  2. COPY INTO はファイル名で冪等、force を true にすると解除される。
  3. 168 時間・1000 ファイル・48 KiB・4 列は数値のまま覚える。
  4. 知らないオプション名は捏造を疑い、選択肢から先に消す。
  5. 45 問 90 分で平均 2 分、1 分で決まらなければ印を付けて先へ進む。

この端末にだけ保存されます(登録不要)

この章の根拠

最終確認 2026-08-09 / 対応バージョン DEA 2026-05-04 改訂版

コース全体

  1. Databricks とレイクハウスの全体像 — なぜ必要か、何がどこに属し、どの計算資源で動くか
  2. データはどこに、どんな形で保存されるか — テーブルの実体と Delta Lake の内部
  3. 計算資源を作り込み、コードを書く場所を決める — クラスタ設定とノートブック/ローカル IDE
  4. Spark はどう動き、SQL で何をどこまで書けるか
  5. PySpark でデータを加工し、遅いコードを見抜く
  6. 流れ込むデータを受け止める — Structured Streaming と Auto Loader のファイル検出
  7. 取り込み時にスキーマをどう扱うか — Auto Loader のスキーマ進化と COPY INTO
  8. ファイル以外からも取り込む — read_files・Lakeflow Connect・JDBC と API
  9. 生データを使える形に育てる — メダリオン設計と宣言的パイプライン
  10. 処理を1つのジョブに束ねる — タスク種別と依存関係の設計
  11. ジョブを動かし、失敗から立て直す — トリガー・リトライ・パラメータ
  12. 書いたものを安全に本番へ届ける — Git 連携とデプロイの自動化
  13. 誰に何を見せるか — Unity Catalog のアクセス制御とアイデンティティ統制
  14. 誰が何をしたか、いくらかかったか、どこで詰まったかを見る
  15. テーブルを保守して速くする — 運用コマンド・保持期間・レイアウト設計・障害復旧
  16. DEA 直前仕上げ — 方式選定・出題範囲対応表・数値総まとめ・引っかけの型