Databricks Certified Data Analyst Associate 試験勉強まとめ
Contents
試験勉強に使用した教材
公式
その他
- Databricks Certified Data Analyst Associate: Practice Exams
- Databricks Certified Data Analyst Associate Exam
試験結果
- Databricks SQL : 90 %
- Data Management : 100 %
- SQL : 100 %
- Data Visualization and Dashboard : 75 %
- Analytics Applications : 60 %
まとめ
試験対策
質問 | 回答 |
---|---|
Databricks SQLでクエリの実行に使用されるDatabricksの機能はどれ? | SQL Editor (QueriesはSQLクエリを保存する機能) |
レイクハウスのメダリオンアーキテクチャの説明として正しいもの | 一つのアップストリームテーブルは、複数のダウンストリームテーブルの生成に利用される |
SQL Warehouseのサイジングとスケーリングに関する記述として正しいものを2つ選択 | 1.最大スケーリングを増やすことは、複数ユーザが同時に同じWarehouseを使用することを助ける。2.スケーリングはデフォルトで最小値1・最大値1に設定されている |
DatabricksとFivetranを接続し、データ取り込みを行うアプローチを選択 | パートナーコネクトを使用して、SQL WarehouseにFivetranを接続 |
Databricks SQL時にData Explorerにより提供される利点は何? | メタデータやデータを確認でき、権限の確認や変更も可能 |
テンポラリービューはクラスターが終了するとどうなる? | 削除され、参照できなくなる |
テーブルの削除コマンド | DROP TABLE db_name.table_name |
LEFT SEMI JOINとLEFT ANTI JOINの結果はそれぞれどうなる? | LEFT SEMI JOINは、左テーブルのうち右テーブルに一致する行のみ返し、LEFT ANTI JOINは、左テーブルのうち右テーブルに一致しない行のみ返す |
全組み合わせの集約を行うコマンド | GROUP BY CUBE |
統計学の文脈で、統計分布の重要なモーメントとは何? | 平均(第1モーメント)、分散(第2モーメント)、歪度(第3モーメント)、尖度(第4モーメント) |
テーブル名を変更するコマンド | ALTER TABLE RENAME TO |
ROLLUPコマンドとCUBEコマンドの違い | 1.ROLLUPは階層的な集計結果を生成し、CUBEは全ての組み合わせに対する集計結果を生成。2. ROLLUPは指定された列の順序によって結果が変わるが、CUBEは順序に依存しない |
Data Enhancementとは? | 外部データソースを取り入れることで、既存のデータセットを充実させること |
Databricks SQLを使用してAmazon S3バケットからDatabricks環境にデータをインポートするSQLコマンドは? | COPY INTO my_table FROM 's3://mybucket/mydata.csv' FILEFORMAT = CSV; (COPY INTOコマンドは増分および一括データロードによく使用される) |
ANALYZE TABLEコマンドを使用する主な目的は? | テーブルに関する重要な統計情報を収集するため (これらの統計は、行数やバイト単位のサイズなどの詳細を含み、クエリ・オプティマイザが効率的なクエリ・プランを作成する上で重要) |
Databricks SQLダッシュボードを共有する場合、‘Run as viewer’ と ‘Run as owner’ の2つの主要な設定があります。ダッシュボードを共有する際の各設定の長所と短所は? | ‘Run as viewer’は、個々のビューワの権限に従うことで、データのセキュリティを強化する(長所)が、データの可視性を制限する可能性がある(短所) ‘Run as owner’は、ユーザー間で一貫したデータの可視性を保証する(長所)が、所有者がより広範なデータアクセス権を持っている場合、セキュリティリスクを引き起こす可能性がある(短所) |
Databricksの文脈では、データのプライバシーとコンプライアンスを確保するために、個人を特定できる情報(PII)は通常どのように扱われる? | デルタレイクによるきめ細かなアクセス・コントロール |
MERGE INTO、INSERT INTO、COPY INTOコマンドの使い分けは? | MERGE INTOは既存レコードの更新と新規レコードの挿入に適しており、INSERT INTOは新規レコードの追加のみに使用され、COPY INTOはファイルなどの外部ソースからテーブルにデータをロードするために使用される |
クエリ結果がキャッシュから返されているかを確認する方法 | クエリ履歴から該当の確認したいクエリを選択し、クエリの詳細中に「キャッシュ」と記載があるかを確認 (キャッシュから返された場合、クエリプロファイルも表示されない) |
DatabricksでANSI SQLに準拠する利点 | 移植性の向上 |
Alerts で使用しているクエリ内にパラメータがある場合、パラメータの扱いはどうなる? | SQLエディタで指定されているデフォルト値が使用される (デフォルト値が指定されていないとエラーになる) |
知識
ビューの分類
Viewの種類 | 永続性 | 参照できる範囲 | 物理エンティティ | 更新 | 主な用途 |
---|---|---|---|---|---|
Temporary View | セッション内のみ | 同じクラスターのセッション内 | × (実行時にクエリを評価) | 自動更新 | 一時的なデータ処理 |
Global Temporary View | クラスターが動作中のみ | クラスター内のすべてのセッション | × (実行時にクエリを評価) | 自動更新 | クラスター内の共有データ |
Permanent View | 永続 | ワークスペース全体 | × (実行時にクエリを評価) | 自動更新 | データの整理・共有 |
Materialized View | 永続 | ワークスペース全体 | ○ | 手動更新 | 高速クエリ・BIツール |
CUBE
コマンド
クエリ
SELECT Year, Product, SUM(Sales) as TotalSales FROM Sales GROUP BY CUBE (Year, Product) ORDER BY Year, Product;
Sales テーブル
Year Product TotalSales 2021 ProductA 100 2021 ProductB 150 2022 ProductA 200 2022 ProductB 250 クエリ結果
Year Product TotalSales 2021 ProductA 100 2021 ProductB 150 2021 NULL 250 2022 ProductA 200 2022 ProductB 250 2022 NULL 450 NULL ProductA 300 NULL ProductB 400 NULL NULL 700
ROLLUP
コマンド
クエリ
SELECT 地域, 都道府県, 市区町村, SUM(売上) AS 売上合計 FROM 売上データ GROUP BY ROLLUP(地域, 都道府県, 市区町村)
売上データテーブル
地域 都道府県 市区町村 売上 関東 東京都 新宿区 100 関東 東京都 渋谷区 200 関西 大阪府 大阪市 150 関西 京都府 京都市 120 クエリ結果
地域 都道府県 市区町村 売上合計 関東 東京都 新宿区 100 関東 東京都 渋谷区 200 関東 東京都 NULL 300 関東 NULL NULL 300 関西 大阪府 大阪市 150 関西 京都府 京都市 120 関西 京都府 NULL 270 関西 NULL NULL 270 NULL NULL NULL 570
INSERT INTO
コマンド
- テーブルに新しい行を挿入するために使用
- 既存の行を変更したり、既存の行に基づいて何かをしたりすることはできない
- 単純なデータの追加に最適
クエリ
INSERT INTO customers (customer_id, name, city) VALUES (3, 'David', 'Kyoto');
customers テーブル
customer_id name city 1 John Tokyo 2 Jane Osaka クエリ結果
customer_id name city 1 John Tokyo 2 Jane Osaka 3 David Kyoto
MERGE INTO
コマンド
- ソーステーブルの行に基づいて、ターゲットテーブルの行を更新・挿入・削除するために使用
- 既存のデータを変更したり、新しいデータを挿入したり、不要なデータを削除したりと、より複雑なデータ操作が可能
- データの同期や、変更の追跡に最適
クエリ
MERGE INTO customers USING new_customers ON customers.customer_id = new_customers.customer_id WHEN MATCHED THEN UPDATE SET customers.name = new_customers.name, customers.city = new_customers.city WHEN NOT MATCHED THEN INSERT (customer_id, name, city) VALUES (new_customers.customer_id, new_customers.name, new_customers.city);
customers テーブル
customer_id name city 1 John Tokyo 2 Jane Osaka 3 David Kyoto new_customers テーブル
customer_id name city 2 Janet Fukuoka 4 Susan Nagoya クエリ結果
customer_id name city 1 John Tokyo 2 Janet Fukuoka 3 David Kyoto 4 Susan Nagoya