版本 2.0:在 Compute Engine 虚拟机上安装和配置 BigQuery Connector for SAP

本指南介绍如何在 Google Cloud 中的 Compute Engine 虚拟机 (VM) 上运行的 SAP LT Replication Server 中安装和配置 BigQuery Connector for SAP 2.0 或 2.1 版

本指南介绍如何准备 BigQuery、SAP Landscape Transformation Replication Server (SAP LT Replication Server) 和 BigQuery Connector for SAP,以便实时将 SAP 应用中的 SAP 数据以安全的方式直接复制到 BigQuery 中。

本指南适用于 SAP 管理员、Google Cloud 管理员和其他 SAP 及 Google Cloud 安全和数据专业人员。

前提条件

在安装 BigQuery Connector for SAP 之前,请确保满足以下前提条件:

  • 您已阅读 BigQuery Connector for SAP 规划指南。 该规划指南介绍了 BigQuery Connector for SAP 的选项、性能考虑因素、字段映射,以及对 BigQuery Connector for SAP 进行最佳配置所需的一些其他信息。
  • 如果您还没有 Google Cloud 项目,请创建一个:

    转到“项目选择器”

  • 您的项目已启用结算功能。了解如何确认您的项目是否已启用结算功能。BigQuery Streaming API、BigQuery 和下载 BigQuery Connector for SAP 需要使用结算账号。

  • 已安装 SAP 软件的维护处于最新状态,并且所有 SAP 软件的版本均彼此兼容,如 SAP 产品可用性矩阵中所述。

  • 根据软件要求,BigQuery Connector for SAP 支持您使用的 SAP 软件版本。

  • 您拥有正确的 SAP 许可,在通过 SAP LT Replication Server SDK 将数据复制到任何目标时都需要具备此许可。如需详细了解 SAP 许可,请参阅 SAP 说明 2707835

  • 已安装 SAP LT Replication Server。如需了解如何安装 SAP LT Replication Server,请参阅 SAP 文档

  • 已配置 SAP LT Replication Server 与源系统之间的 RFC 或数据库连接。如有必要,请使用 SAP 事务 SM59 对 RFC 连接进行测试。使用 SAP 事务 DBACOCKPIT 对数据库连接进行测试。

安装与配置过程概览

下表显示了本指南中介绍的过程,以及通常负责执行这些步骤的角色。

过程 角色
如有必要,在验证来自 SAP 的所有适当许可后,请按照 SAP 说明安装 SAP Landscape Transformation Replication Server SAP 管理员。
如有必要,请安装 SAP NetWeaver 的界面 (UI) 插件。如需了解详情,请参阅 SAP 软件版本要求 SAP 管理员。
启用所需的 Google Cloud API Google Cloud 管理员。
如有必要,请在 SAP LT Replication Server 主机上安装 gcloud CLI SAP 管理员。
创建 BigQuery 数据集 Google Cloud 管理员或数据工程师。
设置 Google Cloud 身份验证和授权 Google Cloud 安全管理员。
下载 BigQuery Connector for SAP 安装软件包 Google Cloud Billing 账号持有人。
安装 BigQuery Connector for SAP SAP 管理员。
创建用于 BigQuery Connector for SAP 的 SAP 角色和权限 SAP 管理员。
配置复制 数据工程师或管理员。
测试复制 数据工程师或管理员。
验证复制 数据工程师或管理员。

启用所需的 Google Cloud APIs

您需要启用以下 Google Cloud API,BigQuery Connector for SAP 才能访问 BigQuery:

  • BigQuery API
  • IAM Service Account Credentials API

如需了解如何启用 Google Cloud API,请参阅启用 API

安装 gcloud CLI

如需复制到 BigQuery,sidadm 用户账号必须有权访问 SAP LT Replication Server 主机上的 Google Cloud CLI (gcloud CLI)。

gcloud CLI 默认安装在大多数 Compute Engine 虚拟机上。您可以通过发出 gcloud components list 命令来确认安装。如果系统无法识别该命令,则需要安装 gcloud CLI。

SAP 管理员可以安装 gcloud CLI。

如需安装 gcloud CLI,请完成以下步骤:

  1. 按照 gcloud CLI 安装说明进行操作。

  2. 授权 sidadm 用户账号访问 gcloud CLI 安装目录。

  3. (可选)以 sidadm 身份,为 gcloud CLI 设置默认项目:

    gcloud config set project PROJECT_ID

    PROJECT_ID 替换为包含 BigQuery 数据集的项目 ID。例如:example-project-123456

    如果您没有为 gcloud CLI 设置默认项目,则必须在发出的每个 gcloud 命令上指定 --project 属性。

如需详细了解 BigQuery Connector for SAP 要求,请参阅 gcloud CLI 要求

创建 BigQuery 数据集

您或您的数据工程师或管理员需要首先创建一个 BigQuery 数据集,之后才能测试 BigQuery 的 Google Cloud 身份验证和授权或是创建目标 BigQuery 表。

如需创建 BigQuery 数据集,您的用户账号必须具有针对 BigQuery 的适当 IAM 权限。如需了解详情,请参阅所需权限

  1. 在 Google Cloud 控制台中,打开 BigQuery 页面:

    转到 BigQuery

  2. 点击您的项目 ID 旁边的查看操作图标 ,然后点击创建数据集

    前文中描述的示意图

  3. 数据集 ID 字段中,输入一个唯一名称。如需了解详情,请参阅命名数据集

在设置 Google Cloud 身份验证和授权后,您可以通过检索此数据集的相关信息来测试对于 Google Cloud 的访问权限。

如需详细了解如何创建 BigQuery 数据集,请参阅创建数据集

设置 Google Cloud 身份验证和授权

要向 Google Cloud 进行身份验证并获得访问 BigQuery 的授权,Google Cloud 安全管理员和 SAP 管理员需要执行以下步骤:

  • 为 BigQuery Connector for SAP 创建服务账号。
  • 向服务账号授予访问 BigQuery 所需的 IAM 角色。
  • 将 BigQuery Connector for SAP 服务账号添加为 BigQuery 项目中的主账号。
  • 在 SAP LT Replication Server 主机上配置 Google Cloud 的安全设置:
    • 向主机虚拟机授予获取访问令牌的权限。
    • 如有必要,请修改主机虚拟机的 API 访问权限范围。

创建服务账号

BigQuery Connector for SAP 需要 IAM 服务账号才能进行身份验证和授权,以便访问 BigQuery。

此服务账号必须是包含 BigQuery 数据集的 Google Cloud 项目中的主账号。如果您在 BigQuery 数据集所在的项目中创建服务账号,该服务账号会自动添加为该项目的主账号。

如果您在不同于 BigQuery 数据集的项目中创建服务账号,则需要在额外步骤中将该服务账号添加到 BigQuery 数据集项目。

如需创建服务账号,请完成以下步骤:

  1. 在 Google Cloud 控制台中,转到“IAM 和管理”的服务账号页面。

    转到“服务账号”

  2. 在系统提示时,选择您的 Google Cloud 项目。

  3. 点击创建服务账号

  4. 为服务账号指定名称并提供说明(可选)。

  5. 点击创建并继续

  6. 如果您要在 BigQuery 数据集所在的项目中创建服务账号,请在向此服务账号授予对项目的访问权限面板中,选择以下角色:

    • BigQuery Data Editor
    • BigQuery Job User

    如果您要在不同于 BigQuery 数据集的项目中创建服务账号,请不要向服务账号授予任何角色。

  7. 点击继续

  8. 根据具体情况授予其他用户访问服务账号的权限。

  9. 点击完成。该服务账号会显示在项目的服务账号列表中。

  10. 如果您在与 BigQuery 数据集所在项目不同的项目中创建服务账号,请记下服务账号的名称。您可以在将服务账号添加到 BigQuery 项目时指定该名称。如需了解详情,请参阅将服务账号添加到 BigQuery 项目

该服务账号现在在创建它的 Google Cloud 项目的 IAM 权限页面上列为主账号。

将服务账号添加到 BigQuery 项目

如果您在与目标 BigQuery 数据集不同的项目中为 BigQuery Connector for SAP 创建了服务账号,则需要将服务账号添加到 BigQuery 数据集项目。

如果您在 BigQuery 数据集所在的项目中创建了服务账号,则可以跳过此步骤。

如需将现有服务账号添加到 BigQuery 数据集项目,请完成以下步骤:

  1. 在 Google Cloud 控制台控制台中,转到“IAM 权限”页面。

    转到 IAM 权限

  2. 确认页面顶部显示包含目标 BigQuery 数据集的项目的名称。例如:

    项目“PROJECT_NAME”的权限

    如果未显示,请切换项目。

  3. 在 IAM 页面上,点击 添加。系统会打开为“PROJECT_NAME”添加主账号对话框。

  4. 为“PROJECT_NAME”添加主账号对话框中,完成以下步骤:

    1. 新的主账号字段中,指定服务账号的名称。
    2. 选择角色字段中,指定 BigQuery Data Editor
    3. 点击添加其他角色选择角色字段将再次显示。
    4. 选择角色字段中,指定 BigQuery Job User
    5. 点击保存。该服务账号会显示在 IAM 页面上的项目主账号列表中。

现在,您可以使用此服务账号访问此项目中的 BigQuery 数据集。

在主机虚拟机上配置安全设置

BigQuery Connector for SAP 要求托管 SAP LT Replication Server 的 Compute Engine 虚拟机配置以下安全选项:

  • 必须设置主机虚拟机的访问权限范围,才能授予对 Cloud API 的完整访问权限。
  • 主机虚拟机的服务账号必须包含 IAM Service Account Token Creator 角色。

如果未在主机虚拟机上配置这些选项,则需要对其进行配置。

如需更改虚拟机的访问权限范围,您需要停止该虚拟机。

检查主机虚拟机的 API 访问权限范围

检查 SAP LT Replication Server 主机虚拟机的当前访问权限范围设置。如果虚拟机已拥有所有 Cloud API 的完整访问权限,则无需更改访问权限范围。

如需检查主机虚拟机的访问权限范围,请完成以下步骤:

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,打开“虚拟机实例”页面:

    转到虚拟机实例

  2. 如有必要,请选择包含 SAP LT Replication Server 主机的 Google Cloud 项目。

  3. 在虚拟机实例页面上,点击主机虚拟机的名称。虚拟机详情页面随即打开。

  4. 在主机虚拟机详情页面上的 API 和身份管理下,检查 Cloud API 访问权限范围的当前设置:

    • 如果设置为授予对所有 Cloud API 的完整访问权限,则设置正确,您无需进行更改。
    • 如果设置不是授予对所有 Cloud API 的完整访问权限,则需要停止虚拟机并更改此设置。有关说明,请参阅下一部分。

gcloud CLI

  1. 显示主机虚拟机的当前访问权限范围:

    gcloud compute instances describe VM_NAME --zone=VM_ZONE --format="yaml(serviceAccounts)"

    如果访问权限范围不包含 https://www.googleapis.com/auth/cloud-platform,则需要更改主机虚拟机的访问权限范围。比方说,如果使用默认 Compute Engine 服务账号创建虚拟机实例,则需要更改以下默认访问权限范围:

    serviceAccounts:
    - email: 600915385160-compute@developer.gserviceaccount.com
      scopes:
      - https://www.googleapis.com/auth/devstorage.read_only
      - https://www.googleapis.com/auth/logging.write
      - https://www.googleapis.com/auth/monitoring.write
      - https://www.googleapis.com/auth/servicecontrol
      - https://www.googleapis.com/auth/service.management.readonly
      - https://www.googleapis.com/auth/trace.append

    如果 scopes 下列出的唯一范围是 https://www.googleapis.com/auth/cloud-platform,如以下示例所示,则无需更改范围:

    serviceAccounts:
    - email: 600915385160-compute@developer.gserviceaccount.com
      scopes:
      - https://www.googleapis.com/auth/cloud-platform

更改主机虚拟机的 API 访问权限范围

如果 SAP LT Replication Server 主机虚拟机没有对 Google Cloud API 的完整访问权限,请更改访问权限范围以允许对所有 Cloud API 的完整访问权限。

如需更改主机虚拟机的 Cloud API 访问权限范围设置,请完成以下步骤:

Google Cloud 控制台

  1. 如有必要,请限制授予主机虚拟机安全账号的角色。

    您可以在主机虚拟机详情页面上的 API 和身份管理下找到安全账号名称。您可以在 Google Cloud 控制台的 IAM 页面上的主账号下更改授予服务账号的角色。

  2. 如有必要,请停止主机虚拟机上运行的任何工作负载。

  3. 在 Google Cloud 控制台中,打开“虚拟机实例”页面:

    转到虚拟机实例

  4. 在虚拟机实例页面上,点击主机虚拟机的名称以打开虚拟机详情页面。

  5. 在主机虚拟机详情页面顶部,点击 停止以停止主机虚拟机。

  6. 虚拟机停止后,点击 修改

  7. 安全与访问权限 > 访问权限范围下,选择授予对所有 Cloud API 的完整访问权限

  8. 点击保存

  9. 在主机虚拟机详情页面顶部,点击 启动/恢复以启动主机虚拟机。

  10. 如有必要,请重启主机虚拟机上停止的任何工作负载。

gcloud CLI

  1. 如有必要,请调整授予虚拟机服务账号的 IAM 角色,以确保适当限制从主机虚拟机对 Google Cloud 服务进行访问。

    如需了解如何更改授予服务账号的角色,请参阅更新服务账号

  2. 如有必要,请停止主机虚拟机上运行的任何 SAP 软件。

  3. 停止虚拟机:

    gcloud compute instances stop VM_NAME --zone=VM_ZONE
  4. 更改虚拟机的访问权限范围:

    gcloud compute instances set-service-account VM_NAME --scopes=cloud-platform --zone=VM_ZONE
  5. 启动该虚拟机:

    gcloud compute instances start VM_NAME --zone=VM_ZONE
  6. 如有必要,请启动在主机虚拟机上运行的任何 SAP 软件。

允许主机虚拟机获取访问令牌

您需要向主机虚拟机的服务账号授予获取 BigQuery Connector for SAP 访问 BigQuery 所需的访问令牌的权限。

如需授予创建访问令牌的权限,请完成以下步骤:

  1. 在 Google Cloud 控制台中,打开“虚拟机实例”页面:

    转到虚拟机实例

  2. 在虚拟机实例页面上,点击主机虚拟机的名称以打开虚拟机详情页面。

  3. 在虚拟机详情页面上的 API 和身份管理下,记下服务账号的名称。以下示例名称适用于默认 Compute Engine 服务账号:

    SVC-ACCT-NUMBER-compute@developer.gserviceaccount.com
  4. 在 Google Cloud 控制台控制台中,前往 IAM 页面:

    转到 IAM 权限

  5. 在项目主账号列表中,找到服务账号名称,然后点击 修改主账号。此时会打开修改权限对话框。

  6. 修改权限窗格中,点击添加其他角色。此时将显示选择角色字段。

  7. 选择角色字段中,指定 Service Account Token Creator

  8. 点击保存。您将返回到 IAM 权限页面。

主机虚拟机现在有权创建访问令牌。

设置 SSL 证书和 HTTPS

BigQuery Connector for SAP 和 BigQuery API 之间的通信使用 SSL 和 HTTPS 进行保护。

  1. Google Trust Services 代码库下载以下证书:

    • GTS Root R1
    • GTS CA 1C3
  2. 在 SAP GUI 中,使用 STRUST 事务将根证书和从属证书导入 SSL client SSL Client (Standard) PSE 文件夹。

    如需查看 SAP 提供的详细信息,请参阅 SAP 帮助 - 维护 PSE 认证列表

  3. 在 SAP LT Replication Server 主机上,确认已将所有防火墙规则或代理配置为允许从 HTTPS 端口到 BigQuery API 的出站流量。

    具体而言,SAP LT Replication Server 需要能够访问以下 Google Cloud API:

    • https://bigquery.googleapis.com
    • https://iamcredentials.googleapis.com

如需详细了解 SAP 提供的关于设置 SSL 的信息,请参阅 SAP 说明 510007 - 在应用服务器 ABAP 上设置 SSL 的其他考虑事项

测试 Google Cloud 身份验证与授权

通过请求访问令牌并检索 BigQuery 数据集的相关信息,确认已经正确配置 Google Cloud 身份验证。

请按照以下步骤从 SAP LT Replication Server 主机虚拟机测试 Google Cloud 身份验证和授权:

  1. 在 SAP LT Replication Server 主机虚拟机上,打开命令行 shell。

  2. 切换到 sidadm 用户。

  3. 从主机虚拟机的元数据服务器请求第一个访问令牌:

    curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token" -H "Metadata-Flavor: Google"

    元数据服务器会返回类似于以下示例的访问令牌,其中 ACCESS_TOKEN_STRING_1 是您要在后续步骤中复制到命令中的访问令牌字符串:

    {"access_token":"ACCESS_TOKEN_STRING_1",
    "expires_in":3599,"token_type":"Bearer"}
  4. 在替换占位符值后发出以下命令,以便从 IAM API 请求第二个访问令牌:

    curl --request POST \
     'https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/SERVICE_ACCOUNT:generateAccessToken' \
    --header 'Authorization: Bearer ACCESS_TOKEN_STRING_1' \
      --header 'Accept: application/json' \
      --header 'Content-Type: application/json' \
      --data '{"scope":["https://www.googleapis.com/auth/bigquery"],"lifetime":"300s"}' \
      --compressed
    

    替换以下内容:

    • SERVICE_ACCOUNT:您在先前步骤中为 BigQuery Connector for SAP 创建的服务账号。
    • ACCESS_TOKEN_STRING_1:先前步骤中获得的第一个访问令牌字符串。

    IAM API 返回第二个访问令牌 ACCESS_TOKEN_STRING_2,类似于以下示例。在下一步中,您要将第二个令牌字符串复制到对 BigQuery API 的请求中。

    {"access_token":"ACCESS_TOKEN_STRING_2","expires_in":3599,"token_type":"Bearer"}
  5. 替换占位符值后,发出以下命令,以便从 BigQuery API 检索有关 BigQuery 数据集的信息:

    curl "https://bigquery.googleapis.com/bigquery/v2/projects/PROJECT_ID/datasets/DATASET_NAME" \
     -H "Accept: application/json" -H "Authorization: Bearer ACCESS_TOKEN_STRING_2"
    

    替换以下内容:

    • PROJECT_ID:包含您的 BigQuery 数据集的项目的 ID。
    • DATASET_NAME:在 BigQuery 中定义的目标数据集的名称。
    • ACCESS_TOKEN_STRING_2:先前步骤中由 IAM API 返回的访问令牌字符串。

    如果您的 Google Cloud 身份验证配置正确,系统会返回有关该数据集的信息。

    如果配置不正确,请参阅 BigQuery Connector for SAP 问题排查

下载安装软件包

BigQuery Connector for SAP 下载门户下载 BigQuery Connector for SAP 安装软件包。

您需要具备 Cloud Billing 账号才能完成下载。如需了解结算账号,请参阅 Cloud Billing 与付款资料

安装软件包中包括您复制到 SAP LT Replication Server 的相应传输目录中的传输文件。

安装 BigQuery Connector for SAP

收到包含 BigQuery Connector for SAP 传输文件的安装软件包后,您的 SAP 管理员可以将传输文件导入 SAP LT Replication Server 来安装 BigQuery Connector for SAP。

BigQuery Connector for SAP 的 SAP 传输包含 BigQuery Connector for SAP 所需的所有对象,包括 /GOOG/ 命名空间、DDIC 对象、SLT SDK BADI 实现和类以及报告程序等。

在将传输文件导入 SAP LT Replication Server 之前,请验证 BigQuery Connector for SAP 支持您的 SAP LT Replication Server,如软件要求中所述。

即便使用了受支持的 SAP LT Replication Server 版本,在某些情况下,导入传输文件时您也可能会看到错误消息 Requests do not match the component version of the target system。在这种情况下,您需要将传输文件重新导入 SAP LT Replication Server。在重新导入时,在“导入传输请求”屏幕 >“选项”标签页上,选择忽略无效组件版本复选框。

下面展示了一个常规过程。每个 SAP 系统都有所不同,因此请与您的 SAP 管理员配合,以确定您的 SAP 系统可能需要对此过程做出的任何更改:

  1. 将 BigQuery Connector for SAP 传输文件复制到以下 SAP LT Replication Server 传输导入目录中:

    • /usr/sap/trans/cofiles/KXXXXXX.ED1
    • /usr/sap/trans/data/RXXXXXX.ED1

    在前面的示例中,XXXXXX 代表已经编号的文件名。

  2. 在 SAP GUI 中,使用事务代码 STMS_IMPORTSTMS 将文件导入 SAP 系统。

  3. 确保 /GOOG/SLT_SDK 软件包中的所有对象都处于有效状态并且保持一致:

    1. 在 SAP 界面中,输入事务代码 SE80
    2. 在软件包选择器中,选择 /GOOG/SLT_SDK
    3. 对象名称 字段中,右键点击软件包 /GOOG/SLT_SDK,然后选择检查 > 软件包检查 > 软件包对象

      结果列中的绿色对勾标记表示所有对象均已通过软件包检查。

确认 BigQuery Connector for SAP 已为配置做好了准备

如需进一步确认传输文件已正确导入,并且 BigQuery Connector for SAP 已为配置做好了准备,请确认 BigQuery Connector for SAP Business 插件 (BAdI) 实现已经激活,并且BigQuery Connector for SAP 复制应用在 IUUC_REPL_APPL 表中有对应条目。

  1. 检查 BAdI 实现:
    1. 使用 SE80 事务导航到 /GOOG/EI_IUUC_REPL_RUNTIME_BQ 增强功能对象文件夹并将其选中。
    2. 选择该页面右侧的增强实现元素
    3. 运行时行为下,确认已选中实现已激活
  2. 检查复制应用:
    1. 使用 SAP 数据浏览器SE16 事务显示 IUUC_REPL_APPL 表。
    2. 确认 IUUC_REPL_APPL 表中显示了以下应用:
      • /GOOG/SLT_BQ
      • ZGOOG_SLT_BQ,在未注册 /GOOG/ 命名空间时使用

创建用于 BigQuery Connector for SAP 的 SAP 角色和授权

要使用 BigQuery Connector for SAP,除了标准 SAP LT Replication Server 授权之外,用户还需要随 BigQuery Connector for SAP 提供的自定义事务 /GOOG/SLT_SETTINGS/GOOG/REPLIC_VALID 的权限。

默认情况下,有权访问自定义事务的用户可以修改任何配置的设置,因此如果需要,您可以将相应权限限制为特定配置。

BigQuery Connector for SAP 传输文件包含 Google BigQuery Settings Authorization 对象 ZGOOG_MTID,用于特定于 BigQuery Connector for SAP 的授权。

如需授予对自定义事务的权限并将此权限限制为特定配置,请执行以下操作:

  1. 使用 SAP 事务代码 PFCG 为 BigQuery Connector for SAP 定义角色。

  2. 为该角色授予自定义事务 /GOOG/SLT_SETTINGS/GOOG/REPLIC_VALID 的权限。

  3. 要限制某个角色的权限,请使用 ZGOOG_MTID 授权对象指定该角色可以访问的各配置的授权组。例如:

    • BigQuery Connector for SAP 的授权对象 (ZGOOG_MTID):
      • Activity 01
      • Authorization Group AUTH_GROUP_1,AUTH_GROUP_N

    AUTH_GROUP_01AUTH_GROUP_N 是在 SAP LT Replication Server 配置中定义的值。

    ZGOOG_MTID 指定的授权组必须与为 SAP S_DMIS_SLT 授权对象中的角色指定的授权组相匹配。

配置复制

如需配置复制,请同时指定 BigQuery Connector for SAP 和 SAP LT Replication Server 设置。

/GOOG/CLIENT_KEY 中指定权限设置

使用 SM30 事务指定 BigQuery 访问权限设置。BigQuery Connector for SAP 会将设置以记录的形式存储在 /GOOG/CLIENT_KEY 自定义配置表中。

如需指定访问权限设置,请执行以下操作:

  1. 在 SAP GUI 中,输入事务代码 SM30

  2. 选择 /GOOG/CLIENT_KEY 配置表。

  3. 为以下表字段输入值:

    字段 数据类型 说明
    名称 字符串 CLIENT_KEY 配置的名称。
    服务账号名称 字符串

    创建服务账号步骤中为 BigQuery Connector for SAP 创建的服务账号的名称(采用电子邮件地址格式)。例如:sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com

    范围 字符串

    按照 Compute Engine 的建议指定 https://www.googleapis.com/auth/cloud-platform API 访问权限范围。此访问权限范围对应于主机虚拟机上的设置 Allow full access to all Cloud APIs。如需了解详情,请参阅在主机虚拟机上设置访问权限范围

    项目 ID 字符串 包含您的目标 BigQuery 数据集的项目的 ID。
    命令名称 字符串

    将此字段留空。

    授权类 字符串 用于复制的授权类。

    指定 /GOOG/CL_GCP_AUTH_GOOGLE

    授权字段 不适用 将此字段留空。
    令牌刷新秒数 整数

    指定访问令牌在多久后(以秒为单位)会到期并且必须刷新。默认值为 3600(一小时)。

    如果将 1 的值指定为 3599,则会替换默认的到期时间(3600 秒)。如果指定 0,则 BigQuery Connector for SAP 会使用默认值 3600

创建 SAP LT Replication Server 复制配置

使用 SAP 事务 LTRC 来创建 SAP LT Replication Server 复制配置。

如果 SAP LT Replication Server 运行在不同于源 SAP 系统的服务器上,请在创建复制配置之前,确认两个系统之间具有 RFC 连接。

复制配置中的某些设置会影响性能。要确定适合您的安装的相应设置值,请参阅 SAP 帮助门户中适用于您的 SAP LT Replication Server 版本的性能优化指南

SAP LT Replication Server 的接口和配置选项可能会略有不同,具体取决于您使用的版本。

如需配置复制,请使用对应于您的 SAP LT Replication Server 版本的过程:

在 DMIS 2011 SP17、DMIS 2018 SP02 或更高版本中配置复制

使用以下步骤在较高版本的 SAP LT Replication Server 中配置复制。如果您使用的是较早的版本,请参阅在 DMIS 2011 SP16、DMIS 2018 SP01 或更早版本中配置复制

  1. 在 SAP GUI 中,输入事务代码 LTRC

  2. 点击创建配置图标。此时创建配置向导会打开。

  3. 配置名称描述字段中,输入配置的名称和描述,然后点击下一步

    您可以立即指定授权组,以便将权限限制为特定授权组,也可以稍后执行此操作。

  4. 源系统连接细节面板中执行以下操作:

    • 选择 RFC 连接单选按钮。
    • RFC 目标字段中,指定与源系统之间的 RFC 连接的名称。
    • 根据需要勾选允许多次使用从单个客户端读取复选框。如需了解详情,请参阅 SAP LT Replication Server 文档
    • 点击下一步

    这些步骤适用于 RFC 连接,但如果来源是数据库,那么若您已使用 DBACOCKPIT 事务定义了连接,则可以选择数据库连接

  5. 目标系统连接细节面板中执行以下操作:

    • 选择其他单选按钮。
    • 场景字段中,从下拉菜单中选择 SLT SDK
    • 点击下一步
  6. 指定传输设置面板中执行以下操作:

    1. 数据传输设置部分的应用字段中,输入 /GOOG/SLT_BQZGOOG_SLT_BQ

    2. 作业选项部分的以下字段中输入起始值:

      • 数据传输作业的数量
      • 初始加载作业的数量
      • 计算作业的数量
    3. 复制选项部分中,选择实时单选按钮。

    4. 点击下一步

  7. 对配置进行检查后,点击保存

  8. 记下批量传输列中的三位数 ID。您在后续步骤中要用到它。

如需了解详情,请参阅附加到 SAP 说明 2652704 的 PDF:“使用 SLT SDK 复制数据 - DMIS 2011 SP17、DMIS 2018 SP02.pdf”

在 DMIS 2011 SP16、DMIS 2018 SP01 或更早版本中配置复制

使用以下步骤在较早版本的 SAP LT Replication Server 中配置复制。如果您使用的是较高版本,请参阅在 DMIS 2011 SP17、DMIS 2018 SP02 或更高版本中配置复制

  1. 在 SAP GUI 中,输入事务代码 LTRC
  2. 点击 New(新建)。 此时将打开一个对话框,用于指定新配置。
  3. 指定来源系统步骤中,执行以下操作:
    • 选择 RFC 连接作为连接类型。
    • 输入 RFC 连接名称。
    • 确保已选中允许多次使用字段。
  4. 指定目标系统步骤中,执行以下操作:
    • 输入目标系统的连接数据。
    • 选择 RFC 连接作为连接类型。
    • RFC 通信场景字段中,从下拉列表中选择使用 BAdI 将数据写入目标值。RFC 连接会自动设置为
  5. 指定传输设置步骤中,按 F4 帮助。您之前定义的应用将显示在应用字段中。
  6. 记下批量传输列中的三位数 ID。您在后续步骤中要用到它。

如需了解详情,请参阅附加到 SAP 说明 2652704 的 PDF:“使用 SLT SDK 复制数据 - DMIS 2011 SP15、SP16 以及 DMIS 2018 SP00、SP01.pdf”

为 BigQuery 创建批量传输配置

使用自定义 /GOOG/SLT_SETTINGS 事务为 BigQuery 配置批量传输并指定表和字段映射。

选择初始批量传输选项

首次输入 /GOOG/SLT_SETTINGS 事务时,选择需要修改 BigQuery 批量传输配置的哪些部分。

如需选择批量传输配置的某些部分,请执行以下操作:

  1. 在 SAP GUI 中,输入以 /n 开头的 /GOOG/SLT_SETTINGS 事务:

    /n/GOOG/SLT_SETTINGS
  2. /GOOG/SLT_SETTINGS 事务的启动屏幕中,从设置表下拉菜单选择批量传输

    对于新的批量传输配置,请将批量传输键字段留空。

  3. 点击执行图标。此时将显示 BigQuery 设置维护 - 批量传输屏幕。

指定表创建和其他常规特性

在 BigQuery 批量传输配置的初始部分中,您需要确定批量传输配置并指定关联的客户端密钥,此外还需要指定与创建目标 BigQuery 表相关的一些属性。

SAP LT Replication Server 会将批量传输配置保存为 /GOOG/BQ_MASTR 自定义配置表中的记录。

您在以下步骤中指定的字段为必填字段。

  1. BigQuery 设置维护 - 批量传输屏幕中,点击附加行图标。

  2. 在所显示的行中,指定以下设置:

    1. 批量传输键字段中,定义此次传输的名称。此名称将成为该批量传输的主键。
    2. 批量传输 ID 字段中,输入创建相应 SAP LT Replication Server 复制配置时生成的三位数 ID。
    3. 若要使用源字段的标签或简短说明作为 BigQuery 中目标字段的名称,请点击使用自定义名称标志复选框。如需详细了解字段名称,请参阅字段的默认命名选项
    4. 要存储触发插入的更改类型,并启用源表、SAP LT Replication Server 统计信息和 BigQuery 表之间的记录计数验证,请选中额外字段标志复选框。

      设置此标志后,BigQuery Connector for SAP 会向 BigQuery 表架构添加列。如需了解详情,请参阅用于记录更改和计数查询的额外字段

    5. 如需在遇到包含数据错误的记录时停止发送数据,请点击在遇到第一个错误标志时中断复选框。如需了解详情,请参阅 BREAK 标志

    6. 如果遇到包含数据错误的记录,并且您希望跳过该记录并继续将记录插入 BigQuery 表中,请点击跳过无效记录标志复选框。我们建议您不要选中此复选框。如需了解详情,请参阅 SKIP 标志

    7. Google Cloud 键名称字段中,输入相应 /GOOG/CLIENT_KEY 配置的名称。

      BigQuery Connector for SAP 会自动从 /GOOG/CLIENT_KEY 配置中检索 Google Cloud 项目标识符。

    8. BigQuery 数据集字段中,输入您在此过程先前的步骤中创建的目标 BigQuery 数据集的名称。

    9. 设置已激活标志字段中,点击复选框以启用批量传输配置。

    10. 点击保存

      批量传输记录会附加到 /GOOG/BQ_MASTR 表中,系统会自动填充更改者更改时间更改位置字段。

    11. 点击显示表

      系统会显示新的批量传输记录,随后显示表特性条目面板。

指定表特性

您可以在 /GOOG/SLT_SETTINGS 事务的第二个部分中指定表特性(例如表名称和表分区),以及发送到 BigQuery 的每次传输或每个数据块中要包含的记录数。

您指定的设置将以记录形式存储在 /GOOG/BQ_TABLE 配置表中。

这些设置是可选的。

如需指定表特性,请执行以下操作:

  1. 点击附加行图标。

  2. SAP 表名称字段中,输入源 SAP 表的名称。

  3. 外部表名称字段中,输入目标 BigQuery 表的名称。如果目标表尚不存在,则 BigQuery Connector for SAP 会创建使用此名称的表。如需了解 BigQuery 的表命名惯例,请参阅表命名

  4. 发送未压缩标志字段会停用记录压缩。仅当您需要 BigQuery Connector for SAP 使用源表中初始化字段的值复制源记录中的任何空字段时,才应指定此标志。为了提升性能,请勿指定此标志。如需了解详情,请参阅记录压缩

  5. (可选)在数据块大小字段中,指定要发送到 BigQuery 的每个数据块中可包含的记录数上限。如果可以,请使用 BigQuery Connector for SAP 允许的数据块大小上限(目前为 10000 条记录)和默认值。如果源记录包含大量字段,则字段数可能会增加数据块的总字节大小,从而导致数据块错误。如果发生这种情况,请尝试减小数据块大小,从而缩小字节大小。如需了解详情,请参阅 BigQuery Connector for SAP 中的数据块大小

  6. (可选)在分区类型字段中,指定用于分区的时间增量。有效值为 HOURDAYMONTHYEAR。 如需了解详情,请参阅表分区

  7. (可选)在分区字段字段中,指定包含用于分区的时间戳的目标 BigQuery 表中的一个字段名称。指定字段分区时,还必须指定类型分区。如需了解详情,请参阅表分区

  8. 设置已激活标志字段中,点击复选框以启用表特性。如果未勾选设置已激活标志框,BigQuery Connector for SAP 会使用 SAP 源表名称和默认块大小创建 BigQuery 表,且没有分区。

  9. 点击保存

    您的特性将以记录形式存储在 /GOOG/BQ_TABLE 配置表中,系统会自动填充更改者更改时间更改位置字段。

  10. 点击显示字段

    此时会显示新的表特性记录,后接字段映射条目面板。

自定义默认字段映射

如果源 SAP 表包含时间戳字段或布尔值,请更改默认数据类型映射,以准确反映目标 BigQuery 表中的数据类型。

您还可以更改其他数据类型以及用于目标字段的名称。

您可以直接在 SAP GUI 中修改默认映射,也可以将默认映射导出到电子表格或文本文件,以便其他人无需访问 SAP LT Replication Server 即可修改值。

如需详细了解默认字段映射以及您可以执行的更改,请参阅字段映射

如需自定义目标 BigQuery 字段的默认映射,请执行以下操作:

  1. 在事务 /GOOG/SLT_SETTINGSBigQuery 设置维护 - 字段 (BigQuery Settings Maintenance - Fields) 页面中,显示您当前配置的批量传输的默认字段映射。

  2. 根据需要修改外部数据元素列中的默认目标数据类型。具体来说,应该更改以下数据类型的目标数据类型:

    • 时间戳。将默认目标数据类型从 NUMERIC 更改为 TIMESTAMPTIMESTAMP (LONG)
    • 布尔值。将默认目标数据类型从 STRING 更改为 BOOLEAN
    • 十六进制。将默认目标数据类型从 STRING 更改为 BYTES

    要修改默认数据类型映射,请执行以下操作:

    1. 在需要修改的字段所在的行上,点击外部数据元素字段。
    2. 在选择数据类型的对话框中,选择所需的 BigQuery 数据类型。
    3. 确认您的更改,然后点击保存
  3. 如果您在 BigQuery 设置维护 (BigQuery Settings Maintenance) 页面中指定了自定义名称标志,则可以根据需要在临时字段名称 (Temporary Field Name) 列中修改默认目标字段名称。

    您指定的值会替换外部字段名称列中显示的默认名称。

  4. 根据需要修改字段说明列中的默认目标字段说明。

  5. (可选)导出字段映射以进行外部修改。如需了解相关说明,请参阅在 CSV 文件中修改 BigQuery 字段映射

  6. 完成所有更改并且上传所有外部修改的值后,确认已选中设置已激活标志复选框。如果未选中设置已激活标志,BigQuery Connector for SAP 会使用默认值创建目标表。

  7. 点击保存

    更改将存储在 /GOOG/BQ_FIELD 配置表中,系统会自动填充更改者更改时间更改位置字段。

测试复制

通过启动数据预配来测试复制配置:

  1. 在 SAP GUI 中打开 SAP LT Replication Server Cockpit(事务 LTRC)。

  2. 点击要测试的表复制对应的批量传输配置。

  3. 点击数据预配

  4. 数据预配面板中,开始进行数据预配:

    1. 输入源表的名称。
    2. 点击要测试的数据预配类型对应的单选按钮。例如,开始加载
    3. 点击执行图标。此时数据传输将会开始,参与对象屏幕上会显示其进度。

      如果 BigQuery 中不存在该表,则 BigQuery Connector for SAP 会根据您先前通过 /GOOG/SLT_SETTINGS 事务定义的表和字段特性构建的架构来创建表。

      表初始加载所需的时间取决于表及其记录的大小。

      消息写入事务 LTRC 中的 SAP LT Replication Server 应用日志部分。

验证复制

您可以使用以下方法验证复制:

  • 在 SAP LT Replication Server 中执行以下操作:
    • 数据预配屏幕上监控复制。
    • 应用日志屏幕中检查错误消息。
  • 在 BigQuery 的表信息标签页上执行以下操作:
    • 检查架构标签页,确保架构正确无误。
    • 查看预览标签页,查看所插入的行的预览。
    • 查看详细信息标签页,了解插入的行数、表的大小以及其他信息。
  • 如果在配置 BigQuery 表时选中额外字段标志复选框,请输入 /GOOG/REPLIC_VALID 自定义事务来运行复制验证工具。

在 SAP LT Replication Server 中检查复制

在启动初始加载或复制作业后,使用事务 LTRC 可以查看其进度,并检查错误消息。

您可以在 SAP LT Replication Server 的加载统计信息标签页下查看加载状态,并在数据传输监控标签页下查看作业进度。

在事务 LTRC应用日志屏幕上,您可以看到 BigQuery、BigQuery Connector for SAP 和 SAP LT Replication Server 返回的所有消息。

在 SAP LT Replication Server 中,由 BigQuery Connector for SAP 代码发出的消息以 /GOOG/SLT 前缀开头。从 BigQuery API 返回的消息以 /GOOG/MSG 前缀开头。

SAP LT Replication Server 返回的消息不会以 /GOOG/ 前缀开头。

在 BigQuery 中检查复制

在 Google Cloud 控制台中,确认表已创建,并且 BigQuery 正在向表中插入数据。

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

    转到 BigQuery

  2. 探索器部分的搜索字段中,输入目标 BigQuery 表的名称,然后按 Enter

    表信息显示在页面右侧内容窗格中的一个标签页下。

  3. 在表信息部分中,点击以下标题以检查表和行插入情况:

    • 预览,显示插入 BigQuery 表的行和字段。
    • 架构,显示字段名称和数据类型。
    • 详细信息,显示表大小、总行数和其他详细信息。

运行复制验证工具

如果在配置 BigQuery 表时选中了额外字段标志,您可以使用复制验证工具生成报告来比较 BigQuery 表中的记录计数与 SAP LT Replication Server 统计信息或源表中的记录计数。

如需运行复制验证工具,请执行以下操作:

  1. 在 SAP GUI 中,输入以 /n 开头的 /GOOG/REPLIC_VALID 事务:

    /n/GOOG/REPLIC_VALID
  2. 处理选项部分中,点击执行验证单选按钮。

  3. 选择选项部分中,输入以下规范:

    • GCP 合作伙伴标识符字段中的下拉菜单中,选择 BigQuery
    • 检查类型字段中的下拉菜单中,选择要生成报告的类型:
      • 初始加载计数
      • 复制计数
      • 当前计数
    • 如果显示了检查日期字段,请指定您需要计数的日期。
    • 批量传输键字段中,输入批量传输配置名称。
  4. 点击执行图标以运行复制验证工具。

  5. 验证检查完成后,在处理选项部分中点击显示报告单选按钮以显示报告,然后点击执行图标。

如需了解详情,请参阅复制验证工具

问题排查

如需了解如何诊断和解决在使用 BigQuery Connector for SAP 配置并运行 SAP 与 BigQuery 之间的加载或复制时遇到的问题,请参阅 BigQuery Connector for SAP 问题排查指南

获取支持

如果您需要帮助以解决复制问题和 BigQuery Connector for SAP 问题,请收集所有可用的诊断信息,并与 Cloud Customer Care 联系。如需了解如何与 Customer Care 团队联系,请参阅获取 Google Cloud 上的 SAP 支持