Google Cloud Data Fusion でAirtable のデータを扱う方法:CData JDBC Driver
Google Cloud Data Fusion は、ノーコードでデータ連携の設定が可能な言わば GCP の ETL ツール(サービス)です。たくさんのコネクタや変換・分析機能がデフォルトで用意されているため、さまざまなデータソースを色々な組み合わせで扱うことが可能なようです。 また JDBC を扱うこともできるため、この記事では、CData JDBC Driver for Airtable のデータ を使って、Airtable のデータ データをCloud Data Fusion でGoogle BigQuery にノーコードでパイプラインします。
Cloud Data Fusion の準備
まずはCloud Data Fusion のインスタンスを作成します。
- Data Fusion のトップ画面にある「CREATE INSTANCE」からインスタンスを作成します。
- 作成されたインスタンス名を先ほどの画面でクリックすると以下の画面に遷移しますので、画面下部にある Service Account をコピーします。
- 画面上部にある追加からメンバーを追加します。メンバー名は先ほどコピーした「Service Account」に合わせてください。 役割は BiqQuery へもアクセスしますので、「BigQuery 管理者」、「Cloud Data Fusion 管理者」、「Cloud Data Fusion API サービス エージェント」を付与します。
CData JDBC Driver for Airtable のアップロード
ここからは実際に、Data Fusion の設定をしていきます。 まずは JDBC Driver をアップロードを行います。
- 「View Instance」をクリックして、Data Fusion の Control Center を開きます。
- Control Center が表示されたら、「+」ボタンをクリックして JDBC Driver をアップロードしていきます。
- Name:アップロードしたドライバーに設定する名前
- Class name:cdata.jdbc.airtable.AirtableDriver
- アップロードする際の注意点として、Driver のファイル名を name-version の形式に変更してアップロードする必要があります。 なお、jarファイルをダブルクリックした際に表示されているバージョンをもとに「airtable-connector-java-19.0.7115.0.jar」に変更しました。
- アップロードが成功するとこのような画面が表示されるので、「Create a Pipeline」をクリックします。
Airtable からGoogle BigQuery へのパイプラインの作成
Data Fusion のパイプライン作成
インプット元はサイドメニューの「Source」から選択します。今回は先ほどアップロードした Airtable のデータ の JDBC Driver を使用するため、「DataBase」を選択します。 アウトプット先は同じくサイドメニューより「Sink」→「BigQuery」を選択します。
「DataBase」の設定
「DataBase」のアイコンにカーソルを持ってくるとプロパティというボタンが表示されるのでクリックし、下記内容を設定します。
- Label:Airtable
- Reference Name:Airtable
- Plugin Name:Airtable Driver(Driver をアップロードした際の名前)
- Plugin Type:jdbc
- Connection String:Airtable へ接続する際の JDBC URL
- Import Query:インプットしたいデータを抽出するクエリ
Airtable への接続
それでは、Airtable に接続していきましょう。CData 製品は、Airtable にテーブルとビューを要求します。 Schema プロパティ(オプション)を使用すると、表示されるテーブルおよびビューを特定のベースに制限できます。 特定のベースに制限したい場合は、このプロパティを使用するスキーマの名前に設定してください。(これはAirtable のBase 名に相当します。)
すべてのAirtable Bases に加えて、DataModelInformation という名前の静的スキーマもご利用いただけます。 このスキーマでは、Bases、Tables、Users のような静的テーブルをクエリできます。 DisplayObjectIds がTrue に設定されている場合、Schema の値は名前ではなくAirtable Base id に設定する必要があります。
Airtableへの認証
続いて、認証方法を設定しましょう。個人用アクセストークンまたはOAuth PKCE のいずれかを使用してAirtable に認証できます。
個人用アクセストークン
個人用アクセストークンをまだ生成していない場合は、以下のステップで生成してみましょう。
- ユーザーアカウントにログインします
- "https://airtable.com/create/tokens" に移動します
- Create new token をクリックします
- Scopes で、Add a scope をクリックして以下の各スコープを追加します
- data.records:read
- data.records:write
- schema.bases:read
- Access で、トークンにアクセス権を付与するすべてのワークスペースとベースを追加します
- Create token をクリックしてトークンを生成します。生成されたトークンは一度しか表示されませんので、必ずコピーして保存してください
次に、以下の設定を行います。
- AuthScheme:PersonalAccessToken
- Token:先ほど生成した個人用アクセストークンの値
OAuth PKCE については、 href="/kb/help/" target="_blank">ヘルプドキュメントの「はじめに」をご確認ください。
Connection String は以下の形式です。
jdbc:airtable:APIKey=keymz3adb53RqsU;BaseId=appxxN2fe34r3rjdG7;TableNames=TableA,...;ViewNames=TableA.ViewA,...;
上のキャプチャの赤枠は、Salesforce から BigQuery へアウトプットするデータの定義となります。 こちらは「Import Query」のすぐ右上にある「Get Schema」をクリックすると下の画面が表示されますので、「Import Query」で入力したクエリを実行し、カラムを定義します。
「BigQuery」の設定
こちらも同様に BigQuery のプロパティから下記内容を設定します。
- Label:BigQuery
- Reference Name:BigQuery
- Project ID:使用するProject ID
- DataSet:使用するDataSet
- Table:使用するテーブル名、例:Account_DataFusion
作成したAirtable のデータ からBigQuery のパイプラインの実行
まずは作成したパイプラインをデプロイします。赤枠の「Deploy」ボタンをクリックしてデプロイを行います。
デプロイ完了後、Runボタンが表示されますので、クリックします。
このようにCData JDBC ドライバをアップロードすることで、簡単にGoogle Cloud Data Fusion でAirtable のデータ データをノーコードで連携し、BigQuery などへのパイプラインを作成することができます。
是非、CData JDBC Driver for Airtable 30日の無償評価版 をダウンロードして、お試しください。