0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Databricksとdbt Cloudの連携(実践編その1)

Posted at

Databricksとdbt Cloudの連携ステップ3: モデルを作成して実行するまでを実践した内容です。

クラスターの準備

ここでは、Databricksクラスターに接続します。

  1. 事前にパーソナルアクセストークンを取得しておきます。サイドメニューの設定 > ユーザー設定 > アクセストークンに移動し、新規トークンの作成をクリックして、トークンの名前、存続期間を指定します。作成をクリックするとトークンが表示されるのでコピーしておきます。
    Screen Shot 2022-02-27 at 8.38.26.png

    注意 パーソナルアクセストークンは厳重に管理してください。第三者に教えたりしないでください。

  2. 任意のスペックのクラスターを作成します。dbtからこのクラスターにアクセスすることになります。高度なオプションのJDBC/ODBCタブに表示されるサーバーのホスト名ポートHTTPパスをメモしておきます。
    Screen Shot 2022-02-27 at 8.37.49.png

データベースとテーブルの準備

dbt Cloudで操作するデータベースとテーブルを準備しておきます。今回は自分用のデータベースdbt_takaで作業するので、このデータベースとソースデータを格納するテーブルを作成します。

  1. 上で準備したクラスターにSQLノートブックをアタッチします。

  2. 以下のSQL文を実行してデータベースとテーブルを作成します。

    SQL
    CREATE SCHEMA taka_dbt;
    
    SQL
    USE taka_dbt;
    
    DROP TABLE IF EXISTS diamonds;
    
    CREATE TABLE diamonds USING CSV OPTIONS (path "/databricks-datasets/Rdatasets/data-001/csv/ggplot2/diamonds.csv", header "true")
    

Screen Shot 2022-02-27 at 8.50.07.png

dbt Cloudの設定

  1. dbt Cloud - Signupにアクセスして、アカウント情報を入力します。
    Screen Shot 2022-02-26 at 16.07.32.JPG
  2. 以下のような画面が表示され、指定したアドレスに確認メールが届きます。
    Screen Shot 2022-02-26 at 16.08.32.JPG
    Screen Shot 2022-02-26 at 16.10.13.JPG
  3. メールに記載のVerify email addressをクリックします。
  4. プロジェクトのセットアップを行います。
    Screen Shot 2022-02-26 at 16.10.55.JPG
  5. Database ConnectionではDatabricksを選択します。
    Screen Shot 2022-02-26 at 16.11.08.JPG
  6. NAMEには接続設定情報の名称、HOSTNAMEには、クラスターの準備でコピーしたサーバーのホスト名PORTにはポートCLUSTERにはHTTPパスの最後の/以降の文字列を指定します。USERにはtokenを入力し、TOKENにはクラスターの準備でコピーしたパーソナルアクセストークンを指定し、SCHEMAにはDatabricks上のデータベース名を指定します。ここではtaka_dbtとしています。
    Screen Shot 2022-02-26 at 21.16.41.JPG
    Screen Shot 2022-02-26 at 21.16.55.JPG
  7. 上にあるTest Connectionボタンを押して接続確認を行います。接続に成功したらContinueをクリックします。
    Screen Shot 2022-02-26 at 21.19.20.JPG
  8. モデルなどを格納するリポジトリを設定します。ここではManagedを選択してリポジトリの名称を入力しCreateをクリックします。
    Screen Shot 2022-02-26 at 21.19.43.JPG
  9. 作成に成功したらContinueをクリックします。
  10. 今回は特にユーザーを招待しないのでSkip & Completeをクリックします。
    Screen Shot 2022-02-26 at 21.20.18.JPG
  11. これでプロジェクトが作成できたので、Start DevelopingをクリックしてIDEに移動します。
    Screen Shot 2022-02-26 at 21.20.28.JPG
    Screen Shot 2022-02-26 at 21.21.06.JPG
  12. 左上にあるinitialize your projectをクリックして、プロジェクトの初期化を行います。完了すると必要なフォルダーなどが生成されます。
    Screen Shot 2022-02-26 at 21.21.52.JPG

モデルの定義

以降はこちらで説明されているようにモデルを作成していきます。データベースを独自のものにしていますので、若干SQL文を変更しています。

models/diamonds_four_cs.sql
{{ config(
 materialized='table',
 file_format='delta'
) }}
    
select carat, cut, color, clarity
from taka_dbt.diamonds
models/diamonds_list_colors.sql
select distinct color
from taka_dbt.diamonds_four_cs
order by color asc
models/diamonds_prices.sql
select color, avg(price) as price
from taka_dbt.diamonds
group by color
order by price desc

モデルの実行

画面下のRunsの右のテキストボックスに以下のコマンドを入力し、Enterをクリックして実行します。

Bash
dbt run --model models/diamonds_four_cs.sql models/diamonds_list_colors.sql models/diamonds_prices.sql

Screen Shot 2022-02-26 at 21.27.59.JPG

処理が成功すればRUN STATUSがPassedとなります。
Screen Shot 2022-02-27 at 9.08.19.png

処理結果の確認

Databricksのノートブック上でSQLを実行することで、テーブル一覧、テーブルの中身を確認することができます。

SQL
SHOW TABLES;

Screen Shot 2022-02-27 at 9.11.20.png

SQL
SELECT * FROM diamonds_four_cs;

Screen Shot 2022-02-27 at 9.12.11.png

SQL
SELECT * FROM diamonds_list_colors;

Screen Shot 2022-02-27 at 9.12.19.png

SQL
SELECT * FROM diamonds_prices;

Screen Shot 2022-02-27 at 9.12.28.png

Databricks 無料トライアル

Databricks 無料トライアル

0
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?