如需将 SAP 数据复制到 BigQuery,您可以在 SAP 应用(例如自定义 ABAP 程序、用户退出、企业插件 [BAdI] 和增强功能)中使用数据加载类 /GOOG/CL_BQTR_DATA_LOAD
。SAP 应用需要将要复制的数据作为输入传递给该类。
调用数据复制方法
您可以通过传递大规模转移键和 BigQuery 数据传输配置中配置的字典对象的名称来实例化 BigQuery 数据加载类 /GOOG/CL_BQTR_DATA_LOAD
。
如需将数据发送到 BigQuery,您可以调用类 /GOOG/CL_BQTR_DATA_LOAD
的 REPLICATE_DATA
方法。
DATA(lo_bq_data_load) =
NEW /GOOG/CL_BQTR_DATA_LOAD( IV_MASS_TR_KEY = 'MASS_TRANSFER_KEY'
IV_DATA_SOURCE = 'DATA_SOURCE'
IV_CDC_FRAMEWORK = 'CDC_FRAMEWORK'
IV_FLDNM_MANDT = 'MANDT_FIELDNAME'
IV_MANDT_VALUE = 'MANDT_VALUE'
).
"Write Logic to populate ITAB_DATA, WA_HEADER
"Replicate Data to BigQuery
lo_bqtr->replicate_data(
EXPORTING
it_content = ITAB_DATA
IS_HEADER_INFO = WA_HEADER
IMPORTING
ev_error_code = data(lv_error_code)
et_return = data(lt_return) ).
替换以下内容:
MASS_TRANSFER_KEY
:BigQuery Data Transfer 配置中配置的批量传输密钥。DATA_SOURCE
:SAP 字典对象的名称,例如表、字典视图或 CDS 视图。CDC_FRAMEWORK
:可选。调用程序使用的变更数据捕获 (CDC) 框架。支持的值为ODQ
和SLT
。BigQuery Toolkit for SAP 内置逻辑,可根据 CDC 框架确定操作标志(插入、更新和删除)。如需了解详情,请参阅用于记录更改和计数查询的额外字段。
将
CDC_FRAMEWORK
作为ODQ
传递时,BigQuery Toolkit for SAP 会获取在输入中传递的载荷中列ODQ_CHANGEMODE
的值:- 如果值为
C
,则operation_flag
会设置为I
。 - 如果值为
U
,则operation_flag
会设置为U
。 - 如果值为
D
,则operation_flag
会设置为D
。 - 对于所有其他值,
operation_flag
设置为L
。
将
CDC_FRAMEWORK
作为SLT
传递时,BigQuery Toolkit for SAP 会从WA_HEADER
获取“OPERATION”列的值:- 如果值为
I
,则operation_flag
会设置为I
。 - 如果值为
U
,则operation_flag
会设置为U
。 - 如果值为
D
,则operation_flag
会设置为D
。 - 对于所有其他值,
operation_flag
设置为L
。
如果未传递
CDC_FRAMEWORK
或以任何其他值传递CDC_FRAMEWORK
,则operation_flag
会设置为L
。- 如果值为
MANDT_FIELDNAME
:可选。需要附加到 BigQuery 表定义的 SAP 客户端字段的名称。这适用于 SAP 字典对象(例如 CDS 实体),它们的定义中没有客户端字段,但您希望将该字段添加到 BigQuery。MANDT_VALUE
:可选。需要在 BigQuery 中填充的 SAP 客户端字段的值。仅当IV_FLDNM_MANDT
也已填充时,才能使用此字段。ITAB_DATA
:类型为DATA_SOURCE
的内部表。您可以使用需要复制到 BigQuery 表中的数据填充ITAB_DATA
。WA_HEADER
:一个扁平结构,其中包含有关复制的标头信息。此值用于在CDC_FRAMEWORK
为SLT
时确定operation_flag
。
当您调用此方法时,BigQuery Data Transfer 模块会执行以下操作:
- 根据 BigQuery Data Transfer 配置中维护的表和字段设置,将 BigQuery 表定义与 SAP 字典对象定义同步。
- 根据 BigQuery Data Transfer 配置中维护的字段级设置,将
ITAB_DATA
中填充的数据从 SAP 格式映射到 BigQuery 格式。如果未维护字段级设置,则系统会使用默认的数据映射规则。 - 调用 BigQuery API
InsertAllTabledata
方法将数据加载到目标 BigQuery 表。
如果所有步骤都成功完成,则导出参数 ev_error_code
会返回值 0
。如果任何步骤出现错误,ev_error_code
会返回非零值,并在 et_return
中填充相应的错误消息。
作为应用开发者,您可以处理错误,包括将其保存以供日后分析,以及重试加载复制失败的记录。
获取支持
Google Cloud 针对与 BigQuery Toolkit for SAP 的安装、配置、操作和维护相关的问题和疑问提供支持。不过,支持仅限于该工具包本身。
Google Cloud 不支持其他环境组件,例如网络基础架构、数据库、操作系统或第三方软件。对于与 BigQuery Toolkit for SAP 以外的任何环境组件相关的问题,请与相应的供应商或支持提供商联系。
对于 SAP 提供的功能(例如操作性数据配置 [ODP] 和 SAP Landscape Transformation [SLT]),请与 SAP 支持团队联系以寻求帮助。
如需排查 BigQuery Toolkit for SAP 的问题,请参阅 BigQuery Toolkit for SAP 问题排查。
如果您在解决 ABAP SDK for Google Cloud 问题时需要帮助,请执行以下操作:
在 Cloud 论坛上提出问题并与社区讨论 ABAP SDK for Google Cloud。
收集所有可用的诊断信息,并与 Cloud Customer Care 联系。如需了解如何与 Customer Care 团队联系,请参阅获取 SAP on Google Cloud 支持。