共用方式為

使用 Azure 数据工厂或 Synapse Analytics 从 QuickBooks Online 复制数据

适用于:Azure 数据工厂 Azure Synapse Analytics

本文概述如何使用 Azure 数据工厂或 Synapse Analytics 管道中的复制活动从 QuickBooks Online 复制数据。 它是基于概述复制活动总体的复制活动概述一文。

Important

此连接器版本 1.0 目前为预览版。 欢迎试用并提供反馈。 若要在解决方案中使用预览版连接器的依赖项,请联系 Azure 客户支持

Important

QuickBooks 连接器版本 2.0 提供了改进的原生 QuickBooks 支持。 如果在解决方案中使用 QuickBooks 连接器版本 1.0,请在 2025 年 8 月 31 日之前升级 QuickBooks 连接器。 有关版本 2.0 和版本 1.0 之间差异的详细信息,请参阅此部分

支持的功能

此 QuickBooks 连接器支持以下功能:

支持的功能 IR
复制活动(源/-) (1) (2)
查找活动 (1) (2)

① Azure 集成运行时 ② 自承载集成运行时

如需可以用作源/接收器的数据存储的列表,请参阅支持的数据存储表。

此连接器支持 QuickBooks OAuth 2.0 身份验证。

入门指南

若要使用管道执行复制活动,可以使用以下工具或 SDK 之一:

使用 UI 创建一个到 QuickBooks 的链接服务

使用以下步骤在 Azure 门户 UI 中创建一个到 QuickBooks 的链接服务。

  1. 浏览到 Azure 数据工厂或 Synapse 工作区中的“管理”选项卡并选择“链接服务”,然后单击“新建”:

  2. 搜索 QuickBooks 并选择 QuickBooks 连接器。

    QuickBooks 连接器的屏幕截图。

  3. 配置服务详细信息、测试连接并创建新的链接服务。

    QuickBooks 的链接服务配置的屏幕截图。

连接器配置详细信息

对于特定于 QuickBooks 连接器的数据工厂实体,以下部分提供有关用于定义这些实体的属性的详细信息。

链接服务属性

QuickBooks 连接器现在支持版本 2.0。 请参阅本 部分,将 QuickBooks 连接器版本从 1.0 升级。 关于属性详情,请参阅对应部分。

版本 2.0

应用版本 2.0 时,QuickBooks 链接服务支持以下属性:

Property Description Required
类型 type 属性必须设置为:QuickBooks Yes
版本 指定的版本。 该值为 2.0 Yes
终结点 QuickBooks Online 服务器的终结点。 (即 quickbooks.api.intuit.com) Yes
companyId QuickBooks 公司授权的公司 ID。 有关如何查找公司 ID 的信息,请参阅如何查找我的公司 ID Yes
consumerKey 用于 OAuth 2.0 身份验证的 QuickBooks Online 应用程序的客户端 ID。 可从此处了解详细信息。 Yes
consumerSecret 用于 OAuth 2.0 身份验证的 QuickBooks Online 应用程序的客户端密码。 将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure Key Vault 中的机密 Yes
refreshToken 与 QuickBooks 应用程序关联的 OAuth 2.0 刷新令牌。 可从此处了解详细信息。 请注意,刷新令牌将在 180 天后到期。 客户需要定期更新刷新令牌。
将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure Key Vault 中的机密
Yes

Example:

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

版本 1.0

应用版本 1.0 时,QuickBooks 链接服务支持以下属性:

Property Description Required
类型 type 属性必须设置为:QuickBooks Yes
connectionProperties 一组属性,定义如何连接到 QuickBooks。 Yes
connectionProperties
终结点 QuickBooks Online 服务器的终结点。 (即 quickbooks.api.intuit.com) Yes
companyId QuickBooks 公司授权的公司 ID。 有关如何查找公司 ID 的信息,请参阅如何查找我的公司 ID Yes
consumerKey 用于 OAuth 2.0 身份验证的 QuickBooks Online 应用程序的客户端 ID。 可从此处了解详细信息。 Yes
consumerSecret 用于 OAuth 2.0 身份验证的 QuickBooks Online 应用程序的客户端密码。 将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure Key Vault 中的机密 Yes
refreshToken 与 QuickBooks 应用程序关联的 OAuth 2.0 刷新令牌。 可从此处了解详细信息。 请注意,刷新令牌将在 180 天后到期。 客户需要定期更新刷新令牌。
将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure Key Vault 中的机密
Yes
useEncryptedEndpoints 指定是否使用 HTTPS 加密数据源终结点。 默认值为 true。 No

Example:

{
    "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。 支持以下属性:

Property Description Required
类型 数据集的 type 属性必须设置为:QuickBooksObject Yes
tableName 表的名称。 否(如果指定了活动源中的“query”)

Example

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

复制活动属性

有关可用于定义活动的各部分和属性的完整列表,请参阅管道一文。 本部分提供 QuickBooks 源支持的属性列表。

QuickBooks 作为源

要从 QuickBooks Online 复制数据,请将复制活动中的源类型设置为 QuickBooksSource。 复制活动source部分支持以下属性:

Property Description Required
类型 复制活动 source 的 type 属性必须设置为:QuickBooksSource Yes
查询 使用自定义 SQL 查询读取数据。

对于 2.0 版本,只能使用具有限制的 QuickBooks 原生查询。 有关详细信息,请参阅 查询作和语法。 请注意,查询中指定的 tableName 必须与数据集中指定的 tableName 匹配。

对于版本 1.0,可以使用 SQL-92 查询。 例如:"SELECT * FROM "Bill" WHERE Id = '123'"
否(如果指定了数据集中的“tableName”)

Example:

"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 存储。 从该存储中,可以使用服务将数据复制到所选的接收器。

对 QuickBooks 进行数据类型映射

从 Quickbook 复制数据时,以下映射从 Quickbooks 的数据类型应用到服务使用的内部数据类型。 若要了解复制活动如何将源架构和数据类型映射到接收器,请参阅架构和数据类型映射

Quickbooks 数据类型 临时服务数据类型(适用于版本 2.0) 临时服务数据类型(适用于版本 1.0)
String 字符串 字符串
布尔 bool bool
DateTime 日期/时间 日期/时间
Decimal 十进制 (15,2) 十进制 (15, 2)
Enum 字符串 字符串
Date 日期/时间 日期/时间
BigDecimal 十进制 (15,2) 十进制 (15, 2)
Integer int int

Lookup 活动属性

若要了解有关属性的详细信息,请查看 Lookup 活动

Quickbooks 连接器生命周期和升级

下表显示了不同版本的 QuickBooks 连接器的发布阶段和更改日志:

Version 发布阶段 更改日志
版本 1.0 宣布终止支持 /
版本 2.0 GA版本现已可用 • 支持具有一定限制的 QuickBooks 原生查询。 不支持 GROUP BY 子句、JOIN 子句和聚合函数(Avg、Max、Sum)。 有关详细信息,请参阅 查询作和语法

tableName 中指定的 query 必须与数据集中的 tableName 匹配。

• 不支持 SQL-92 查询。

useEncryptedEndpoints 不受支持。

将 Quickbooks 连接器从版本 1.0 升级到版本 2.0

  1. “编辑链接服务 ”页中,为版本选择 2.0。 有关详细信息,请参阅 链接服务版本 2.0 属性
  2. 如果你在复制活动源或引用版本 1.0 链接服务的查找活动中使用 SQL 查询,则需要将它们转换为 QuickBooks 本机查询。 通过 Quickbooks 作为源类型查询操作及语法详细了解本机查询。

有关复制活动支持作为源和接收器的数据存储的列表,请参阅支持的数据存储