sql >> Base de Datos >  >> RDS >> Database

Migración de esquema:relacional con estrella

Nota:Este artículo muestra la migración de un modelo de base de datos relacional (RDB) a un esquema en estrella utilizando Eclipse IDE para Voracity (y sus productos incluidos), IRI Workbench, luego de una introducción a ambas arquitecturas. Si está interesado en migrar su RDB o datos a un modelo de Data Vault 2.0, un nuevo asistente de Workbench debutará en el World Wide Data Vault Consortium en mayo de 2019; suscríbase al blog de IRI para obtener instrucciones paso a paso tan pronto como se publiquen.

Un almacén de datos (DW) es una colección de datos extraídos del sistema operativo o transaccional de una empresa, transformados para eliminar incoherencias y luego organizados para respaldar un análisis y/o generación de informes rápidos. El DW requiere un esquema, o una descripción lógica y una representación gráfica de su base de datos operativa. Este artículo aborda esos temas y proporciona una guía práctica para pasar de un esquema de base de datos relacional convencional a un esquema DW popular llamado esquema en estrella.

Esquema en estrella frente a relacional

La mayoría de las estructuras de datos relacionales se ilustran en diagramas entidad-relación (ER). Un diagrama ER se utiliza en el desarrollo de modelos conceptuales para un sistema de gestión de base de datos de procesamiento de transacciones en línea (OLTP). Es la fuente desde la cual se traduce la estructura de la tabla.

Sin embargo, el esquema en estrella es el estándar ampliamente aceptado para la estructura de tabla subyacente de un almacén de datos. Su forma de estrella simple (cuando se diagrama ER) muestra la tabla de hechos (que contiene valores de transacción o medidas) en el centro, y las tablas de dimensiones (que contienen valores descriptivos o atributivos) que irradian desde ella. Por lo general, la tabla de hechos está en tercera forma normal (3NF), mientras que las tablas dimensionales están desnormalizadas.

Las diferencias básicas entre un modelo entidad-relacional (ER) y un modelo de estrella son las siguientes:

  1. Los modelos ER utilizan estructuras lógicas y físicas para el diseño de bases de datos normalizadas
  2. Los modelos de dimensión utilizan una estructura física para el diseño de bases de datos desnormalizadas

Para ver cómo el software IRI puede des/normalizar los datos a través de la rotación de filas y columnas, haga clic aquí.


Antecedentes del proceso de conversión

En este artículo, demuestro cómo convertir datos de un modelo relacional en estrella usando trabajos que debe definir más o menos manualmente, pero puede crear y ejecutar automáticamente y modificar fácilmente.

Lo que verá aquí son los datos 4GL y las especificaciones de trabajo de IRI, expresados ​​en secuencias de comandos "SortCL"[1], que asignan datos a tablas de dimensiones y los unen en la tabla de hechos central. SortCL es el programa central de mapeo y manipulación de datos en la plataforma ETL y de gestión de datos IRI Voracity. Sin embargo, entender la metodología y las asignaciones en mis trabajos de SortCL es la clave aquí, no la sintaxis de las secuencias de comandos.

La GUI gratuita de Eclipse, IRI Workbench, proporciona un editor SortCL con reconocimiento de sintaxis, así como esquemas gráficos y cuadros de diálogo, diagramas de flujo de trabajo y asignación, y asistentes de trabajo intuitivos, para crear o modificar automáticamente estos scripts si no desea hacerlo. manualmente. FYI, IRI usa los mismos metadatos y GUI para crear perfiles y diagramar bases de datos, generar datos de prueba, realizar ETL, formatear informes, enmascarar PII, capturar datos modificados, migrar y replicar datos, limpiar y validar datos, etc.

Workbench utiliza una versión mejorada del complemento Data Tools Platform (DTP) para que Eclipse se conecte a bases de datos a través de JDBC y permita operaciones SQL e intercambio de metadatos IRI en la vista Data Source Explorer (DSE). En este caso, Workbench admite:

  1. la creación y el llenado de tablas de prueba de Oracle restringidas (origen) a través de SortCL (o trabajos IRI RowGen , según este artículo)
  2. la asignación de datos de tablas de entidades a tablas de dimensiones a través de SortCL
  3. la asignación de elementos de hechos como una relación n-aria para asociar la tabla de dimensiones principal; es decir, realizar una combinación de varias tablas en SortCL para crear la tabla de hechos
  4. población de todas las tablas de destino (esquema de estrella)
  5. Diagramas ER de los esquemas de origen y destino

Los tipos de entidad en mi modelo relacional original son:Dept, Emp, Project, Category, Item, Item_Use y Sale:


Antes...

El siguiente diagrama muestra el modelo Star final con ocho tablas de dimensiones y una tabla de hechos. Las tablas de dimensiones son: Dept_Dim, Emp_Dim, Emp_Salary_Range_Dim, Project_Dim, Category_Dim, Item_Price_Range_Dim, Item_Dim. La tabla de hechos en el centro es Sale_Fact, que contiene claves para todas las tablas de dimensiones.


… Después


Pasos de conversión

  1. Definir y crear la tabla de hechos
    La estructura de la tabla Sale_Fact se muestra en este documento. La clave principal es sale_id, y el resto de los atributos son claves externas heredadas de las tablas Dimension. Estoy usando una base de datos Oracle (aunque cualquier RDB funciona) conectada a Workbench DSE (a través de JDBC) y SortCL para la transformación y el mapeo de datos ( a través de ODBC). Creé mis tablas en secuencias de comandos SQL editadas en el álbum de recortes de SQL de DSE y las ejecuté en Workbench.
  1. Definir y crear las tablas de dimensiones
    Utilice la misma técnica y los metadatos vinculados anteriormente para crear estas tablas Dimension que recibirán los datos relacionales asignados de los trabajos de SortCL en el siguiente paso:tabla Category_Dim, Dept a Dept_Dim, Project a Project_Dim, Item a Item_Dim y Emp to Emp_Dim. Puede ejecutar ese programa .SQL con toda la lógica CREAR a la vez para construir las tablas.
  1. Mover los datos de la tabla de entidades original a las tablas de dimensiones
    Defina y ejecute los trabajos SortCL que se muestran aquí para asignar los datos (prueba creada por RowGen) del esquema relacional a las tablas Dimension para el esquema Star. Específicamente, estos scripts cargan datos de la tabla Categoría a la tabla Category_Dim , Dept a Dept_Dim, Project a Project_Dim, Item a Item_Dim y Emp a Emp_Dim.
  1. Rellenar la tabla de hechos
    Utilice SortCL para unir datos de las tablas de entidades Sale, Emp, Project, Item_Use, Item, Category originales para preparar los datos para la nueva tabla Sale_Fact . Use el segundo script (unirse al trabajo) aquí.

Para mejorar nuestro ejemplo, también usaremos SortCL para introducir nuevos datos dimensionales en el esquema de estrella en el que también se basará mi tabla de hechos. Puede ver estas tablas adicionales en el diagrama de estrella anterior que no estaban en mi esquema relacional:Emp_Salary_Range_Dim y Item_Price_Range_Dim. Esas tablas se crean en el mismo archivo .SQL para las tablas de hechos y otras tablas de dimensiones.

La tabla Fact necesita los datos emp_salary_range_id y item_price_range_id de estas tablas para representar el rango de valores en esas tablas Dimension. Cuando cargo los valores de precios dimensionales en el almacén de datos, por ejemplo, quiero asignarlos a un rango de precios:

Artículo_Precio Rango_Id Nombre_Rango Range_End
1 Baja 1 100
2 Medio 101 500
3 Alto 501 999

La forma más sencilla de asignar ID de rango en el script de trabajo (que está preparando datos para mi tabla Sale_Fact) es usar una declaración IF-THEN-ELSE en la sección de salida. Consulte este artículo sobre valores de depósito para el fondo.

De todos modos, creé todo este trabajo con CoSort Nuevo trabajo de unión asistente en el Workbench. Y una vez que lo ejecuté, se llenó mi tabla de hechos:

Visualización de la tabla Sale_Fact en IRI Workbench DSE

Conclusión

La principal ventaja de la representación de datos dimensionales es reducir la complejidad de la estructura de una base de datos. Esto hace que la base de datos sea más fácil de entender para las personas y escribir consultas al minimizar la cantidad de tablas y, por lo tanto, la cantidad de uniones requeridas. Como se mencionó anteriormente, los modelos dimensionales también optimizan el rendimiento de las consultas. Sin embargo, tiene tanto debilidad como fuerza. La estructura fija del Star Schema limita las consultas. Entonces, como hace que las consultas más comunes sean fáciles de escribir, también restringe la forma en que se pueden analizar los datos.

La interfaz gráfica de usuario de IRI Workbench para Voracity tiene un conjunto de herramientas potente y completo que simplifica la integración de datos, incluida la creación, el mantenimiento y la expansión de almacenes de datos. Con esta interfaz intuitiva y fácil de usar, Voracity facilita la creación de procesos ETL (extracción, transformación, carga) rápidos, flexibles y completos que involucran estructuras de datos en plataformas dispares.

En las operaciones de ETL, los datos se extraen de diferentes fuentes, se transforman por separado y se cargan en un almacén de datos y posiblemente en otros destinos. Construir el proceso ETL es, potencialmente, una de las tareas más grandes de construir un almacén; es complejo y requiere mucho tiempo. El enfoque ETL de IRI respalda este proceso de una manera altamente eficiente e independiente de la base de datos, realizando toda la integración y preparación de datos en el sistema de archivos.

[1] Si es un sabueso de la sintaxis, tenga en cuenta que las secuencias de comandos SortCL utilizadas en el producto IRI CoSort o la plataforma IRI Voracity admiten la misma sintaxis y definiciones de datos que IRI RowGen para la generación de datos de prueba, IRI NextForm para la migración de datos e IRI FieldShield para el enmascaramiento de datos. Todas esas herramientas son compatibles con la interfaz gráfica de usuario de IRI Workbench, y sus metadatos también se pueden compartir y administrar en equipo para el control de versiones, el linaje de trabajo/datos y la seguridad en la nube.

[2] Para mostrar diagramas E-R en IRI Workbench:

  1. Seleccione Nuevo Proyecto IRI y cree una Nueva Carpeta
  2. Seleccione esa carpeta y resalte todas las tablas de base de datos aplicables en el Explorador de fuentes de datos; luego haga clic derecho en IRI, New ER-Diagram
  3. Se creará un archivo (Schema.QA)
  4. Haga clic con el botón derecho en ese archivo y seleccione Nueva representación, Nuevo diagrama de relación de entidad.

[3] Los elementos del diagrama ER que ilustran dichos modelos incluyen:

  1. tipos de entidades definidas
  2. atributos definidos
  3. la relación entre los tipos de entidad
  4. imagen general o diagrama conceptual

[4] IRI FACT y SQL*Loader son opciones de carga y extracción masiva, respectivamente.