Fivetranは、様々なデータソース(各種SaaSアプリやDBなど)から、クラウド型DWHを中心としたデータ分析基盤へ、データ同期を自動化させることができるツールです。
最短5分のセットアップでデータパイプラインを構築することができ、それ以降のデータ同期を自動してくれるとのこと。
今回は、このFivetranを使用して(RDS)PostgreSQLから(AWS)Databricksへのパイプラインを構築し、データ同期を行ってみました。
全体の流れ
やってみたところ、少し長くなってしまったので分割してまとめています。
(SaaSアプリをデータソースとする場合ならそこまでかからなかったと思うのですが、今回はDBをデータソースとしたため、特に2.のコネクター作成で必要な手順が多かった印象です)
- 同期先((AWS)Databricks)を登録します ※この記事です
- データソース((RDS)PostgreSQL)のコネクターを作成します
- 同期内容を確認してみます ※作成中
前提
Fivetran、(RDS)PostgreSQL、(AWS)Databricksの環境は既存のものを使用しています。
そのため、環境構築については特に触れずに始まります。
同期先((AWS)Databricks)を登録します
まず初めに同期先となるDatabricksとの連携を登録していきます。
同期先と言ってきましたが、データ界隈では『Destination(デスティネイション)』『宛先』といった呼び方をするようです。
なので、Fivetranにログインしたら、メニューから『Destinations』を選択し、Destinations画面へ遷移します。
そして右上の「Add destination」ボタンから、登録を行っていきます。
Destination名を入力。
同期先のタイプはDatabricksを選択。
セットアップ入力画面まで遷移してきました。
今回はできるだけ簡単に試してみたいので、下記の方針で進めていきます。
- 同期先のカタログは新規で作成しない
- データ格納先は外部ロケーションを指定せず、デフォルトのディレクトリで
- AWS PrivateLinkは使用しない
- DatabricksのSQLウェアハウスでなくクラスターを作成して接続する
特にオプション的なものを付けないこの条件であれば、比較的簡単に接続設定を行うことができました。
※使用した環境はUnity Catalog機能有効化済みのDatabricks環境を使用しています。
1. Databricks側で接続に使用するクラスターを作成・起動する
任意のクラスター名を入力し、ランタイムバージョンは10.4LTS以降にしておきます。
あとはデフォルトの状態で起動しました。
起動したら、クラスターの詳細から[構成>高度なオプション>JDBC/ODBC]を表示し、下記の情報をコピーしてセットアップ画面に入力します。
2. Databricks側でアクセストークンを作成する
生成されたアクセストークンをコピーしてセットアップ画面(Personal Access Token)に入力します。
3. そのほかの項目を埋めて、接続を実行
- Catalog:同期先のカタログを指定できますが、今回は入力せず進めます
- Create Delta tables in an external location:外部テーブルは使用しないのでOFF
- Data processing location:今回は日本を選択
- Cloud service provider:今回はAWSを選択
- Timezone:今回はJSTを選択
入力できたら「Save&Test」ボタンで接続します。
Fivetran側でいくつかテストが行われ、問題なければ次のような画面になって完了です。
Connected(接続済み)になっています。
これで、同期先(Databricks)の登録が完了しました。
次は、データソース((RDS)PostgreSQL)のコネクターを作成します。
https://qiita.com/ny94/items/103f6fb892afc5bdf58d