Azure Data Factory または Azure Synapse Analytics を使用して Google BigQuery からデータをコピーする
適用対象: Azure Data Factory Azure Synapse Analytics
ヒント
企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。
この記事では、Azure Data Factory および Azure Synapse Analytics パイプラインで Copy アクティビティを使用して、Google BigQuery からデータをコピーする方法について説明します。 この記事は、コピー アクティビティの概要を示しているコピー アクティビティの概要に関する記事に基づいています。
重要
新しい Google BigQuery コネクタでは、ネイティブの Google BigQuery サポートが強化されています。 ソリューションで従来の Google BigQuery コネクタを使用している場合は、2024 年 10 月 31 日より前に Google BigQuery コネクタをアップグレードしてください。 レガシ バージョンと最新バージョンの違いの詳細については、このセクションを参照してください。
サポートされる機能
この Google BigQuery コネクタは、次の機能でサポートされています。
サポートされる機能 | IR |
---|---|
Copy アクティビティ (ソース/-) | ① ② |
Lookup アクティビティ | ① ② |
① Azure 統合ランタイム ② セルフホステッド統合ランタイム
コピー アクティビティによってソースまたはシンクとしてサポートされるデータ ストアの一覧については、サポートされるデータ ストアに関する記事の表をご覧ください。
このサービスでは、接続を可能にする組み込みのドライバーが提供されます。 そのため、このコネクタを使用するためにドライバーを手動でインストールする必要はありません。
コネクタは、この記事の Windows バージョンをサポートしています。
コネクタは P12 キーファイルをサポートしなくなりました。 サービス アカウントに依存している場合は、代わりに JSON キーファイルを使用することをお勧めします。 P12 キーファイルのサポートに使用される P12CustomPwd プロパティも非推奨になりました。 詳細については、 こちらの記事をご覧ください。
Note
この Google BigQuery コネクタは、BigQuery API 上に構築されます。 BigQuery では着信要求の最大数を制限し、プロジェクトごとに適切なクォータを強制することに注意してください。割り当てと制限 - API リクエストを参照してください。 アカウントに対してあまり多くの同時要求をトリガーしないようにしてください。
はじめに
パイプラインでコピー アクティビティを実行するには、次のいずれかのツールまたは SDK を使用します。
UI を使用して Google BigQuery のリンク サービスを作成する
次の手順を使用して、Azure portal UI で Google BigQuery のリンク サービスを作成します。
Azure Data Factory または Synapse ワークスペースの [管理] タブに移動し、[リンクされたサービス] を選択して、[新規] をクリックします。
Google BigQuery を検索し、コネクタを選択します。
サービスの詳細を構成し、接続をテストして、新しいリンク サービスを作成します。
コネクタの構成の詳細
以下のセクションでは、Google BigQuery コネクタに固有のエンティティの定義に使用されるプロパティについて詳しく説明します。
リンクされたサービスのプロパティ
Google BigQuery のリンクされたサービスでは、次のプロパティがサポートされます。
プロパティ | 内容 | 必須 |
---|---|---|
type | type プロパティは、GoogleBigQueryV2 に設定する必要があります。 | はい |
projectId | クエリ対象の既定の BigQuery プロジェクトのプロジェクト ID。 | はい |
authenticationType | 認証に使用される OAuth 2.0 認証メカニズム。 使用可能な値は、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 に保存されているシークレットを参照します。 | はい |
例:
{
"name": "GoogleBigQueryLinkedService",
"properties": {
"type": "GoogleBigQueryV2",
"typeProperties": {
"projectId" : "<project ID>",
"authenticationType" : "UserAuthentication",
"clientId": "<client ID>",
"clientSecret": {
"type": "SecureString",
"value":"<client secret>"
},
"refreshToken": {
"type": "SecureString",
"value": "<refresh token>"
}
}
}
}
サービス認証の使用
"authenticationType" プロパティを ServiceAuthentication に設定し、前のセクションに説明されている汎用プロパティと共に次のプロパティを指定します。
プロパティ | 内容 | 必須 |
---|---|---|
keyFileContent | サービス アカウントの認証に使用される JSON 形式のキー ファイル。 このフィールドを SecureString とマークして安全に保存するか、Azure Key Vault に保存されているシークレットを参照します。 | はい |
例:
{
"name": "GoogleBigQueryLinkedService",
"properties": {
"type": "GoogleBigQueryV2",
"typeProperties": {
"projectId": "<project ID>",
"authenticationType": "ServiceAuthentication",
"keyFileContent": {
"type": "SecureString",
"value": "<key file JSON string>"
}
}
}
}
データセットのプロパティ
データセットを定義するために使用できるセクションとプロパティの完全な一覧については、データセットに関する記事をご覧ください。 このセクションでは、Google BigQuery データセットでサポートされるプロパティの一覧を示します。
Google BigQuery からデータをコピーするには、データセットの type プロパティを GoogleBigQueryV2Object に設定します。 次のプロパティがサポートされています。
プロパティ | 内容 | 必須 |
---|---|---|
type | データセットの type プロパティは、GoogleBigQueryV2Object に設定する必要があります。 | はい |
dataset | Google BigQuery データセットの名前。 | いいえ (アクティビティ ソースの "query" が指定されている場合) |
table | テーブルの名前。 | いいえ (アクティビティ ソースの "query" が指定されている場合) |
例
{
"name": "GoogleBigQueryDataset",
"properties": {
"type": "GoogleBigQueryV2Object",
"linkedServiceName": {
"referenceName": "<Google BigQuery linked service name>",
"type": "LinkedServiceReference"
},
"schema": [],
"typeProperties": {
"dataset": "<dataset name>",
"table": "<table name>"
}
}
}
コピー アクティビティのプロパティ
アクティビティの定義に利用できるセクションとプロパティの完全な一覧については、パイプラインに関する記事を参照してください。 このセクションでは、Google BigQuery ソース タイプでサポートされるプロパティの一覧を示します。
ソース タイプとしての GoogleBigQuerySource
Google BigQuery からデータをコピーするには、コピー アクティビティのソースの種類を GoogleBigQueryV2Source に設定します。 コピー アクティビティの source セクションでは、次のプロパティがサポートされます。
プロパティ | 内容 | 必須 |
---|---|---|
type | コピー アクティビティのソースの type プロパティは GoogleBigQueryV2Source に設定する必要があります。 | はい |
query | カスタム SQL クエリを使用してデータを読み取ります。 たとえば "SELECT * FROM MyTable" です。 詳細については、「クエリ構文」を参照してください。 |
いいえ (データセット内の "dataset" と "table" が指定されている場合) |
例:
"activities":[
{
"name": "CopyFromGoogleBigQuery",
"type": "Copy",
"inputs": [
{
"referenceName": "<Google BigQuery input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "GoogleBigQueryV2Source",
"query": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Lookup アクティビティのプロパティ
プロパティの詳細については、Lookup アクティビティに関するページを参照してください。
Google BigQuery コネクタをアップグレードする
Google BigQuery コネクタをアップグレードするには、新しい Google BigQuery のリンクされたサービスを作成し、「リンクされたサービスのプロパティ」を参照して構成します。
Google BigQuery と Google BigQuery (レガシ) の違い
Google BigQuery コネクタでは新しい機能を提供し、Google BigQuery (レガシ) コネクタのほとんどの機能と互換性があります。 下の表からは、Google BigQuery と Google BigQuery (レガシ) の違いがわかります。
Google BigQuery | Google BigQuery (レガシ) |
---|---|
サービス認証は、Azure 統合ランタイムとセルフホステッド統合ランタイムによってサポートされます。 trustedCertPath、useSystemTrustStore、email、keyFilePath といったプロパティは、セルフホステッド統合ランタイムでのみ使用可能であるため、サポートされていません。 |
サービス認証は、セルフホステッド統合ランタイムによってのみサポートされます。 trustedCertPath、useSystemTrustStore、email、keyFilePath プロパティをサポートします。 |
Google BigQuery のデータ型から、サービスによって内部的に使用される中間データ型への、以下のマッピングが使用されます。 Numeric -> Decimal Timestamp -> DateTimeOffset Datetime -> DatetimeOffset |
Google BigQuery のデータ型から、サービスによって内部的に使用される中間データ型への、以下のマッピングが使用されます。 Numeric -> String Timestamp -> DateTime Datetime -> DateTime |
requestGoogleDriveScope はサポートされていません。 「Google Drive API スコープを選択する」と「ドライブデータをクエリする」を参照し、Google BigQuery サービスでアクセス許可を追加で適用する必要があります。 | requestGoogleDriveScope をサポートします。 |
additionalProjects はサポートされていません。 代わりに、Google Cloud コンソールを使用してパブリック データセットに対してクエリを実行します。 | additionalProjects をサポートします。 |
関連するコンテンツ
コピー アクティビティによってソース、シンクとしてサポートされるデータ ストアの一覧については、サポートされるデータ ストアに関するセクションを参照してください。