使用 BigQuery Toolkit for SAP 将 SAP 数据复制到 BigQuery

如需将 SAP 数据复制到 BigQuery,您可以在 SAP 应用(例如自定义 ABAP 程序、用户退出、企业插件 [BAdI] 和增强功能)中使用数据加载类 /GOOG/CL_BQTR_DATA_LOAD。SAP 应用需要将要复制的数据作为输入传递给该类。

调用数据复制方法

您可以通过传递大规模转移键和 BigQuery 数据传输配置中配置的字典对象的名称来实例化 BigQuery 数据加载类 /GOOG/CL_BQTR_DATA_LOAD

如需将数据发送到 BigQuery,您可以调用类 /GOOG/CL_BQTR_DATA_LOADREPLICATE_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) 框架。支持的值为 ODQSLT

    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_FRAMEWORKSLT 时确定 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 问题时需要帮助,请执行以下操作: