はじめに
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
と進みます。
下の方にある、Recommended Secret
の箇所で、下記三つの変数に値をセットしてください。
- 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)環境が必要です。
- https://github.com/bohnen/jaffle_shop_tidb をgit clone
- 環境変数
TIDB_ENDPOINT
,TIDB_USER
,TIDB_PASSWORD
を設定してください。設定内容はCodespacesを利用する場合と一緒です。 -
pip install -r requirements.txt
で、dbt-tidbとその依存関係をインストール
実行
それでは、実行していきます。
-
TiDB Serverlessのテーブルを確認します。raw_*** というテーブルが出来ているはずです。(なお、Codespacesの場合はSQL Tools機能拡張も入っており、そこからTiDBに接続も可能です)
おわりに
TiDB Serverlessでもdbtが利用出来ます。どんどん活用していきましょう。