Azure Data Factory または Azure Synapse Analytics を使用して Google BigQuery V1 からデータをコピーする
適用対象: Azure Data Factory
Azure Synapse Analytics
ヒント
企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。
この記事では、Azure Data Factory および Azure Synapse Analytics パイプラインで Copy アクティビティを使用して、Google BigQuery からデータをコピーする方法について説明します。 この記事は、コピー アクティビティの概要を示しているコピー アクティビティの概要に関する記事に基づいています。
重要
Google BigQuery V2 コネクタでは、ネイティブの Google BigQuery サポートが強化されています。 ソリューションで Google BigQuery V1 コネクタをお使いの場合、V1 はサポート終了段階にあるため、Google BigQuery コネクタをアップグレードしてください。 V2 と V1 の違いの詳細については、このセクションを参照してください。
サポートされる機能
この Google BigQuery コネクタは、次の機能でサポートされています。
サポートされる機能 | IR |
---|---|
Copy アクティビティ (ソース/-) | ① ② |
Lookup アクティビティ | ① ② |
① Azure 統合ランタイム ② セルフホステッド統合ランタイム
コピー アクティビティによってソースまたはシンクとしてサポートされるデータ ストアの一覧については、サポートされるデータ ストアに関する記事の表をご覧ください。
このサービスでは、接続を可能にする組み込みのドライバーが提供されます。 そのため、このコネクタを使用するためにドライバーを手動でインストールする必要はありません。
コネクタは、この記事の Windows バージョンをサポートしています。
Note
この Google BigQuery コネクタは、BigQuery API 上に構築されます。 BigQuery では着信要求の最大数を制限し、プロジェクトごとに適切なクォータを強制することに注意してください。割り当てと制限 - API リクエストを参照してください。 アカウントに対してあまり多くの同時要求をトリガーしないようにしてください。
前提条件
このコネクタを使用するには、Google BigQuery の次の最低限のアクセス許可が必要です。
- bigquery.connections.*
- bigquery.datasets.*
- bigquery.jobs.*
- bigquery.readsessions.*
- bigquery.routines.*
- bigquery.tables.*
作業の開始
パイプラインでコピー アクティビティを実行するには、次のいずれかのツールまたは SDK を使用します。
UI を使用して Google BigQuery のリンク サービスを作成する
次の手順を使用して、Azure portal UI で Google BigQuery のリンク サービスを作成します。
Azure Data Factory または Synapse ワークスペースの [管理] タブに移動し、[リンクされたサービス] を選択して、[新規] をクリックします。
Google を検索し、Google BigQuery コネクタを選択します。
サービスの詳細を構成し、接続をテストして、新しいリンク サービスを作成します。
コネクタの構成の詳細
以下のセクションでは、Google BigQuery コネクタに固有のエンティティの定義に使用されるプロパティについて詳しく説明します。
リンクされたサービスのプロパティ
Google BigQuery のリンクされたサービスでは、次のプロパティがサポートされます。
プロパティ | 内容 | 必須 |
---|---|---|
type | type プロパティは GoogleBigQuery に設定する必要があります。 | はい |
project | クエリ対象の既定の BigQuery プロジェクトのプロジェクト ID。 | はい |
additionalProjects | アクセス対象のパブリック BigQuery プロジェクトのプロジェクト ID のコンマ区切りリスト。 | いいえ |
requestGoogleDriveScope | Google Drive へのアクセスを要求するかどうか。 Google Drive のアクセスを許可すると、BigQuery データと Google Drive のデータを結合するフェデレーション テーブルのサポートが有効になります。 既定値は false です。 | いいえ |
authenticationType | 認証に使用される OAuth 2.0 認証メカニズム。 ServiceAuthentication はセルフホステッド統合ランタイムのみで使用できます。 使用可能な値は、UserAuthentication および ServiceAuthentication です。 これらの認証の種類それぞれのプロパティと JSON の使用例については、この表の後のセクションを参照してください。 |
はい |
ユーザー認証の使用
"authenticationType" プロパティを UserAuthentication に設定し、前のセクションに説明されている汎用プロパティと共に次のプロパティを指定します。
プロパティ | 内容 | 必須 |
---|---|---|
clientId | 更新トークンの生成に使用されるアプリケーションの ID。 | はい |
clientSecret | 更新トークンの生成に使用されるアプリケーションのシークレット。 このフィールドを SecureString とマークして安全に保存するか、Azure Key Vault に保存されているシークレットを参照します。 | はい |
refreshToken | BigQuery へのアクセスを承認するために使用される、Google から取得した更新トークン。 取得方法については、「Obtaining OAuth 2.0 access tokens」(OAuth 2.0 アクセス トークンの取得) およびこちらのコミュニティ ブログをご覧ください。 このフィールドを SecureString とマークして安全に保存するか、Azure Key Vault に保存されているシークレットを参照します。 | はい |
OAuth 2.0 更新トークンを取得するために必要な最小スコープは https://www.googleapis.com/auth/bigquery.readonly
です。 大容量の結果を返す可能性のあるクエリを実行する予定の場合は、他のスコープが必要な場合があります。 詳しくは、こちらの記事を参照してください。
例:
{
"name": "GoogleBigQueryLinkedService",
"properties": {
"type": "GoogleBigQuery",
"typeProperties": {
"project" : "<project ID>",
"additionalProjects" : "<additional project IDs>",
"requestGoogleDriveScope" : true,
"authenticationType" : "UserAuthentication",
"clientId": "<id of the application used to generate the refresh token>",
"clientSecret": {
"type": "SecureString",
"value":"<secret of the application used to generate the refresh token>"
},
"refreshToken": {
"type": "SecureString",
"value": "<refresh token>"
}
}
}
}
サービス認証の使用
"authenticationType" プロパティを ServiceAuthentication に設定し、前のセクションに説明されている汎用プロパティと共に次のプロパティを指定します。 この認証の種類は、セルフホステッド統合ランタイムのみで使用できます。
プロパティ | 内容 | Required |
---|---|---|
ServiceAuthentication で使用されるサービス アカウントの電子メール ID。 これはセルフホステッド統合ランタイムのみで使用できます。 | いいえ | |
keyFilePath | サービス アカウントのメール アドレスの認証に使用される、.json キー ファイルへの完全なパス。 |
はい |
trustedCertPath | TLS 経由で接続するときにサーバーを検証するために使用される信頼された CA 証明書を含む .pem ファイルの完全なパス。 このプロパティは、セルフホステッド統合ランタイムで TLS を使用している場合にのみ設定できます。 既定値は、IR でインストールされる cacerts.pem ファイルです。 | いいえ |
useSystemTrustStore | システムの信頼ストアと指定した .pem ファイルのどちらの CA 証明書を使用するかを指定します。 既定値は false です。 | いいえ |
Note
コネクタは、P12 キー ファイルをサポートしなくなりました。 サービス アカウントに依存している場合は、代わりに JSON キー ファイルを使用することをお勧めします。 P12 キー ファイルのサポートに使用されていた P12CustomPwd プロパティも、非推奨になりました。 詳細については、こちらの記事を参照してください。
例:
{
"name": "GoogleBigQueryLinkedService",
"properties": {
"type": "GoogleBigQuery",
"typeProperties": {
"project" : "<project id>",
"requestGoogleDriveScope" : true,
"authenticationType" : "ServiceAuthentication",
"email": "<email>",
"keyFilePath": "<.json key path on the IR machine>"
},
"connectVia": {
"referenceName": "<name of Self-hosted Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
データセットのプロパティ
データセットを定義するために使用できるセクションとプロパティの完全な一覧については、データセットに関する記事をご覧ください。 このセクションでは、Google BigQuery データセットでサポートされるプロパティの一覧を示します。
Google BigQuery からデータをコピーするには、データセットの type プロパティを GoogleBigQueryObject に設定します。 次のプロパティがサポートされています。
プロパティ | 内容 | 必須 |
---|---|---|
type | データセットの type プロパティは、次のように設定する必要があります:GoogleBigQueryObject | はい |
dataset | Google BigQuery データセットの名前。 | いいえ (アクティビティ ソースの "query" が指定されている場合) |
table | テーブルの名前。 | いいえ (アクティビティ ソースの "query" が指定されている場合) |
tableName | テーブルの名前。 このプロパティは下位互換性のためにサポートされています。 新しいワークロードでは、dataset と table を使用します。 |
いいえ (アクティビティ ソースの "query" が指定されている場合) |
例
{
"name": "GoogleBigQueryDataset",
"properties": {
"type": "GoogleBigQueryObject",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<GoogleBigQuery linked service name>",
"type": "LinkedServiceReference"
}
}
}
コピー アクティビティのプロパティ
アクティビティの定義に利用できるセクションとプロパティの完全な一覧については、パイプラインに関する記事を参照してください。 このセクションでは、Google BigQuery ソース タイプでサポートされるプロパティの一覧を示します。
ソース タイプとしての GoogleBigQuerySource
Google BigQuery からデータをコピーするには、コピー アクティビティのソースの種類を GoogleBigQuerySource に設定します。 コピー アクティビティの source セクションでは、次のプロパティがサポートされます。
プロパティ | 内容 | 必須 |
---|---|---|
type | コピー アクティビティのソースの type プロパティは GoogleBigQuerySource に設定する必要があります。 | はい |
query | カスタム SQL クエリを使用してデータを読み取ります。 たとえば "SELECT * FROM MyTable" です。 |
いいえ (データセットの "tableName" が指定されている場合) |
例:
"activities":[
{
"name": "CopyFromGoogleBigQuery",
"type": "Copy",
"inputs": [
{
"referenceName": "<GoogleBigQuery input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "GoogleBigQuerySource",
"query": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Lookup アクティビティのプロパティ
プロパティの詳細については、Lookup アクティビティに関するページを参照してください。
関連するコンテンツ
コピー アクティビティによってソース、シンクとしてサポートされるデータ ストアの一覧については、サポートされるデータ ストアに関するセクションを参照してください。