Contents

Databricks Certified Data Analyst Associate 試験勉強まとめ

試験勉強に使用した教材

公式

その他

試験結果

  • 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 テーブル

    YearProductTotalSales
    2021ProductA100
    2021ProductB150
    2022ProductA200
    2022ProductB250
  • クエリ結果

    YearProductTotalSales
    2021ProductA100
    2021ProductB150
    2021NULL250
    2022ProductA200
    2022ProductB250
    2022NULL450
    NULLProductA300
    NULLProductB400
    NULLNULL700

ROLLUP コマンド

  • クエリ

    SELECT 地域, 都道府県, 市区町村, SUM(売上) AS 売上合計
    FROM 売上データ
    GROUP BY ROLLUP(地域, 都道府県, 市区町村)
    
  • 売上データテーブル

    地域都道府県市区町村売上
    関東東京都新宿区100
    関東東京都渋谷区200
    関西大阪府大阪市150
    関西京都府京都市120
  • クエリ結果

    地域都道府県市区町村売上合計
    関東東京都新宿区100
    関東東京都渋谷区200
    関東東京都NULL300
    関東NULLNULL300
    関西大阪府大阪市150
    関西京都府京都市120
    関西京都府NULL270
    関西NULLNULL270
    NULLNULLNULL570

INSERT INTO コマンド

  • テーブルに新しい行を挿入するために使用
  • 既存の行を変更したり、既存の行に基づいて何かをしたりすることはできない
  • 単純なデータの追加に最適
  • クエリ

    INSERT INTO customers (customer_id, name, city) VALUES (3, 'David', 'Kyoto');
    
  • customers テーブル

    customer_idnamecity
    1JohnTokyo
    2JaneOsaka
  • クエリ結果

    customer_idnamecity
    1JohnTokyo
    2JaneOsaka
    3DavidKyoto

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_idnamecity
    1JohnTokyo
    2JaneOsaka
    3DavidKyoto
  • new_customers テーブル

    customer_idnamecity
    2JanetFukuoka
    4SusanNagoya
  • クエリ結果

    customer_idnamecity
    1JohnTokyo
    2JanetFukuoka
    3DavidKyoto
    4SusanNagoya