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

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

调用数据复制方法

您可以通过传递大规模转移作业密钥以及在 BigQuery Data Transfer 配置中配置的字典对象的名称来实例化 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_bq_data_load->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_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 或以任何其他值的形式传递,则 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 数据传输模块会执行以下操作:

  • 根据 BigQuery 数据传输配置中维护的表和字段设置,将 BigQuery 表定义与 SAP 字典对象定义同步。
  • 根据 BigQuery 数据传输配置中维护的字段级设置,将 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 问题时需要帮助,请执行以下操作: