El canvas
Añadir nodos
Sección titulada «Añadir nodos»Tres formas, todas equivalentes:
- Arrastra un ítem de la palette al canvas.
- Haz clic en un ítem de la palette — el nodo cae tras el último, ya organizado.
- Doble clic en el canvas vacío para una búsqueda de adición rápida; escribe, pulsa Enter.
Pulsa / en cualquier lugar para enfocar la búsqueda de la palette.
Tipos de nodo
Sección titulada «Tipos de nodo»| Nodo | Compila a | Inputs |
|---|---|---|
| Source | input, o un with de join/union |
ninguno |
| Transformation | una entrada de transformations |
uno (dos para join y union) |
| Validation rule | una entrada de validations.rules — una caja por regla |
uno |
| Quality destination | validations.report o validations.outputs.valid/.invalid |
ninguno — es una declaración |
| Destination | una entrada de outputs |
uno |
| Note | nada | ninguno |
Un nodo muestra su parámetro más significativo bajo el título — la condición de un filter, la expresión de una columna calculada, el tipo y la clave del join — así que un Job es legible sin abrir nada.
Destinos de calidad
Sección titulada «Destinos de calidad»El bloque validations escribe hasta tres datasets propios, y cada uno es una caja que
añades desde la sección Quality de la palette — no algo que conectas con una arista:
| Ítem de la palette | Compila a |
|---|---|
| Quality report | validations.report — una fila por regla |
| Quarantine — valid rows | validations.outputs.valid |
| Quarantine — invalid rows | validations.outputs.invalid |
No aceptan conexiones: el bloque validations es uno por Job, así que pertenecen al
Job, no a una regla concreta. Suelta uno en cualquier lugar del canvas y compila. Un Job
admite uno de cada; un segundo es un error, igual que un destino de calidad sin ninguna
regla de validación que lo alimente.
on_failure no es un destino y sigue en la configuración del Job: decide si una
violación aborta la ejecución.
Conectar
Sección titulada «Conectar»Arrastra del handle derecho de un nodo al handle izquierdo del siguiente. Las conexiones se validan mientras dibujas: Studio rechaza un link hacia una source, un self-link y cualquier cosa que crearía un ciclo.
Cada input handle recibe una conexión. Soltar una segunda reemplaza la primera, que es la forma más rápida de empalmar un nodo fuera de una cadena.
Desde el teclado: enfoca un nodo, pulsa C, Tab hasta el destino, luego C de nuevo. Escape cancela. La toolbar del nodo tiene las mismas acciones en Connect to….
Ramificar a varios destinos
Sección titulada «Ramificar a varios destinos»Conecta el mismo nodo a dos destinos y el grafo se ramifica. Todo antes del fork queda en el transformations principal; todo después pertenece a ese destino.
source → filter → cast ─┬─→ group_by → delta ← group_by es el propio de la salida delta └─→ parquet ← filter y cast son compartidosJoins y unions
Sección titulada «Joins y unions»Estos nodos tienen dos inputs. El de la izquierda continúa la cadena principal; el de la derecha toma la segunda fuente.
┌── delta(customers) → filter → select ──┐ ← with + with_transformationssource → filter ─┴──────────────────────────────────────→ join → destinationTodo entre la fuente lateral y el join se vuelve with_transformations, aplicado al lado derecho antes de que el join corra.
Silenciar y borrar
Sección titulada «Silenciar y borrar»Silencia una transformación (el ojo de la toolbar, o el menú del inspector) para mantenerla en el canvas excluyéndola del JSON compilado — la forma más rápida de probar si un paso es el problema, sin perder su configuración.
Borrar quita el nodo y sus conexiones en un solo paso de undo.
Shift+Ctrl/⌘+L re-ejecuta el layout automático: de izquierda a derecha, cadenas laterales apiladas bajo el nodo que alimentan. Las posiciones se guardan con el Job, así que un grafo ordenado sigue ordenado.
Teclado
Sección titulada «Teclado»| Atajo | Acción |
|---|---|
| Ctrl/⌘+K | Command palette |
| Ctrl/⌘+S | Guardar ahora (las ediciones autoguardan igual) |
| Ctrl/⌘+Z / Shift+Ctrl/⌘+Z | Deshacer / rehacer |
| Ctrl/⌘+D | Duplicar selección |
| Delete | Quitar selección |
| Ctrl/⌘+Enter | Panel Run |
| Ctrl/⌘+J | Panel JSON |
| Ctrl/⌘+/ | Asistente de IA |
| Ctrl/⌘+E | Panel Issues |
| Shift+Ctrl/⌘+L | Auto-layout |
| C | Iniciar / completar una conexión desde el nodo enfocado |
| / | Enfocar la búsqueda de la palette |
El panel de issues
Sección titulada «El panel de issues»El lint corre mientras escribes. Reporta lo que es estáticamente decidible y se queda callado sobre el resto — un falso positivo cuesta más que una advertencia ausente.
| Severidad | Ejemplos |
|---|---|
| Error | sin destino; un nodo huérfano; un campo obligatorio vacío; merge sin merge_keys; un destino binary (formato de solo lectura); dos entradas principales a un nodo |
| Warning | un collect sin checkpoint aguas arriba; un {{variable}} que nadie publica; un {param} nunca declarado; dos destinos escribiendo el mismo path; una union posicional |
| Info | un nodo debug dejado en el Job; sin bloque de validations |
Haz clic en cualquier issue para seleccionar el nodo y saltar al campo problemático.
Guardar
Sección titulada «Guardar»Las ediciones autoguardan un instante después de que dejas de escribir; la status bar muestra Saved o Unsaved. Ctrl/⌘+S lo fuerza. Cerrar un Job descarga lo pendiente, así que navegar a otro lado nunca pierde las últimas teclas.
El historial de undo cubre cambios estructurales y ediciones de campo, agrupando la escritura rápida en un solo paso, para que un único undo retroceda una palabra en vez de un carácter.