Actividad de Upsert de Base de Datos
Introducción
Una actividad de Upsert de Base de Datos, utilizando su conexión de Base de Datos, actualiza tanto los datos existentes como inserta nuevos datos en una base de datos configurada y está destinada a ser utilizada como un objetivo para consumir datos en una operación.
La actividad de Upsert se utiliza para actualizar registros que ya existen y crear los que no. Si en su lugar solo desea insertar nuevos registros, utilice una actividad de Insertar en Base de Datos, o si desea actualizar registros existentes, utilice una actividad de Actualizar en Base de Datos.
Crear una actividad de Upsert de Base de Datos
Una instancia de una actividad de Upsert de Base de Datos se crea a partir de una conexión de Base de Datos utilizando su tipo de actividad Upsert.
Para crear una instancia de una actividad, arrastre el tipo de actividad al lienzo de diseño o copie el tipo de actividad y péguelo en el lienzo de diseño. Para más detalles, consulte Crear una instancia de actividad o herramienta en Reutilización de componentes.
Una actividad de Upsert de Base de Datos existente se puede editar desde estas ubicaciones:
-
El lienzo de diseño (consulte Menú de acciones de componentes en Lienzo de diseño).
-
La pestaña Componentes del panel del proyecto (consulte Menú de acciones de componentes en Pestaña de Componentes del panel del proyecto).
Configurar una actividad de Upsert de Base de Datos
Siga estos pasos para configurar una actividad de Upsert de Base de Datos:
-
Para realizar un upsert de un solo objeto, sin uniones, consulta Upsert de un solo objeto.
-
Para realizar un upsert de múltiples objetos, con uniones, consulta Upsert de múltiples objetos.
Upsert de un solo objeto
Sigue estos pasos si el upsert de la base de datos es para un solo objeto y no necesitas crear uniones con otros objetos. Si necesitas unir múltiples objetos, consulta en su lugar Upsert de múltiples objetos.
Paso 1: Ingresa un nombre y selecciona un objeto
-
Nombre: Ingresa un nombre para identificar la actividad de la base de datos. El nombre debe ser único para cada actividad de Upsert de la base de datos y no debe contener barras inclinadas (
/) ni dos puntos (:). -
Proporciona la referencia de los nombres de las tablas: Esta sección muestra las tablas disponibles en el punto final de la base de datos utilizando cualquier filtro aplicado, después de usar el ícono de refresco para la carga inicial de objetos. Si hay un gran número de objetos en la base de datos, se recomienda filtrar los objetos utilizando Ver o Buscar antes de refrescar.
-
Ver: Usa el menú desplegable para filtrar la lista de objetos mostrados a uno de "Tablas, Vistas", "Tablas", "Vistas", o "Tablas del Sistema". Por defecto, se muestra la vista "Tablas, Vistas".
-
Buscar: Ingresa el valor de cualquier columna en el cuadro de búsqueda para filtrar la lista de objetos. La búsqueda no distingue entre mayúsculas y minúsculas. La lista de objetos puede filtrarse automáticamente o puede que necesites refrescar la lista, dependiendo de si los objetos ya han sido recuperados:
-
Si buscas en objetos que ya han sido recuperados de la base de datos y ya aparecen en la lista, cualquier término de búsqueda escrito en el cuadro de búsqueda filtra automáticamente la lista.
-
Si se busca en objetos que aún no se han recuperado, por ejemplo, al intentar limitar el número de objetos recuperados para bases de datos con un gran número de objetos, utiliza el ícono de refresco junto al cuadro de búsqueda para obtener los objetos de la base de datos utilizando el filtro.
Nota
Para bases de datos que no admiten la búsqueda en objetos, como Microsoft Access, no se devuelven resultados.
-
-
Refrescar: Haz clic en el ícono de refresco para cargar o recargar tablas desde el punto final de la base de datos. Esto debe usarse para la carga inicial de cualquier objeto. Además, también puede ser útil si has agregado recientemente objetos a la base de datos, o si tienes criterios de búsqueda adicionales que deseas aplicar antes de recuperar objetos de la base de datos.
-
Permitir la truncación de campos de caracteres para evitar errores de longitud de campo: Selecciona esta casilla para permitir que los campos se trunquen según sea necesario si el campo de destino es más pequeño que el campo de origen. Está desmarcada por defecto para nuevas actividades creadas después de la versión 11.39 de Harmony. Cuando esta casilla se deja desmarcada y datos excesivos pasan, se informa un estado de operación Error. Si la casilla está seleccionada, se informa un estado de Éxito con Información en su lugar, y los registros de operación dirán que
Uno o más valores fueron truncados al insertar y/o actualizar el campo. -
Incluir el esquema/propietario en los nombres de las tablas: Selecciona esta casilla para incluir el esquema en los nombres de las tablas. Esto puede ser útil si utilizas el mismo nombre de tabla en múltiples esquemas (como para desarrollo y producción) para permitirte ver y seleccionar la tabla en el esquema correcto.
-
Proporcionar la referencia de los nombres de las tablas: La lista de objetos se muestra en una columna a la izquierda. Haz clic en un solo objeto para agregarlo a la tabla a la derecha. Si estás actualizando o insertando en múltiples objetos que necesitan ser unidos, consulta Inserción de múltiples objetos.
Consejo
Si la lista no se llena con los objetos disponibles incluso después de aplicar un filtro, la conexión a la base de datos puede no haber sido exitosa. Asegúrate de estar conectado volviendo a abrir la conexión y volviendo a probar las credenciales.
-
Tabla de objetos seleccionados: El objeto seleccionado se muestra en una tabla a la derecha. Las columnas de esta tabla no son relevantes para Upserts de un solo objeto o upserts y no se pueden editar.
-
-
Guardar y salir: Si está habilitado, haz clic para guardar la configuración de este paso y cerrar la configuración de la actividad.
-
Siguiente: Haz clic para almacenar temporalmente la configuración de este paso y continuar al siguiente paso. La configuración no se guardará hasta que hagas clic en el botón Finalizado en el último paso.
-
Descartar cambios: Después de realizar cambios, haz clic para cerrar la configuración sin guardar los cambios realizados en ningún paso. Un mensaje te pide que confirmes que deseas descartar los cambios.
Paso 2: Seleccionar claves de upsert
-
Seleccionar claves: Selecciona las casillas de verificación de los campos que deseas usar como claves de Upsert. También puedes seleccionar un objeto completo para seleccionar todos sus campos a la vez. La(s) clave(s) de Upsert son el/los campo(s) utilizados para identificar qué registros existentes necesitan ser Upsertados. Cualquier campo que se seleccione para ser utilizado como clave de Upsert se lista a la derecha.
-
Atrás: Haz clic para almacenar temporalmente la configuración de este paso y regresar al paso anterior.
-
Siguiente: Haz clic para almacenar temporalmente la configuración de este paso y continuar al siguiente paso. La configuración no se guardará hasta que hagas clic en el botón Finalizado en el último paso.
-
Descartar cambios: Después de realizar cambios, haz clic para cerrar la configuración sin guardar los cambios realizados en ningún paso. Un mensaje te pide que confirmes que deseas descartar los cambios.
Paso 3: Revisar el esquema de datos
-
Esquema de datos: El esquema de datos de destino se muestra. Si la operación utiliza una transformación, los esquemas de datos se muestran nuevamente más adelante durante el proceso de mapeo de transformación, donde puedes mapear a campos de destino utilizando objetos de origen, scripts, variables, valores personalizados y más.
Nota
Los datos se transfieren tal como se proporcionan. Si hay discrepancias en la longitud de los datos entre los campos de origen y destino, se pueden usar Funciones de cadena para recortar los datos.
Nota
Para actualizar un esquema de datos en una actividad existente, se debe avanzar a través de cada paso de configuración de la actividad nuevamente, realizando al menos un cambio (como agregar y eliminar un carácter del final del nombre de la actividad) para forzar una actualización del esquema.
-
Atrás: Haga clic para almacenar temporalmente la configuración de este paso y regresar al paso anterior.
-
Finalizado: Haga clic para guardar la configuración de todos los pasos y cerrar la configuración de la actividad.
-
Descartar cambios: Después de realizar cambios, haga clic para cerrar la configuración sin guardar los cambios realizados en ningún paso. Un mensaje le pide que confirme que desea descartar los cambios.
Inserción múltiple de objetos
Siga estos pasos si la inserción o actualización de la base de datos es para múltiples objetos y necesita crear uniones entre ellos. Para insertar o actualizar solo a un único objeto, sin uniones, consulte Inserción de un solo objeto.
Paso 1: Ingrese un nombre y seleccione objetos
-
Nombre: Ingrese un nombre para identificar la actividad de la base de datos. El nombre debe ser único para cada actividad de Inserción de base de datos y no debe contener barras diagonales (
/) ni dos puntos (:). -
Proporcione la referencia de los nombres de las tablas: Esta sección muestra las tablas disponibles en el punto final de la base de datos utilizando cualquier filtro aplicado, después de usar el ícono de actualización para la carga inicial de objetos. Si hay un gran número de objetos en la base de datos, se recomienda filtrar los objetos utilizando Ver o Buscar antes de actualizar.
-
Ver: Utiliza el menú desplegable para filtrar la lista de objetos mostrados a uno de "Tablas, Vistas", "Tablas", "Vistas", o "Tablas del Sistema". Por defecto, se muestra la vista "Tablas, Vistas".
-
Buscar: Ingresa el valor de cualquier columna en el cuadro de búsqueda para filtrar la lista de objetos. La búsqueda no distingue entre mayúsculas y minúsculas. La lista de objetos puede filtrarse automáticamente o puede que necesites actualizar la lista, dependiendo de si los objetos ya han sido recuperados:
-
Si buscas objetos que ya han sido recuperados de la base de datos y ya aparecen en la lista, cualquier término de búsqueda escrito en el cuadro de búsqueda filtra automáticamente la lista.
-
Si buscas objetos que aún no han sido recuperados, por ejemplo, al intentar limitar el número de objetos recuperados para bases de datos con un gran número de objetos, utiliza el ícono de actualización junto al cuadro de búsqueda para obtener los objetos de la base de datos utilizando el filtro.
Nota
Para bases de datos que no soportan la búsqueda de objetos, como Microsoft Access, no se devuelven resultados.
-
-
Actualizar: Haz clic en el ícono de actualización para cargar o recargar tablas desde el punto final de la base de datos. Esto debe usarse para la carga inicial de cualquier objeto. Además, también puede ser útil si has agregado recientemente objetos a la base de datos, o si tienes criterios de búsqueda adicionales que deseas aplicar antes de recuperar objetos de la base de datos.
-
Permitir truncamiento de campos de caracteres para evitar errores de longitud de campo: Selecciona esta casilla para permitir que los campos se trunquen según sea necesario si el campo de destino es más pequeño que el campo de origen. Está desmarcada por defecto. Cuando esta casilla se deja desmarcada y datos excesivos pasan, se muestra un estado de Error. Si la casilla está seleccionada, se muestra un estado de Éxito con Información en su lugar, y los registros de operaciones dirán que
Uno o más valores fueron truncados al insertar y/o actualizar el campo. -
Incluir el esquema/propietario en los nombres de las tablas: Selecciona esta casilla para incluir el esquema en los nombres de las tablas. Esto puede ser útil si utilizas el mismo nombre de tabla en múltiples esquemas (como para desarrollo y producción) para permitirte ver y seleccionar la tabla en el esquema correcto.
-
Proporcionar la referencia de los nombres de las tablas: La lista de objetos se muestra en una columna a la izquierda. Haz clic en los objetos uno a la vez para agregarlos a la tabla a la derecha. Se puede seleccionar cualquier combinación de tablas, vistas y/o tablas del sistema. Si en su lugar necesitas hacer un Upsert de un solo objeto sin uniones, consulta Upsert de un solo objeto.
Consejo
Si la lista no se llena con los objetos disponibles incluso después de aplicar un filtro, la Conexión a la base de datos puede no haber sido exitosa. Asegúrate de estar conectado volviendo a abrir la conexión y volviendo a probar las credenciales.
-
Tabla de objetos seleccionados: Los objetos seleccionados se muestran en una tabla a la derecha. Cada columna se detalla a continuación:
-
Tabla: El nombre del objeto seleccionado, una tabla, vista o tabla del sistema.
Nota
Los nombres de las tablas con caracteres especiales como
+no son compatibles con esta actividad. -
Padre: En cada objeto hijo que se une, utiliza el menú desplegable para seleccionar el nombre del objeto que debe ser el padre. Esto es necesario para hacer cumplir la integridad transaccional de un objeto, así como para derivar la(s) clave(s) de enlace para un objeto hijo.
-
Tipo de unión: En cada objeto hijo que se une, un menú desplegable se vuelve disponible después de que hayas asignado Claves de Enlace (cubierto a continuación). Utiliza el menú desplegable para establecer el tipo de relación entre los objetos seleccionados:
-
Uno o más: Este tipo de unión requiere que cada registro padre tenga al menos 1 registro hijo, y posiblemente más registros hijos.
-
Solo uno: Este tipo de unión requiere que cada registro padre tenga 1 y solo 1 registro hijo.
-
Cero o más: Este tipo de unión permite que cada registro padre tenga 0 o más registros hijos.
-
Cero o uno: Este tipo de unión permite que cada registro padre tenga 0 registros hijos o solo 1 registro hijo.
-
-
Claves de enlace: En cada objeto hijo que se une, una vez que se selecciona un objeto como Padre, aparece un enlace rojo Asignar dentro de este campo. Haz clic en Asignar para abrir una ventana separada donde puedes asignar las claves de enlace.
-
Objeto padre: El objeto padre y la lista de campos se muestran en la columna izquierda. Cualquier campo utilizado como clave primaria dentro de la base de datos está indicado por un ícono de clave . Si tienes un gran número de campos, puedes usar el cuadro de búsqueda para filtrar los campos por nombre.
-
Objeto hijo: El objeto hijo y la lista de campos se muestran en la columna derecha. Si tienes un gran número de campos, puedes usar el cuadro de búsqueda para filtrar los campos por nombre.
-
Asignar clave(s) de enlace: Para asignar un campo como clave de enlace, arrastra un campo del objeto padre a la izquierda a un campo dentro del objeto hijo a la derecha, o viceversa. Para asignar múltiples claves de enlace, repite este proceso.
-
Desasignar clave(s) de enlace: Para desasignar claves de enlace, haz clic en cualquier campo que ya haya sido vinculado. Los campos vinculados se deseleccionan.
-
Comenzar de nuevo: Para borrar todas las claves de enlace asignadas, haz clic en Comenzar de nuevo ubicado debajo de la lista de padres a la izquierda.
-
Finalizar: Haz clic en Finalizar para guardar las claves de enlace asignadas y cerrar la ventana. Bajo Claves de enlace, ahora deberías ver el número de claves de enlace asignadas, que puedes hacer clic para reabrir la ventana de asignación de claves de enlace. Además, el menú desplegable Tipo de unión se vuelve disponible para que configures el tipo de relación (cardinalidad) entre los objetos seleccionados.
-
-
Eliminar: Para eliminar un objeto seleccionado de la tabla, pasa el cursor sobre la columna más a la derecha y haz clic en el ícono de eliminar .
-
-
-
Guardar y salir: Si está habilitado, haz clic para guardar la configuración de este paso y cerrar la configuración de la actividad.
-
Siguiente: Haz clic para almacenar temporalmente la configuración de este paso y continuar al siguiente paso. La configuración no se guardará hasta que hagas clic en el botón Finalizado en el último paso.
-
Descartar Cambios: Después de realizar cambios, haz clic para cerrar la configuración sin guardar los cambios realizados en ningún paso. Un mensaje te pide que confirmes que deseas descartar los cambios.
Paso 2: Seleccionar claves de upsert
-
Seleccionar claves: Selecciona las casillas de verificación de cualquier campo que desees usar como claves de Upsert. También puedes seleccionar un objeto completo para seleccionar todos sus campos a la vez. La(s) clave(s) de Upsert son el(los) campo(s) utilizados para identificar qué registros existentes necesitan ser Upsertados. Cualquier campo que se seleccione para ser utilizado como clave de Upsert se lista a la derecha.
-
Atrás: Haz clic para almacenar temporalmente la configuración de este paso y regresar al paso anterior.
-
Siguiente: Haz clic para almacenar temporalmente la configuración de este paso y continuar al siguiente paso. La configuración no se guardará hasta que hagas clic en el botón Finalizado en el último paso.
-
Descartar Cambios: Después de realizar cambios, haz clic para cerrar la configuración sin guardar los cambios realizados en ningún paso. Un mensaje te pide que confirmes que deseas descartar los cambios.
Paso 3: Revisar el esquema de datos
-
Esquema de Datos: El esquema de datos de destino se muestra. Si la operación utiliza una transformación, los esquemas de datos se mostrarán nuevamente más adelante durante el proceso de mapeo de transformación, donde puedes mapear a campos de destino utilizando objetos de origen, scripts, variables, valores personalizados y más.
Nota
Para actualizar un esquema de datos en una actividad existente, debes avanzar a través de cada paso de configuración de actividad nuevamente, realizando al menos un cambio (como agregar y eliminar un carácter del final del nombre de la actividad) para forzar una actualización del esquema.
-
Atrás: Haz clic para almacenar temporalmente la configuración de este paso y regresar al paso anterior.
-
Finalizado: Haz clic para guardar la configuración de todos los pasos y cerrar la configuración de la actividad.
-
Descartar cambios: Después de realizar cambios, haz clic para cerrar la configuración sin guardar los cambios realizados en ningún paso. Un mensaje te pide que confirmes que deseas descartar los cambios.
Próximos pasos
Después de configurar una actividad de Upsert de base de datos, puedes usarla dentro de una operación o script como se describe a continuación.
Completar la operación
Después de configurar una actividad de Upsert de base de datos, completa la configuración de la operación añadiendo y configurando otras actividades o herramientas como pasos de la operación. También puedes configurar la configuración de la operación, que incluye la capacidad de encadenar operaciones que están en los mismos o diferentes flujos de trabajo.
Las acciones del menú para una actividad son accesibles desde el panel del proyecto y el lienzo de diseño. Para más detalles, consulta el menú de acciones de actividad en Conceptos básicos de conectores.
Las actividades de Upsert de base de datos pueden usarse como un objetivo con estos patrones de operación:
- Patrón de transformación
- Patrón de dos transformaciones (solo como el segundo objetivo)
Otros patrones no son válidos utilizando actividades de Upsert de base de datos. Consulta los patrones de validación en la página de Validez de operación.
Dentro de una transformación, si se utiliza la opción de reflejar un esquema proporcionada por una actividad de base de datos utilizando una sola tabla (sin uniones), el esquema reflejado resultante se crea automáticamente con un nodo adicional llamado row. Cuando los campos dentro de este nodo adicional se mapean, el nodo se convierte en un nodo de bucle para permitir que todos los registros sean recorridos (consulta Nodos de bucle bajo Estructuras de datos).
Además, si se están uniendo tablas de base de datos, ten en cuenta que los valores de los campos unidos de una tabla hija se establecen de forma predeterminada a los valores de los campos unidos de la tabla padre. Los campos unidos de una tabla hija no se pueden mapear.
Cuando estés listo, despliega y ejecuta la operación y valida el comportamiento revisando los registros de operación.
Usar actividades de base de datos en scripts
Las actividades de Upsert de base de datos también se pueden referenciar en un script para su uso con funciones de script que utilizan un target de base de datos como parámetro, incluyendo estas:
DBLoadDBWrite
Para más detalles sobre cómo referenciar actividades en scripts, consulta Endpoints en Jitterbit Script.
Además, es posible que puedas usar funciones adicionales de base de datos en la transformación. Por ejemplo, al mapear a un objetivo de base de datos, si tienes un objetivo de múltiples tablas con relaciones padre-hijo y estás actualizando o haciendo upsert de datos, puedes usar las funciones de transformación <SQLIDENTITY> y <SEQUENCE>.
<SQLIDENTITY>se utiliza para todas las bases de datos de destino que no son Oracle y que admiten claves de generación de números automáticos o de identidad. Después de que se inserta el padre, el hijo puede heredar el número generado del padre mapeando esta función a la clave foránea en la tabla hija.<SEQUENCE>realiza una acción similar con bases de datos Oracle.
Usar fragmentación
Al usar fragmentación en una operación donde el objetivo es una actividad de base de datos, ten en cuenta que los datos de destino se escriben primero en numerosos archivos temporales (uno para cada fragmento). Estos archivos se combinan luego en un solo archivo de destino, que se envía a la base de datos para inserción/upsert.
Si estableces la variable de Jitterbit jitterbit.target.db.commit_chunks en 1 o true cuando la fragmentación está habilitada, cada fragmento se compromete a la base de datos a medida que se vuelve disponible. Esto puede mejorar significativamente el rendimiento, ya que las inserciones/upserts en la base de datos se realizan en paralelo.
Para obtener instrucciones y mejores prácticas sobre el uso de fragmentación, consulte Opciones de operación.