0 / 0

Políticas de materialización ELT en DataStage

Última actualización: 12 mar 2025
Políticas de materialización ELT en DataStage

Las políticas de materialización definen el número y los tipos de artefactos de base de datos (vistas o tablas) que se crean para datos intermedios cuando se ejecuta un flujo de DataStage en modalidad ELT. La política seleccionada afecta al rendimiento de ejecución y al volumen de datos intermedio. La ejecución en modalidad ELT utiliza DBT, por lo que las políticas de materialización ELT se solapan con materializaciones DBT. Configure los valores en el conector de salida del flujo para definir la materialización del conjunto de datos de destino. Cuando se vuelve a crear un conjunto de datos de destino con table action = replace, se materializa como una tabla de materialización DBT predeterminada, mientras que table action = append utiliza una materialización DBT personalizada que implementa varios modos de escritura admitidos por DataStage, incluidos inserción, actualización, eliminación, etc.

Generar SQL anidado

Generar SQL anidado es la política de materialización predeterminada. Cuando se selecciona, el flujo crea sentencias SQL individuales separadas para cada tabla de salida. Cada sentencia contiene sentencias SQL anidadas para todos los nodos en sentido ascendente de la tabla de salida. Este enfoque delega todo el trabajo de optimización en un motor de base de datos.

La política de materialización Nested Query normalmente evita crear artefactos de base de datos intermedios. Esto simplifica la limpieza y evita las sobras después de la ejecución en caso de anomalía. Si un conector de entrada utiliza una sentencia SQL personalizada, el anidamiento no es posible, porque no se puede crear el modelo de álgebra relacional. En este caso, debe seleccionar una política que genere vistas intermedias o los datos intermedios no se materializarán.

En algunos casos, los flujos tendrán un rendimiento más lento con esta política. En un flujo con varios conectores de salida que comparten un gran número de las mismas etapas en sentido ascendente, las sentencias SQL generadas para cada uno de los conectores de salida contendrán la misma lógica, que la base de datos ejecutará varias veces. Para evitar esta ejecución repetitiva, se recomienda la política Avanzada .

Avanzado

La política de materialización Avanzada crea una única sentencia SQL para un conjunto de nodos conectados que cambian la cardinalidad de datos, o cambiadores de cardinalidad, para evitar cálculos repetitivos al crear datos de salida. La imagen siguiente muestra cómo se combinan estos nodos:
Figura 1. Ejemplo de materialización avanzada
Un ejemplo que muestra cómo se combina un conjunto de nodos conectados para evitar el cálculo repetitivo.
Las etapas definidas como cambiadores de cardinalidad se agrupan en un único artefacto de base de datos. La sentencia SQL para ese artefacto incluye las sentencias para los cambiadores de cardinalidad y sus etapas en sentido ascendente. Otras etapas del flujo utilizan sentencias SELECT simples y no se agrupan.

Esta política se ejecuta de forma similar a Generar SQL anidado, pero supera a otras políticas cuando un flujo tiene un número promedio alto de enlaces por etapa.

Enlazar como vista

Todos los enlaces de un flujo se materializan como vistas y los datos intermedios se eliminan después de la ejecución.

Enlazar como tabla

Todos los enlaces de un flujo se materializan como tablas y los datos intermedios se eliminan después de la ejecución. Esta política se ejecuta de forma similar a Generar SQL anidado porque el motor de base de datos aplica algoritmos de optimización internos cuando crea tablas de salida. La consulta de datos intermedios tiene menos impacto en el rendimiento que en Enlazar como vista.

Elección de una política

En los casos en los que los flujos tienen varias tablas de salida para compilar en paralelo, la política Avanzada puede funcionar mejor que Generar SQL anidado, lo que es mejor en la mayoría de los casos. El rendimiento de estas políticas también varía en función del motor de base de datos.