本指南为 SAP LT Replication Server 管理员、SAP 数据工程师或其他人员介绍如何为 BigQuery Connector for SAP 2.0 和 2.1 版执行各种运维任务,例如性能微调和版本更新。
微调复制性能
复制性能可能会受到多种因素的影响。适用的具体因素可能因安装而异,并且可能随时间而发生变化。
以下部分提供有关如何微调一些可能影响性能的较常见因素的指导。
如需详细了解使用 BigQuery Connector for SAP 时的复制性能,请参阅性能规划。
为表设置性能选项
在 SAP LT Replication Server 中,您可以为每个影响性能的表指定复制选项。
具体而言,大型表在复制时需要更多的时间和资源,通过指定范围并增加可用于表的并行复制作业数上限可以优化性能。
通常会逐渐变大的表示例包括 MSEG
、ACDOCA
和 MATDOC
等。
为大型表指定并行复制作业时,您需要在任何给定表允许的并行作业数量与批量传输配置允许的并行作业总数之间取得平衡。您的组织也可能会限制您可以为给定服务器指定的并行复制作业的数量。
如需设置表的性能选项,请执行以下操作:
在 SAP GUI 中,输入 SAP 事务
LTRS
。在高级复制设置屏幕上,指定该表的批量传输设置 ID。
在高级复制设置文件夹层次结构中,点击性能选项文件夹,以显示已定义性能选项的表。
如果所需表未列出,请右键点击性能选项文件夹,然后选择添加表。
为表指定一个名称。
根据需要指定以下选项:
- 在常规性能选项下:
- 并行作业数,用于设置可用于该表的并行复制作业的最大数量。
- 序列号,用于确定此表相对于其他表的复制优先级。
- 在初始加载选项下:
- 对于读取类型,如果您的表不是太大,请选择读取类型 1 范围计算。如需了解详情,请参阅性能和 LTRS 高级复制设置。
- 在数据包大小中,指定发送到 SAP LT Replication Server 的记录部分的大小(以字节为单位)。
- 如果选择了一种使用范围的读取类型,请定义适当的范围。
- 在复制选项下:
- 对于日志记录表的范围,请指定无范围,这是最可靠的选项。
- 如果您选择手动指定范围,则应定义适当的范围。
- 在常规性能选项下:
点击保存。
基准性能的基准
为了帮助您评估复制性能,本部分包含在 Google Cloud 测试系统中观察到的基准性能数字。
由于很多不同因素会影响性能,您的性能数字可能会有所不同。
例如,如果您的 SAP 系统未在 Google Cloud 上运行,则由于网络延迟和与访问令牌相关的开销等因素,负载和复制率可能会低于基准速率。如果源表包含的列数更少,或者您在独立架构中 SAP LT Replication Server 自己的服务器上安装 SAP LT Replication Server,则速率可能会更快,因为 SAP LT Replication Server 不必与资源的源系统竞争。
观察到的基准性能数字
以下性能数字表示 Google Cloud 在测试期间针对每种来源系统类型观察到的基准性能。在每个测试系统中,SAP LT Replication Server 都安装在 Compute Engine 虚拟机上的嵌入式架构中的 SAP 源系统上。SAP 源系统与目标 BigQuery 数据集在同一 Google Cloud 区域中运行。
如需了解测试系统的配置,请参阅基准性能测试系统配置。
要查看性能数字,请点击源系统类型:
S/4HANA
- 表:ACDOCA
- 3.43 亿条记录
- 477 列
- 初始加载大小
- 加载速率:平均每小时 3.5 亿条记录
- 加载时长:平均 59 分钟
- 副本
- 源表更改速率:平均每小时 5000 万条记录
- 最大复制速率:平均每小时 5000 万条记录
ECC
- 表:MSEG
- 2.03 亿条记录
- 188 列
- 初始加载大小
- 加载速率:平均每小时 3.85 亿条记录
- 加载时长:平均 32 分钟
- 副本
- 源表更改速率:平均每小时 5000 万条记录
- 最大复制速率:平均每小时 6900 万条记录
上述性能数字是 Google Cloud 测试人员观察到的基准。
观察到的性能在具有以下特性的测试系统中表现更佳:
- SAP LT Replication Server 在独立架构中安装在自己的虚拟机上。
- 对于 S/4HANA 系统,由于 SAP LT Replication Server 进程的独立扩缩,观察到独立架构的初始加载速率比嵌入式架构快约 42%。
- 对于 ECC 系统,由于 SAP LT Replication Server 进程的独立扩缩,观察到独立架构的初始加载速率比嵌入式架构快约 10%。
- 源表中的列较少。
- 记录的整体字节大小较小。
如需了解可以修改以提升性能的系统属性,请参阅:
基准性能测试系统配置
本部分介绍的测试系统会生成上一部分观察到的基准性能数字中列出的基准性能数字。
测试系统(包括 SAP 源系统、SAP LT Replication Server 和 BigQuery 数据集)都在同一 Google Cloud 区域的 Compute Engine 虚拟机上运行。
在每个系统中,服务器和工作负载被指定为模拟可能在许多实际安装中找到的更重工作负载和更高复制量。
如需查看测试系统属性,请点击源系统类型:
S/4HANA
- SAP LT Replication Server 安装架构:
- 嵌入式架构
- 源系统服务器:
- 两台应用服务器,每台服务器都在具有以下规范且基于 N2 的 Compute Engine 自定义机器类型上:
- vCPU 数:60
- 内存:324 GB
- CPU 平台:Intel Cascade Lake
m1-ultramem-80
Compute Engine 虚拟机上的一台 SAP HANA 服务器具有以下规范:- vCPU 数:80
- 内存:1900 GB
- CPU 平台:Intel Broadwell
- 两台应用服务器,每台服务器都在具有以下规范且基于 N2 的 Compute Engine 自定义机器类型上:
- 软件版本:
- S/4HANA 1909
- SAP LT Replication Server:S/4CORE 104 SP00
- 表大小:
- 表名:ACDOCA,总账日记账分录行项数据
- 记录数:3.43 亿
- 列数:477
- 每个应用服务器上的工作进程数:
- 60 个对话进程
- 220 个后台进程
- SAP LT Replication Server 中的加载设置:
- 作业数:99
- 读取类型:1 个范围
- 计算方式:自动范围
- 复制设置:
- 作业数:99
- 使用键字段计算日志记录表的范围
- 128 个范围
ECC
- SAP LT Replication Server 安装架构:
- 嵌入式架构
- 源系统服务器:
- 两个应用服务器,每个应用都在具有以下规范的
n2-highmem-48
Compute Engine 虚拟机上:- vCPU 数:60
- 内存:348 GB
- CPU 平台:Intel Cascade Lake
- 两个应用服务器,每个应用都在具有以下规范的
- 软件版本:
- SAP NetWeaver:7.0 EHP2
- SAP LT Replication Server:DMIS 2011_1_700 SP17
- 表大小:
- 表:MSEG,材料库存管理文档
- 记录数:2.03 亿
- 列数:188
- 每个应用服务器上的工作进程数:
- 60 个对话进程
- 100 个后台进程
- SAP LT Replication Server 中的加载设置:
- 作业数:99
- 读取类型:5 个发送者
- 队列:手动范围
- 复制设置:
- 作业数:99
- 日志记录表的范围:使用键字段计算范围
- 范围数量:128
将批量传输设置传送到生产环境
如需将批量传输设置传送到生产环境,请先从开发系统导出设置,然后将其导入生产系统。
您也可以将批量传输设置的三个单独部分导入到生产环境中:
- 高级复制设置,可通过
LTRS
事务访问。 /GOOG/CLIENT_KEY
表中的客户端密钥设置,可通过SM30
事务访问。- BigQuery Connector for SAP 批量传输设置,可通过
/GOOG/SLT_SETTINGS
事务访问。
从开发系统导出批量传输设置
在 SAP LT Replication Server 开发系统中,导出批量传输设置的每个部分:
导出高级复制设置:
- 运行
LTRS
事务。 - 选择要传送到生产环境的批量传输记录。
- 从文件下拉菜单中,选择导出所有设置。
- 在导出设置对话框中,选择一个目标位置,然后点击保存。这些设置会作为 CSV 格式的压缩文件保存在您的本地工作站上。
- 运行
导出 BigQuery Connector for SAP 批量传输设置:
运行
/GOOG/SLT_SETTINGS
事务:/n/GOOG/SLT_SETTINGS
在设置表字段中,选择批量传输。
选择要传送到生产环境的批量传输记录。
点击传送批量传输。
在提示输入工作台请求中,输入传送请求编号并点击继续图标。对于每个选定的批量传输记录,以下自定义配置表中的设置都会包含在传送中:
/GOOG/BQ_MASTR
/GOOG/BQ_TABLE
/GOOG/BQ_FIELD
批量传输设置会保存到传送请求中。
您可以通过在传送请求中手动包含
/GOOG/CLIENT_KEY
表的内容来导出客户端密钥设置。将文件保存到您的本地工作站。
将批量传输设置导入生产系统
在 SAP LT Replication Server 生产系统中,导入批量传输设置的每个部分:
为批量传输设置创建 SAP LT Replication Server 复制配置。
导入高级复制设置:
- 运行
LTRS
事务。 - 选择您在第一步中创建的批量传输。
- 从文件下拉菜单中,选择导入所有设置。
- 在选择文件对话框中,从您的本地工作站选择压缩文件,然后点击打开。这些设置将作为批量传输的设置导入。
- 运行
导入包含批量传输设置的传送请求。
运行
SM30
事务。根据需要更新生产环境的客户端密钥设置。
运行
/GOOG/SLT_SETTINGS
事务:/n/GOOG/SLT_SETTINGS
验证批量传输屏幕中是否显示了正确的批量传输。
在批量传输 ID 列中,将开发系统中的批量传输 ID 替换为您在第一步中创建的复制配置中的批量传输 ID。
在后续的表和字段设置屏幕中,根据需要为生产环境更新表和字段映射的其他值。
通过启动初始加载或复制来测试配置。如需了解如何启动初始加载或复制,请参阅:
更新 BigQuery Connector for SAP
Google Cloud 以 SAP 传输的形式提供 BigQuery Connector for SAP 的新版本。
SAP 管理员可以按照以下步骤更新 BigQuery Connector for SAP:
- 在 SAP LT Replication Server 中停用配置。
- 导入新的 SAP 传输请求。
- 验证导入和对象激活均已成功后,在 SAP LT Replication Server 中激活配置。
更新 gcloud CLI
您需要确保 SAP LT Replication Server 主机上的 Google Cloud CLI 为最新版本。
如需详细了解如何管理 gcloud CLI,请参阅管理 gcloud CLI 组件。
监控
您可以监控从 SAP 数据源到目标 BigQuery 表的数据路径中的几个不同点,包括:
- 基础架构 - 网络、硬件和操作系统
- SAP 数据库层
- SAP 应用层
- BigQuery Connector for SAP
- BigQuery
以下各小节介绍供您在这些点进行监控的选项。
监控基础架构
在 Google Cloud 上,您可以在主机虚拟机上安装 Ops Agent,以进行高级监控和日志记录。Ops Agent 会将数据发送到 Google Cloud 控制台中的 Cloud Monitoring。
有关详情,请参阅:
对于不在 Google Cloud 上运行的系统,您还可以通过运行 SAP 事务(例如 ST06
事务)来获取服务器信息。
监控数据库层
使用标准 SAP 事务代码来监控数据库的运行状况。
事务代码 DBACOCKPIT
是监控数据库时最常用的事务。此事务还提供了详细日志,供您用于排查错误。
对于 SAP HANA,您可以使用 SAP HANA Studio 处理 SAP HANA 操作。 您可以在任何前端机器上安装 SAP HANA Studio。
在排查性能问题或其他问题时,请在源数据库中检查以下事项:
- 耗费过多资源的 SQL 语句
- 锁定
- 加载历史记录
- 索引
- 进程
监控应用层
您可以使用 SAP 应用监控和问题排查工具来监控和排查 BigQuery Connector for SAP 的问题,因为它是在应用层运行的。
SAP 应用监控和问题排查可进一步分类如下:
- 标准 SAP 监控和问题排查
- BigQuery Connector for SAP 监控和问题排查
对于大型环境,您可以使用 SAP Solution Manager 作为中央监控工具。
您可以使用如下列表中的 SAP 事务代码来监控和诊断个别 SAP 应用系统的问题:
- SLT 配置状态:
LTRC
- SLT 错误和日志:
LTRO
和SLG1
- Internet Communications Manager(HTTP 和 HTTPS 调用):
SMICM
- 安全与证书:
STRUST
- SAP 传输:
STMS
- RFC 连接:
SM59
- 操作系统命令:
SM69
- 软件包检查:
SE80
- 授权检查:
SU53
- 后台作业:
SM37
- 系统日志:
SM21
监控 BigQuery
使用 Cloud Monitoring 查看 BigQuery 指标并创建图表和提醒。每个指标都有一个资源类型(即 bigquery_dataset
、bigquery_project
或 global
)和一组标签。
使用资源类型和标签以便使用 Monitoring Query Language (MQL) 构建查询。
您可以使用标签对每项指标进行分组或过滤。
如需详细了解 Monitoring,请参阅 Cloud Monitoring 文档。
复制验证
如果在使用事务 /GOOG/SLT_SETTINGS
创建目标 BigQuery 表时选择额外字段标志,则系统会将列添加到表架构中以存储每条记录中触发复制的更改类型,以及反映 SAP LT Replication Server 在何时收到包含该记录的部分的时间戳。
您可以使用更改类型和时间戳来查询以下类型的记录计数:
- 在初始加载期间加载到 BigQuery 表中的记录数。
- 在指定日期复制到 BigQuery 表的记录数。
- BigQuery 表中的唯一记录总数。
如需获取这些计数,您可以通过在 Google Cloud 控制台中提交 SQL 查询来直接查询 BigQuery 表,也可以运行复制验证工具以生成用于将 BigQuery 记录计数与 SAP LT Replication Server 统计信息或源表中的记录计数进行比较的报告。
如需大致了解额外字段标志,请参阅用于记录更改和计数查询的额外字段。
如需了解如何指定额外字段标志,请参阅:
- 如果 SAP LT Replication Server 在 Compute Engine 虚拟机上运行,请参阅指定表创建和其他常规特性。
- 如果 SAP LT Replication Server 在 Google Cloud 外部的主机上运行,请参阅指定表创建和其他常规特性。
用于记录计数的 SQL 查询
在 Google Cloud 控制台中的 BigQuery SQL 编辑器页面上,您可以运行 SQL 查询来检查 BigQuery 表中的记录计数。
然后,您可以将 BigQuery 记录计数与源表或 SAP LT Replication Server 统计信息中的计数进行比较。
查询在初始加载模式下插入的记录数
当 BigQuery 表架构包含可选的 operation_flag
列时,在初始加载模式下插入表的记录包括 L
操作标志。
如需获取 BigQuery 在初始加载期间收到的记录数,请执行以下查询:
SELECT COUNT(*) FROM `PROJECT.DATASET.TABLE` WHERE operation_flag = 'L'
查询在复制模式下插入的记录数
当 BigQuery 表架构包含可选的 operation_flag
列时,在复制模式下插入表的记录包括以下操作标志之一:
I
:记录已插入源表中。D
:记录已从源表中删除。U
:记录在源表中已更新。
如需获取 BigQuery 在复制模式下接收的记录数,请运行以下查询:
SELECT COUNT(*) FROM `PROJECT.DATASET.TABLE` WHERE operation_flag = 'I' | 'D' | 'U'
查询 BigQuery 表中的记录总数
当 BigQuery 表架构包含可选的 recordstamp
列时,插入到表中的每个记录的相应 recordstamp
字段都包含指示 SAP LT Replication Server 将记录发送到 BigQuery 时间的时间戳。
如需获取可以与源表中的记录总数进行比较的 BigQuery 表中记录的总数量,您可以使用 recordstamp
和 is_deleted
字段计算 BigQuery 表中尚未从源表中删除的唯一记录。
如果在查询记录时源表正在更新或复制处于活跃状态,则源表和目标表中的记录数可能不完全匹配。
如需获取 BigQuery 目标表中唯一记录的当前计数,请运行以下查询:
SELECT COUNT(*) FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY KEY_FIELD_1, ..., KEY_FIELD_N ORDER BY recordstamp DESC) row_num FROM `PROJECT.DATASET.TABLE` ) WHERE row_num = 1 AND is_deleted = false
复制验证工具
本部分简要介绍了复制验证工具及其功能。
复制验证工具会生成报告,可以比较 BigQuery 表中的记录数与 SAP LT Replication Server 统计信息和源表中的记录数。如果计数不完全匹配,则工具会用红色圆圈标记报告。
为了对 BigQuery 中的记录进行计数,该工具会使用上一部分中显示的 SQL 查询对记录数进行 SQL 查询。
定期运行复制验证工具,以验证 SAP LT Replication Server 和 BigQuery Connector for SAP 是否按预期将记录复制到 BigQuery。
如需运行复制验证工具,请在 SAP GUI 中输入以 /n
开头的自定义事务 /GOOG/REPLIC_VALID
。如需查看分步说明,请参阅:
- 如果 SAP LT Replication Server 在 Compute Engine 虚拟机上运行,请运行复制验证工具。
- 如果 SAP LT Replication Server 运行在 Google Cloud 外部的主机上,请运行复制验证工具。
复制验证报告
您可以使用复制验证工具生成以下验证报告:
- 初始负载计数:比较 SAP LT Replication Server 在加载模式下发送的记录数和加载到 BigQuery 的记录数。
- 复制计数:比较 SAP LT Replication Server 在复制模式下发送的记录数和在指定日期插入到 BigQuery 的记录数。
- 当前计数:某一时间点上源表中记录数量与 BigQuery 中唯一记录数量的比较。
您可以单独生成每个报告,也可以在运行该工具时选择所有检查,以便在一次执行中生成所有三个报告。
显示复制验证报告
生成报告后,您可以通过选择复制验证工具界面的处理选项部分中的显示报告单选按钮来显示报告。
复制验证工具在每个报告中显示的信息略有不同,具体取决于报告类型。
所有报告都包含以下类型的信息:
- 来自 SAP LT Replication Server 统计信息和源表的源记录计数。
- 目标 BigQuery 表中的目标记录计数。
- 两个计数之间的任何差异。计算差异的方法是从源记录计数中减去 BigQuery 计数。正值表示可能存在问题,因为它表示并非所有源记录都进入了 BigQuery。
- 计数之间的差异显示为来源记录计数的百分比。
- 直观呈现来源计数和目标计数是相同还是不同。
记录数不相等
复制验证工具包含一个状态字段,用于显示每个报告。
状态字段中的绿色方块表示源记录数等于 BigQuery 中的目标记录数。
状态字段中的红色圆圈表示记录计数不相等。
不相等的记录数并不总是表示存在问题。以下指标表明可能存在一个问题:
- 对于“当前计数”报告,不等于值始终表示存在问题。
对于初始负载计数或初始计数报告,正值表示可能存在问题。
相对较低的负值不是问题。由于一些事件(例如导致 SAP LT Replication Server 重新发送数据的暂时性连接中断),目标 BigQuery 表中的计数有时会略高于源记录计数。
如果您看到计数不相等,请重新运行报告,以确保它不是由暂时性问题引起的。由于工具在生成报告时需要处理复制,因此记录数量可能不同。
对于非常大的源表或在 SAP LT Replication Server 中设置过滤条件以进行初始加载或复制的表,复制验证工具可能无法计算相等计数所需的所有记录。
安排验证检查
您可以使用 SAP 后台作业功能安排复制验证工具定期自动运行。
在 CSV 文件中修改 BigQuery 字段映射
以下部分介绍了如何导出默认字段映射,以便数据工程师或 BigQuery 管理员无需访问 SAP LT Replication Server 即可修改目标字段值。
创建默认字段映射的电子表格或文本文件
如需创建 CSV 文件以在 SAP LT Replication Server 外部进行修改,请执行以下操作:
运行
/GOOG/SLT_SETTINGS
事务。在 SLT 设置维护屏幕中,指定以下值:
- 在设置表字段中,指定字段。
- 在大规模转移键字段中,指定要更新的大规模转移的 ID。
- 在表名称字段中,将该字段留空以处理所有表中的所有字段,或指定表名称以处理特定表。
- 将其他所有字段留空。
点击执行图标。此时将显示 BigQuery 设置维护 - 字段屏幕。
在 BigQuery 设置维护 - 字段屏幕上,如需隐藏以下列表中的列之外的所有列,请右键点击列标题并从下拉菜单中选择隐藏:
- SAP 表名称
- SAP 字段名称
- 外部数据元素
- 外部字段名称
- 字段说明
在显示其余五个列后,点击导出图标。
从导出菜单中,选择以下选项之一:
- 电子表格
- 本地文件。为了便于将文件内容转换为 CSV 格式,我们建议您以文本文件(制表符分隔)格式保存文件。
点击对勾标记图标,以保存默认字段映射。
将电子表格或文本文件转换为 CSV 格式
如果要使用自定义事务 /GOOG/SLT_SETTINGS
上传修改后的字段映射,字段映射必须采用 CSV 格式。
如果您使用的是电子表格,请在上传该文件之前将电子表格另存为 CSV 文件。
如果是使用制表符分隔格式或任何其他格式的本地文件,则需要修改该文件以符合 CSV 格式。
例如:
SAP Table,SAP Field Name,External Data Element,External Field Name,Field Description SAP_TABLE_NAME,SAP_FIELD_NAME1,BIGQUERY_DATA_TYPE,BIGQUERY_FIELD_NAME1,BIGQUERY_FIELD_DESCRIPTION1 SAP_TABLE_NAME,SAP_FIELD_NAME2,BIGQUERY_DATA_TYPE,BIGQUERY_FIELD_NAME2,BIGQUERY_FIELD_DESCRIPTION2 SAP_TABLE_NAME,SAP_FIELD_NAME3,BIGQUERY_DATA_TYPE,BIGQUERY_FIELD_NAME3,BIGQUERY_FIELD_DESCRIPTION3
上传 CSV 文件
如需上传修改后的 CSV 文件,请执行以下操作:
运行
/GOOG/SLT_SETTINGS
事务。在 SLT 设置维护屏幕中,指定以下值:
- 在设置表字段中,指定字段。
- 在大规模转移键字段中,指定要更新的大规模转移的 ID。
- 选中从文件上传复选框。
点击执行图标。此时将打开选择要上传的文件对话框。
在选择要上传的文件对话框中,选择包含修改后的字段值的 CSV 文件。
点击打开。
如果您收到安全警告,请点击允许。系统会加载该文件,并且该文件中的已修改值将显示在 BigQuery 设置维护 - 字段屏幕的适用行中。
点击保存图标。
如需确认是否已应用值,请将 CSV 文件中的值与 SAP LT Replication Server 显示的值进行比较。
处理源数据中的错误
从 BigQuery Connector for SAP 收到一个记录数据块后,BigQuery 流处理 API 会先检查数据错误,然后再将任何记录插入 BigQuery 表中。
通过在批量传输设置中指定以下标志,您可以控制 BigQuery API 和 BigQuery Connector for SAP 在发现数据错误时的响应方式:
Skip Invalid Records
(SKIP
) 标志Break at First Error Flag
(BREAK
) 标志
SKIP
标志
如果指定了 SKIP
标志,则当 BigQuery API 收到记录数据块并发现包含数据错误的记录时,BigQuery API 会舍弃或跳过包含错误的记录,并继续将数据块中的所有其他记录插入 BigQuery 表中。
如果未指定 SKIP
标志,则当 BigQuery 发现包含数据错误的记录时,BigQuery 会舍弃整个数据块,而不会将任何记录插入 BigQuery 表中。这是默认行为。
在开发和质量检查环境中最适合指定 SKIP
标志,不建议在生产环境中指定此标志。
您可以在配置复制时在 /GOOG/SLT_SETTINGS
事务中指定 SKIP
标志。该规范存储在 /GOOG/BQ_MASTR
配置表中。
如需了解 SKIP
规范如何与 BREAK
规范交互,请参阅 SKIP
和 BREAK
交互矩阵表。
BREAK
标志
如果指定了 BREAK
标志,则当 BigQuery API 通知 BigQuery Connector for SAP 发现记录中存在数据错误时,BigQuery Connector for SAP 会停止向 BigQuery 发送记录,并且终止复制作业。
如果未指定 BREAK
标志,则当 BigQuery 通知 BigQuery Connector for SAP 发现记录中存在数据错误时,BigQuery Connector for SAP 通过发送下一个数据块继续向 BigQuery 发送记录,并且复制作业将继续执行。这是默认行为。
建议在生产环境中指定 BREAK
标志。
您可以在配置复制时在 //GOOG/SLT_SETTINGS
事务中指定 BREAK
标志。该规范存储在 /GOOG/BQ_MASTR
配置表中。
如需了解 BREAK
规范如何与 SKIP
规范交互,请参阅 SKIP
和 BREAK
交互矩阵表。
SKIP
和 BREAK
交互矩阵表
您可以配置 BigQuery Connector for SAP,以便通过以下方式处理数据错误:
SKIP 标志 |
BREAK 标志 |
行为 |
---|---|---|
FALSE | TRUE |
BigQuery 会舍弃当前记录数据块,而不会将当前数据块中的任何记录插入 BigQuery 表。 BigQuery Connector for SAP 不会从当前部分发送更多记录数据块,并且会告知 SAP LT Replication Server 终止复制作业。 这是推荐设置。 |
FALSE | FALSE |
BigQuery 会舍弃当前记录数据块,而不会将当前数据块中的任何记录插入 BigQuery 表。 BigQuery Connector for SAP 会发送当前记录部分中全部剩余的记录数据块,然后告知 SAP LT Replication Server 终止复制作业。 这是默认设置。 |
TRUE | TRUE |
BigQuery 仅舍弃包含错误的记录,并将当前数据块中的其余记录插入 BigQuery 表。 BigQuery Connector for SAP 不会发送当前部分中的更多记录数据块,并且会检索下一部分。BigQuery Connector for SAP 不会指示 SAP LT Replication Server 终止复制作业。 |
TRUE | FALSE |
BigQuery 仅舍弃包含错误的记录,并将当前数据块中的其余记录插入 BigQuery 表。 BigQuery Connector for SAP 会发送当前部分中的全部剩余记录数据块,并检索下一部分。BigQuery Connector for SAP 不会指示 SAP LT Replication Server 终止复制作业。 |
表结构更改
本部分介绍如何修改现有 LTRC
复制正在进行的 SAP 源表结构。
向源表添加列
如需向源表添加新列,请按照以下步骤操作:
向源表中添加新列。完成此步骤后,复制状态将更改为
Load/Replication blocked
。在 SLT 系统中,使用事务
LTRC
重置复制状态。如需详细了解 SAP 提供的关于如何重置复制状态的信息,请参阅 SAP 说明 2204955 - SLT 表处于“Load/Replication blocked”状态。添加、更新或删除源表中的条目。
验证 BigQuery 中的复制结果。
从源表中删除列
如需从源表中删除现有列,请按照以下步骤操作:
在您的 SLT 系统中,使用事务
LTRC
暂停复制。从源表中删除列。完成此步骤后,现有的 SLT 触发器会被删除或更改为不一致状态。
在 BigQuery 中,从目标 BigQuery 表中删除该列。如需详细了解从现有表中删除列的步骤,请参阅 BigQuery 文档。
在您的 SLT 系统中,使用事务
LTRC
恢复复制。在 SLT 系统中,重新创建 SLT 触发器。如需详细了解 SAP 提供的关于重新创建 SLT 触发器的信息,请参阅 SAP 说明 2254376 - SLT 触发器处于不一致状态。
如果复制状态为
Load /Replication blocked
,则使用事务LTRC
重置复制状态。如需详细了解 SAP 提供的关于如何重置复制状态的信息,请参阅 SAP 说明 2204955 - SLT 表处于“Load/Replication blocked”状态。清除旧日志(如果有)。
添加、更新或删除源表中的条目。
验证 BigQuery 中的复制结果。
更改现有列的数据类型
更改 SAP 源表中现有列的数据类型时,您需要遵循特定步骤,具体取决于您是将数据类型更改为与目标 BigQuery 表兼容还是不兼容的数据类型。
当现有列的现有数据类型和新数据类型映射到目标 BigQuery 表中的相同数据类型时,数据类型与目标 BigQuery 表中的数据类型兼容。例如,如果源表中某个列的数据类型从 INT1
更改为 INT2
,那么这两个数据类型都与目标 BigQuery 表中的数据类型 INTEGER
兼容。
如需详细了解 BigQuery Connector for SAP 中的数据类型映射,请参阅数据类型映射。
将数据类型更改为兼容的数据类型
如需将现有列的数据类型更改为兼容的数据类型,请按照以下步骤操作:
在源系统中将数据类型更改为兼容的数据类型。完成此步骤后,现有的 SLT 触发器会被删除或更改为不一致状态。
在 SLT 系统中,重新创建 SLT 触发器。如需详细了解 SAP 提供的关于重新创建 SLT 触发器的信息,请参阅 SAP 说明 2254376 - SLT 触发器处于不一致状态。
如果复制状态为
Load /Replication blocked
,则使用事务LTRC
重置复制状态。如需详细了解 SAP 提供的关于如何重置复制状态的信息,请参阅 SAP 说明 2204955 - SLT 表处于“Load/Replication blocked”状态。清除旧日志(如果有)。
添加、更新或删除源表中的条目。
验证 BigQuery 中的复制结果。
将数据类型更改为不兼容的数据类型
如需将现有列的数据类型更改为不兼容的数据类型,请按照以下步骤操作:
- 在您的 SLT 系统中,使用事务
LTRC
停止复制。 - 在 BigQuery 中,删除目标表。
- 更改源系统中的数据类型。
- 在您的 SLT 系统中,使用事务
LTRC
启动复制。
增强出口位置
BigQuery Connector for SAP 在其代码中提供了多个增强点,ABAP 开发者可在其中插入代码以添加自定义功能。
下表列出了这些增强点支持的函数、方法以及包含增强点的类。
函数 | 类 | 方法 | Spot | 选项 |
---|---|---|---|---|
更新一个字段的映射,例如外部字段名称、数据类型等。 | /GOOG/CL_IUUC_REPL_RUNTIME |
CREATE_FLD_MAPPINGS |
/GOOG/ES_IUUC_REPL_RUNTIME |
/GOOG/UPDATE_FIELD_MAPPING |
通过添加或移除字段来更新字段表的映射。 | /GOOG/CL_IUUC_REPL_RUNTIME |
CREATE_FLD_MAPPINGS |
/GOOG/ES_IUUC_REPL_RUNTIME |
/GOOG/UPDATE_FIELD_MAPPINGS |
在将字段转换为目标字段之前,更改源字段的值。 | /GOOG/CL_IUUC_REPL_RUNTIME_BQ |
FILL_TARGET_RECORDS |
/GOOG/ES_IUUC_REPL_RUNTIME_BQ |
/GOOG/CHANGE_SOURCE_FIELD |
在源字段转换为目标表中的目标字段后,更改目标字段的值。 | /GOOG/CL_IUUC_REPL_RUNTIME_BQ |
FILL_TARGET_RECORDS |
/GOOG/ES_IUUC_REPL_RUNTIME_BQ |
/GOOG/FILL_TARGET_FIELD |
向源表到目标表的转换期间,向目标表添加源表中不存在的字段。 | /GOOG/CL_IUUC_REPL_RUNTIME_BQ |
FILL_TARGET_RECORDS |
/GOOG/ES_IUUC_REPL_RUNTIME_BQ |
/GOOG/FILL_EXTRA_FIELD |
在创建 BigQuery 表之前准备 BigQuery 架构字段。 | /GOOG/CL_GCP_CLIENT_BQ |
PREP_BQ_TABLE_SCHEMA |
/GOOG/ES_GCP_CLIENT_BQ |
/GOOG/PREPARE_SCHEMA_FIELD |