Fuente de lotes de tablas de SAP

En esta página, se describe cómo configurar extracciones masivas de datos de aplicaciones de SAP.

El complemento de fuente de lotes de tablas de SAP (complemento de SAP Table) te permite leer datos de tablas o vistas estándar y personalizadas de SAP. Permite la ingesta masiva de datos desde aplicaciones de SAP a BigQuery o cualquier otro sistema de destino compatible con Cloud Data Fusion. El complemento tiene las siguientes funciones clave:

  • Utiliza SAP ECC, SAP S/4HANA o SAP BW como sistema de origen
  • No usa la CDC (captura de datos modificados) de SAP para hacer un seguimiento y extraer datos nuevos y delta en las fuentes de datos.
  • Usa el modo de extracción por lotes
  • Admite tablas SAP y vistas CDS de ABAP como fuentes de datos
  • Accede a los datos de SAP a través de la capa de aplicación

Puedes leer datos de las siguientes fuentes:

  • Tablas transparentes
  • Agrupa tablas en clústeres
  • Mesas de billar
  • Vistas de CDS de ABAP
  • Objetos ADSO de SAP BW

Versiones de software compatibles

Software Versiones
SAP S4/HANA SAP S4/HANA 1909 y versiones posteriores
SAP ECC SAP ERP6 NW 7.31 SP16 y versiones posteriores
SAP JCo SAP JCo versión 3.0.20 y posterior
Cloud Data Fusion 6.3 y versiones posteriores

Para obtener más información sobre SAP en Google Cloud, consulta la Descripción general de SAP en Google Cloud.

Antes de comenzar

Configura los siguientes sistemas y servicios que usa el complemento de SAP Table:

  1. Configura el sistema SAP ERP. Este proceso incluye los siguientes pasos:
    • Instala los archivos de transporte de SAP.
    • Configura los roles y las autorizaciones de SAP necesarios.
    • Configura el conector SAP Java Connector.
  2. Implementa el complemento en Cloud Data Fusion.

    • Importante: Elige una versión del complemento que sea compatible con la versión de Cloud Data Fusion.
    • Si actualizas la versión de tu instancia o complemento de Cloud Data Fusion, evalúa el impacto de los cambios en el alcance funcional y el rendimiento de la canalización.
  3. Establece la conectividad RFC entre Cloud Data Fusion y SAP.

    • Asegúrate de que la comunicación esté habilitada entre la instancia de Cloud Data Fusion y el servidor de SAP.
    • En el caso de las instancias privadas, configura el intercambio de tráfico entre redes de VPC.
    • Tanto el sistema SAP como la instancia de Cloud Data Fusion deben estar en el mismo proyecto.

Cómo configurar el complemento

  1. Ve a la interfaz web de Cloud Data Fusion y haz clic en Studio.
  2. Verifica que esté seleccionada la opción Data Pipeline - Batch (no Realtime).
  3. En el menú Source, haz clic en Sap Table. El nodo SAP Table aparecerá en tu canalización.
  4. Para configurar la fuente, ve al nodo de la tabla de SAP y haz clic en Propiedades.
  5. Ingresa las siguientes propiedades. Para obtener una lista completa, consulta Propiedades.

    1. Ingresa una etiqueta para el nodo SAP Table, por ejemplo, SAP tables.
    2. Ingresa los detalles de la conexión. Puedes configurar una conexión nueva y única, o una conexión existente y reutilizable.

      Nueva conexión

      Para agregar una conexión única a SAP, sigue estos pasos:

      1. Mantén desactivada la opción Usar conexión.
      2. En la sección Connection, ingresa la siguiente información de la cuenta de SAP en estos campos:

        1. En el campo Nombre de referencia, ingresa un nombre para la conexión que identifica esta fuente para el linaje.
        2. En el campo Cliente de SAP, ingresa el nombre del cliente de una instancia o un entorno específicos dentro de SAP. Un administrador de SAP puede proporcionar el nombre del cliente.
        3. En el campo Lenguaje de SAP, ingresa un lenguaje de inicio de sesión de SAP. El valor predeterminado es EN (inglés).
        4. Selecciona uno de los siguientes tipos de conexión.

          • Directo (a través del servidor de aplicaciones de SAP). Si eliges este tipo predeterminado, ingresa información en los siguientes campos: Host del servidor de aplicaciones de SAP, Número del sistema de SAP y SAP Router.
          • Balanceo de cargas (a través del servidor de mensajes de SAP) Si eliges este tipo, ingresa información en los siguientes campos: Host del servidor de mensajes de SAP, Número de puerto o servicio del servidor de mensajes de SAP, ID del sistema SAP (SID) y Nombre del grupo de acceso de SAP.
        5. En el campo Nombre de la tabla o vista de SAP, ingresa el nombre de la tabla o la vista de tu sistema SAP.

        6. Proporciona las credenciales de SAP: Pídele a tu administrador de SAP el nombre de usuario de inicio de sesión de SAP y la contraseña.

        7. En el campo Ruta de acceso de Cloud Storage de la biblioteca de JCo, ingresa la ruta de acceso de SAP Java Connector (SAP JCo) en Cloud Storage que contiene los archivos de la biblioteca de SAP JCo que subiste.

        8. Para generar un esquema basado en los metadatos de SAP que asigna tipos de datos de SAP a tipos de datos de Cloud Data Fusion correspondientes, haz clic en Obtener esquema. Para obtener más información, consulta Asignaciones de tipos de datos.

        9. Opcional: Para optimizar la carga de transferencia de SAP, ingresa información en los siguientes campos:

          1. Con Opciones de filtro, puedes extraer registros según condiciones de selección, como columnas que tengan un conjunto de valores definido. Define las condiciones en la sintaxis de OpenSQL en una cláusula WHERE. Por ejemplo, esta consulta devuelve todas las filas de la tabla Roster en las que la columna SchoolID tiene el valor SchoolID > 52:

            SELECT * FROM Roster WHERE SchoolID > 52;
            

            Para obtener más información, consulta Filtros admitidos.

          2. En el campo Cantidad de filas para recuperar, puedes limitar los datos extraídos proporcionando un número entero positivo de filas.

          3. En el campo Cantidad de divisiones, puedes crear particiones para extraer registros de datos en paralelo, lo que mejora el rendimiento. La cantidad de divisiones puede afectar los procesos de trabajo de SAP y debe seleccionarse con cuidado.

          4. En el campo Tamaño del paquete, especifica la cantidad de registros que se extraerán en una sola llamada de red de SAP. El tamaño del paquete afecta el rendimiento y los recursos disponibles, por lo que se debe seleccionar con cuidado.

      Conexión reutilizable

      Para reutilizar una conexión existente, sigue estos pasos:

      1. Activa Use connection.
      2. Haz clic en Browse connections.
      3. Haz clic en el nombre de la conexión.

      Si no existe una conexión, para crear una conexión reutilizable, sigue estos pasos:

      1. Haz clic en Agregar conexión > SapTable.
      2. En la página Crear una conexión de SapTable que se abre, ingresa un nombre y una descripción para la conexión.
      3. En el campo Cliente de SAP, ingresa el nombre del cliente de una instancia o un entorno específicos en SAP. Un administrador de SAP puede proporcionar el nombre del cliente.
      4. En el campo Lenguaje de SAP, ingresa un lenguaje de inicio de sesión de SAP. El valor predeterminado es EN (inglés).
      5. Selecciona uno de los siguientes tipos de conexión.

        • Directo (a través del servidor de aplicaciones de SAP). Si eliges este tipo predeterminado, ingresa información en los siguientes campos: Host del servidor de aplicaciones de SAP, Número de sistema de SAP y SAP Router.
        • Balanceo de cargas (a través del servidor de mensajes de SAP) Si eliges este tipo, ingresa información en los siguientes campos: Host del servidor de mensajes de SAP, Número de puerto o servicio del servidor de mensajes de SAP, ID del sistema SAP (SID) y Nombre del grupo de inicio de sesión de SAP.
      6. Proporciona las credenciales de SAP: Solicita a tu administrador de SAP los valores de nombre de usuario de inicio de sesión de SAP y contraseña.

      7. En el campo Ruta de acceso de Cloud Storage de la biblioteca de JCo, ingresa la ruta de acceso de SAP Java Connector (SAP JCo) en Cloud Storage que contiene los archivos de la biblioteca de SAP JCo que subiste.

      8. Opcional: En el campo Propiedades de conexión de SAP adicionales, ingresa pares clave-valor que deben anular los valores predeterminados de SAP JCo.

      9. Haz clic en Crear.

Propiedades

Propiedad Macro habilitada Propiedad obligatoria Descripción
Etiqueta No Es el nombre del nodo en tu canalización de datos.
Usar conexión No No Usa una conexión reutilizable. Si se usa una conexión, no es necesario que proporciones las credenciales. Para obtener más información, consulta Administra conexiones.
Nombre de referencia No Si la opción Usar conexión no está activada, aparecerá este campo. Nombre de la conexión que se usará para el linaje.
Nombre No Si la opción Usar conexión está activada, aparecerá este campo. El nombre de la conexión reutilizable.
Cliente de SAP Instancia o entorno en un sistema SAP
Tomar instantánea Habilita las instantáneas de los datos en SAP.
Cuándo activar las instantáneas:
  • Extracción de datos de cualquier tabla transaccional activa
  • Se extraen datos de las tablas en las que las consultas de datos son más lentas y consumen más memoria por cada llamada de extracción.

Cuándo desactivar las instantáneas: Ejecutas varias extracciones de datos de gran volumen en paralelo. Las instantáneas usan tablas de búfer en SAP, lo que podría generar problemas de out of memory en SAP. Sin embargo, cuando se completa la extracción de datos, se borra la tabla de búfer.
Idioma de SAP Es el idioma en el que se muestran y procesan la interfaz de usuario y los datos de SAP.
Tipo de conexión No Tipo de conexión SAP: Directa o Con balanceo de cargas.
Host del servidor de aplicaciones SAP No Solo para el tipo de conexión Directa, este nombre de host proviene del servidor de aplicaciones de SAP, que funciona como una capa de middleware entre los clientes de SAP (como la interfaz web de SAP, los navegadores web o las apps para dispositivos móviles) y la base de datos subyacente.
Número de sistema SAP No Solo para el tipo de conexión Directa, este número es el identificador único asignado a cada sistema SAP. Por ejemplo: 00.
SAP router No Solo para el tipo de conexión Directa, esta es la cadena del router para el servidor proxy, que proporciona un canal seguro para la comunicación entre los sistemas SAP y los clientes o socios externos.
Host del servidor de mensajes de SAP No Solo para el tipo de conexión Balanceada, este es el nombre del host, que facilita el balanceo de cargas en varios servidores de aplicaciones en SAP.
Número de puerto o servicio del servidor de mensajes de SAP No Solo para el tipo de conexión Balanceada, este es el puerto de red en el que el servidor de mensajes de SAP escucha las conexiones entrantes de los clientes y servidores de aplicaciones de SAP.
ID del sistema SAP (SID) No Solo para el tipo de conexión Balanceada por carga, este ID se asigna a cada sistema SAP.
Nombre del grupo de inicio de sesión de SAP No Nombre de la agrupación lógica o configuración de varios servidores de aplicaciones de SAP. El valor predeterminado es PUBLIC.
Nombre de la tabla o vista de SAP Es un nombre de tabla o vista válido que no distingue mayúsculas de minúsculas, en el que se pueden extraer todas las columnas.
Nombre de usuario de inicio de sesión de SAP Nombre de usuario para SAP
Recomendación: Si el nombre de usuario cambia de forma periódica, usa una macro.
Contraseña de inicio de sesión de SAP Contraseña de SAP.
Recomendación: Usa macros seguras.
ID del proyecto de GCP ID del proyectoGoogle Cloud .
Ruta de acceso de GCS de la biblioteca de SAP JCo Ruta de acceso a Cloud Storage en la que subiste los archivos de la biblioteca de SAP JCo.
Obtener esquema N/A N/A El complemento genera un esquema basado en los metadatos de SAP, que asigna los tipos de datos de SAP a los tipos de datos correspondientes de Cloud Data Fusion. Consulta Asignación de tipos de datos.
Propiedades de conexión adicionales de SAP No Establece propiedades adicionales de SAP JCo para anular los valores predeterminados de SAP JCo. Por ejemplo, establecer jco.destination.pool_capacity = 10 anula la capacidad predeterminada del grupo de conexiones.
Filtros No Son las condiciones especificadas en la sintaxis de Open SQL que filtran con una cláusula WHERE de SQL. Extrae registros según condiciones, como aquellos en columnas con un conjunto de valores definido o un rango de valores.
Para obtener más información, consulta Filtros compatibles.
Cantidad de filas que se recuperarán No Limita la cantidad de registros extraídos.
  • Ingresa un número entero positivo.
  • Si el valor es 0 o se deja en blanco, Cloud Data Fusion extrae todos los registros de la tabla.
  • Si ingresas un valor positivo que es mayor que la cantidad de registros seleccionados (según los otros valores de filtro), Cloud Data Fusion solo extraerá los registros seleccionados.
Cantidad de divisiones que se generarán No Crea particiones para extraer registros en paralelo.
El motor de ejecución crea la cantidad especificada de particiones (y conexiones SAP) mientras extrae los registros.
Ten cuidado cuando aumentes este valor, ya que incrementa las conexiones simultáneas con SAP.
Recomendación: Planifica tener conexiones de SAP para cada canalización y la cantidad total de canalizaciones que se ejecutan de forma simultánea.
Si el valor es 0 o se deja en blanco, Cloud Data Fusion elige un valor adecuado según la cantidad de ejecutores disponibles, los registros que se extraerán y el tamaño del paquete.
Tamaño del paquete No Es la cantidad de registros que se extraerán en una sola llamada de red de SAP. Es la cantidad de registros que SAP almacena en búfer en la memoria durante cada llamada de extracción de red.
Ten cuidado cuando configures esta propiedad. Varias canalizaciones de datos que extraen datos pueden aumentar el uso de memoria, lo que provoca fallas debido a errores de Out of memory.
  • Ingresa un número entero positivo.
  • Si se deja en blanco o se establece en 0, el complemento usa un valor estándar de 70, 000 o un valor calculado de forma adecuada.
  • Si la canalización de datos falla debido a errores de Out of memory, disminuye el tamaño del paquete o aumenta la memoria disponible para tus procesos de trabajo de SAP.

Filtros compatibles

Se admiten las siguientes condiciones de filtro.

Filtro que contiene un operador de comparación

Usa operadores de comparación para realizar filtrados más complejos basados en comparaciones entre valores.

Sintaxis
    SELECT * FROM table_name WHERE column_name > value; \
    SELECT * FROM table_name WHERE column_name BETWEEN value1 AND value2;
    
Ejemplo
AUDAT GT '20230914'

Filtro que contiene un operador LIKE

Usa operadores LIKE para la coincidencia de patrones. Para que coincida con cualquier carácter, usa el símbolo % como comodín.

Sintaxis
    SELECT * FROM table_name WHERE column_name LIKE 'pattern%';
    
Ejemplo
ERNAM LIKE 'KIRAN%'

Filtro que contiene un operador IN

Usa operadores IN para especificar una lista de valores con los que se realizará la comparación.

Sintaxis
    SELECT * FROM table_name WHERE column_name \
      IN ('value1', 'value2', 'value3');
    
Ejemplo
ERNAM IN ( 'LEE' , 'KIRAN' )

Filtro que contiene un operador lógico

Usa operadores lógicos para especificar una lista de valores con los que se realizará la comparación.

Sintaxis
    SELECT * FROM table_name WHERE condition1 AND condition2; \
      SELECT * FROM table_name WHERE condition1 OR condition2; \
      SELECT * FROM table_name WHERE NOT condition;
    
Ejemplos
  • ( AUDAT EQ '20220615' ) AND ( ERNAM LIKE 'LEE%' )
  • ( AUDAT EQ '20220615' ) OR ( AUDAT EQ '20220617' )

Filtro que contiene un período

Usa períodos para recuperar filas en las que una columna de fecha y hora se encuentre dentro de un período específico.

Sintaxis
    SELECT * FROM table_name \
      WHERE datetime_column >= 'start_date' AND datetime_column <= 'end_date';
    
Ejemplo
AUDAT GE '20230910' AND AUDAT LE '20230914'

Filtro que contiene una comparación de fechas

Usa comparaciones de fechas para recuperar filas en las que se usa la fecha y hora.

Sintaxis
    SELECT * FROM table_name WHERE datetime_column > 'target_date';
    
Ejemplo
AUDAT GE '20230910' AND AUDAT LE '20230914'

Combinación de filtros de fecha y hora

Si tu columna de fecha y hora incluye tanto la fecha como la hora, puedes aplicar el filtro según corresponda.

Sintaxis
    SELECT * FROM table_name \
      WHERE datetime_column >= 'target_datetime' \
      AND datetime_column <= 'target_datetime';
    
Ejemplo
TIMESTAMP GE '20210602144800' AND TIMESTAMP LE '20210624080836'

(Formato de marca de tiempo : AAAAMMDDHHMMSS)

Combinación de filtros con varias condiciones y operadores lógicos

Puedes recuperar filas que cumplen varias condiciones con operadores lógicos, como AND y OR.

Sintaxis
    SELECT * FROM table_name \
      WHERE (column1 = 'value1' AND column2 > value2) \
      OR (column3 = 'value3' AND column4 < value4);
    
Ejemplo
    ( ERNAM EQ 'LEE' AND AUDAT GT '20220722' ) \
      OR ( BSTNK EQ 'PO54321065' AND BSTDK LT '20220714' )
    

Combinación de filtros con condiciones anidadas

Puedes combinar condiciones de forma anidada para crear filtros complejos.

Sintaxis
    SELECT * FROM table_name \
      WHERE (column1 = 'value1' OR (column2 = 'value2' AND column3 > value3)) \
      AND column4 = 'value4';
    
Ejemplo
    ( ERDAT EQ '20220722' OR ( ERNAM EQ 'LEE' AND VDATU GT '20210623' ) ) \
      AND FMBDAT EQ '20220722'
    

Filtro que usa subconsultas

Puedes usar subconsultas para filtrar en función de los resultados de otra consulta.

Sintaxis
    SELECT * FROM table_name \
      WHERE column1 IN (SELECT related_column FROM other_table WHERE condition);
    
Ejemplo
VBELN IN ( SELECT VBELN FROM VBAK WHERE ERNAM = 'LEE' )

Combinación de filtros con condiciones de fecha y valor

Puedes combinar condiciones basadas en fechas y valores en un filtro complejo.

Sintaxis
    SELECT * FROM table_name \
      WHERE (column1 = 'value1' OR column2 = 'value2') \
      AND datetime_column > 'target_datetime';
    
Ejemplo
    ( ERDAT EQ '20220722' OR ERNAM EQ 'LEE' ) AND VDATU GT '20210623'
    

Filtro que contiene Formatting Dates

En SAP, los campos de fecha y hora siempre se guardan sin - o : a nivel de la base de datos.

Sintaxis
    SELECT * FROM table_name \
      WHERE datetime_column >= 'YYYY-MM-DD HH:MM:SS' \
      AND datetime_column <= 'YYYY-M
    

No admitido: Filtro que contiene funciones y operadores de comparación

En SAP, no se admiten las funciones en la cláusula WHERE de la QUERY.

No admitido: Filtro que contiene intervalos

En SAP, no se admite la función NOW().

Sintaxis
    SELECT * FROM table_name \
      WHERE datetime_column >= NOW() - INTERVAL X DAY;
    

No admitido: Filtra el componente de fecha de extracción

En SAP, no se admite el filtrado de desplazamiento.

Ejemplo
    WHERE YEAR+0(4) = 2023
    

Asignaciones de tipos de datos

En la siguiente tabla, se enumeran los tipos de datos de SAP con los tipos correspondientes de Cloud Data Fusion.

Tipo de datos SAP Tipo de ABAP SAP description Tipo de datos de Cloud Data Fusion
INT1 (numérico) b Número entero de 1 byte int
INT2 (numérico) s Número entero de 2 bytes int
INT4 (numérico) i Número entero de 4 bytes int
INT8 (numérico) 8 Número entero de 8 bytes long
DEC (numérico) p Número empaquetado en formato BCD (DEC) decimal
DF16_DEC, DF16_RAW (numérico) a Punto flotante decimal de 8 bytes, IEEE 754r double
DF34_DEC, DF34_RAW (numérico) e Punto flotante decimal de 16 bytes, IEEE 754r double
FLTP (numérico) f Número de punto flotante binario double
CHAR, LCHR (carácter) c Cadena de caracteres cadena
SSTRING, GEOM_EWKB (carácter) cadena Cadena de caracteres cadena
STRING (carácter) cadena CLOB de string de caracteres bytes
NUMC, ACCP (carácter) n Texto numérico cadena
RAW, LRAW (byte) x Datos binarios bytes
RAWSTRING (byte) xstring BLOB de cadena de bytes bytes
DATS (fecha y hora) d Fecha fecha
TIMS (fecha y hora) t Hora hora
TIMS (fecha y hora) utcl (Utclong), TimeStamp timestamp

Casos de uso

Se admiten dos contextos de extracción:

  • Tablas y vistas de la base de datos de SAP
  • CDS de SAP ABAP

En cada uno de los contextos, el complemento de SAP Table admite tablas y vistas de bases de datos estándar y personalizadas.

Limitaciones

El complemento de SAP Table tiene las siguientes limitaciones:

  • No admite la unión de tablas.
  • No admite vistas de CDS con parámetros.
  • No admite campos sin clave.
  • Si la función de instantáneas está habilitada, usar un tamaño de paquete superior a 30,000 puede provocar errores en la canalización. El tamaño de este paquete puede variar según la cantidad de columnas de la tabla de SAP. Puedes calcular el tamaño óptimo del paquete para una tabla con esta fórmula: tamaño de la fila (en cantidad de caracteres) * 5.
  • El Administrador de conexiones te permite explorar un máximo de 1,000 nombres de tablas de SAP.
  • Cuando se produce un error en la canalización, como un error en el receptor, el complemento de SAP Table intenta limpiar cualquier proceso secundario de SAP activo relacionado con la extracción llamando a la RFM personalizada destinada a la limpieza: /GOOG/RFC_READ_TABLE_CLEANUP.

¿Qué sigue?