目次
dbtとは
dbt (data build tool) は、データパイプラインを構築するためのツールで、データの前処理(ELT)における「Transform(変換)」を担当します。SQLのSELECT文を記述するだけでデータウェアハウス内のデータを効率的に変換できます。
dbt Cloudの通知をSlackへ自動転送する
本記事では、dbt Cloudからの通知(ジョブ実行に関する通知)をSlackのプライベートチャンネルに自動転送する方法について解説します。
dbt Cloudは直接Slackと連携して通知を行うことも可能ですが、今回は、Slackと直接連携しないメール連携を活用した方法になります。
この設定を行うことで、ジョブの実行状況を確認するためにdbt Cloudにアクセスする手間を省くことができます。
手順はとても簡単です。
手順概要
- Slackでプライベートチャンネルを作成し、専用のメールアドレスを取得する。
- dbt Cloudの通知設定で、Slackのメールアドレスを登録する。
- 通知が正しく自動転送されることを確認する。
前提条件
- Slack有料プラン(Pro以上)を利用していること。
- Slackチャンネル管理者権限があること。
- 通知したいdbtジョブが事前に作成されていること。
① Slackでプライベートチャンネルを作成し、専用のメールアドレスを取得する
Slackでは、特定のチャンネル(パブリックまたはプライベート)専用のメールアドレスを生成する機能があります。このアドレスを利用することで、外部からメールを送信し、その内容をチャンネルに投稿できます。ただし、この機能はSlackの有料プラン(Pro以上)で利用可能です。
今回はプライベートチャンネルを対象とします。
手順
1. プライベートチャンネルを作成する
-
- Slackのサイドバーから「チャンネルを作成」を選択し、プライベートチャンネルとして設定します。
- Slackのサイドバーから「チャンネルを作成」を選択し、プライベートチャンネルとして設定します。
2. チャンネル専用のメールアドレスを取得する
-
- チャンネルの詳細を開き、「インテグレーション」または「チャンネルにメールを送信する」オプションを選択します。今回は前者で実施します。
- 「(チャンネル専用の)メールアドレスを取得する」をクリックし、Slackが生成するメールアドレスを取得します。
3. メールアドレスを保存
- 生成されたメールアドレスをコピーし、後で使用できるように保存します。
- チャンネルの詳細を開き、「インテグレーション」または「チャンネルにメールを送信する」オプションを選択します。今回は前者で実施します。
② dbt Cloudの通知設定で、Slackのメールアドレスを登録する
dbt Cloudでは、通知機能を利用してSlackにメッセージを送信できます。通知先としてSlackのチャンネル専用メールアドレスを設定することで、dbt Cloudからの通知をプライベートチャンネルに転送できます。
手順
1. 通知設定を開く
-
- dbt Cloudにログインし、プロフィールアイコンを選択します。その後、「Notification settings」→「Email notifications」を選択します。
2. Slackのメールアドレスを登録する
-
- 手順①にて取得したSlackのメールアドレスを通知先として登録します。
- デフォルトでは、「User profile」ページにある電子メールアドレスに通知を送信するようになっています。
- 別のメールアドレスを設定するには、「Notification email」ドロップダウンから「Add external email」を選択し、メールアドレスを追加します。
3. 通知条件を設定する
-
- 通知を受信したいジョブ環境およびジョブを選択します。
-
- 通知を送信する条件(例:ジョブの成功、失敗、エラーなど)を設定します。
4. 設定を保存
- 設定を保存します。
- 通知を送信する条件(例:ジョブの成功、失敗、エラーなど)を設定します。
③ 通知が正しく自動転送されることを確認する
手順②で設定したメールアドレスを利用することで、dbt Cloudからの通知がSlackのプライベートチャンネルに自動転送されます。
手順
1. 対象のジョブを実行します。(正常終了しました!)
2. ジョブが正常終了した場合、Slackのプライベートチャンネルにも「ジョブが正常終了した」という通知が届くことを確認します。(下図は「正常終了」したときの通知です。)
3. 通知内容を開いて詳細を確認します。
注意点
- プライベートチャンネルの権限: プライベートチャンネルに投稿するには、メールインテグレーションがチャンネルメンバーとして追加されている必要があります。
- メール形式: dbt Cloudから送信されるメールの形式がSlackで正しく表示されることを確認してください。
まとめ
本記事では、dbt Cloudからの通知をSlackのプライベートチャンネルに自動転送する方法を紹介しました。この設定を活用することで、ジョブ実行状況を効率的に把握できるようになります。ぜひ試してみてください。