Compartilhar via

使用 Azure Data Factory 或 Synapse Analytics 从 ServiceNow V1 复制数据

适用于: Azure Data Factory Azure Synapse Analytics

本文概述了如何使用 Azure Data Factory 和 Synapse Analytics 管道中的复制活动从 ServiceNow 复制数据。 它是建立在介绍复制活动概况的复制活动概述一文基础上的。

重要

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

支持的功能

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

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

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

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

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

入门

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

使用 UI 创建到 ServiceNow 的链接服务

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

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

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

    ServiceNow 连接器的屏幕截图。

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

    ServiceNow 的链接服务配置(旧版)的屏幕截图。

连接器配置详细信息

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

关联服务属性

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

属性 描述 必需
类型 type 属性必须设置为:“ServiceNow”
终结点 ServiceNow 服务器的终结点 (http://<instance>.service-now.com)。
验证类型 可使用的身份验证类型。
允许的值为: BasicOAuth2
用户名 用户名用于连接到 ServiceNow 服务器,进行基本和 OAuth2 身份验证。
密码 用于 Basic 和 OAuth2 身份验证的用户名对应的密码。 将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure Key Vault 中的机密。
客户端 ID OAuth2 身份验证的客户端 ID。
客户密钥 OAuth2 身份验证的客户端密码。 将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure Key Vault 中的机密。
使用加密端点 指定是否使用 HTTPS 加密数据源终结点。 默认值为 true。
使用主机验证 指定通过 TLS 进行连接时是否要求服务器证书中的主机名与服务器的主机名匹配。 默认值为 true。
usePeerVerification 指定通过 TLS 进行连接时是否要验证服务器的标识。 默认值为 true。

Example:

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

数据集属性

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

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

属性 描述 必需
类型 数据集的 type 属性必须设置为:ServiceNowObject
表名称 表的名称。 否(如果指定了活动源中的“query”)

示例

{
    "name": "ServiceNowDataset",
    "properties": {
        "type": "ServiceNowObject",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<ServiceNow linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

拷贝活动的属性

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

以 ServiceNow 作为源

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

属性 描述 必需
类型 复制活动源的 type 属性必须设置为:ServiceNowSource
查询 使用自定义 SQL 查询读取数据。 例如: "SELECT * FROM Actual.alm_asset" 如果在数据集中指定了“tableName”,则为否

在查询中指定 ServiceNow 的架构和列时注意以下内容,并且参阅有关复制性能隐含的性能提示

  • 架构:在 ServiceNow 查询中将架构指定为 ActualDisplay,从而在调用 sysparm_display_value 时可以将其视为参数 ,其值为 true 或 false。 
  • 列:Actual 架构下实际值的列名是 [column name]_value,而 Display 架构下显示值的列名为 [column name]_display_value。 请注意,列名需要映射到查询中所使用的架构。

示例查询:SELECT col_value FROM Actual.alm_assetSELECT col_display_value FROM Display.alm_asset

Example:

"activities":[
    {
        "name": "CopyFromServiceNow",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<ServiceNow input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "ServiceNowSource",
                "query": "SELECT * FROM Actual.alm_asset"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

性能提示

要使用的架构

ServiceNow 有 2 个不同的架构,一个是“实际”,返回实际数据;另一个是“显示”,返回数据的显示值

如果在查询中有筛选器时,请使用“Actual”架构,此架构副本性能更好。 在查询“实际”架构时,ServiceNow 原生支持在提取数据时应用过滤器,仅返回筛选后的结果集。然而,在查询“显示”架构时,ADF 会检索所有数据,并在内部应用过滤器。

索引

ServiceNow 表索引有助于提高查询性能,请参阅创建表索引

查询活动属性

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

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