将 ServiceNow 数据加载到 BigQuery 中
您可以使用适用于 ServiceNow 的 BigQuery Data Transfer Service 连接器将数据从 ServiceNow 加载到 BigQuery。借助 BigQuery Data Transfer Service,您可以安排周期性转移作业,以将 ServiceNow 中的最新数据添加到 BigQuery。
限制
ServiceNow 数据转移作业受到以下限制:
- 不建议在同一 ServiceNow 实例上运行并发数据转移作业。
- 周期性数据转移作业之间的最短间隔时间为 15 分钟。周期性转移作业的默认间隔时间为 24 小时。
- 单个转移配置在给定时间只能支持一次数据转移运行。如果第二次数据转移的预定运行时间在第一次转移完成之前,则只有第一次数据转移会完成,而与第一次转移时间重叠的任何其他数据转移都会被跳过。
- 为避免在单个转移配置中跳过转移,建议您通过配置重复频率来增加大型数据转移之间的时长。
准备工作
在创建 ServiceNow 数据转移作业之前,请为 ServiceNow 和 BigQuery 进行以下配置。
ServiceNow 前提条件
- 如需访问 ServiceNow API,请创建 OAuth 凭据。
以下 ServiceNow 应用都必须在 ServiceNow 实例中启用:
BigQuery 前提条件
- 完成启用 BigQuery Data Transfer Service 所需的所有操作。
- 创建一个 BigQuery 数据集来存储数据。
- 如果您想要为 Pub/Sub 设置转移作业运行通知,请确保拥有
pubsub.topics.setIamPolicyIdentity and Access Management (IAM) 权限。如果您只设置电子邮件通知,则无需 Pub/Sub 权限。如需了解详情,请参阅 BigQuery Data Transfer Service 运行通知。
所需 BigQuery 角色
如需获得创建 BigQuery Data Transfer Service 数据转移所需的权限,请让您的管理员为您授予项目的 BigQuery Admin (roles/bigquery.admin) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色包含创建 BigQuery Data Transfer Service 数据转移所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需创建 BigQuery Data Transfer Service 数据转移作业,需要具备以下权限:
-
BigQuery Data Transfer Service 权限:
-
bigquery.transfers.update -
bigquery.transfers.get
-
-
BigQuery 权限:
-
bigquery.datasets.get -
bigquery.datasets.getIamPolicy -
bigquery.datasets.update -
bigquery.datasets.setIamPolicy -
bigquery.jobs.create
-
如需了解详情,请参阅授予 bigquery.admin 访问权限。
设置 ServiceNow 数据转移作业
通过使用以下选项之一设置转移配置,将 ServiceNow 数据添加到 BigQuery 中:
控制台
前往 Google Cloud 控制台中的“数据转移”页面。
点击 创建转移作业。
在来源类型部分的来源中,选择 ServiceNow。
在数据源详细信息部分,执行以下操作:
- 在实例 ID 部分,输入 ServiceNow 实例 ID。您可以从 ServiceNow 网址(例如
https://INSTANCE_ID.service-now.com)获取此信息。 - 在用户名部分,输入用于连接的 ServiceNow 用户名。
- 对于密码,输入 ServiceNow 密码。
- 对于客户端 ID,输入 OAuth 凭据中的客户端 ID。如需生成凭据,请参阅创建 OAuth 凭据。
- 在客户端密钥部分,输入 OAuth 凭据中的客户端密钥。
- 在 ServiceNow tables to transfer(要转移的 ServiceNow 表)部分,输入要转移的 ServiceNow 表的名称,或点击浏览并选择要转移的表。
- 在值类型部分,请选择以下选项之一:
- 如需转移存储在数据库中的值,请选择实际。
- 要转移列的显示值,请选择显示。
- 在实例 ID 部分,输入 ServiceNow 实例 ID。您可以从 ServiceNow 网址(例如
在目标设置部分的数据集字段中,选择您创建用来存储数据的数据集。
在转移配置名称部分的显示名称中,输入数据转移作业的名称。
在时间表选项部分,执行以下操作:
- 在重复频率列表中,选择一个选项来指定此数据转移作业的运行频率。如需指定自定义重复频率,请选择自定义。如果您选择按需,数据转移作业将在您手动触发转移作业后运行。
- 如果适用,请选择立即开始或在设置的时间开始,并提供开始日期和运行时间。
可选:在通知选项部分中,执行以下操作:
- 如需启用电子邮件通知,请点击电子邮件通知切换开关。启用此选项后,转移作业管理员会在转移作业运行失败时收到电子邮件通知。
- 如需为此数据转移作业启用 Pub/Sub 转移作业运行通知,请点击 Pub/Sub 通知切换开关。您可以选择主题名称,也可以点击创建主题来创建一个主题。
点击保存。
bq
输入 bq mk 命令并提供转移作业创建标志 --transfer_config:
bq mk
--transfer_config
--project_id=PROJECT_ID
--data_source=DATA_SOURCE
--display_name=DISPLAY_NAME
--target_dataset=DATASET
--params='PARAMETERS'
替换以下内容:
PROJECT_ID(可选):您的 Google Cloud 项目 ID。如果未指定项目 ID,则系统会使用默认项目。DATA_SOURCE:数据源(例如servicenow)。DISPLAY_NAME:此标志表示转移配置的显示名称。数据转移作业名称可以是任何可让您以后在需要修改转移作业时识别该转移作业的值。DATASET:转移作业配置的目标数据集。PARAMETERS:所创建转移作业配置的参数(采用 JSON 格式)。例如--params='{"param":"param_value"}'。以下是 ServiceNow 数据转移作业的参数:ServiceNow 参数 必需或可选 说明 connector.instanceId需要 ServiceNow 实例的实例 ID connector.authentication.username需要 凭据的用户名 connector.authentication.password需要 凭据的密码 connector.authentication.oauth.clientId需要 生成的 OAuth 的客户端 ID connector.authentication.oauth.clientSecret需要 生成的 OAuth 的客户端密钥 connector.valueType可选 Actual或Display(默认:Actual)例如,以下命令会使用所有必需参数在默认项目中创建 ServiceNow 数据转移作业:
bq mk --transfer_config --target_dataset=mydataset --data_source=servicenow --display_name='My Transfer' --params='{"connector.authentication.oauth.clientId": "1234567890", "connector.authentication.oauth.clientSecret":"ABC12345", "connector.authentication.username":"user1", "connector.authentication.password":"abcdef1234", "connector.instanceId":"https://dev-instance.service-now.com"}'
API
使用 projects.locations.transferConfigs.create 方法并提供一个 TransferConfig 资源实例。
如需在常规安排之外手动运行数据转移,您可以启动回填运行。
数据类型映射
下表显示了 ServiceNow 数据转移作业中数据类型的映射方式:
| ServiceNow 数据类型 | BigQuery 数据类型 |
|---|---|
decimal |
FLOAT64 |
integer |
INTEGER |
boolean |
BOOLEAN |
glide_date |
DATE |
glide_date_time |
DATETIME |
glide_time |
INT64 |
referencecurrencysys_class_namedomain_iddomain_pathGUIDtranslated_htmljournalstring
|
STRING |
排查转移相关问题
如需了解详情,请参阅排查转移作业配置问题。
由于启用 ServiceNow,转移作业失败
如果未在 ServiceNow 中启用 Procurement、Product Catalog 或 Contract Management 应用,则会出现导致数据转移作业失败的问题。如需解决此问题,请启用所有三个应用。例如,激活 Procurement。
转移作业运行期间出现问题
出现问题,导致无法按预期创建转移作业运行。如需解决此问题,请执行以下操作:
- 检查 ServiceNow 账号凭证(例如用户名、密码、客户端 ID 和客户端密钥值)是否有效。
- 检查实例 ID 是否为 ServiceNow 实例的有效 ID。
价格
将 ServiceNow 数据转移到 BigQuery 的功能处于预览版阶段时,您无需付费即可使用此功能。
后续步骤
- 如需大致了解 BigQuery Data Transfer Service,请参阅 BigQuery Data Transfer Service 简介。
- 如需了解如何使用转移作业,包括获取有关转移作业配置的信息、列出转移作业配置以及查看转移作业的运行历史记录,请参阅处理转移作业。
- 了解如何通过跨云操作加载数据。