安排 ServiceNow 转移作业

借助适用于 ServiceNow 的 BigQuery Data Transfer Service,您可以自动安排和管理从 ServiceNow 到 BigQuery 的周期性加载作业。

限制

ServiceNow 转移作业受到以下限制:

  • 不建议在同一 ServiceNow 实例上运行并发转移作业。
  • 周期性转移作业之间的最短间隔时间为 15 分钟。周期性转移作业的默认间隔时间为 24 小时。
  • ServiceNow 从以下三个应用转移与业务相关的表:Procurement、Product Catalog 和 Contract Management。您可以转移下面的表:

    • ast_contract
    • clm_condition_check
    • clm_condition_checker
    • clm_contract_history
    • clm_m2m_contract_and_terms
    • clm_m2m_contract_asset
    • clm_m2m_contract_user
    • clm_m2m_rate_card_asset
    • clm_terms_and_conditions
    • pc_hardware_cat_item
    • pc_product_cat_item
    • pc_software_cat_item
    • pc_vendor_cat_item
    • proc_po
    • proc_po_item
    • proc_rec_slip
    • proc_rec_slip_item

准备工作

在创建 ServiceNow 转移作业之前,请为 ServiceNow 和 BigQuery 进行以下配置。

ServiceNow 前提条件

BigQuery 前提条件

所需 BigQuery 角色

如需获得创建转移作业所需的权限,请让管理员向您授予 BigQuery 管理员 (roles/bigquery.admin) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限

此预定义角色包含创建转移作业所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

创建转移作业需要以下权限:

  • bigquery.transfers.update(针对用户)
  • bigquery.datasets.get(针对目标数据集)
  • bigquery.datasets.update(针对目标数据集)

您也可以使用自定义角色或其他预定义角色来获取这些权限。

设置 ServiceNow 数据转移作业

您可以在 Google Cloud 控制台或 bq 命令行工具中创建 ServiceNow 数据转移作业。

控制台

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 点击数据转移 > 创建转移作业

  3. 来源类型部分的来源中,选择 ServiceNow

  4. 转移配置名称部分的显示名中,输入转移作业的名称。

  5. 时间表选项部分中,执行以下操作:

    • 重复频率列表中,选择一个选项以指定此转移作业的运行频率。如需指定自定义重复频率,请选择自定义。如果您选择按需,则当您手动触发转移作业时,此转移作业会运行。

    • 如果适用,请选择立即开始在设置的时间开始,并提供开始日期和运行时间。

  6. 目标设置部分的数据集中,选择您创建用来存储数据的数据集。

  7. 数据源详细信息部分中,执行以下操作:

    • 对于实例 ID,输入 ServiceNow 实例 ID。您可以从 ServiceNow 网址(例如 https://INSTANCE_ID.service-now.com)获取此信息。
    • 对于用户名,输入用于连接的 ServiceNow 用户名。
    • 对于密码,输入 ServiceNow 密码。
    • 对于客户端 ID,输入 OAuth 凭据中的客户端 ID。如需生成凭据,请参阅创建 OAuth 凭据
    • 客户端密钥部分,输入 OAuth 凭据中的客户端密钥。
    • 对于值类型,请选择以下选项之一:
      • 要转移存储在数据库中的值,请选择实际
      • 要转移列的显示值,请选择显示
  8. 服务账号菜单中,从与您的 Google Cloud 项目关联的服务账号中选择一个服务账号。所选服务账号必须具有所需的角色才能运行此转移作业。

    如果您使用联合身份登录,则需要有服务账号才能创建转移作业。如果您使用 Google 账号登录,则转移作业的服务账号是可选的。

    如需详细了解如何将服务账号用于数据转移,请参阅使用服务账号

  9. 可选:在通知选项部分中,执行以下操作:

    • 如需启用电子邮件通知,请点击电子邮件通知切换开关。启用此选项后,传输作业管理员会在传输作业运行失败时收到电子邮件通知。
    • 如需为此转移作业启用 Pub/Sub 转移作业运行通知,请点击 Pub/Sub 通知切换开关。您可以选择主题名称,也可以点击创建主题来创建某个主题。
  10. 点击保存

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 可选 ActualDisplay(默认: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 中启用 Procurement、Product Catalog 或 Contract Management 应用,则会出现导致转移失败的问题。如需解决此问题,请启用所有三个应用。例如,激活 Procurement

转移作业运行期间出现问题

出现问题,导致无法按预期创建转移作业运行。如需解决此问题,请执行以下操作:

  • 检查 ServiceNow 账号凭据(例如用户名密码客户端 ID客户端密钥值)是否有效。
  • 检查实例 ID 是否为 ServiceNow 实例的有效 ID。

价格

将 ServiceNow 数据转移到 BigQuery 的功能处于预览版阶段时,您无需付费即可使用此功能。

后续步骤