在 Google Cloud 之外的主机上安装和配置 BigQuery Connector for SAP

本指南介绍如何在本地、其他云服务提供商或 Google Cloud 外部的其他环境中的主机上运行的 SAP LT Replication Server 中安装和配置 BigQuery Connector for SAP。

本指南介绍如何准备 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 管理员。
在您的 SAP 系统和 Google Cloud 之间建立网络连接 网络管理员。
启用所需的 Google Cloud API Google Cloud 管理员。
启用到 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 的网络连接

如果您的 SAP 工作负载未在 Google Cloud 上运行,则需要由您或网络管理员建立与 Google Cloud 之间的安全、高带宽、低延迟的连接。

您有以下两种连接选项:

如需设置连接,请按照您选择的 Google Cloud 连接服务提供的说明进行操作。

每种连接服务都提供了适合不同场景的说明,因此请查阅服务文档,并根据适合您的场景的说明操作。

启用所需的 Google Cloud API

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

  • BigQuery API
  • IAM Service Account Credentials API

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

启用到 Google Cloud API 的专用访问通道

如果您的 SAP 工作负载未在 Google Cloud 上运行,则在建立与 Google Cloud 的网络连接之后,您需要启用到 Google Cloud API 的专用访问通道。

要启用专用 API 访问通道,请参阅为本地主机配置专用 Google 访问通道

安装 gcloud CLI

如需复制到 BigQuery,sidadm 用户帐号必须有权访问 SAP LT Replication Server 主机上的 Google Cloud CLI (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 属性。

如果您使用代理服务器将 HTTP 请求发送到 Google Cloud,请配置 gcloud CLI 以与代理搭配使用。如需了解配置详情,请参阅配置 gcloud CLI 以与代理/防火墙搭配使用

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

创建 BigQuery 数据集

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

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

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

    打开 BigQuery

  2. 点击您的项目 ID 旁边的 View actions 图标,,然后点击创建数据集

    前文中描述的示意图

  3. 数据集 ID 字段中,输入 SAP LT Replication Server 所要求的大写字母文本 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 的安全设置:
    • 将服务帐号密钥存储在 SAP LT Replication Server 主机上。
    • 创建操作系统命令以获取访问令牌。

创建服务帐号

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

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

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

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

  1. 在控制台中,打开“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 权限页面上列为主帐号。

创建服务帐号密钥

您需要创建一个 JSON 服务帐号密钥并将其存储在 SAP LT Replication Server 主机上。

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

  1. 在控制台中,打开“IAM 和管理”的服务帐号页面。

    打开“服务帐号”

  2. 选择您的 Google Cloud 项目。

  3. 点击您在上一部分创建服务帐号中创建的服务帐号对应的电子邮件地址。

  4. 在服务帐号名称下,点击密钥标签页。

  5. 点击添加密钥下拉菜单,然后选择创建新密钥以创建服务帐号密钥

  6. 接受 JSON 作为密钥类型,然后点击创建

    私钥已保存到您的计算机。向您的 SAP 管理员提供此密钥以上传到 SAP LT Replication Server 主机,如在 SAP LT Replication Server 主机上安装服务帐号密钥中所述。

将服务帐号添加到 BigQuery 项目

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

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

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

  1. 在控制台中,打开“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 数据集。

在 SAP LT Replication Server 主机上安装服务帐号密钥

将在上一部分中创建的服务帐号密钥上传到 SAP LT Replication Server 主机,然后将 gcloud CLI 配置为使用该服务帐号密钥。

这些步骤通常由 SAP 管理员完成。

要安装服务帐号密钥,请完成以下步骤:

  1. 将 JSON 密钥文件上传到 SAP LT Replication Server 主机上的安全位置。

  2. 在 SAP LT Replication Server 主机上,切换到 sidadm 用户:

    sudo su - sidadm
  3. 配置 gcloud CLI 以使用服务帐号密钥进行身份验证:

    gcloud auth activate-service-account SERVICE_ACCOUNT --key-file=SERVICE_ACCOUNT_KEY

    替换以下内容:

    • SERVICE_ACCOUNT:您在之前的步骤中为 BigQuery Connector for SAP 创建的服务帐号的名称。例如 bq-connector-for-sap@example-project-123456.iam.gserviceaccount.com
    • SERVICE_ACCOUNT_KEY:您上传到 SAP LT Replication Server 主机的 JSON 服务帐号密钥的目录路径和文件名。例如 PATH_TO_JSON_KEY_FILE/KEY_FILE_NAME.json
  4. gcloud CLI 激活服务帐号后,您可以删除 SERVICE_ACCOUNT_KEY。激活服务帐号时,gcloud CLI 会存储密钥的副本。

如需详细了解如何为 gcloud CLI 授权,请参阅使用服务帐号进行授权

创建操作系统命令以输出访问令牌

您或 SAP 管理员需要配置一个操作系统命令来从 Google Cloud 检索访问令牌。

以下步骤将创建一个脚本来输出访问令牌,并配置 SAP 操作系统命令,从而以 sidadm 用户身份从 SAP LT Replication Server 主机调用该脚本。

此任务通常由 SAP 管理员执行。

如需创建操作系统命令,请点击您的操作系统对应的标签页,然后按照步骤进行操作:

Linux

  1. 在 SAP LT Replication Server 主机上,在 sidadm 可访问的目录中,创建一个包含以下行的 bash 脚本:

    #!/bin/bash
    /PATH_TO_GCLOUD_CLI/bin/gcloud auth print-access-token | fold -sw 127
  2. 使用 SAP GUI 创建一条外部操作系统命令:

    1. 输入 SM69 事务。
    2. 点击创建
    3. 在“外部命令”面板的命令部分中输入命令的名称。例如 ZGOOG_SLTBQ
    4. 定义部分中:

      • OS OS Command 字段中输入 sh 作为脚本文件的扩展名。
      • 操作系统命令的参数字段中,输入以下内容:

        /PATH_TO_SCRIPT/FILE_NAME.sh
    5. 点击保存

    6. 点击执行以测试脚本。

    7. 再次点击执行

    系统会返回一个 Google Cloud 令牌,并将其显示在 SAP GUI 面板的底部。

Windows

  1. 登录 Windows 主机。
  2. 使用 Windows PowerShell 以管理员身份在新的 PowerShell 子目录中创建一个 Windows PowerShell 模块,以请求和格式化 SAP 系统的访问令牌:

    1. 使用以下命令序列在 Windows Server 系统中创建目录和模块文件。为目录和模块使用相同的名称:

      cd C:\Windows\system32\WindowsPowerShell\v1.0\Modules
      mkdir MODULE_NAME
      cd MODULE_NAME
      notepad MODULE_NAME.psm1
    2. 将以下两个函数定义复制并粘贴到 MODULE_NAME.psm1 文件中:

      Function Fold-Token{
          [CmdletBinding()]
          Param(
              [Parameter(ValueFromPipeline)]
              $token
          )
          $token -split "(.{127})" | Where-Object{$_}
      }
      
      Function Get-Token{
          gcloud auth print-access-token | Fold-Token
      }
      
      Export-ModuleMember -function Get-Token
  3. 在 Windows PowerShell 中,测试命令 Get-Token

    Get-Token

    Google Cloud 访问令牌会显示在 Windows PowerShell 控制台中。

  4. 在 SAP GUI 中,输入事务 SM69

  5. 点击创建

  6. 外部命令面板的命令部分中,输入命令的名称。例如 ZGOOG_SLTBQ

  7. 定义部分中:

    1. 操作系统命令字段中输入 powershell
    2. 操作系统命令的参数字段中,输入您在上一步中创建的 MODULE_NAME.psm1 模块中定义的函数的名称:
    Get-Token
  8. 点击保存

  9. 点击执行以测试脚本。

  10. 再次点击执行

    系统会返回一个 Google Cloud 令牌,并将其显示在 SAP GUI 面板的底部。

设置 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 身份从 Google Cloud 请求访问令牌:

    /home/SIDadm/google-cloud-sdk/bin/gcloud auth print-access-token \
     SERVICE_ACCOUNT
    

    替换以下内容:

    • SERVICE_ACCOUNT:您在先前步骤中为 BigQuery Connector for SAP 创建的服务帐号。
    • SID:SAP 系统 ID。

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

    {"access_token":"ACCESS_TOKEN_STRING","expires_in":3599,"token_type":"Bearer"}
  3. 从 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"
    

    替换以下内容:

    • PROJECT_ID:包含您的 BigQuery 数据集的项目的 ID。
    • DATASET_NAME:在 BigQuery 中定义的目标数据集的名称。
    • ACCESS_TOKEN_STRING:上一步中由 Google Cloud 返回的访问令牌字符串。

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

    如果您没有按预期收到数据集信息,请检查配置步骤。如需详细了解问题排查信息,请参阅 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 系统都有所不同,因此请与您的 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 配置的名称。
    服务帐号名称 字符串

    将此字段留空。

    范围 字符串

    将此字段留空。

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

    您在创建操作系统命令以输出访问令牌步骤中定义的外部操作系统命令的名称。

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

    指定 /GOOG/CL_GCP_AUTH

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

    将此字段留空。

创建 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 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 中检查复制

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

  1. 在控制台中,打开 BigQuery SQL 工作区页面。

    打开 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 支持