1
0

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.

TiDBAdvent Calendar 2023

Day 22

dbtを使ってTiDB Serverlessのデータを操作する

Last updated at Posted at 2023-12-21

はじめに

dbt はSQLを使ってデータ変換ジョブを記述できるツールで、最近利用が増えてきました。
TiDBもdbtのアダプタであるdbt-tidbを提供しています。この記事ではdbt-tidbを使ってtidb serverlessのテーブルを操作してみます。
公式ドキュメントのチュートリアルに基づいていますが、簡単に試せるようにprofile.yml等は事前に設定済みです。

dbtを利用してTiDB Serverlessのデータを操作する

TiDB Serverlessクラスタの作成

TiDB Serverlessを始めて利用する方はこちらを参照してください

TiDBサーバレスクラスタを作成し、下記の情報をメモします(後で利用します)

  • エンドポイントのURL
  • ユーザー名
  • パスワード

以降の例では、クラスタを作ると自動で作成される test データベースを使っていきます。

dbt環境の構築 (Github Codespaces)

dbtのサンプルリポジトリを使って、dbt-tidbの動きを確認します。dbt環境の構築が必要ですが、今回はGithub Codespacesで簡単に試せるように設定済みのリポジトリを作成しました。

このリポジトリで、Codeボタンの右▼からCodespacesの右...>New with Options と進みます。
image.png

下の方にある、Recommended Secret の箇所で、下記三つの変数に値をセットしてください。
image.png

  • TIDB_ENDPOINT - TiDB ServerlessのエンドポイントURL (gateway01.ap-northeast-1.prod.aws.tidbcloud.com 等)
  • TIDB_USER - TiDB Serverlessのユーザー名 (*****.root)
  • TIDB_PASSWORD - TiDB Serverlessのパスワード

その後、 Create Codespaces でCodespaces環境を起動します。
しばらくするとdbt等必要なツールがインストールされた環境が起動するはずです。実行まで進んでください。

dbt環境の構築 (自分でやる)

CodeSpaceを利用しない場合は、下記の手順でセットアップを行います。Python(>3.8)環境が必要です。

  1. https://github.com/bohnen/jaffle_shop_tidb をgit clone
  2. 環境変数 TIDB_ENDPOINT, TIDB_USER, TIDB_PASSWORD を設定してください。設定内容はCodespacesを利用する場合と一緒です。
  3. pip install -r requirements.txt で、dbt-tidbとその依存関係をインストール

実行

それでは、実行していきます。

  1. まずは、 dbt debug で設定ファイルに問題がないか、接続が出来るかを確認します。
    image.png

  2. 問題なければ、次に初期データをロードしましょう。 dbt seedです。
    image.png

  3. TiDB Serverlessのテーブルを確認します。raw_*** というテーブルが出来ているはずです。(なお、Codespacesの場合はSQL Tools機能拡張も入っており、そこからTiDBに接続も可能です)
    image.png

  4. データ変換のジョブを実施します。 dbt run です。
    image.png

おわりに

TiDB Serverlessでもdbtが利用出来ます。どんどん活用していきましょう。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?