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

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

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

重要

ServiceNow V2 连接器提供改进的原生 ServiceNow 支持。 如果在解决方案中使用 ServiceNow V1 连接器 ,建议尽早 升级 ServiceNow 连接器 。 有关 V2 和 V1 之间的差异的详细信息,请参阅本 部分

支持的功能

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

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

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

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

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

先决条件

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

入门

若要使用管道执行复制活动,可以使用以下工具或 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)。
认证类型 可使用的身份验证类型。
允许的值为: BasicOAuth2
用户名 用户名用于连接到 ServiceNow 服务器,进行基本和 OAuth2 身份验证。
密码 用于基本和 OAuth2 身份验证的用户名所对应的密码。 将此字段标记为 SecureString 以安全存储,或 引用存储在 Azure Key Vault 中的机密
clientId 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 表值的类型。 此属性的值可以是 displayactual (默认值)。 调用 ServiceNow REST API 时,可以将其视为 true 或 false 的参数sysparm_display_value

{
    "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。
价值 常量值。 是(当表达式类型为常量或字段时)
运算符 运算符值。 有关运算符的详细信息,请参阅本文包含字符串的选项字段的运算符 是(当表达式类型为一元或二进制时)
操作数 运算符应用于其中的表达式列表。 是(当表达式类型为一元或二进制时)
页面大小 查询结果的每页文档数。
(默认值为 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>"
            }
        }
    }
]

查找活动属性

若要了解有关属性的详细信息,请查看 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 配置为 displayactual。 表的显示名或实际名称用作tableName的值。

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

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

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