Ir al contenido

Combina la inserción y la actualización en una sola operación, basada en una o más columnas que usted designa como clave de coincidencia. Para cada fila del origen: si existe una fila coincidente en el destino (con los mismos valores de clave), se actualiza; de lo contrario, se inserta una fila nueva.

Úselo cuando tenga un flujo de datos incremental que incluya tanto registros nuevos como revisiones de registros existentes: actualizaciones de ventas, cambios en los registros de empleados o cualquier escenario de “reflejar siempre el estado más reciente”. Especifique con cuidado las columnas de coincidencia: las filas que comparten los valores de clave pero difieren en otros se sobrescribirán, por lo que una mala elección de clave puede dañar los datos sin que se note.

destino (existente)id 1 · Aid 2 · Borigen (incremental)id 2 · B′id 3 · Ccoincidencia por idresultadoid 1 · Aconservadoid 2 · B′actualizadoid 3 · Cinsertado
Upsert combina el origen con el destino mediante la clave de coincidencia: una clave existente se actualiza (id 2 → B′) y una clave nueva se inserta (id 3). Elija la clave con cuidado: las filas que la comparten se sobrescriben.

Origen y destino

Para establecer las tablas de origen y de destino, seleccione primero la tabla de datos de la que se extraerá en el menú desplegable Tabla de origen. A continuación, seleccione una tabla existente como tabla de destino en el menú desplegable Tabla de destino.

Table Upsert

El asignador de datos se usa para asignar las columnas de los datos de origen a la tabla de datos de destino.

El botón de menú Inspeccionar origen ofrece otras formas de asignar columnas del origen al destino:

  • Rellenar ambas tablas de asignación: propaga todos los valores de la tabla de datos de origen a la tabla de datos de destino. Es lo que se hace de forma predeterminada.
  • Rellenar solo la tabla de asignación de origen: asigna únicamente todos los valores de la tabla de datos de origen. Resulta útil al modificar un flujo de trabajo existente cuando ha cambiado la estructura de columnas del origen.
  • Rellenar solo la tabla de asignación de destino: propaga todos los valores únicamente a la tabla de datos de destino.

Si las opciones de columnas de origen y de destino no bastan, se pueden agregar otras columnas a la tabla de datos de destino de varias maneras:

  • Propagar todo inserta todas las columnas de origen en la tabla de datos de destino, existieran ya o no.
  • Propagar seleccionadas inserta únicamente las columnas de origen seleccionadas.
  • Haga clic con el botón derecho en el lado del destino y seleccione Insertar fila para insertar una fila justo encima de la fila seleccionada.
  • Haga clic con el botón derecho en el lado del destino y seleccione Anexar fila para insertar una fila al final (en el extremo derecho) de la tabla de datos de destino.

Para eliminar columnas de la tabla de datos de destino, seleccione las columnas deseadas, haga clic con el botón derecho y seleccione Eliminar.

Para reorganizar las columnas de la tabla de datos de destino, seleccione las columnas deseadas. Puede usar cualquiera de estas opciones:

  • Flechas de movimiento masivo: seleccione la opción de movimiento deseada con las flechas de la parte superior derecha.
  • Menú contextual: haga clic con el botón derecho y seleccione Mover al principio, Subir, Bajar o Mover al final.

Reducir el resultado a registros distintos únicamente

Sección titulada «Reducir el resultado a registros distintos únicamente»

Para devolver solo opciones distintas, seleccione la opción de menú Distinto. Se activará un conjunto de casillas para cada columna del origen. Basta con marcar la casilla junto a la columna correspondiente para devolver solo resultados distintos.

Según la situación, quizá convenga considerar el uso de la sumarización en su lugar.

El proceso de distinción conserva el primer registro único que encuentra y descarta el resto. Si la coherencia entre ejecuciones es importante, quizá le convenga ordenar los datos.

La cuadrícula de columnas de destino tiene una columna Clave de actualización, justo después del nombre de la columna de destino. Márquela en las columnas que juntas identifican una fila: una fila de origen cuyos valores de clave coinciden con los de una fila que ya está en el destino actualiza esa fila, y cualquier otra fila de origen se inserta.

Todas las columnas empiezan marcadas, así que desmarque las columnas que no forman parte de la clave. Una columna sin ajuste de clave de actualización (una que acaba de agregar la función de rellenar, o una guardada mediante la API sin él) cuenta como clave. Al menos una columna debe permanecer marcada.

Filtros de datos de la tabla

Para ofrecer la máxima flexibilidad, hay filtros de datos disponibles tanto para los datos de origen como para los datos de destino. En conjuntos de datos grandes, puede ser especialmente beneficioso filtrar filas en el origen para que las operaciones restantes se realicen sobre un conjunto de datos más pequeño.

Seleccionar un subconjunto de datos

Este tipo de filtro permite filtrar los datos de origen entrantes según las condiciones especificadas.

Aplicar un filtro secundario a los datos resultantes

Este tipo de filtro permite aplicar un filtro a los datos resultantes posteriores a la transformación según las condiciones especificadas. La posibilidad de aplicar un filtro sobre el resultado transformado permite realizar exclusiones basadas en los resultados de cálculos complejos, resúmenes o funciones de ventana.

Segmentación final de la tabla de datos (límite)

La capacidad de segmentación de filas permite limitar las filas del conjunto de resultados según un intervalo y un punto de inicio.

Sintaxis de filtros

La sintaxis de filtros utiliza Python SQLAlchemy, que es la misma sintaxis que otras expresiones.

Consulte ejemplos y funciones de expresión en el área de Expresiones.

  • Al menos una clave de actualización. De lo contrario, se rechaza el guardado con At least one target column must be marked as Update Key.
  • La asignación coincide con una tabla de destino existente. Cuando la tabla de destino ya existe, el paso debe asignar todas sus columnas, no asignar ninguna columna que la tabla no tenga y dar a cada columna el tipo de la tabla, de modo que un upsert no pueda eliminar una columna de la tabla, con sus datos, ni cambiar el tipo de una columna. Numérico y moneda cuentan como el mismo tipo. El rechazo nombra cada diferencia, por ejemplo The target columns must match the existing target table ‘customers’. The table has columns the step doesn’t map: region. Una tabla de destino que todavía no existe, o una nombrada con una variable, se comprueba cuando se ejecuta el paso.
  • Una asignación vacía se rellena por usted. Si guarda con una tabla de origen elegida pero sin columnas de origen o de destino, el lado vacío se rellena a partir del origen, como haría Rellenar ambas tablas de asignación.