Azure Data Factory または Synapse Analytics を使用して QuickBooks Online からデータをコピーする (プレビュー)

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。

この記事では、Azure Data Factory または Synapse Analytics パイプラインでコピー アクティビティを使用して、QuickBooks Online からデータをコピーする方法について説明します。 この記事は、コピー アクティビティの概要を示しているコピー アクティビティの概要に関する記事に基づいています。

重要

このコネクタは、現在プレビューの段階です。 実際にお試しいただき、フィードバックをお寄せください。 ソリューションでプレビュー版コネクタの依存関係を取得したい場合、Azure サポートにお問い合わせください。

サポートされる機能

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

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

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

ソースおよびシンクとしてサポートされているデータ ストアの一覧については、サポートされるデータ ストアに関する表を参照してください。

このコネクタでは、QuickBooks OAuth 2.0 認証がサポートされています。

作業の開始

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

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

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

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

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

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

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

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

コネクタの構成の詳細

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

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

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

プロパティ 内容 必須
type type プロパティは、次のように設定する必要があります:QuickBooks に設定する必要があります はい
connectionProperties QuickBooks への接続方法を定義するプロパティのグループ。 はい
connectionProperties の下:
endpoint QuickBooks Online サーバーのエンドポイント。 (つまり、quickbooks.api.intuit.com) はい
companyId 承認する QuickBooks の会社の会社 ID。 会社 ID を検索する方法については、会社 ID の検索方法に関する記事を参照してください。 はい
consumerKey OAuth 2.0 認証用の QuickBooks Online アプリケーションのクライアント ID。 詳細については、こちらを参照してください。 はい
consumerSecret OAuth 2.0 認証用の QuickBooks Online アプリケーションのクライアント シークレット。 このフィールドを SecureString とマークして安全に保存するか、Azure Key Vault に保存されているシークレットを参照します。 はい
refreshToken QuickBooks アプリケーションに関連付けられた OAuth 2.0 更新トークン。 詳細については、こちらを参照してください。 更新トークンは、180 日後に有効期限が切れることに注意してください。 お客様は、更新トークンを定期的に更新する必要があります。
このフィールドを SecureString とマークして安全に保存するか、Azure Key Vault に保存されているシークレットを参照します。
はい
useEncryptedEndpoints データ ソースのエンドポイントが HTTPS を使用して暗号化されるかどうかを指定します。 既定値は、true です。 いいえ

例:

{
    "name": "QuickBooksLinkedService",
    "properties": {
        "type": "QuickBooks",
        "typeProperties": {
            "connectionProperties": {
                "endpoint": "quickbooks.api.intuit.com",
                "companyId": "<company id>",
                "consumerKey": "<consumer key>", 
                "consumerSecret": {
                     "type": "SecureString",
                     "value": "<clientSecret>"
            	},
                "refreshToken": {
                     "type": "SecureString",
                     "value": "<refresh token>"
            	},
                "useEncryptedEndpoints": true
            }
        }
    }
}

リンク サービスの更新トークンの処理

リンク サービスで QuickBooks Online コネクタを使用する場合は、QuickBooks から OAuth 2.0 更新トークンを正しく管理することが重要です。 リンク サービスは、更新トークンを使用して新しいアクセス トークンを取得します。 ただし、QuickBooks Online で更新トークンは定期的に更新され、前の更新トークンは無効になります。 リンクサービスは Azure Key Vault の更新トークンを自動的に更新しないため、接続が中断されないように更新トークンの更新を管理する必要があります。 そうしないと、更新トークンの有効期限が切れると認証エラーが発生する可能性があります。

QuickBooks Online の更新トークンの有効期限ポリシーに基づいて、Azure Key Vault の更新トークンを手動で更新できます。 しかし、別のアプローチとして、スケジュールされたタスクまたは Azure 関数を使用して更新を自動化し、新しい更新トークンをチェックして Azure Key Vault で更新する方法もあります。

データセットのプロパティ

データセットを定義するために使用できるセクションとプロパティの完全な一覧については、データセットに関する記事をご覧ください。 このセクションでは、QuickBooks データセットでサポートされるプロパティの一覧を示します。

QuickBooks Online からデータをコピーするには、データセットの type プロパティを QuickBooksObject に設定します。 次のプロパティがサポートされています。

プロパティ 内容 必須
type データセットの type プロパティは、次のように設定する必要があります:QuickBooksObject に設定する必要があります はい
tableName テーブルの名前。 いいえ (アクティビティ ソースの "query" が指定されている場合)

{
    "name": "QuickBooksDataset",
    "properties": {
        "type": "QuickBooksObject",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<QuickBooks linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

コピー アクティビティのプロパティ

アクティビティの定義に利用できるセクションとプロパティの完全な一覧については、パイプラインに関する記事を参照してください。 このセクションでは、QuickBooks ソース でサポートされるプロパティの一覧を示します。

ソースとしての QuickBooks

QuickBooks Online からデータをコピーするには、コピー アクティビティのソースの種類を QuickBooksSource に設定します。 コピー アクティビティの source セクションでは、次のプロパティがサポートされます。

プロパティ 内容 必須
type コピー アクティビティのソースの type プロパティは、次のように設定する必要があります:QuickBooksSource に設定する必要があります はい
query カスタム SQL クエリを使用してデータを読み取ります。 (例: "SELECT * FROM "Bill" WHERE Id = '123'")。 いいえ (データセットの "tableName" が指定されている場合)

例:

"activities":[
    {
        "name": "CopyFromQuickBooks",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<QuickBooks input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "QuickBooksSource",
                "query": "SELECT * FROM \"Bill\" WHERE Id = '123' "
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

QuickBooks Desktop からデータをコピーする

サービスのコピー アクティビティでは、Quickbooks Desktop から直接データをコピーすることはできません。 Quickbooks Desktop からデータをコピーするには、Quickbooks データをコンマ区切り値 (CSV) ファイルにエクスポートし、そのファイルを Azure Blob Storage にアップロードします。 そこから、サービスを使用して、選択したシンクにデータをコピーできます。

Lookup アクティビティのプロパティ

プロパティの詳細については、Lookup アクティビティに関するページを参照してください。

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