使用 Azure 数据工厂或 Synapse Analytics 从 ServiceNow 复制数据(旧版)
适用于:Azure 数据工厂
Azure Synapse Analytics
本文概述如何在 Azure 数据工厂和 Synapse Analytics 管道中使用复制活动从 ServiceNow 复制数据。 它是基于概述复制活动总体的复制活动概述一文。
重要
新的 ServiceNow 连接器提供改进的本机 ServiceNow 支持。 如果在解决方案中使用旧版 ServiceNow 连接器,建议尽早升级 ServiceNow 连接器。 有关旧版和最新版本之间的差异的详细信息,请参阅此部分。
此 ServiceNow 连接器支持以下功能:
① Azure 集成运行时 ② 自承载集成运行时
如需可以用作源/接收器的数据存储的列表,请参阅支持的数据存储表。
服务提供了内置驱动程序,用来启用连接。 因此,使用此连接器无需手动安装任何驱动程序。
若要使用管道执行复制活动,可以使用以下工具或 SDK 之一:
使用以下步骤在 Azure 门户 UI 中创建一个到 ServiceNow 的链接服务。
浏览到 Azure 数据工厂或 Synapse 工作区中的“管理”选项卡并选择“链接服务”,然后单击“新建”:
搜索“ServiceNow”并选择 ServiceNow 连接器。
配置服务详细信息、测试连接并创建新的链接服务。
对于特定于 ServiceNow 连接器的数据工厂实体,以下部分提供有关用于定义这些实体的属性的详细信息。
ServiceNow 链接服务支持以下属性:
属性 | 描述 | 必需 |
---|---|---|
type | type 属性必须设置为:ServiceNow | 是 |
endpoint | ServiceNow 服务器的终结点 (http://<instance>.service-now.com )。 |
是 |
authenticationType | 可使用的身份验证类型。 允许值包括:BasicOAuth2 |
是 |
username | 用户名用于连接到 ServiceNow 服务器,进行基本和 OAuth2 身份验证。 | 是 |
password | 基本和 OAuth2 身份验证的用户名所对应的密码。 将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure Key Vault 中的机密。 | 是 |
clientId | OAuth2 身份验证的客户端 ID。 | 否 |
clientSecret | OAuth2 身份验证的客户端密码。 将此字段标记为 SecureString 以安全地存储它,或引用 Azure Key Vault 中存储的机密。 | 否 |
useEncryptedEndpoints | 指定是否使用 HTTPS 加密数据源终结点。 默认值为 true。 | 否 |
useHostVerification | 指定通过 TLS 进行连接时是否要求服务器证书中的主机名与服务器的主机名匹配。 默认值为 true。 | 否 |
usePeerVerification | 指定通过 TLS 进行连接时是否要验证服务器的标识。 默认值为 true。 | 否 |
示例:
{
"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 | 数据集的 type 属性必须设置为:ServiceNowObject | 是 |
tableName | 表的名称。 | 否(如果指定了活动源中的“query”) |
示例
{
"name": "ServiceNowDataset",
"properties": {
"type": "ServiceNowObject",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<ServiceNow linked service name>",
"type": "LinkedServiceReference"
}
}
}
有关可用于定义活动的各部分和属性的完整列表,请参阅管道一文。 本部分提供 ServiceNow 源支持的属性列表。
要从 ServiceNow 复制数据,请将复制活动中的源类型设置为“ServiceNowSource” 。 复制活动source部分支持以下属性:
属性 | 描述 | 必需 |
---|---|---|
type | 复制活动 source 的 type 属性必须设置为:ServiceNowSource | 是 |
query | 使用自定义 SQL 查询读取数据。 例如:"SELECT * FROM Actual.alm_asset" 。 |
否(如果指定了数据集中的“tableName”) |
在查询中指定 ServiceNow 的架构和列时注意以下内容,并且参阅有关复制性能隐含的性能提示 。
- 架构:在 ServiceNow 查询中将架构指定为
Actual
或Display
,从而在调用 ServiceNow REST API 时可以将其视为参数sysparm_display_value
,其值为 true 或 false。 - 列:
Actual
架构下实际值的列名是[column name]_value
,而Display
架构下显示值的列名为[column name]_display_value
。 请注意,列名需要映射到查询中所使用的架构。
示例查询:SELECT col_value FROM Actual.alm_asset
或 SELECT col_display_value FROM Display.alm_asset
示例:
"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 个不同的架构,一个是“实际”,返回实际数据;另一个是“显示”,返回数据的显示值 。
如果在有查询中筛选器,请使用“实际”架构,此架构具有更好的复制性能。 在针对“实际”架构进行查询时,ServiceNow 在提取数据时将本机支持筛选器以仅返回筛选的结果集,然而在针对“显示”架构进行查询时,ADF 将检索所有数据并在内部应用筛选器。
ServiceNow 表索引有助于提高查询性能,请参阅创建表索引。
若要了解有关属性的详细信息,请查看 Lookup 活动。
有关复制活动支持作为源和接收器的数据存储的列表,请参阅支持的数据存储。