Describing Data Provisioning

Objective

After completing this lesson, you will be able to explicar los conceptos clave del aprovisionamiento de datos.

Aprovisionamiento de datos

Introducción

El aprovisionamiento de datos es un término muy amplio y hace referencia a la adquisición de datos de un sistema fuente a un sistema de destino. Se prefiere la adquisición de palabras, y no la carga de datos porque los datos se pueden adquirir sin la necesidad de cargarlos físicamente en un sistema de destino. De hecho, con los avances tecnológicos, mover datos alrededor de una organización es cada vez menos común. A menudo es mucho más sencillo leer los datos de forma remota.

Hay muchos motivos por los que se necesita el aprovisionamiento de datos. Esto incluye:

  • Extraer datos de aplicaciones empresariales y cargarlos en un almacén de datos central
  • Brinde acceso en tiempo real a fuentes de datos para analíticas
  • Distribuir datos de un sistema central a sistemas regionales
  • Consolidar datos de múltiples sistemas en un sistema central
  • Mantener los sistemas sincronizados
  • Migrar datos de un sistema existente a un sistema nuevo

En los escenarios de aprovisionamiento de datos más simples, solo hay dos sistemas implicados: la fuente y el destino. Pero a menudo hay múltiples sistemas involucrados. Por ejemplo, es posible que desee combinar datos de varios sistemas fuente a un único sistema de destino. También podría ir por otro lado: un único sistema fuente que distribuya sus datos a varios sistemas de destino. Y, por último, incluso podemos tener una combinación de ambos: múltiples sistemas fuente que consolidan datos y los distribuyen a múltiples sistemas de destino.

Inicie el siguiente vídeo para obtener más información sobre los conceptos básicos detrás del aprovisionamiento de datos:

Aplicación o control de base de datos del aprovisionamiento de datos

El aprovisionamiento de datos se puede controlar mediante aplicaciones independientes y especializadas o utilizando las herramientas integradas de una base de datos. Consideremos cada enfoque.

El aprovisionamiento de datos controlado por la aplicación es cuando una aplicación dedicada controla el flujo de datos. Estas aplicaciones proporcionan herramientas para conectarse a fuentes de datos y destinos de datos y para definir reglas de flujo de datos que determinan cómo se mueven los datos entre sistemas. Entre los ejemplos de aplicaciones de aprovisionamiento de datos dedicadas se incluyen SAP Data Services, SAP Landscape Transformation y SAP Datasphere.

Con este enfoque controlado por la aplicación, la aplicación extrae datos de una base de datos fuente y los carga en una base de datos de destino. La aplicación gestiona las reglas de extracción, la lógica de proceso y los métodos de carga. Piense en la aplicación de aprovisionamiento de datos como el organizador del movimiento de datos entre sistemas. En algunos casos, la aplicación de aprovisionamiento de datos extrae los datos de origen y los almacena temporalmente antes de enviarlos al sistema de destino. Esto se suele encontrar en casos en los que se deben combinar varias fuentes de datos y se necesita un área de staging para sincronizar los datos, que pueden llegar en diferentes momentos.

Uno de los motivos clave para utilizar una aplicación de aprovisionamiento de datos dedicada es cuando trabaja con varias fuentes de datos que utilizan diferentes tecnologías o provienen de diferentes proveedores. Estas aplicaciones dedicadas normalmente pueden procesar datos de cualquier fuente, por ejemplo, bases de datos, archivos CSV, archivos JSON y servicios web. Algunos incluso pueden conectarse a aplicaciones empresariales directamente, por ejemplo, extractos de SAP BW/4HANA de SAP S/4HANA a nivel de aplicación y no de las tablas de base de datos. En este caso, la lógica de flujo de datos se crea en un nivel superior al de la tecnología de almacenamiento físico.

Esta diapositiva muestra cómo funciona el aprovisionamiento de datos controlado por la aplicación.

Ahora veamos el aprovisionamiento de datos controlados por la base de datos.

El requisito básico es que la base de datos proporcione las herramientas de aprovisionamiento de datos. El tipo más simple de herramienta de aprovisionamiento de datos podría ser una herramienta de exportación e importación para mover datos de una base de datos a otra. Pero algunas bases de datos, incluida SAP HANA, proporcionan herramientas sofisticadas para gestionar escenarios de aprovisionamiento de datos complejos, como los que requieren combinar datos, validar datos y enriquecer datos. Utilizar las herramientas integradas de una base de datos para gestionar el aprovisionamiento de datos significa que no tiene que implementar aplicaciones de aprovisionamiento de datos separadas, como hemos descrito anteriormente. Este enfoque admite una infraestructura más simple.

Trabajar con herramientas proporcionadas por la base de datos es lo que entendemos por aprovisionamiento de datos controlado por la base de datos. El flujo de datos se controla mediante herramientas que forman parte de la base de datos.

Esta diapositiva muestra cómo se puede utilizar el aprovisionamiento de datos controlado por la base de datos.

Este curso cubre las herramientas de aprovisionamiento de datos integradas de SAP HANA local y SAP HANA Cloud.

Captura de modificaciones de datos

Tenga en cuenta el siguiente escenario: Ha implementado una aplicación de informes que se ejecuta en una base de datos de SAP HANA. La gestión utiliza la aplicación de informes para analizar los gastos de la empresa. Decide cargar las transacciones de pedido de compra diariamente desde la aplicación de compras a la base de datos de destino de SAP HANA. Empiece extrayendo todo el conjunto de registros de pedidos de compra de la aplicación de compras y cárguelos en la base de datos de destino de SAP HANA. Los datos de origen y de destino ahora están sincronizados. Pero solo por un tiempo. Esto se debe a que al día siguiente, se añaden nuevos registros de aprovisionamiento a la base de datos de origen, se modifican algunos registros existentes y se borran algunos registros.

Entonces, ¿qué debemos cargar la próxima vez desde la base de datos de origen a para garantizar que las bases de datos de origen y destino se mantengan sincronizadas? ¿De nuevo todo el conjunto de datos o solo las modificaciones?

Por supuesto, puede borrar todos los datos de la base de datos de destino y volver a cargar todos los registros. Esto significaría que vuelve a estar sincronizado. Pero este enfoque sería bastante derrochador, especialmente si solo se hubieran modificado uno o dos registros en un conjunto de datos muy grande. Imagine que no se han modificado registros. Eliminar el contenido de las tablas y luego volver a cargarlas no es muy inteligente y es un desperdicio de recursos del sistema. Además, es arriesgado eliminar conjuntos de datos completos porque si algo sale mal en la recarga, es posible que acabe sin datos.

Un enfoque más eficiente es capturar solo las modificaciones de los registros y actualizar la base de datos de destino solo con las modificaciones. La captura de las modificaciones en los registros a menudo se denomina carga delta. También se denomina recopilación de datos de modificaciones (CDC).

Esta diapositiva muestra cómo funciona la captura de cambios de datos.

Entonces, ¿cómo identificamos los registros que han cambiado en la aplicación de origen?

Algunas fuentes de datos proporcionan capacidades integradas de recopilación de datos de modificaciones (CDC). Esto significa que la responsabilidad de identificar los registros modificados recae en el sistema fuente. Su mecanismo de extracción de datos simplemente solicita los datos delta del mecanismo de captura de datos de modificaciones en lugar de una carga completa. Pero no todas las fuentes proporcionan una capacidad CDC, por lo que debe encontrar otra forma de elegir los registros que cambiaron de los que no lo hicieron.

Hay varias técnicas disponibles, entre las que se incluyen:

  • Lea el redo log del sistema fuente (si tiene uno). Aquí es donde se recopilan las modificaciones de la base de datos.
  • Configure desencadenadores en tablas del sistema de origen que se activan cuando se modifica un registro, de modo que se pueda enviar al sistema de destino.
  • Proporcione un campo en el registro de origen, como un cronomarcador, que capture la hora de la modificación del registro, de modo que podamos identificar los registros que se han modificado recientemente y filtrar los que no queremos. Muchas aplicaciones ya incluyen un campo de este tipo.
  • Utilice herramientas de comparación de datos que a menudo proporciona el software de aprovisionamiento de datos para comparar las tablas de origen y destino. A continuación, la herramienta puede aislar las diferencias para que solo se actualicen los registros en el sistema de destino.

Por último, en el contexto de la captura de datos de modificaciones, debe tener en cuenta el término instantánea. Este término se utiliza a menudo al describir el aprovisionamiento de datos.

Una instantánea es una captura completa de todos los datos del sistema fuente en un momento preciso. Una de las razones por las que utilizamos instantáneas es para conservar un conjunto de datos durante un período de tiempo antes de que se sobrescriba con datos nuevos. Por ejemplo, podemos cargar una instantánea de los datos al final del mes para capturar la posición de nuestros pedidos. Es posible que repitamos la instantánea al final del mes siguiente. Las instantáneas nos proporcionan un conjunto de datos estable en el que podemos trabajar. A veces incluso conservamos las instantáneas para construir un historial. Pero si decidimos conservar nuestras instantáneas, se debe tener en cuenta el crecimiento de los datos, especialmente si la instantánea incluye su conjunto de datos completo.

En este curso, aprenderá sobre las funcionalidades de SAP HANA en relación con la captura de datos de cambios.

Tipos de aprovisionamiento de datos

Data Virtualization

Como se ha mencionado anteriormente, el aprovisionamiento de datos no siempre significa que tengamos que cargar datos en un sistema de destino. Los datos se pueden leer desde un sistema fuente y se pueden proporcionar a un sistema de destino en el momento en que se necesitan los datos. Cuando el sistema de destino ha terminado de leer los datos, la conexión finaliza y no se mueven datos. Esto se denomina virtualización de datos. También se puede denominar federación de datos, especialmente cuando tiene una red de sistemas conectados utilizando esta técnica.

Esta diapositiva explica la visualización de datos.

Uno de los motivos clave para tener en cuenta este enfoque es cuando los datos cambian con frecuencia y desea asegurarse de que solo se lea la última versión de los datos. Además, puede ser que los datos de origen solo se lean muy ocasionalmente, por lo que no tiene sentido hacer una copia cargándolos continuamente y rellenando un sistema de destino.

Una de las preocupaciones con la virtualización de datos es que el rendimiento puede no ser satisfactorio porque los datos tienen que viajar a través de la red cada vez que la necesita una aplicación de destino. Es posible que esto no sea un problema mientras los volúmenes de datos son bajos, pero, como sabemos, los volúmenes de datos suelen aumentar con el tiempo, por lo que lo que podría comenzar como una solución viable podría volverse rápidamente inviable. Sin embargo, la virtualización de datos siempre debe tenerse en cuenta antes de tomar la decisión de mover los datos a un sistema de destino.

Replicación de datos

Cuando los datos deben mantenerse sincronizados entre sistemas, es cuando implementa la replicación de datos. Los datos se copian de un sistema a otro, normalmente sin modificaciones. La idea es que el sistema de destino capture datos a medida que cambian en el sistema de origen, de modo que las aplicaciones que se ejecutan en el sistema de destino siempre utilicen los datos más recientes. La replicación tiene lugar en tiempo real (sincrónico) o casi en tiempo real (asincrónico).

Esta diapositiva explica la replicación de datos.

La replicación es una opción popular cuando la virtualización no es una buena opción, y también cuando los datos no requieren transformación o agregación antes de que se carguen en un sistema de destino.

Al replicar datos, debe supervisar cuidadosamente los volúmenes de datos. Esto se debe a que al replicar desde sistemas que generan muchos datos, el sistema de destino se puede rellenar muy rápidamente. Esto es especialmente cierto cuando los datos de origen son muy granulares, porque la replicación normalmente extrae los datos uno a uno sin filtrar ni agregar registros.

Transformación de datos

Si necesita realizar modificaciones en los datos extraídos antes de cargarlos en un sistema de destino, esto se denomina transformación de datos. La transformación es un término muy amplio y puede significar algo tan simple como aplicar filtros a los datos para cargar solo lo que necesita. También podría significar generar nuevos valores a partir de datos fuente. Por ejemplo, calcular el beneficio de cada registro que proporciona el precio de venta y el coste. La transformación también puede hacer referencia a rellenar los campos que faltan y los valores de verificación. Con la transformación puede fusionar datos de varios sistemas. También puede definir reglas para determinar cómo dividir los datos y distribuirlos en varios sistemas de destino.

Esta diapositiva explica la transformación de datos.

Al igual que con la replicación, la transformación de datos toma datos de uno o más sistemas fuente y los carga en un sistema de destino. La diferencia clave es que la replicación normalmente no realiza modificaciones en los datos, mientras que la transformación sí.

Una de las ventajas de la transformación en la replicación es que puede aplicar reglas de agregación para resumir datos en lugar de cargar grandes cantidades de transacciones individuales. Por lo tanto, se puede controlar el crecimiento de los datos. Sin embargo, las transformaciones pueden convertirse rápidamente en complejas y difíciles de mantener a medida que cambia la infraestructura de datos.