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 コネクタをソリューションで使用している場合は、下位互換性のみを目的として現状のままサポートされています。 Google BigQuery コネクタ (レガシ) に関する記事を参照してください。

サポートされる機能

この Google BigQuery コネクタは、次の機能でサポートされています。

サポートされる機能 IR
Copy アクティビティ (ソース/-) ① ②
Lookup アクティビティ ① ②

① Azure 統合ランタイム ② セルフホステッド統合ランタイム

コピー アクティビティによってソースまたはシンクとしてサポートされるデータ ストアの一覧については、サポートされるデータ ストアに関する記事の表をご覧ください。

このサービスでは、接続を可能にする組み込みのドライバーが提供されます。 そのため、このコネクタを使用するためにドライバーを手動でインストールする必要はありません。

注意

この Google BigQuery コネクタは、BigQuery API 上に構築されます。 BigQuery では着信要求の最大数を制限し、プロジェクトごとに適切なクォータを強制することに注意してください。割り当てと制限 - API リクエストを参照してください。 アカウントに対してあまり多くの同時要求をトリガーしないようにしてください。

はじめに

パイプラインでコピー アクティビティを実行するには、次のいずれかのツールまたは SDK を使用します。

UI を使用して Google BigQuery のリンク サービスを作成する

次の手順を使用して、Azure portal UI で Google BigQuery のリンク サービスを作成します。

  1. Azure Data Factory または Synapse ワークスペースの [管理] タブに移動し、[リンクされたサービス] を選択して、[新規] をクリックします。

  2. Google BigQuery を検索し、コネクタを選択します。

    Google BigQuery コネクタのスクリーンショット。

  3. サービスの詳細を構成し、接続をテストして、新しいリンク サービスを作成します。

    Google BigQuery のリンク サービスの構成のスクリーンショット。

コネクタの構成の詳細

以下のセクションでは、Google BigQuery コネクタに固有のエンティティの定義に使用されるプロパティについて詳しく説明します。

リンクされたサービスのプロパティ

Google BigQuery のリンクされたサービスでは、次のプロパティがサポートされます。

プロパティ 内容 必須
type type プロパティは、GoogleBigQueryV2 に設定する必要があります。 はい
projectId クエリ対象の既定の BigQuery プロジェクトのプロジェクト ID。 はい
authenticationType 認証に使用される OAuth 2.0 認証メカニズム。
使用可能な値は、UserAuthenticationServiceAuthentication です。 これらの認証の種類それぞれのプロパティと 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 をサポートします。

コピー アクティビティによってソース、シンクとしてサポートされるデータ ストアの一覧については、サポートされるデータ ストアに関するセクションを参照してください。