使用 Azure 数据工厂或 Synapse Analytics 从 ServiceNow V2 复制数据

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

本文概述如何在 Azure 数据工厂和 Synapse Analytics 管道中使用复制活动从 ServiceNow 复制数据。 它基于 复制活动概述 文章构建,本文概述了复制活动。

重要

ServiceNow V1 连接器处于 删除阶段。 建议将 ServiceNow 连接器 从 V1 升级到 V2。

支持的功能

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

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

(1) Azure 集成运行时 (2) 自承载集成运行时

有关作为源/接收器支持的数据存储的列表,请参阅 支持的数据存储 表。

服务提供了内置驱动程序,用来启用连接。 因此,使用此连接器无需手动安装任何驱动程序。

先决条件

若要使用此连接器,需要具有至少对 ServiceNow 中 sys_db_object、 sys_db_view 和 sys_dictionary 表具有读取访问权限的角色。

若要访问 ServiceNow 中的视图,需要具有至少对 sys_db_view_table 和 sys_db_view_table_field 表具有读取访问权限的角色。

入门

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

使用用户界面创建与 ServiceNow 的连接服务

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

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

    使用 Azure 数据工厂 UI 创建新的链接服务的屏幕截图。

  2. 搜索“ServiceNow”并选择 ServiceNow 连接器。

    ServiceNow 连接器的屏幕截图。

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

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

连接器配置详细信息

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

联接服务属性

ServiceNow 链接服务支持以下属性:

属性 描述 必需
类型 type 属性必须设置为: ServiceNowV2 是
终结点 ServiceNow 服务器的终结点 (http://<instance>.service-now.com)。 是
认证类型 可使用的身份验证类型。
允许的值为: Basic、 OAuth2
是
用户名 用户名用于连接到 ServiceNow 服务器,进行基本和 OAuth2 身份验证。 是
密码 用于基本和 OAuth2 身份验证的用户名所对应的密码。 将此字段标记为 SecureString 以安全存储,或 引用存储在 Azure Key Vault 中的机密。 是
客户端 ID OAuth2 身份验证的客户端 ID。 是,适用于 OAuth 身份验证
客户端密钥 OAuth2 身份验证的客户端密码。 将此字段标记为 SecureString 以安全存储,或 引用存储在 Azure Key Vault 中的机密。 是,适用于 OAuth 身份验证
授权类型 指定客户端应用用于访问令牌的 OAuth2.0 流的类型。 默认值为密码。 是,适用于 OAuth 身份验证

例:

{
    "name": "ServiceNowLinkedService",
    "properties": {
        "type": "ServiceNowV2",
        "typeProperties": {
            "endpoint" : "http://<instance>.service-now.com",
            "authenticationType" : "Basic",
            "username" : "<username>",
            "password": {
                 "type": "SecureString",
                 "value": "<password>"
            }
        }
    }
}

数据集属性

有关可用于定义数据集的部分和属性的完整列表,请参阅 数据集 文章。 本部分提供 ServiceNow 数据集支持的属性列表。

若要从 ServiceNow 复制数据,请将数据集的 type 属性设置为 ServiceNowV2Object。 支持以下属性:

属性 描述 必需
类型 数据集的 type 属性必须设置为: ServiceNowV2Object 是
表名称 表的名称。 是
值类型 ServiceNow 表值的类型。 此属性的值可以是 display 或 actual (默认值)。 调用 sysparm_display_value 时,可以将其视为 true 或 false 的参数。 否

例

{
    "name": "ServiceNowDataset",
    "properties": {
        "type": "ServiceNowV2Object",
        "typeProperties": {
            "tableName": "<table name>",
            "valueType": "actual"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<ServiceNow linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

复制活动属性

有关可用于定义活动的节和属性的完整列表,请参阅 Pipelines 文章。 本部分提供 ServiceNow 源支持的属性列表。

以 ServiceNow 作为源

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

属性 描述 必需
类型 复制活动源的 type 属性必须设置为: ServiceNowV2Source 是
表达式 使用表达式读取数据。 可以在 查询生成器中配置表达式。 它与 ServiceNow 中的条件生成器具有相同的用法。 有关如何使用它的说明,请参阅 本文。 还可以 使用表达式参数。 请注意,应使用实际值而不是显示值。 否
在 expression 下
类型 表达式类型。 值可以是 Constant(默认值)、Unary、Binary、Field 和 Nary。 否
价值 常量值。 是(当表达式类型为常量或字段时)
运算符 运算符值。 有关运算符的详细信息,请参阅本文中包含字符串的选项字段的运算符。 是(当表达式类型为一元或二进制时)
操作数 运算符应用于其中的表达式列表。 是(当表达式类型为一元或二进制时)
页面大小 查询结果的每页文档数。 建议将页面大小设置为 5,000 到 10,000,以启用多线程读取。 否
(默认值为 300)

例:

"activities": [
    {
        "name": "CopyFromServiceNow",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<ServiceNow input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "ServiceNowV2Source",
                "expression": {
                    "type": "Nary",
                    "operators": [
                        "<"
                    ],
                    "operands": [
                        {
                            "type": "Field",
                            "value": "u_founded"
                        },
                        {
                            "type": "Constant",
                            "value": "2000"
                        }
                    ]
                },
                "pageSize": 300
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

使用表达式参数

可以通过选择“添加动态内容”在“查询生成器”中配置表达式参数。 参数类型应为 Object,值应遵循以下示例 JSON 中显示的格式:

 {
        "type": "Nary",
        "operators": [
                "="
        ],
        "operands": [
                {
                        "type": "Field",
                        "value": "col"
                },
                {
                        "type": "Constant",
                        "value": "val"
                }
        ]
}

下面是使用表达式参数的源 JSON 的示例:

"activities": [
    {
        "name": "CopyFromServiceNow",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<ServiceNow input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "ServiceNowV2Source",
                "expression": {
                    "type": "Expression",
                    "value": "@pipeline().parameters.expressionParameter"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

注释

由于 ServiceNow API 限制,无法获取列 sys_tags 及其派生列。

查找活动属性

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

升级 ServiceNow 连接器

下面是帮助你升级 ServiceNow 连接器的步骤:

  1. 通过引用 链接服务属性创建新的链接服务。
  2. 源中的查询将升级到查询生成器,该生成器的用法与 ServiceNow 中的条件生成器相同。 参考 ServiceNow 作为源,了解如何配置它。

ServiceNow V2 与 V1 之间的差异

ServiceNow V2 连接器提供新功能,并与 ServiceNow V1 连接器的大多数功能兼容。 下表显示了 V2 与 V1 之间的功能差异。

ServiceNow V2 ServiceNow V1
链接服务不支持 useEncryptedEndpoints、useHostVerification 和 usePeerVerification。 支持在链接服务中使用 useEncryptedEndpoints、useHostVerification 和 usePeerVerification。
支持源中的 查询生成器 。 源不支持查询生成器。
不支持基于 SQL 的查询。 支持基于 SQL 的查询。
查询生成器不支持 sortBy 查询。 支持 Query 中的 sortBy 查询。
可以在数据集中查看架构。 无法在数据集中查看架构。
可以在数据集中将 valueType 配置为 display 或 actual。 表的显示名或实际名称用作tableName的值。

列名称为 [column name],用于显示值和实际值。
带有“Display”或“Actual”前缀的显示或实际表名被用作tableName的值。

实际值的列名为 [column name]_value,而显示值为 [column name]_display_value。

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