Desarrollo de proyectos de almacenamiento en Visual Studio Code

Aplicable a:✅ Warehouse en Microsoft Fabric

Aprenda a configurar un proyecto de base de datos para Fabric Data Warehouse en Visual Studio Code. Creas un nuevo proyecto, defines objetos de esquema, construyes y validas el proyecto, y lo publicas en tu almacén.

Importante

Esta característica se encuentra en versión preliminar.

Prerrequisitos

Antes de empezar, asegúrese de que:

  • Tener acceso a un elemento de almacenamiento existente dentro de un área de trabajo de Fabric con permisos de colaborador o superior.
  • Instale Visual Studio Code en la estación de trabajo.
  • Instale el SDK .NET para compilar y publicar proyectos de base de datos.
  • Instale dos extensiones de Visual Studio Code: SQL Database Projects y SQL Server (mssql).
    • Puede instalar las extensiones necesarias directamente desde Visual Studio Code Marketplace si busca "Proyectos de SQL Database" o "SQL Server (mssql)".

Creación de un nuevo proyecto de base de datos

Puedes crear un proyecto de base de datos desde cero o desde un almacén existente.

Opción 1: Crear un nuevo proyecto de base de datos a partir de la paleta de comandos en Visual Studio Code

  1. Abra Visual Studio Code.

  2. Abra la paleta de comandos (Ctrl+Shift+P o Cmd+Shift+P en Mac).

  3. Busque Proyectos de base de datos: Nuevo.

  4. Seleccione Tipo de Proyecto de Base de Datos como Base de Datos de SQL Server.

  5. Elija un nombre de proyecto y seleccione la ubicación de la carpeta local.

  6. Elija Synapse Data Warehouse en Microsoft Fabric como plataforma de destino.

  7. Cuando se le solicite, seleccione Sí (recomendado) para un proyecto de estilo SDK.

    Importante

    Solo se admiten proyectos con estilo SDK para Fabric Data Warehouse.

  8. Seleccione Sí a la pregunta ¿Desea configurar la compilación del proyecto SQL como configuración de compilación predeterminada para esta carpeta?

  9. Seleccione Sí para confiar en los autores de los archivos de esta carpeta.

Opción 2: Crear un nuevo proyecto de base de datos a partir de la extensión Proyectos de base de datos

  1. En Visual Studio Code, elija el icono de extensión Database Projects en el Activity Bar.

  2. En el panel Proyectos de base de datos , seleccione Crear nuevo.

    Captura de pantalla de Visual Studio Code mostrando el panel de extensión Database Projects y el botón Crear nuevo.

  3. Seleccione Tipo de Proyecto de Base de Datos como Base de Datos de SQL Server.

  4. Elija un nombre de proyecto y seleccione la ubicación de la carpeta local.

  5. Elija Synapse Data Warehouse en Microsoft Fabric como plataforma de destino.

  6. Cuando se le solicite, seleccione Sí (recomendado) para un proyecto de estilo SDK. Solo se admiten proyectos con estilo SDK para Fabric Data Warehouse.

  7. Seleccione Sí a la pregunta ¿Desea configurar la compilación del proyecto SQL como configuración de compilación predeterminada para esta carpeta?

  8. Seleccione Sí para confiar en los autores de los archivos de esta carpeta.

Opción 3: Crear un proyecto de base de datos a partir de un almacenamiento existente

  1. En primer lugar, cree un nuevo perfil de conexión para el almacenamiento en Visual Studio Code.

    1. Seleccione la extensión SQL Server en Visual Studio Code en la barra Activity Bar.
    2. Introduce un nombre de perfil. Elija Parámetros.
    3. Introduce el nombre del servidor. En el portal de Fabric, en la configuración de su almacén, seleccione punto de conexión de SQL y copie la cadena proporcionada. Este nombre de servidor corresponde a tu almacén y es diferente al endpoint de analítica SQL. Su aspecto es similar a <server unique ID>.datawarehouse.fabric.microsoft.com.
    4. Para el tipo autenticación, use Microsoft Entra ID - Universal compatible con MFA. Autentíquese con el Microsoft Entra ID.
    5. Proporciona otra información como predeterminado o deseado, y selecciona Conectar.
  2. En Visual Studio Code, elija el icono de extensión Database Projects en la barra de actividad.

  3. Seleccione el botón ... de opciones del panel Proyectos de base de datos y elija la opción Crear proyecto a partir de base de datos .

    Screenshot de Visual Studio Code que muestra la opción Crear proyecto desde base de datos.

  4. Elija el almacén en los perfiles de conexión existentes.

  5. Introduce el nombre de un proyecto y elige una carpeta de proyecto en tu estación de trabajo.

  6. En Estructura de carpetas, seleccione Esquema/Tipo de objeto (recomendado).

  7. En Incluir permisos en el proyecto, seleccione No (valor predeterminado).

  8. En proyecto de estilo SDK, seleccione Sí (recomendado) .

  9. Seleccione Sí a la pregunta ¿Desea configurar la compilación del proyecto SQL como configuración de compilación predeterminada para esta carpeta?

  10. Visual Studio Code extrae los archivos de proyecto del proyecto de almacenamiento.

    Captura de pantalla de Visual Studio Code que muestra la notificación de progreso de los archivos del proyecto extraído.

  11. Tras la extracción exitosa, ves la siguiente notificación: "Extraer archivos del proyecto: Exitoso. Completado".

  12. Seleccione Sí para confiar en los autores de los archivos de esta carpeta.

Nuevo proyecto de base de datos para tu almacén

El nuevo proyecto de base de datos de tu almacén se muestra en el menú Proyectos de base de datos SQL.

Captura de pantalla de Visual Studio Code que muestra el nuevo proyecto de base de datos para AdventureWorksDW2022.

La estructura del proyecto tiene este aspecto:

 | Project Name
 ├── Database References
 ├── SQLCMD Variables
 ├── .vscode/
 └── schema/
     ├── Functions
     ├── Tables
     └── Views

Configuración del proyecto de base de datos

  1. Haga clic con el botón derecho en el proyecto y seleccione Editar archivo .sqlproj.

    Screenshot de Visual Studio Code y el menú contextual de un proyecto de base de datos. La opción Editar archivo sqlproj está resaltada.

  2. Verifica que el archivo contiene la última versión del SDK Microsoft.Build.Sql. Por ejemplo, cambia la versión de Microsoft.Build.Sql a 2.2.0 en el archivo .sqlproj.

       <Sdk Name="Microsoft.Build.Sql" Version="2.2.0" />
    
  3. Compruebe la versión más reciente de Microsoft.SqlServer.Dacpacs.FabricDw y agregue una referencia dentro del Project/ItemGroup nodo XML. Por ejemplo:

       <PackageReference Include="Microsoft.SqlServer.Dacpacs.FabricDw" Version="170.0.2" />
    

    Así es como debería verse tu proyecto de base de datos para un almacén después de las actualizaciones.

     <?xml version="1.0" encoding="utf-8"?>
     <Project DefaultTargets="Build">
       <Sdk Name="Microsoft.Build.Sql" Version="2.2.0" />
       <PropertyGroup>
         <Name>DatabaseProject715wh</Name>
         <ProjectGuid>{2E278BCC-F118-4DDB-9255-94697F2930B4}</ProjectGuid>
         <DSP>Microsoft.Data.Tools.Schema.Sql.SqlDwUnifiedDatabaseSchemaProvider</DSP>
         <ModelCollation>1033, CI</ModelCollation>
       </PropertyGroup>
       <ItemGroup>
         <None Include=".vscode\tasks.json" />
         <PackageReference Include="Microsoft.SqlServer.Dacpacs.FabricDw" Version="170.0.2" />
       </ItemGroup>
       <Target Name="BeforeBuild">
         <Delete Files="$(BaseIntermediateOutputPath)\project.assets.json" />
       </Target>
     </Project>
    
  4. Guarde el .sqlproj archivo. En la solicitud para recargar su proyecto de base de datos, debería seleccionar Sí.

Importante

El equipo de Data Warehouse Fabric publica con frecuencia nuevas versiones de paquetes NuGet. Como los valores de versión predeterminados en el .sqlproj archivo pueden cambiar con el tiempo, actualízalos en tu proyecto local para mantenerlos alineados con las últimas versiones disponibles en NuGet para Microsoft. SqlServer.Dacpacs.FabricDw.

Agregar o actualizar objetos de base de datos

Puede definir o modificar objetos de base de datos como tablas, vistas, procedimientos almacenados y funciones dentro del proyecto de almacenamiento.

En la carpeta de un esquema, por ejemplo dbo, agregue, elimine o modifique las definiciones de T-SQL de los objetos del almacén de datos. Para modificar un objeto existente, abra su archivo correspondiente .sql y actualice la definición según sea necesario.

Al compilar el proyecto, todos los objetos nuevos y actualizados se validan e incluyen en el archivo {project folder location}/bin/debug/{project name}.dacpac dacpac generado.

Los cambios realizados aquí solo se realizan en el proyecto de base de datos y no se reflejan en Microsoft Fabric hasta que se Build y Publish el proyecto.

Compilación y validación del proyecto

  1. Abre el proyecto de base de datos si aún no está abierto.

  2. Haz clic derecho en el proyecto y selecciona Construir para construir el proyecto de base de datos.

    Screenshot de Visual Studio Code que muestra la opción para construir el proyecto de base de datos.

  3. La compilación debería realizarse correctamente. Corrija cualquier error basado en los mensajes proporcionados en la salida del evento de compilación.

Nota:

Actualmente, tu terminal por defecto de Visual Studio Code debe ser PowerShell para que el proceso de compilación en la extensión Proyectos de Base de Datos tenga éxito. En la Paleta de Comandos, elige Terminal: Selecciona Perfil Predeterminado y luego selecciona PowerShell.

Publicar en el Data Warehouse de Fabric

Después de compilar el proyecto, publíquelo en el almacén de destino. La publicación crea un script para resolver la diferencia entre el proyecto de base de datos y el almacenamiento real y ejecuta un script para que el almacenamiento coincida con el proyecto. Puedes desplegar el modelo compilado del esquema del almacén en un archivo .dacpac en un almacén objetivo.

  1. Haga clic con el botón derecho en el proyecto y seleccione Publicar.

  2. Elija Publicar en un servidor SQL Server existente.

  3. En Seleccionar perfil de publicación que se va a cargar, la primera vez que publique, elija No usar perfil.

    • Guarda opciones para publicar tu almacén en un perfil de publicación. Una notificación de Visual Studio Code te da la opción de guardar las opciones de publicación que usaste en un archivo de perfil de publicación.
    • Reutiliza el perfil de publicación en el futuro cuando publiques tu proyecto en tu almacén. Es posible que tenga diferentes opciones de perfil para diferentes almacenes o para entornos diferentes en los entornos de desarrollo, pruebas, aceptación y producción.
  4. Elija el perfil de conexión de Fabric Data Warehouse de la lista.

  5. Elija el nombre del almacén de destino.

  6. En la opción Elegir acción , puede generar script para revisar el script antes de publicarlo o publicar un proyecto en un almacenamiento. - La primera vez que quieras desplegar cambios, genera cuidadosamente un script y revisa el T-SQL resultante para aplicarlo al almacén objetivo. Generar el script no hace cambios en el almacén objetivo.

    • Si eliges Publicar, el proceso escribe los cambios en tu almacén objetivo.

    Captura de pantalla de Visual Studio Code que muestra la implementación de dacpac: notificación de

  7. En la notificación ¿Desea guardar la configuración en un perfil (.publish.xml)?, elija Sí y guarde las opciones de perfil de publicación para la próxima vez que necesite publicar.

Configuraciones de implementación importantes para proyectos de almacenes

Cuando despliegas proyectos de bases de datos en Fabric Data Warehouse, varios ajustes controlan los cambios en el esquema y pueden afectar a la seguridad de los datos. Úselo con precaución.

  • BlockOnPossibleDataLoss

    • Lo que hace: Impide la implementación si hay un riesgo de pérdida de datos (por ejemplo, quitar una columna o tabla que contenga datos).
    • Recomendación: Establezca siempre True en producción para proteger los datos críticos.
    • Cautela: Si se establece en False , se permite la implementación incluso si se pueden perder datos. Use solo en entornos controlados (por ejemplo, desarrollo y pruebas).
  • DropObjectsNotInSource

    • Lo que hace: Quita los objetos de la base de datos de destino que no están presentes en el origen del proyecto.
    • Recomendación: Use en entornos de desarrollo y pruebas para limpiar objetos sobrantes.
    • Cautela: El uso DropObjectsNotInSource de en producción puede eliminar objetos y datos importantes. Compruebe dos veces antes de habilitar.
  • PreDeploy para el script previo a la implementación

    • Qué hace
      • Ejecuta scripts SQL personalizados antes del despliegue del esquema.
    • Usos comunes
      • Archivar o realizar copias de seguridad de datos antes de eliminar tablas
      • Deshabilitación de restricciones o desencadenadores temporalmente
      • Limpieza de objetos heredados
    • Precaución
      • Asegúrate de que los scripts sean idempotentes y no introduzcan cambios de esquema que entren en conflicto con el despliegue.

Tip

Cuando un proceso de despliegue o consulta es idempotente, puedes ejecutar el comando varias veces sin causar problemas lógicos o fallos. Un comando idempotente también está escrito de forma que puede desplegarse en múltiples bases de datos sin necesidad de predeterminar su estado.

  • PostDeploy para el script posterior a la implementación

    • Lo que hace: Ejecuta scripts SQL personalizados después de la implementación del esquema.
    • Usos comunes:
      • Búsqueda de semilla o datos de referencia
      • Volver a habilitar restricciones o desencadenadores
      • Historial de registros de implementación
    • Precaución: Evita operaciones pesadas en mesas grandes durante la producción. Asegúrate de que los scripts puedan ejecutarse varias veces de forma segura si es necesario.

Importante

Revise siempre los scripts de implementación y la configuración antes de publicarlos. Pruebe primero en entornos de desarrollo o pruebas para evitar la pérdida de datos no deseada. Para obtener más información y ejemplos, consulte Scripts previos a la implementación y posteriores a la implementación para Fabric Data Warehouse.

Comprobación de la publicación

Conéctate a tu almacén y escribe los objetos que han cambiado, o verifica ejecutando objetos de catálogo del sistema.