LoginSignup
2
1

More than 1 year has passed since last update.

初めてDatabricks SQLを使い始める方向けに資料をまとめました。

Databricks SQLとは

Databricks SQLは、クイックなアドホッククエリーを実行し、異なる視点からクエリーの結果を探索するために複数のビジュアライゼーションを作成し、ダッシュボードを構築し、共有したいと考えているSQLユーザーに対してシンプルな体験を提供します。

もし、あなたのメインタスクでSQLクエリーやBIツールを使っているのであれば、Databrikcs SQLはお使いのデータレイクに格納されているデータを用いて、アドホックなクエリーを実行し、ダッシュボードを構築するための直感的な環境を提供します。
Screen Shot 2022-08-28 at 10.26.18.png

Databricks SQLの主な機能

  • SQLウェアハウス: Databricks SQLで使用する計算資源です。Databricksクラスターと同様にお客様のクラウドアカウントに構築するデータプレーンで動作するクラシックSQLウェアハウスと、Databricks管理のクラウドアカウントで動作するサーバレスSQLウェアハウスを利用することができます。
  • クエリー: お客様のデータレイクに格納されているデータに対して問い合わせを行うSQLです。
  • ビジュアライゼーション: クエリーの結果を可視化したものです。さまざまなビジュアライゼーションのタイプを提供しています。
  • ダッシュボード: ビジュアライゼーションを組み合わせてダッシュボードを構築します。
  • アラート: クエリーから返却された値が閾値を超えた際にメールなどで通知を行います。

アナリストによるDatabricks SQLの一般的な使い方は以下のようなものとなります。通常ステップ2からステップ5は試行錯誤を伴う繰り返しの作業となります。

  1. データをアップロードする。(管理者が準備するケースもあります)
  2. クエリーを実行するなどしてデータを理解する。
  3. 目的を踏まえて解析(抽出、集計、並び替えなど)の切り口を考える。
  4. 切り口に応じたクエリーを記述して実行する。
  5. クエリー実行結果をどのように可視化するのかを考えて可視化を行う。(ビジュアライゼーションの作成)
  6. 可視化を組み合わせてダッシュボードを作成する。
  7. ダッシュボードを公開する。

Screen Shot 2022-09-07 at 14.17.51.png

Databricks SQLの使い方

以下では、管理者とアナリストがどのようにDatabricks SQLを使用するのかを、サンプルのシナリオに沿って説明します。権限さえあれば、アナリストが管理者のタスクを行うことも可能です。

まず最初に言語設定を行なってから、Databricks SQLにアクセスします。

  1. Databricksにログインし、サイドメニューからSettings > User Settingsを開きます。

  2. Language Settingsタブをクリックします。
    Screen Shot 2022-01-20 at 17.58.33.png

  3. Change Your Languageから言語を選択します。
    Screen Shot 2022-01-20 at 17.58.38.png

    以下の言語がサポートされています。

    • 英語
    • ドイツ語
    • フランス語
    • イタリア語
    • 日本語
    • 韓国語
    • ポルトガル語
  4. 言語を選択すると画面がリフレッシュされ、GUIが選択した言語で表示されます。
    Screen Shot 2022-01-20 at 17.58.54.png

  5. サイドメニューのペルソナスイッチャーでSQLを選択し、Databricks SQLにアクセスします。
    Screen Shot 2022-08-28 at 10.55.19.png

管理者がDatabricks SQLを使う

ここでは、管理者が以下のタスクを行うものとします。アナリストの方はアナリストがDatabricks SQLを使うまでスキップしてください。

テーブルの作成

以下の作業を行うことでテーブルを作成します。

  1. Databricks SQLにアクセスするとランディングページが表示されます。
    Screen Shot 2022-08-28 at 10.56.17.png

  2. サイドメニューで作成 > クエリーを選択します。
    Screen Shot 2022-08-28 at 10.57.37.png

  3. 右上のドロップダウン(以下の図の赤枠)で稼働中のSQLウェアハウスを選択します。存在しない場合にはSQLウェアハウスを作成します。

    画面の左側にあるスキーマブラウザにデータベース・テーブルの一覧が表示され、右上のSQLエディタにSQLクエリーを記述して実行します。右下にはクエリーの結果が表示されます。

    Screen Shot 2022-08-28 at 10.59.24.png

  4. 以下のクエリーをSQLエディタに貼り付けます。

    SQL
    CREATE TABLE default.db_handson_people10m OPTIONS (PATH 'dbfs:/databricks-datasets/learning-spark-v2/people/people-10m.delta')
    
  5. すべてを実行をクリックします。
    Screen Shot 2022-08-28 at 11.03.46.png

  6. クエリーが成功すると...was successfully executed.というメッセージが右下に表示されます。
    Screen Shot 2022-08-28 at 11.05.00.png

  7. スキーマを更新するには、スキーマブラウザの下にあるボタンをクリックします。

  8. データベースの右にあるテキストボックスにpeoと入力します。スキーマブラウザは新たに作成したテーブルを表示します。
    Screen Shot 2022-08-28 at 11.06.19.png

  9. 上で作成したクエリーを保存しておきたい場合には、New queryの箇所をクリックしてクエリーの名前を入力し、保存ボタンを押します。
    Screen Shot 2022-08-28 at 11.10.11.png

テーブルのアクセス権の設定

こちらでは、データエクスプローラのUIを用いてアクセス権を設定します。上述したSQLエディタからも設定することが可能です。

  1. サイドバーのデータをクリックします。
  2. 右上のドロップダウンリストで、Starter WarehouseのようなSQLウェアハウスを選択します。defaultデータベースが選択されます。データベースのコメントとオーナーが表示されます。
    Screen Shot 2022-08-28 at 11.12.29.png
  3. 権限タブをクリックします。
    Screen Shot 2022-08-28 at 11.24.16.png
  4. 付与ボタンをクリックします。
  5. テキストボックスをフォーカスし、All Usersを選択します。
  6. USAGEチェックボックスをチェックします。
    Screen Shot 2022-08-28 at 11.25.31.png
  7. 付与ボタンをクリックします。
    Screen Shot 2022-08-28 at 11.25.56.png
  8. defaultデータベースの後のテキストボックスにpeoと入力します。データエクスプローラにdb_handson_people10mテーブルが表示されますので選択します。
    Screen Shot 2022-08-28 at 11.26.19.png
  9. 権限タブをクリックします。
    Screen Shot 2022-08-28 at 11.26.49.png
  10. 付与ボタンをクリックします。
  11. テキストボックスをフォーカスし、All Usersを選択します。
    Screen Shot 2022-08-28 at 11.27.49.png
  12. SELECTREAD_METADATAチェックボックスをチェックします。
    Screen Shot 2022-08-28 at 11.28.13.png
  13. 付与ボタンをクリックします。
    Screen Shot 2022-08-28 at 11.28.44.png

SQLウェアハウスの作成およびアクセス権の設定

上でテーブルを作成する際にSQLウェアハウスにアナリストがアクセスできるようにします。

注意
複数人でSQLウェアハウスをシェアする場合には、十分なスペックであるかを確認してください。

  1. サイドメニューからSQLウェアハウスにアクセスします。
    Screen Shot 2022-08-28 at 11.33.40.png
  2. 作成済みのSQLウェアハウスを共有するのであれば、ウェアハウス名をクリックします。新規に作成する際には右上のSQLウェアハウスを作成ボタンをクリックしてSQLウェアハウスを作成します。ここでは作成済みのSQLウェアハウスに権限を付与します。右上の権限ボタンをクリックします。
    Screen Shot 2022-08-28 at 11.34.54.png
  3. テキストボックスをフォーカスしAll Usersを選択します。
    Screen Shot 2022-08-28 at 11.35.52.png
  4. 使用可能が選択されていることを確認して追加をクリックします。
    Screen Shot 2022-08-28 at 11.37.06.png
  5. これでアナリストがSQLウェアハウスを利用(ウェアハウスの起動、SQLの実行)できるようになりました。
    Screen Shot 2022-08-28 at 11.37.19.png

以上で管理者の作業は終了です。

アナリストがDatabricks SQLを使う

ここでは、アナリストが以下のタスクを行うものとします。

テーブルにクエリーを実行

初回にDatabricks SQLにアクセスすると以下のような画面が表示されます。
Screen Shot 2022-08-28 at 11.38.13.png

チュートリアルを試しても構いませんが、ここでは上のステップで管理者が準備してくれたテーブルを操作していきます。

ここでは、人々の情報を格納したテーブルから、Maryという名前の女性を生まれた年でグルーピングし、グループごとの数をカウントし結果を可視化します。

テーブルのカラムは、idfirstNamemiddleNamelastNamegenderbirthDatessnsalaryとなります。

  1. 管理者がアクセス権を付与したSQLウェアハウスが表示されています。SQLウェアハウス起動していない場合には開始ボタンをクリックしてSQLウェアハウスを起動します。

  2. 状態が開始中から実行中になるまで待ちます。
    Screen Shot 2022-08-28 at 11.43.43.png

  3. 上述の通り、すでに管理者がdb_handson_people10mというテーブルを作成しています。ここでは、このテーブルにクエリーを実行し、Maryという名前のすべての人の誕生日と誕生年を表示します。

  4. サイドバーで作成をクリックしクエリーを選択すると、SQLエディタが表示されます。

  5. 上で起動したSQLウェアハウスを選択します。
    Screen Shot 2022-08-28 at 11.47.25.png

  6. Maryという名前の女性の数をクエリーする以下のSELECT文をSQLエディタに貼り付けます。

    SQL
    SELECT year(birthDate) as birthYear, count(*) AS total
    FROM default.db_handson_people10m
    WHERE firstName = 'Mary' AND gender = 'F'
    GROUP BY birthYear
    ORDER BY birthYear
    

    Screen Shot 2022-08-28 at 11.48.33.png

  7. すべてを実行ボタンをクリックします。通知の許可を求めるプロンプトが表示された際には許可します。

  8. クエリーの結果が右下に表示されます。
    Screen Shot 2022-08-28 at 11.50.16.png
    デフォルトでは最大1000行が返却されます。より多くの行を取得したい場合には、チェックボックスの選択を解除し、クエリーにLIMIT句を指定します。
    Screen Shot 2022-08-28 at 11.50.58.png

  9. クエリーを保存するにはNew Queryの箇所をクリックし、名前を入力して保存をクリックします。
    Screen Shot 2022-08-28 at 11.52.27.png

ビジュアライゼーションを作成

  1. 結果を表示しているTableの右にある + をクリックし、Visualizationを選択します。
    Screen Shot 2022-08-28 at 11.53.06.png
    ビジュアライゼーションエディタが表示されます。
  2. ビジュアライゼーションの名前を誕生年ごとのMaryさんの人数に変更します。左上のScatter 1をクリックすると名前を変更することができます。
  3. Visualization TypeドロップダウンでBarを選択します。
  4. X ColumnドロップダウンでbirthYearを選択します。
  5. Y Columnドロップダウンでtotalを選択します。
  6. X Axisタブをクリックします。
  7. Nameフィールドに誕生年と入力します。
  8. Y Axisタブをクリックします。
  9. Nameフィールドに誕生年ごとのMaryさんの人数と入力します。
  10. 保存をクリックします。
    保存したグラフがSQLエディタに表示されます。
    Screen Shot 2022-08-28 at 11.58.12.png
  11. 最後にクエリーの保存ボタンをクリックします。

ここまでのステップでクエリー、ビジュアライゼーションを作成しました。最後のダッシュボード作成のステップではこれらを参照してダッシュボードを構築します。

ダッシュボードの作成

  1. サイドバーの作成をクリックしダッシュボードを選択します。
  2. ダッシュボード名としてPeopleと入力します。わかりやすい別の名前をつけても構いません。
  3. 保存をクリックします。
  4. ダッシュボードが表示されますが、この時点では何も表示されません。
    Screen Shot 2022-08-28 at 12.00.01.png
  5. 追加ドロップダウンをクリックし、可視化を選択します。
  6. クエリーを選択する画面が表示されるので、上のステップで作成したクエリーを選択します。
    Screen Shot 2022-08-28 at 12.01.59.png
  7. クエリーに属しているビジュアライゼーションを選択します。Select existing visualizationが選択されている状態で、下のドロップダウンから追加したいビジュアライゼーションを選択します。
    Screen Shot 2022-08-28 at 12.04.24.png
  8. ダッシュボードに追加をクリックします。これでダッシュボードにビジュアライゼーションが追加されます。
    Screen Shot 2022-08-28 at 12.04.57.png
  9. 他のビジュアライゼーションを追加する場合には、上の作業を繰り返します。
  10. 追加したビジュアライゼーションはドラッグ&ドロップでサイズや位置を調整できます。
    Screen Shot 2022-08-28 at 12.06.38.png
  11. レイアウトに満足したら右上の編集完了をクリックします。これで初めてのダッシュボードの完成です!
    Screen Shot 2022-08-28 at 12.07.16.png

次のステップ

アナリスト向け

管理者向け

Databricks 無料トライアル

Databricks 無料トライアル

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1