Agregar transformaciones SQL
Puede incluir tablas basadas en SQL en tareas de transformación. Una transformación SQL le permite introducir una consulta SQL SELECT en una canalización de datos para definir transformaciones simples o complejas. Puede dejar que el asistente de SQL genere una consulta a partir de una solicitud de texto utilizando IA generativa. También puede utilizar macros para adaptar la consulta para que se ejecute si se realiza una carga inicial o incremental.
Para más información sobre crear una tarea de transformación, vea Transformar datos.
Agregar una transformación SQL
Para añadir una transformación SQL en una tarea de datos mediante Transformar:
-
En Transformar, seleccione los conjuntos de datos que desee incluir en la consulta y haga clic en Agregar transformación SQL.
Indique el nombre de la transformación en Name. Para más información sobre las demás configuraciones, consulte Configuración.
Haga clic en Agregar cuando esté listo para crear la transformación SQL.
Se muestra Editar transformación SQL.
-
Escriba la consulta que devolverá la tabla basada en SQL en el panel de consultas.
Para más información, vea Editar la consulta SQL.
-
Haga clic en Ejecutar consulta.
Esto recuperará los metadatos y una vista previa de los datos.
-
Revise los parámetros en Parámetros.
Para más información, vea Parámetros.
-
Establezca una clave principal en Metadatos.
Para más información, vea Metadatos.
-
Cuando esté satisfecho con los resultados de la consulta, haga clic en Guardar y cerrar. El conjunto de datos ahora se agrega a la lista de conjuntos de datos y puede obtener una vista previa.
Editar la consulta SQL
Escriba la consulta que devolverá la tabla basada en SQL en el panel de consulta. La consulta solo puede leer de los conjuntos de datos de origen que haya seleccionado, pero puede añadir más conjuntos de datos de origen con Agregar.
-
Puede crear una sentencia para cargar un conjunto de datos desde Objetos. Haga clic en
y, a continuación, en Generar una sentencia select en el editor.
-
Puede copiar el nombre de un conjunto de datos al portapapeles haciendo clic en
y, a continuación, en Copiar.
-
Haga clic en > para mover un conjunto de datos o un nombre de columna al editor.
-
Haga clic en
para buscar y reemplazar texto en el editor.
Si se utiliza una carga incremental, puede usar macros para adaptar la consulta para que se ejecute si se realiza una carga inicial o una carga incremental.
Para más información, vea Utilizar macros para adaptar la consulta al tipo de carga.
Métodos abreviados de teclado
-
Ctrl+F Buscar y reemplazar
-
Ctrl+/ Comentar/descomentar la línea actual
-
Ctrl+Intro Ejecutar la consulta
-
Ctrl+Z Deshacer
-
Ctrl+Y Rehacer
Vista previa de los resultados
Puede acceder a una vista previa de los resultados utilizando una muestra de los datos en Resultados.
Debe tener asignados los siguientes roles para poder acceder a una vista previa de los datos:
-
Puede ver datos en el espacio donde reside la conexión.
-
Puede ver en el espacio donde reside el proyecto.
Se muestran los resultados utilizando una muestra de los datos. Puede establecer cuántas filas de datos incluir en la muestra con Número de filas.
-
Haga clic en Última consulta ejecutada para ver la última hora de ejecución y la duración de la última consulta ejecutada.
Filtrar los resultados
Puede filtrar los resultados por una o más columnas.
-
Haga clic en
en la primera columna para filtrar y luego en Filtrar.
Seleccione qué operador usar y qué valor usar para filtrar.
Puede añadir más filtros de columna haciendo clic en Añadir filtro.
El filtro solo afectará a los datos de muestra existentes.
Ordenar los resultados
Puede ordenar la muestra de datos por una columna específica.
-
Haga clic en
en la columna por la que desea ordenar y, a continuación, en Orden ascendente u Orden descendente.
La ordenación solo afectará a los datos de muestra existentes. Si utilizó un filtro para incluir únicamente pedidos de 2024 e invierte el orden de clasificación, los datos de muestra seguirán conteniendo solo pedidos de 2024.
Administrar las columnas mostradas
Puede seleccionar qué columnas mostrar en los resultados. La selección no se guarda al guardar la transformación.
-
Oculte una columna haciendo clic en
en la columna y después en Ocultar columna.
-
Gestione la visualización de todas las columnas haciendo clic en
en cualquier columna y después en Columnas mostradas.
Parámetros
Haga clic en Parámetros para cambiar los parámetros en la consulta SELECT. Los parámetros deben asignarse a los objetos de origen o de destino.
Los parámetros se asignan automáticamente cuando:
-
Utilice Generar una sentencia select en el editor en Objetos.
-
Haga clic en > para mover un conjunto de datos o un nombre de columna al editor.
-
Un nombre de parámetro coincide con un nombre de tabla de las tablas en Objetos.
Puede asignarlas a
-
Estructuras de historial tipo 2 (_history)
-
Estructuras actuales
-
Objetos de destino
Solo puede asignar objetos de destino cuando se define un parámetro dentro de una macro incremental.
Metadatos
Puede editar la configuración de metadatos en Metadatos.
-
Establezca las claves principales en la columna Clave.
-
Defina si la columna admite nulos en la columna Anulable.
-
Seleccione una columna y haga clic en Editar para establecer el nombre de la columna, la clave, los valores anulables y el tipo de datos.
Ejecutar la consulta
Puede ejecutar la consulta en cualquier momento durante el desarrollo haciendo clic en Ejecutar consulta. La primera vez que ejecute una consulta, se recuperarán los metadatos. Cuando se ejecuta la consulta, puede ir a Metadatos y establecer una clave principal, que es necesaria para que la transformación se complete.
Utilizar macros para adaptar la consulta al tipo de carga
Si se utiliza una carga incremental, puede usar macros para adaptar la consulta para que se ejecute si se realiza una carga inicial o una carga incremental.
Seleccione la macro y agregue la consulta dentro de la cláusula respectiva.
-
Q_RUN_INCREMENTAL agrega una cláusula donde puede colocar una consulta que solo se ejecuta cuando se realiza una carga incremental.
-
Q_RUN_INITIAL_LOAD agrega una cláusula donde puede colocar una consulta que solo se ejecuta cuando se realiza una carga inicial.
No es necesario especificar la consulta completa con cada macro. Puede ajustar o agregar código según su caso de uso.
Caso de uso: Filtro incremental usando rango de fechas:
En este caso de uso, es necesario transformar un conjunto de datos de pedidos con SQL personalizado. Dado que se trata de un conjunto de datos grande, desea incluir un filtrado incremental para garantizar que la carga incremental solo considere los pedidos de las últimas 12 horas.
Esta es la consulta base:
Este es el filtro que se aplicará durante la ejecución incremental, donde solo se consideran los pedidos que se agregaron en las últimas 12 horas:
Esta es la consulta completa, usando la macro de filtro y con los nombres de las tablas reemplazados por la notación ${TABLE}:
Esto da como resultado una consulta de carga inicial:
Y una consulta de carga incremental:
Caso de uso: Filtro incremental utilizando datos en el destino:
En este caso de uso, es necesario transformar un conjunto de datos de pedidos con SQL personalizado. Dado que los pedidos constituyen un conjunto de datos extenso, deseamos incluir filtrado incremental para garantizar que la carga incremental solo considere los registros de detalles del pedido que sean más recientes que los datos de la tabla de destino. También deseamos marcar si una fila fue procesada por la carga inicial o una carga incremental.
Esta es la consulta base:
Este es el filtro que se aplicará durante la ejecución incremental. “ORDERS_DERIVED” es el nombre del conjunto de datos de destino.
Esta es la consulta completa, que utiliza la macro de filtro y con los nombres de las tablas reemplazados por la notación {TABLE}. LOADED_BY se establece en INIT si la carga es inicial y en INCR si la carga es incremental:
Esto da como resultado una consulta de carga inicial:
Y una consulta de carga incremental:
Configuración
Haga clic en para editar la configuración de la transformación SQL.
Indique un nombre para el conjunto de datos de destino en Nombre.
También puede agregar una descripción más extensa en Descripción.
En Materialización, seleccione si la salida transformada deberá materializarse o no. Puede optar por heredar las opciones de configuración de la tarea de datos.
-
Activado creará tablas y gestionará el procesamiento ELT asociado.
-
Desactivado creará vistas que realizarán transformaciones sobre la marcha.
En Almacén de datos históricos (Tipo 2), seleccione si desea conservar los datos históricos. Puede optar por heredar las opciones de configuración de la tarea de datos. Este ajuste requiere que la Materialización esté habilitada.
La carga incremental le permite ajustar la consulta para una carga de datos incremental mediante la aplicación de filtros u otras condiciones para reducir el conjunto de datos que se procesan mediante macros. La carga incremental solo está disponible si los datos se materializan como tablas.
-
Cuando la carga incremental está activa
La primera ejecución de la tarea realizará una carga inicial, insertando todos los resultados de la consulta en su tabla de destino. Las ejecuciones posteriores ejecutarán cargas incrementales aprovechando filtros o condiciones específicas que haya definido para el procesamiento incremental. Durante la carga incremental, la tarea sólo procesará datos como una actualización o una inserción; las eliminaciones no se administran.
-
Cuando la carga incremental está desactivada
La primera ejecución de la tarea realizará una carga inicial, insertando todos los resultados de la consulta en su tabla de destino. Las ejecuciones posteriores procesarán todos los resultados de la consulta comparándolos con su tabla de destino y procesando los registros nuevos, modificados o eliminados.
Prácticas recomendadas
-
Cuando agrega una transformación SQL, la clave principal no se define automáticamente. Agregue una clave al conjunto de datos en la pestaña Conjunto de datos.
-
No cree encabezados de columna en el resultado de salida transformado manualmente.
-
Evite usar SELECT con *, ya que esto puede hacer que devuelva columnas diferentes cada vez que se ejecuta la consulta. Si hubo un cambio en el esquema, cambie la consulta de manera acorde y ejecute Describir la tabla de nuevo. A continuación ya puede editar las columnas y ajustar las tablas.