Cómo exportar e importar datos JSON usando dbForge Data Pump para SQL Server

En artículos anteriores, aprendimos las reglas básicas del diseño de bases de datos SQL, creamos un esquema de base de datos para el servicio de contratación y completamos la nueva base de datos con datos de prueba sobre los empleados.

Figura 1. Esquema de la estructura de la base de datos para el servicio de contratación.

La base de datos contiene los siguientes temas:

  • Empleado
  • La empresa
  • La situación
  • El proyecto
  • Maestría

Esta vez, veamos formas de transferir datos de una base de datos de SQL Server a otra a través de la exportación y la importación. Esto puede ser necesario si el sistema de administración de la base de datos del cliente es una versión más antigua que la fuente de datos. Es decir, si es imposible utilizar una copia de seguridad o si necesita transferir solo una parte de los datos, porque todos los datos pesan demasiado.

Índice

    Exportar datos de SQL Server a JSON mesas

    En primer lugar, la función de exportación de datos está disponible en dbForge Studio para SQL Server, así como en dbForge Data Pump. Cuando se trata de llenar bases de datos SQL con datos de fuentes externas y migrar datos entre sistemas, Data Pump es un complemento que siempre es muy útil.

    Consideremos primero su uso en SSMS.

    Para comenzar, exportemos los datos.

    Para hacer esto, haga clic con el botón derecho en la base de datos que desee en SSMS y seleccione Bomba de datos Exportar datos ў en el menú desplegable:

    Figura 2. Exportar datos SQL usando Data Pump

    Después de eso, aparecerá la ventana de configuración de exportación. En la pestaña "Formato de exportación", puede seleccionar diferentes formatos. Elegimos el formato JSON en nuestro caso para transferir los datos e importarlos a otra base de datos. Luego haga clic en "Siguiente":

    Figura 3. Configure la pestaña Formato de exportación.

    A continuación, en la pestaña "Fuente", debe seleccionar las tablas necesarias para la exportación. En este caso, seleccionamos todas las tablas de usuario y hacemos clic en "Siguiente":

    Figura 4. Instale la pestaña Fuente.

    Después de eso, en la pestaña "Formatos de datos", debe seleccionar las columnas requeridas en la pestaña "Columnas" y configurar los formatos de datos en la pestaña "Formatos". En este caso, seleccionamos todas las columnas y dejamos la configuración de "Formatos" por defecto. Luego haga clic en "Siguiente":

    Figura 5. Configuración de la pestaña Formatos de datos.

    En la pestaña "Configuración de salida", debemos configurar los parámetros de salida de los datos exportados. Aquí dejamos la configuración por defecto y damos clic en “Siguiente”:

    Figura.6. Pestaña "Configuración de salida".

    En la pestaña Filas exportadas, puede ajustar el número de filas exportadas dependiendo de si desea exportar todas las filas o solo una parte determinada de ellas. En este caso, dejamos la configuración por defecto, es decir, exportaremos las cadenas. Ahora haga clic en "Siguiente":

    Figura.7. Configure la pestaña Filas exportadas.

    A continuación, en la pestaña Manejo de errores, puede configurar los ajustes de salida de errores en tiempo de ejecución. Deje la configuración predeterminada. Tenga en cuenta que para uso futuro, puede guardar todas las configuraciones como una plantilla haciendo clic en el botón "Guardar plantilla..." en la esquina inferior izquierda. Ahora debe hacer clic en "Exportar" para comenzar a exportar datos:

    Figura 8. Establezca la pestaña Manejo de errores.

    Durante la exportación, puede ver el proceso de recuperación de datos en la pestaña "Exportar".

    Cuando termine, verá una pestaña "Listo", donde puede cerrar la ventana haciendo clic en "Listo", o ir inmediatamente a la carpeta que contiene los archivos generados haciendo clic en "Abrir la carpeta de resultados...":

    Figura.9. El resultado de la exportación de datos.

    Finalmente, puede ver la carpeta con los datos de la base de datos SQL generados en los archivos JSON:

    Figura.10. Carpeta con los archivos de datos resultantes

    Abramos el contenido del archivo dbo_Employee:

    Figura.11. El contenido del archivo dbo_Employee

    En resumen, exportamos los datos de la nueva base de datos a archivos JSON.

    Tenga en cuenta que la exportación puede ser útil cuando se intercambian datos entre dos tipos de sistemas de administración de bases de datos.

    También es muy conveniente exportar datos a Excel para dar algunos datos a los analistas para la investigación.

    Importar datos JSON a una base de datos de SQL Server

    Ahora copiaremos los datos recibidos al servidor necesario y restauraremos allí la base de datos JobEmpl2.

    Para hacer esto, necesitamos crear una nueva base de datos JobEmpl2 con el mismo esquema que JobEmpl, utilizando el siguiente escenario:

    SET CONCAT_NULL_YIELDS_NULL, ANSI_NULLS, ANSI_PADDING, QUOTED_IDENTIFIER, ANSI_WARNINGS, ARITHABORT, XACT_ABORT ON
    SET NUMERIC_ROUNDABORT, IMPLICIT_TRANSACTIONS OFF
    GO
    
    USE [JobEmpl2]
    GO
    
    IF DB_NAME() <> N'JobEmpl2' SET NOEXEC ON
    GO
    
    --
    -- Start Transaction
    --
    BEGIN TRANSACTION
    GO
    
    --
    -- Create table [dbo].[Skill]
    --
    CREATE TABLE [dbo].[Skill] (
      [SkillID] [int] IDENTITY,
      [SkillName] [nvarchar](255) NOT NULL,
      CONSTRAINT [PK_Skill_SkillID] PRIMARY KEY CLUSTERED ([SkillID])
    )
    ON [PRIMARY]
    GO
    IF @@ERROR<>0 OR @@TRANCOUNT=0 BEGIN IF @@TRANCOUNT>0 ROLLBACK SET NOEXEC ON END
    GO
    
    --
    -- Create table [dbo].[Project]
    --
    CREATE TABLE [dbo].[Project] (
      [ProjectID] [int] IDENTITY,
      [ProjectName] [nvarchar](255) NOT NULL,
      [Description] [nvarchar](max) NOT NULL,
      CONSTRAINT [PK_Project_ProjectID] PRIMARY KEY CLUSTERED ([ProjectID])
    )
    ON [PRIMARY]
    TEXTIMAGE_ON [PRIMARY]
    GO
    IF @@ERROR<>0 OR @@TRANCOUNT=0 BEGIN IF @@TRANCOUNT>0 ROLLBACK SET NOEXEC ON END
    GO
    
    --
    -- Create table [dbo].[ProjectSkill]
    --
    CREATE TABLE [dbo].[ProjectSkill] (
      [ProjectID] [int] NOT NULL,
      [SkillID] [int] NOT NULL,
      CONSTRAINT [PK_ProjectSkill] PRIMARY KEY CLUSTERED ([ProjectID], [SkillID])
    )
    ON [PRIMARY]
    GO
    IF @@ERROR<>0 OR @@TRANCOUNT=0 BEGIN IF @@TRANCOUNT>0 ROLLBACK SET NOEXEC ON END
    GO
    
    --
    -- Create foreign key [FK_ProjectSkill_ProjectID] on table [dbo].[ProjectSkill]
    --
    ALTER TABLE [dbo].[ProjectSkill] WITH NOCHECK
      ADD CONSTRAINT [FK_ProjectSkill_ProjectID] FOREIGN KEY ([ProjectID]) REFERENCES [dbo].[Project] ([ProjectID])
    GO
    IF @@ERROR<>0 OR @@TRANCOUNT=0 BEGIN IF @@TRANCOUNT>0 ROLLBACK SET NOEXEC ON END
    GO
    
    --
    -- Create foreign key [FK_ProjectSkill_SkillID] on table [dbo].[ProjectSkill]
    --
    ALTER TABLE [dbo].[ProjectSkill] WITH NOCHECK
      ADD CONSTRAINT [FK_ProjectSkill_SkillID] FOREIGN KEY ([SkillID]) REFERENCES [dbo].[Skill] ([SkillID])
    GO
    IF @@ERROR<>0 OR @@TRANCOUNT=0 BEGIN IF @@TRANCOUNT>0 ROLLBACK SET NOEXEC ON END
    GO
    
    --
    -- Create table [dbo].[Position]
    --
    CREATE TABLE [dbo].[Position] (
      [PositionID] [int] IDENTITY,
      [PostitionName] [nvarchar](255) NOT NULL,
      CONSTRAINT [PK_Position_PositionID] PRIMARY KEY CLUSTERED ([PositionID])
    )
    ON [PRIMARY]
    GO
    IF @@ERROR<>0 OR @@TRANCOUNT=0 BEGIN IF @@TRANCOUNT>0 ROLLBACK SET NOEXEC ON END
    GO
    
    --
    -- Create table [dbo].[Employee]
    --
    CREATE TABLE [dbo].[Employee] (
      [EmployeeID] [int] IDENTITY,
      [FirstName] [nvarchar](255) NOT NULL,
      [LastName] [nvarchar](255) NOT NULL,
      CONSTRAINT [PK_Employee_EmployeeID] PRIMARY KEY CLUSTERED ([EmployeeID])
    )
    ON [PRIMARY]
    GO
    IF @@ERROR<>0 OR @@TRANCOUNT=0 BEGIN IF @@TRANCOUNT>0 ROLLBACK SET NOEXEC ON END
    GO
    
    --
    -- Create table [dbo].[Company]
    --
    CREATE TABLE [dbo].[Company] (
      [CompanyID] [int] IDENTITY,
      [CompanyName] [nvarchar](255) NOT NULL,
      [Description] [nvarchar](255) NOT NULL,
      CONSTRAINT [PK_Company_CompanyID] PRIMARY KEY CLUSTERED ([CompanyID])
    )
    ON [PRIMARY]
    GO
    IF @@ERROR<>0 OR @@TRANCOUNT=0 BEGIN IF @@TRANCOUNT>0 ROLLBACK SET NOEXEC ON END
    GO
    
    --
    -- Create table [dbo].[JobHistory]
    --
    CREATE TABLE [dbo].[JobHistory] (
      [EmployeeID] [int] NOT NULL,
      [CompanyID] [int] NOT NULL,
      [PositionID] [int] NOT NULL,
      [ProjectID] [int] NOT NULL,
      [StartDate] [date] NOT NULL,
      [FinishDate] [date] NULL,
      [Description] [nvarchar](max) NOT NULL,
      [Achievements] [nvarchar](max) NULL,
      [ReasonsForLeavingTheProject] [nvarchar](max) NULL,
      [ReasonsForLeavingTheCompany] [nvarchar](max) NULL,
      CONSTRAINT [PK_JobHistory] PRIMARY KEY CLUSTERED ([EmployeeID], [CompanyID], [PositionID], [ProjectID])
    )
    ON [PRIMARY]
    TEXTIMAGE_ON [PRIMARY]
    GO
    IF @@ERROR<>0 OR @@TRANCOUNT=0 BEGIN IF @@TRANCOUNT>0 ROLLBACK SET NOEXEC ON END
    GO
    
    --
    -- Create foreign key [FK_JobHistory_Company_CompanyID] on table [dbo].[JobHistory]
    --
    ALTER TABLE [dbo].[JobHistory] WITH NOCHECK
      ADD CONSTRAINT [FK_JobHistory_Company_CompanyID] FOREIGN KEY ([CompanyID]) REFERENCES [dbo].[Company] ([CompanyID])
    GO
    IF @@ERROR<>0 OR @@TRANCOUNT=0 BEGIN IF @@TRANCOUNT>0 ROLLBACK SET NOEXEC ON END
    GO
    
    --
    -- Create foreign key [FK_JobHistory_Employee_EmployeeID] on table [dbo].[JobHistory]
    --
    ALTER TABLE [dbo].[JobHistory] WITH NOCHECK
      ADD CONSTRAINT [FK_JobHistory_Employee_EmployeeID] FOREIGN KEY ([EmployeeID]) REFERENCES [dbo].[Employee] ([EmployeeID])
    GO
    IF @@ERROR<>0 OR @@TRANCOUNT=0 BEGIN IF @@TRANCOUNT>0 ROLLBACK SET NOEXEC ON END
    GO
    
    --
    -- Create foreign key [FK_JobHistory_Position_PositionID] on table [dbo].[JobHistory]
    --
    ALTER TABLE [dbo].[JobHistory] WITH NOCHECK
      ADD CONSTRAINT [FK_JobHistory_Position_PositionID] FOREIGN KEY ([PositionID]) REFERENCES [dbo].[Position] ([PositionID])
    GO
    IF @@ERROR<>0 OR @@TRANCOUNT=0 BEGIN IF @@TRANCOUNT>0 ROLLBACK SET NOEXEC ON END
    GO
    
    --
    -- Create foreign key [FK_JobHistory_Project_ProjectID] on table [dbo].[JobHistory]
    --
    ALTER TABLE [dbo].[JobHistory] WITH NOCHECK
      ADD CONSTRAINT [FK_JobHistory_Project_ProjectID] FOREIGN KEY ([ProjectID]) REFERENCES [dbo].[Project] ([ProjectID])
    GO
    IF @@ERROR<>0 OR @@TRANCOUNT=0 BEGIN IF @@TRANCOUNT>0 ROLLBACK SET NOEXEC ON END
    GO
    
    --
    -- Commit Transaction
    --
    IF @@TRANCOUNT>0 COMMIT TRANSACTION
    GO
    
    --
    -- Set NOEXEC to off
    --
    SET NOEXEC OFF
    GO

    Este escenario se puede obtener de diferentes formas. Por ejemplo, usando la herramienta Compare Bundle para SQL Server.

    Haga clic con el botón derecho en él y seleccione Bomba de datos "Importar datos..." en el menú desplegable:

    Figura.12. El comando de importación de datos en Data Pump

    Del mismo modo, para exportar en la pestaña Archivo de origen, seleccione el formato JSON y el archivo en sí. Luego haga clic en "Siguiente":

    Figura.13. Configure la pestaña Archivo de origen.

    En la pestaña Asignación, seleccione la tabla Empleado existente en el esquema dbo de la base de datos JobEmpl2 y luego haga clic en Siguiente:

    Figura.14. Configure la pestaña "Asignación".

    A continuación, en la pestaña "Opciones", puede configurar la codificación y ver cómo se verán los datos insertados. Deje la configuración predeterminada y haga clic en "Siguiente":

    Figura 15. Configuración de la pestaña "Opciones".

    En la pestaña Formatos de datos, puede personalizar el formato de los datos insertados. Aquí dejamos los valores por defecto y damos clic en “Siguiente”:

    Figura.16. Configuración de la pestaña Formatos de datos.

    En la pestaña "Asignación" puede configurar la visualización de los campos de origen y destino. Deje todo como está y haga clic en "Siguiente":

    Figura.17. Instale la pestaña Mapeo.

    Después de eso, en la pestaña "Modos", puede configurar el modo de importación de datos. En nuestro caso, dejamos la adición de datos sin eliminar los existentes mediante inserción masiva. Luego haga clic en "Siguiente":

    Figura.18. Configuración de la pestaña "Modos".

    En la pestaña Salida, puede configurar la ubicación de destino para la importación de datos. En este caso, seleccione la importación de datos directamente a la base de datos y haga clic en "Siguiente":

    Figura.19. Configuración de la pestaña Salida.

    Luego puede configurar la salida del tiempo de ejecución durante el proceso de importación en la pestaña Manejo de errores. También puede guardar la configuración anterior como una plantilla haciendo clic en el botón "Guardar plantilla..." ubicado en la esquina inferior izquierda. Dejamos la configuración por defecto y pulsamos en “Importar” para empezar a importar:

    Figura.20. Establezca la pestaña Manejo de errores.

    Durante el proceso de importación, puede seguir el progreso de la pestaña "Importar". Una vez que se completa la importación, el resultado se muestra en la pestaña "Listo". Haga clic en "Finalizar" para cerrar la ventana:

    Figura.21. El resultado de la importación de datos.

    Si consulta la base de datos de destino, puede asegurarse de que los datos se hayan importado correctamente a la tabla Empleado:

    Figura.22. Datos importados a la tabla Empleado

    De la misma manera, puede importar los archivos restantes en las tablas correspondientes.

    Puede exportar e importar datos utilizando la funcionalidad estándar de SSMS haciendo clic con el botón derecho en la base de datos deseada y seleccionando el comando apropiado del menú desplegable:

    Figura.23. Exporte e importe datos utilizando herramientas estándar de SSMS

    Conclusión

    En resumen, exportar e importar datos permite no solo mover datos entre bases de datos y proporcionar datos en una forma conveniente para su posterior procesamiento, sino también importar algunos de los datos requeridos a la base de datos requerida.

    En la siguiente parte, consideraremos cómo buscar objetos y datos en la base de datos creada.

    Artículos de interés

    Subir