Exporta datos de sistemas SAP a Google BigQuery a través de SAP Data Services

En estas instrucciones, se muestra cómo exportar datos de una aplicación SAP o su base de datos subyacente a BigQuery mediante SAP Data Services (DS).

La base de datos puede ser SAP HANA o cualquier otra base de datos compatible con SAP.

En el ejemplo de esta guía, se exportan tablas de base de datos de SQL Anywhere, pero puedes usarlas para configurar la exportación de otros tipos de objetos de la aplicación SAP y la capa de la base de datos a BigQuery.

Puedes usar la exportación de datos para crear una copia de seguridad de los datos de SAP o consolidar los datos de los sistemas SAP con datos de consumidores de otros sistemas en BigQuery a fin de obtener estadísticas del aprendizaje automático y del análisis de datos a escala de petabytes.

Las instrucciones están destinadas a los administradores de sistemas SAP que tienen experiencia básica en la configuración de SAP Basis, SAP DS y Google Cloud.

Arquitectura

El flujo de replicación comienza en la aplicación o la base de datos de SAP y pasa a través de SAP Data Services hasta llegar a BigQuery

SAP Data Services recupera los datos de la aplicación SAP o la base de datos subyacente, transforma los datos para que sean compatibles con el formato de BigQuery y, luego, inicia el trabajo de carga que mueve los datos a BigQuery. Una vez que se completa el trabajo de carga, los datos están disponibles en BigQuery para su análisis.

La exportación es una instantánea de los datos en el sistema de origen en el momento de la exportación. Puedes elegir cuándo iniciar una exportación con SAP Data Services. Los datos exportados reemplazan todos los datos existentes en la tabla de destino de BigQuery. Una vez que se completa la exportación, los datos en BigQuery no se mantienen sincronizados con los datos en el sistema de origen.

En esta situación, el sistema de origen SAP y SAP Data Services pueden ejecutarse dentro o fuera de Google Cloud.

Componentes principales de la solución

Los siguientes componentes son necesarios para exportar los datos de una aplicación SAP o una base de datos a BigQuery mediante SAP Data Services:

Componente Versiones requeridas Notas
Pila del servidor de la aplicación de SAP Cualquier sistema SAP basado en ABAP a partir de R/3 4.6C En esta guía, el servidor de aplicaciones y el servidor de la base de datos se denominan de forma colectiva sistema de origen, incluso si se ejecutan en máquinas diferentes.

Define un usuario de RFC con la autorización adecuada

Opcional: Define un espacio de tabla diferente para las tablas de registro
Sistema de base de datos (DB) Cualquier versión de DB que aparezca como admitida en la SAP Product Availability Matrix (PAM) (Matriz de disponibilidad de productos [PAM] de SAP), sujeta a cualquier restricción de la pila de SAP NetWeaver que aparezca en la PAM.
SAP Data Services SAP Data Services 4.2 SP1 o superior
BigQuery N/A

Costos

BigQuery es un componente facturable de Google Cloud.

Usa la calculadora de precios para generar una estimación de los costos según el uso previsto.

Requisitos previos

En estas instrucciones, se supone que el sistema de aplicaciones de SAP, el servidor de la base de datos y SAP Data Services ya están instalados y configurados para el funcionamiento normal.

Consulta con SAP para asegurarte de que la configuración planificada se ajuste a los requisitos de licencia de SAP. Los requisitos pueden variar en función de si exportas datos desde un sistema de aplicación SAP o desde una base de datos subyacente.

Configura un proyecto de Google Cloud en Google Cloud

Para poder usar BigQuery, necesitas un proyecto de Google Cloud.

Crea un proyecto de Google Cloud

  1. Ve a la consola de Google Cloud y regístrate siguiendo el asistente de configuración.

    IR A LA CONSOLE DE CLOUD 

  2. Junto al logotipo de Google Cloud en la esquina superior izquierda, haz clic en el menú desplegable y selecciona PROYECTO NUEVO.

  3. Asigna un nombre al proyecto y haz clic en Crear.

  4. Después de crear el proyecto (se muestra una notificación en la esquina superior derecha), actualiza la página.

Habilita las API

Habilita la API de BigQuery:

IR A LA API DE BIGQUERY

Cree una cuenta de servicio

Se usa la cuenta de servicio (en particular, su archivo de claves) para autenticar SAP DS en BigQuery. Usarás el archivo de claves más adelante cuando crees el almacén de datos de destino.

  1. En la consola de Google Cloud, ve a la página Cuentas de servicio.

    IR A CUENTAS DE SERVICIO

  2. Selecciona tu proyecto de Google Cloud.

  3. Haz clic en Crear cuenta de servicio.

  4. Ingresa un nombre de cuenta de servicio.

  5. Haz clic en Crear y continuar.

  6. En la lista Seleccionar un rol, selecciona BigQuery > BigQuery Data Editor.

  7. Haz clic en Agregar otra función.

  8. En la lista Seleccionar un rol , selecciona BigQuery > BigQuery Job User.

  9. Haga clic en Continuar.

  10. Según corresponda, otorga otro acceso a los usuarios a la cuenta de servicio.

  11. Haga clic en Listo.

  12. En la página Cuentas de servicio de la consola de Google Cloud, haz clic en la dirección de correo electrónico de la cuenta de servicio que acabas de crear.

  13. En el nombre de la cuenta de servicio, haz clic en la pestaña Claves.

  14. Haz clic en el menú desplegable Agregar clave y, luego, selecciona Crear clave nueva.

  15. Asegúrate de que esté especificado el tipo de clave JSON.

  16. Haz clic en Crear.

  17. Guarda el archivo de claves que se descarga automáticamente en una ubicación segura.

Configura la exportación de sistemas SAP a BigQuery

La configuración de esta solución incluye los siguientes pasos de alto nivel:

  • Configurar SAP Data Services
  • Crear el flujo de datos entre SAP Data Services y BigQuery

Configuración de SAP Data Services

Crea un proyecto de servicios de datos

  1. Abre la aplicación SAP Data Services Designer.
  2. Ve a Proyecto (Project) > Nuevo (New) > Proyecto (Project).
  3. Especifica un nombre en el campo Nombre del proyecto (Project name).
  4. Haz clic en Crear (Create). Tu proyecto aparecerá en el Explorador de proyectos a la izquierda.

Crea un almacén de datos de origen

Puedes usar un sistema de aplicaciones de SAP o la base de datos subyacente como almacén de datos de origen para SAP Data Services. Los tipos de objetos de datos que puedes exportar son diferentes según si usas un sistema de aplicaciones de SAP o una base de datos como almacén de datos.

Si usas un sistema de aplicaciones de SAP como almacén de datos, puedes exportar los siguientes objetos:

  • Tablas
  • Vistas
  • Jerarquías
  • ODP
  • BAPI (Funciones)
  • IDocs

El flujo de replicación comienza en la aplicación o la base de datos de SAP y pasa a través de SAP Data Services hasta llegar a BigQuery

Si usas una base de datos subyacente como conexión de almacén de datos, puedes exportar objetos como los siguientes:

  • Tablas
  • Vistas
  • Procedimientos almacenados
  • Otros objetos de datos

El flujo de replicación comienza en la aplicación o la base de datos de SAP y pasa a través de SAP Data Services hasta llegar a BigQuery

En las siguientes secciones, se describen los parámetros de configuración del almacén de datos para las bases de datos y los sistemas de aplicaciones de SAP. Sin importar el tipo de conexión de almacén de datos o de objeto de datos, el procedimiento para importar y usar los objetos en un flujo de datos de SAP Data Services es casi idéntico.

Configuración de la conexión a la capa de la aplicación SAP

Mediante estos pasos, se crea una conexión a la aplicación SAP y se agregan los objetos de datos al nodo del almacén de datos correspondiente en la biblioteca de objetos de Designer.

  1. Abre la aplicación SAP Data Services Designer.
  2. Abre el proyecto de SAP Data Services en el Explorador de proyectos.
  3. Ve a Proyecto (Project) > Nuevo (New) > Almacén de datos (Datastore).
  4. Completa el Nombre del almacén de datos (Datastore Name). Por ejemplo, ECC_DS.
  5. En el campo Datastore type, selecciona SAP Applications.
  6. En el campo Application server name, ingresa el nombre de la instancia del servidor de aplicaciones de SAP.
  7. Especifica las credenciales de acceso del servidor de aplicaciones de SAP.
  8. Haz clic en OK.

Configuración de la conexión a la capa de la base de datos de SAP

SAP HANA

Con estos pasos, se crea una conexión a la base de datos SAP HANA y se agregan las tablas de datos al nodo del almacén de datos correspondiente en la biblioteca de objetos de Designer.

  1. Abre la aplicación SAP Data Services Designer.
  2. Abre el proyecto de SAP Data Services en el Explorador de proyectos.
  3. Ve a Proyecto (Project) > Nuevo (New) > Almacén de datos (Datastore).
  4. Completa Nombre del almacén de datos (Datastore Name), p. ej., HANA_DS.
  5. En el campo Tipo de almacén de datos (Datastore type), selecciona la opción Base de datos (Database).
  6. En el campo Tipo de base de datos (Database type), selecciona la opción SAP HANA.
  7. En el campo Versión de la base de datos (Database version), selecciona la versión de tu base de datos.
  8. Completa el nombre del Servidor de la base de datos (Database server), el Número de puerto (Port Number) y las credenciales de acceso.
  9. Haz clic en OK.
Otras bases de datos compatibles

Mediante estos pasos, se crea una conexión a SQL Anywhere y se agregan las tablas de datos al nodo del almacén de datos correspondiente en la biblioteca de objetos de Designer.

Los pasos para crear una conexión en otras bases de datos compatibles son casi idénticos.

  1. Abre la aplicación SAP Data Services Designer.
  2. Abre el proyecto de SAP Data Services en el Explorador de proyectos.
  3. Ve a Proyecto (Project) > Nuevo (New) > Almacén de datos (Datastore).
  4. Completa el Nombre (Name), p. ej., SQL_ANYWHERE_DS.
  5. En el campo Tipo de almacén de datos (Datastore type), selecciona la opción Base de datos (Database).
  6. En el campo Tipo de base de datos (Database type), selecciona la opción SQL Anywhere (SQL Anywhere).
  7. En el campo Versión de la base de datos (Database version), selecciona la versión de tu base de datos.
  8. Completa el Nombre del servidor de la base de datos (Database server name), el Nombre de la base de datos (Database name) y las credenciales de acceso.
  9. Haz clic en OK.

El almacén de datos nuevo aparecerá en la pestaña Datastore en la biblioteca de objetos local de Designer.

Crea un almacén de datos de destino

Mediante estos pasos, se crea un almacén de datos de BigQuery que usa la cuenta de servicio que creaste antes en la sección Crea una cuenta de servicio. La cuenta de servicio permite que SAP Data Services acceda de forma segura a BigQuery.

Para obtener más información, consulta Obtén el correo electrónico de la cuenta de servicio de Google y Obtén un archivo de claves privadas de la cuenta de servicio de Google en la documentación de SAP Data Services.

  1. Abre la aplicación SAP Data Services Designer.
  2. Abre el proyecto de SAP Data Services en el Explorador de proyectos.
  3. Ve a Proyecto (Project) > Nuevo (New) > Almacén de datos (Datastore).
  4. Completa el campo Nombre (Name). Por ejemplo, BQ_DS.
  5. En el campo Tipo de almacén de datos (Datastore type), selecciona Google BigQuery.
  6. Aparecerá la opción Web Service URL. El software completa de forma automática la opción con la URL predeterminada del servicio web de BigQuery.
  7. Selecciona Configuración avanzada (Advanced).
  8. Completa las opciones avanzadas según Datastore option descriptions (Descripciones de las opciones del almacén de datos) para BigQuery en la documentación de SAP Data Services.
  9. Haz clic en Aceptar.

El almacén de datos nuevo aparecerá en la pestaña Datastore en la biblioteca de objetos local de Designer.

Configura el flujo de datos entre SAP Data Services y BigQuery

Para configurar el flujo de datos, debes crear el trabajo por lotes y el flujo de datos del cargador de BigQuery y, además, importar las tablas de origen y de BigQuery a SAP Data Services como metadatos externos.

Crea el trabajo por lotes

  1. Abre la aplicación SAP Data Services Designer.
  2. Abre el proyecto de SAP Data Services en el Explorador de proyectos.
  3. Ve a Proyecto (Project) > Nuevo (New) > Trabajo por lotes (Batch Job).
  4. Completa el campo Nombre (Nombre). Por ejemplo, JOB_SQL_ANYWHERE_BQ.
  5. Haz clic en Aceptar (OK).

Crea una lógica de flujo de datos

Importa la tabla de origen

Mediante estos pasos, se importa la tabla de la base de datos desde el almacén de datos de origen y se la pone a disposición en SAP Data Services.

  1. Abre la aplicación SAP Data Services Designer.
  2. Expande el almacén de datos de origen en el Explorador de proyectos.
  3. Selecciona la opción External Metadata en la parte superior del panel derecho. Aparecerá la lista de nodos con las tablas y otros objetos disponibles.
  4. Selecciona la tabla que deseas importar de la lista.
  5. Haz clic con el botón derecho y selecciona la opción Import.
  6. La tabla importada estará disponible en la biblioteca de objetos en el nodo del almacén de datos de origen.
Crea un flujo de datos
  1. Selecciona el trabajo por lotes en el Explorador de proyectos.
  2. Haz clic con el botón derecho en el lugar de trabajo vacío en el panel derecho y selecciona la opción Add New > Dataflow.
  3. Haz clic con el botón derecho en el ícono del flujo de datos y selecciona Rename.
  4. Cambia el nombre a DF_SQL_ANYWHERE_BQ.
  5. Abre el lugar de trabajo del flujo de datos. Para ello, haz doble clic en el ícono del flujo de datos.

    Captura de pantalla del ícono del flujo de datos.

Importa y conecta el flujo de datos con los objetos del almacén de datos de origen
  1. Expande el almacén de datos de origen en el Explorador de proyectos.
  2. Desde el almacén de datos, arrastra y suelta la tabla de origen en el lugar de trabajo del flujo de datos (elige la opción Make Source cuando arrastras la tabla al lugar de trabajo). En estas instrucciones, el almacén de datos se llama SQL_ANYWHERE_DS. El nombre del almacén de datos puede ser diferente.
  3. Arrastra la Query transform del nodo Platform en la pestaña Transforms de la biblioteca de objetos al flujo de datos.
  4. Conecta la tabla de origen en el lugar de trabajo a la Query transform.
  5. Haz doble clic en Query transform.
  6. Selecciona todos los campos de la tabla en Schema In a la izquierda y arrástralos a Schema Out a la derecha.

    • Selecciona el campo fecha y hora en la lista Schema Out a la derecha.
    • Selecciona la pestaña Asignación (Mapping) debajo de las listas de esquemas.
    • Reemplaza el nombre del campo con la siguiente función:

      to_date(to_char(FIELDNAME,'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd
      hh24:mi:ss')

      En el ejemplo anterior, FIELDNAME es el nombre del campo que seleccionaste.

    Captura de pantalla de SAP Data Services Designer en la que se muestra la conversión de tipo de datos de fecha y hora de un campo

  7. Haz clic en el ícono Atrás en la barra de herramientas de la aplicación para volver al editor de flujos de datos.

  8. Desde el nodo Platform en la pestaña Transforms de la biblioteca de objetos, arrastra una transformación XML_Map al flujo de datos.

  9. Selecciona el modo Batch en el cuadro de diálogo.

  10. Conecta la transformación Query a la transformación XML_Map.

    Captura de pantalla de los íconos que representan el flujo de la tabla de origen a través de la transformación de consulta a la asignación XML

Crea un archivo de esquema

Mediante estos pasos, se crea un archivo de esquema que refleja la estructura de las tablas de origen. Más adelante, usarás el archivo de esquema para crear una tabla de BigQuery.

El esquema garantiza que el flujo de datos del cargador de BigQuery propague de manera correcta la tabla nueva de BigQuery.

  1. Abre la XML Map transform y completa las secciones del esquema de entrada y salida según los datos que incluyas en la tabla de BigQuery.
  2. Haz clic con el botón derecho en el nodo XML_Map en la columna Schema Out y selecciona Generate Google BigQuery Schema en el menú desplegable.
  3. Ingresa un nombre y una ubicación para el esquema.
  4. Haz clic en Guardar (Save).

SAP Data Services genera un archivo de esquema con la extensión de archivo .json.

Captura de pantalla de SAP Data Services Designer en la que se muestra el menú desplegable para generar un esquema de Google BigQuery

Crea la tabla de BigQuery

Debes crear una tabla en el conjunto de datos de BigQuery en Google Cloud para la carga de datos. Usarás el esquema que creaste en SAP Data Services para crear la tabla.

La tabla se basa en el esquema que generaste en el paso anterior.

  1. Accede a tu proyecto de Google Cloud en la consola de Google Cloud.
  2. Selecciona BigQuery.
  3. Haz clic en el conjunto de datos correspondiente.
  4. Haz clic en Crear tabla.
  5. Ingresa un nombre para la tabla. Por ejemplo, BQ_DATA_LOAD.
  6. En Esquema, activa o desactiva la configuración para habilitar el modo Editar como texto.
  7. Para configurar el esquema de la tabla nueva en BigQuery, copia y pega el contenido del archivo de esquema que creaste en Crea un archivo de esquema.
  8. Haz clic en Crear tabla.
Importa la tabla de BigQuery

Mediante estos pasos, se importa la tabla de BigQuery que creaste en el paso anterior y se la pone a disposición en SAP Data Services.

  1. En la biblioteca de objetos de SAP Data Services Designer, haz clic con el botón derecho en el almacén de datos de BigQuery y selecciona la opción Refresh Object Library. Esto actualiza la lista de tablas de fuentes de datos que puedes usar en el flujo de datos.
  2. Abre el almacén de datos de BigQuery.
  3. En la parte superior del panel derecho, selecciona Metadatos externos. Aparecerá la tabla de BigQuery que creaste.
  4. Haz clic con el botón derecho en el nombre de la tabla de BigQuery correspondiente y selecciona Importar.
  5. Se iniciará la importación de la tabla seleccionada a SAP Data Services. La tabla ahora está disponible en la biblioteca de objetos en el nodo del almacén de datos de destino.
Importa y conecta el flujo de datos con los objetos del almacén de datos de destino
  1. En el almacén de datos de la biblioteca de objetos, arrastra la tabla de BigQuery importada al flujo de datos. El nombre del almacén de datos en estas instrucciones es BQ_DS. El nombre de tu almacén de datos puede ser diferente.
  2. Conecta la transformación XML_Map a la tabla de BigQuery importada.

    Captura de pantalla de los íconos que representan el flujo de la tabla de origen a través de la transformación de consulta y la asignación XML a la tabla de BigQuery

  3. Abre la transformación XML_Map y completa las secciones del esquema de entrada y salida según los datos que incluyas en la tabla de BigQuery.

  4. Haz doble clic en la tabla de BigQuery en el lugar de trabajo para abrirla y completar las opciones en la pestaña Target, como se indica en la siguiente tabla:

    Opción Descripción
    Convertir en puerto (Make port) Especifica No, que es la opción predeterminada.

    Si se especifica , se convierte un archivo de origen o de destino en un puerto de flujo de datos incorporado.
    Modo Especifica Truncar para la carga inicial, que reemplaza los registros existentes en la tabla de BigQuery con los datos cargados en SAP Data Services. Truncar es el valor predeterminado.
    Cantidad de cargadores Especifica un número entero positivo para establecer la cantidad de cargadores (subprocesos) que se usarán en el procesamiento. El valor predeterminado es 4.

    Cada cargador inicia un trabajo de carga reanudable en BigQuery. Puedes especificar cualquier cantidad de cargadores.
    Si deseas obtener ayuda para determinar una cantidad adecuada de cargadores, consulta la documentación de SAP, incluidos los siguientes vínculos:
    Cantidad máxima de registros con errores por cargador Especifica 0 o un número entero positivo para establecer la cantidad máxima de registros que pueden fallar por trabajo de carga antes de que BigQuery deje de cargar registros. El valor predeterminado es cero (0).
  5. Haz clic en el ícono de validación en la barra de herramientas superior.

  6. Haz clic en el ícono Atrás en la barra de herramientas de la aplicación para volver al editor del flujo de datos.

Carga los datos en BigQuery

Mediante estos pasos, se inicia el trabajo de replicación y se ejecuta el flujo de datos en SAP Data Services para cargar los datos del sistema de origen a BigQuery.

Cuando ejecutas la carga, todos los datos del conjunto de datos de origen se replican en la tabla de BigQuery de destino que está conectada al flujo de datos de carga. Se reemplazarán todos los datos de la tabla de destino.

  1. En SAP Data Services Designer, abre el Explorador de proyectos.
  2. Haz clic con el botón derecho en el nombre del trabajo de replicación y selecciona Ejecutar (Execute).
  3. Haz clic en OK.
  4. El proceso de carga se inicia, y comienzan a aparecer los mensajes de depuración en el registro de SAP Data Services. Los datos se cargan en la tabla que creaste en BigQuery para las cargas iniciales. El nombre de la tabla de carga en estas instrucciones es BQ_DATA_LOAD. El nombre de tu tabla puede ser diferente.
  5. Para saber si la carga se completó, ve a la consola de Google Cloud y abre el conjunto de datos de BigQuery que contiene la tabla. Si los datos aún se están cargando, aparecerá “Cargando” junto al nombre de la tabla.

Después de la carga, los datos estarán listos para procesarse en BigQuery.

Programa las cargas

Puedes programar un trabajo de carga para que se ejecute en intervalos regulares mediante SAP Data Services Management Console.

  1. Abre la aplicación SAP Data Services Management Console.
  2. Haz clic en Administrador (Administrator).
  3. Expande el nodo Lote (Batch) en el árbol del menú del lado izquierdo.
  4. Haz clic en el nombre del repositorio de SAP Data Services.
  5. Haz clic en la pestaña Configuración del trabajo por lotes (Batch Job Configuration).
  6. Haz clic en Agregar programa (Add Schedule).
  7. Ingresa el Nombre del programa (Schedule name).
  8. Marca Active.
  9. En la sección Select scheduled time for executing the jobs, especifica la frecuencia de la ejecución de carga delta.
    1. Importante: Google Cloud limita la cantidad de trabajos de carga de BigQuery que puedes ejecutar en un día. Asegúrate de que tu programa no supere el límite, que no se puede aumentar. Para obtener más información sobre el límite de trabajos de carga de BigQuery, consulta Cuotas y límites en la documentación de BigQuery.
  10. Haga clic en Aplicar.

    Captura de pantalla de la pestaña Schedule Batch Job en SAP Data Services Management Console

Próximos pasos

Consulta y analiza datos replicados en BigQuery. Para obtener más información sobre las consultas, revisa lo siguiente documentación:

Si deseas obtener algunas ideas sobre cómo configurar una solución para replicar datos casi en tiempo real de las aplicaciones SAP a BigQuery mediante SAP Landscape Transformation Replication Server y SAP Data Services, consulta este vínculo:

Para obtener más información sobre las arquitecturas de referencia, los diagramas y las prácticas recomendadas, explora Cloud Architecture Center.