Documentation Index
Fetch the complete documentation index at: https://docs.morph-data.io/llms.txt
Use this file to discover all available pages before exploring further.
BigQuery に接続する
コネクターについての概要は以下のリンクを参照してください。
Connectorを作成する
トップページの「Connectors」タブを選択し「Create」ボタンを押下します。
BigQueryの認証情報を入力する
BigQueryでは2つの認証方式が提供されています。サービスアカウント方式で接続する
BigQuery (Service Account)を選択し表示されたフォームに接続する認証情報を入力します。
| 項目名 | 説明 | 必須 | 例 |
|---|
Credential | サービスアカウントJSON | ✅ | {"project_id": "", ...} |
サービスアカウントの作成については公式ページを参照してください。OAuthで接続する
BigQuery (OAuth)を選択し表示されたGoogleへのサインインボタンを押下して認証します。
その他共通で入力が必要な項目は以下です。| 項目名 | 説明 | 必須 | 例 |
|---|
Project ID | プロジェクトID | ✅ | demo-project |
Dataset | データセット名 | | demo_dataset |
Location | ローケーション | | asia-northeast1 |
入力後Createボタンを押下すると作成が完了します。パラメータに不備がある場合はエラーが表示されるため接続内容が正しいか再度ご確認ください。 作成したデータベースに接続する
作成が成功すると一覧表示からコネクター名を取得することができます。アイコン横の文字列がconnection_nameです。これを使用することでコード上でデータベースに接続可能です。
SQLまたはPythonのコードに作成したコネクター名を入力しデータを取得します。{{
config(
connection="connection_name"
)
}}
select * from table_name
ローカルでは現在Service Account方式のみがコマンドで作成可能です。それ以外の方式はダッシュボードをご利用いただくか、直接~/.morph/connections.ymlに記述する必要があります。
morph initコマンドを実行する
morph initコマンドを実行してDBの接続情報を~/.morph/connections.ymlに保存します。morphパッケージのインストールを行なっていない場合は事前に下記のコマンドでインストールしてからお進みください。 対話式のインターフェースでデータベースの種類一覧が表示されるのでSnowflake (User/Password)を選択します。Select your database type:
1. PostgreSQL
2. MySQL
3. Redshift
4. SQLServer
5. Snowflake (User/Password)
6. BigQuery (Service Account)
Enter the number corresponding to your database type: 6
BigQuery (Service Account) selected.
続いて認証情報を入力します。slugはコネクター名として扱うもので、この名前をSQLもしくはPythonで指定します。以下の入力例は実際に接続できる値に置き換えてください。Create a slug for your connection: bigquery-connection
Enter your BigQuery project ID: demo-project
Enter your BigQuery keyfile path: ~/path_to_pem_file
Enter your BigQuery dataset name (Optional): demo_dataset
Enter your BigQuery location (Optional): asia-northeast1
認証情報の保存が完了すると以下のメッセージが表示されます。Successfully initialized! 🎉
You can edit your connection details in `path_to_connections.yml`
connections.ymlは以下のように保存されています。他のコネクターを作成した場合はconnections以下に追加されます。cat ~/.morph/connections.yml
connections:
bigquery-connection:
dataset: demo_dataset
keyfile: ~/path_to_pem_file
location: asia-northeast1
method: bigquery_service_account
project: demo-project
type: bigquery
コード上でコネクターを使いデータを取得する
SQLまたはPythonのコードに作成したコネクター名を入力しデータを取得します。{{
config(
connection="connection_name"
)
}}
select * from table_name
実際にコネクターを指定してファイルを実行した場合の優先順位は以下の通りです。
またmorph deployを行なった環境ではダッシュボードで作成したコネクターのみが使用可能なため注意してください。
- ローカルマシンの
~/.morph/connections.ymlに記載されたコネクター
- クラウドで登録されたコネクター
OAuthの場合の記述方法
OAuthを使用する際は~/.morph/connections.ymlを直接編集します。access_tokenのリフレッシュはダッシュボードの機能のためローカル環境では記載したものが常時使用されます。OAuth方式connections:
bigquery-oauth-connection
type: bigquery # 固定
method: bigquery_oauth # 固定
project: str
refresh_token: str
client_id: str
client_secret: str
redirect_uri: str
dataset: str # 任意
location: str # 任意
access_token: str # 任意