Fuente por lotes de la tabla de SAP

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

El complemento de origen por lotes de la tabla de SAP (complemento de tabla de SAP) te permite leer datos de SAP tablas o vistas estándar y personalizadas. Permite la transferencia masiva de datos desde SAP aplicaciones en BigQuery, o en cualquier otro sistema de destino compatible, mediante Cloud Data Fusion. El complemento tiene las siguientes funciones clave:

  • Usa SAP ECC, SAP S4/HANA o SAP BW como sistema de origen.
  • No se usa CDC de SAP (captura de datos modificados) para rastrear y extraer datos nuevos y delta en las fuentes de datos
  • Usa el modo de extracción por lotes
  • Admite tablas de SAP y vistas ABAP CDS 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
  • Tablas de clústeres
  • Mesas de billar
  • Vistas de ABAP CDS
  • Objetos SAP BW ADSO

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 posteriores
Cloud Data Fusion 6.3 y posteriores

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

Antes de comenzar

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

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

    • Importante: Elige una versión de 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 esté habilitada la comunicación entre una instancia de Cloud Data Fusion y el servidor SAP.
    • Para las instancias privadas, configura 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. Ir a la interfaz web de Cloud Data Fusion y haz clic en Studio.
  2. Comprueba que la opción Canalización de datos - Por lotes esté seleccionada (no En tiempo real).
  3. En el menú Fuente, haz clic en Tabla de SAP. El nodo de tabla de SAP aparecerá en tu canalización.
  4. Para configurar la fuente, ve al nodo de la tabla de SAP y haz clic en Properties.
  5. Ingresa las siguientes propiedades. Para obtener una lista completa, consulta Propiedades:

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

      Nueva conexión

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

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

        1. En el campo Nombre de referencia, ingresa un nombre para el 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 SAP el administrador puede proporcionar el nombre del cliente.
        3. En el campo Idioma de SAP, ingresa el idioma de inicio de sesión de SAP. La configuración predeterminada es EN (inglés).
        4. Selecciona uno de los siguientes Tipos de conexión.

          • Directa (a través de SAP Application Server). Si eliges este tipo predeterminado, ingresa la siguiente información campos: Host del servidor de aplicaciones de SAP, Sistema SAP número y el router de SAP.
          • Carga balanceada (a través de SAP Message Server). Si eliges este tipo, ingrese la información en los siguientes campos: Host de SAP Message Server, servicio de SAP Message Server o número de puerto, el ID del sistema SAP (SID) y el inicio de sesión de SAP nombre del grupo.
        5. En el campo Nombre de la vista/tabla de SAP, ingresa el nombre del tabla o vista desde tu sistema SAP.

        6. Proporciona las credenciales de SAP: pídele a tu administrador de SAP Nombre de usuario de inicio de sesión de SAP y Contraseña.

        7. En el campo JCo Library Cloud Storage path, ingresa el código de SAP. Java Connector (SAP JCo) en Cloud Storage que contiene los archivos de la biblioteca SAP JCo que subiste.

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

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

          1. El uso de las opciones de filtro te permite extraer registros según condiciones de selección, como columnas que tienen un conjunto definido de valores. Define las condiciones en la sintaxis de OpenSQL en un WHERE. Por ejemplo, esta consulta muestra 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 compatibles.

          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 Number of splits puedes crear una particiones para extraer registros de datos en paralelo, que mejora el rendimiento. La cantidad de divisiones puede afectar los procesos de trabajo de SAP y se debe seleccionar con cuidado.

          4. En el campo Package size, especifica la cantidad de para extraerlos en una llamada de red de SAP única. El el tamaño del paquete afecta el rendimiento y los recursos disponibles y deben seleccionarse con cuidado.

      Conexión reutilizable

      Para volver a usar una conexión existente, sigue estos pasos:

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

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

      1. Haz clic en Agregar conexión > SapTable.
      2. En la página Create a SapTable connection que se abre, ingresa un nombre y una descripción de la conexión.
      3. En el campo Cliente de SAP, ingresa el nombre de cliente de un una instancia o un entorno específico en SAP. Un SAP el administrador puede proporcionar el nombre del cliente.
      4. En el campo Idioma de SAP, ingresa el idioma de inicio de sesión de SAP. La configuración predeterminada es EN (inglés).
      5. Selecciona uno de los siguientes Tipos de conexión.

        • Directa (a través de SAP Application Server). Si eliges este tipo predeterminado, ingresa la siguiente información campos: Host del servidor de aplicaciones de SAP, Sistema SAP número y el router de SAP.
        • Balanceo de cargas (a través del servidor de mensajes de SAP) Si eliges este tipo, ingrese la información en los siguientes campos: Host de SAP Message Server, servicio de SAP Message Server o número de puerto, el ID del sistema SAP (SID) y el inicio de sesión de SAP nombre del grupo.
      6. Proporciona las credenciales de SAP: pídele 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 JCo Library Cloud Storage path, ingresa el código de SAP. Java Connector (SAP JCo) en Cloud Storage que contiene los archivos de la biblioteca SAP JCo que subiste.

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

      9. Haz clic en Crear.

Propiedades

Propiedad Macro habilitada Propiedad obligatoria Descripción
Etiqueta No 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 necesitas proporcionar 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. El 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 La instancia o el entorno en un sistema SAP.
Tomar instantánea Habilita las instantáneas de datos en SAP.
Cuándo activar las instantáneas:
  • Extrae datos de cualquier tabla transaccional activa
  • Extraer en las tablas en las que las consultas de datos son más lentas y consumir más memoria por cada llamada de extracción.

Cuándo desactivar las instantáneas: Si ejecutas varias de grandes cantidades de datos en paralelo. Las instantáneas usan tablas de búferes SAP, lo que podría generar problemas de out of memory en SAP. Activada la finalización de la extracción de datos, sin embargo, la tabla del búfer se borra.
Idioma de SAP El idioma en el que se muestran la interfaz de usuario y los datos de SAP. se procesan.
Tipo de conexión No El tipo de conexión de SAP: Direct o Balanceado de cargas
Host del servidor de aplicaciones de SAP No Solo para el tipo de conexión directa, este nombre de host es del servidor de aplicaciones de SAP, que funciona como una capa de middleware entre Clientes de SAP (como la interfaz web de SAP, los navegadores web o las aplicaciones para dispositivos móviles) y la base de datos subyacente.
Número del sistema de SAP No Solo para el tipo de conexión Directa, este número es el es un identificador único asignado a cada sistema SAP. Por ejemplo: 00
Router de SAP No Solo para el tipo de conexión Direct, esta es la cadena de 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 Carga balanceada, esta es la del host, lo que facilita el balanceo de cargas en varias de aplicaciones en SAP.
Servicio o número de puerto de SAP Message Server No Solo para el tipo de conexión Carga balanceada, esta es la puerto de red en el que SAP Message Server escucha las conexiones entrantes desde clientes de SAP y servidores de aplicaciones dentro de SAP.
ID del sistema SAP (SID) No Solo para el tipo de conexión Balanceo de cargas, este ID es que se asigna a cada sistema SAP.
Nombre del grupo de inicio de sesión de SAP No El nombre de la agrupación o configuración lógica de varios SAP servidores de aplicaciones. El valor predeterminado es PUBLIC.
Nombre de la tabla o vista de SAP Un nombre válido de tabla o vista que no distingue mayúsculas de minúsculas, donde todas las columnas se pueden extraída.
Nombre de usuario de inicio de sesión de SAP Nombre de usuario para SAP
Recomendación: Si el nombre de usuario cambia de manera 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 proyecto de Google Cloud.
Ruta de acceso de GCS de la biblioteca de SAP JCo La ruta de acceso a Cloud Storage en el que subiste el SAP JCo archivos de biblioteca.
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 datos correspondientes de Cloud Data Fusion. de tipos de datos. Consulta Asignación de tipos de datos.
Propiedades de conexión de SAP adicionales No Configura propiedades adicionales de SAP JCo para anular los valores predeterminados de SAP JCo. Por ejemplo, establecer jco.destination.pool_capacity = 10 y anula la capacidad del grupo de conexiones predeterminada.
Filtros No Condiciones especificadas en la sintaxis de Open SQL que filtran con un SQL WHERE. Extrae registros según condiciones, como las siguientes: aquellos en columnas con un conjunto definido de valores o un rango de valores.
. Para obtener más información, consulta la sección Compatible filtros.
Cantidad de filas para recuperar No Limita la cantidad de registros extraídos.
  • Ingrese un número entero positivo.
  • Si el valor es 0 o se dejó en blanco, Cloud Data Fusion y extrae todos los registros de la tabla.
  • Si ingresas un valor positivo mayor que el número de registros seleccionados (según los otros valores de filtro), Cloud Data Fusion solo extrae los registros seleccionados.
Cantidad de divisiones que se generarán No Crea particiones para extraer registros en paralelo.
El motor de tiempo de ejecución crea la cantidad especificada de particiones (y conexiones de SAP) mientras extrae los registros.
Tenga cuidado al aumentar este valor, ya que aumenta la conexiones simultáneas con SAP.
Recomendado: 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 una el valor adecuado, según el número de ejecutores disponibles, el registros para extraer y el tamaño del paquete.
Tamaño del paquete No La cantidad de registros para extraer en una sola llamada de red de SAP. Es la cantidad de registros que SAP almacena en búfer en la memoria durante cada red llamada de extracción.
Ten cuidado cuando configures esta propiedad. Múltiples canalizaciones de datos extraer datos puede picos de uso de memoria y provocar fallas debido a Out of memory de errores.
  • Ingresa un número entero positivo.
  • Si es 0 o se deja en blanco, el complemento usa un valor estándar de 70000 o un valor calculado de forma adecuada.
  • Si la canalización de datos falla debido a Out of memory errores, ya sea disminuir el tamaño del paquete o aumentar la memoria disponibles 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 un filtrado más complejo basado 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 buscarán coincidencias y defenderte.

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 deben establecer coincidencias.

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

Utiliza períodos para recuperar las filas en las que una columna de fecha y hora se encuentra dentro de una durante 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'

Filtro que combina fecha y hora

Si tu columna de fecha y hora incluye fecha y hora, puedes filtrar 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)

Filtro que combina varias condiciones con operadores lógicos

Puedes recuperar filas que cumplan con varias condiciones mediante 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' )
    

Filtro que combina 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 utiliza subconsultas

Puedes usar subconsultas para filtrar según los resultados de otro para cada búsqueda.

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' )

Filtro que combina condiciones de fecha y valor

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

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 fechas de formato

En SAP, los campos de fecha y hora siempre se guardan sin -. : 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 compatible: Filtro que contiene funciones y operadores de comparación

En SAP, las funciones en la cláusula WHERE de QUERY no son compatibles.

No compatible: 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 compatible: Filtro de extracción de componentes de fecha

En SAP, no se admite el filtrado de offset.

Ejemplo
    WHERE YEAR+0(4) = 2023
    

Asignaciones de tipos de datos

La siguiente tabla es una lista de los tipos de datos de SAP con los 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éricos) 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 String de caracteres string
SSTRING, GEOM_EWKB (carácter) string Cadena de caracteres string
STRING (carácter) string CLOB de string de caracteres bytes
NUMC, ACCP (carácter) n Texto numérico string
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 bases de datos de SAP
  • CDS de SAP ABAP

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

Limitaciones

El complemento de tabla de SAP tiene las siguientes limitaciones:

  • No admite la unión de tablas.
  • No es compatible con vistas de CDS con parámetros.
  • No es compatible sin los campos de clave.
  • Si la función Instantáneas está habilitada, con un tamaño de paquete superior a 30,000 podría causar fallas en la canalización. El tamaño del paquete puede variar según el la cantidad de columnas en la tabla de SAP. Puedes calcular un paquete óptimo tamaño de una tabla con esta fórmula: tamaño de la fila (en cantidad de caracteres) * 5.
  • Connection Manager te permite explorar un máximo de 1,000 nombres de tablas de SAP.
  • Cuando se produce un error de canalización, como un error en el receptor, la tabla SAP el complemento intenta borrar los procesos activos del lado de SAP relacionados con la a través de una llamada al RFM personalizado destinado a la limpieza: /GOOG/RFC_READ_TABLE_CLEANUP

¿Qué sigue?