Partager via


SqlPackage pour la base de données SQL dans Microsoft Fabric

S’applique à :Base de données SQL dans Microsoft Fabric

Dans ce tutoriel, vous allez apprendre à utiliser SqlPackage dans votre base de données SQL dans Fabric.

SqlPackage est une interface CLI qui fournit portabilité de base de données et déploiements de base de données.

  • La portabilité (importation/exportation) d’une base de données gérée dans Azure ou dans Fabric garantit que vos données sont portables vers d’autres plateformes si vous souhaitez migrer ultérieurement. - La portabilité inclut le déplacement vers et depuis SQL Server, Azure SQL Database, Azure SQL Managed Instance et SQL Database dans Fabric via des copies de base de données autonomes (.bacpac ou .dacpac des fichiers).

SqlPackage peut également permettre de déployer facilement des bases de données en apportant des modifications incrémentielles aux objets de la base de données (nouvelles colonnes dans les tables, modifications des procédures stockées existantes, etc.).

  • SqlPackage peut extraire un fichier .dacpac contenant les définitions d’objets d’une base de données et publier un fichier .dacpac pour appliquer cet état d’objet à une base de données nouvelle ou existante.
  • L'opération de publication s’intègre également aux projets SQL, permettant ainsi des cycles de développement hors ligne plus dynamiques pour les bases de données SQL.

Prérequis

Programme d’installation

SqlPackage est disponible pour Windows, macOS et Linux en tant qu’outil dotnet. Vous pouvez l’installer à l’aide de la commande suivante :

dotnet tool install --global Microsoft.SqlPackage

En tant qu’outil dotnet global, SqlPackage est disponible dans votre terminal en tant que sqlpackage à partir de n’importe quel dossier.

Importer une base de données avec SqlPackage

Un .bacpac est une copie portable d’une base de données, utile pour certains scénarios de migration et de test. Vous pouvez l’importer.bacpac dans une base de données SQL vide avec l’importation SqlPackage.

Remarque

.bacpac n'est pas une sauvegarde ni un remplacement des capacités de sauvegarde/restauration. Pour plus d’informations sur les sauvegardes pour la base de données SQL dans Fabric, consultez Sauvegardes automatiques dans la base de données SQL dans Microsoft Fabric et Restauration à partir d’une sauvegarde dans une base de données SQL dans Microsoft Fabric.

  1. Si vous utilisez un .bacpac dans un environnement Azure ou SQL Server, vous devrez peut-être modifier la base de données source pour s'adapter à la surface T-SQL de Fabric. Consultez la portabilité d’extraction et de publication pour une autre méthode qui permet aux propriétés SqlPackage d’ignorer certains objets non pris en charge.

  2. Créez votre nouvelle base de données SQL dans Fabric comme d’habitude via l’interface Fabric.

  3. Copiez la chaîne de connexion à partir des paramètres.

    Capture d’écran du portail Fabric montrant la page Chaînes de connexion de la base de données SQL.

  4. Utilisez la commande d’importation à partir du terminal dans le dossier sqlpackage. Indiquez votre propriétaire <servername> et <database_name>.

    sqlpackage /action:import /sourcefile:"C:\DatabaseName.bacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"
    
    • Remplacez votre chaîne de connexion à partir de la boîte de dialogue paramètres de base de données SQL.
    • Remplacez la valeur sourcefile par le nom .bacpac (DatabaseName) et location sur votre ordinateur local.
  5. Suivez l’importation avec une opération de copie dans Data Factory dans Microsoft Fabric. Pour commencer, consultez Démarrage rapide : Créer un travail de copie.

Exporter une base de données avec SqlPackage

L’exportation d’un .bacpac est l’opération inverse, où votre targetfile est un .bacpac et votre sourceconnectionstring se trouve dans la boîte de dialogue paramètres de base de données SQL, comme dans l’exemple précédent. Indiquez votre propriétaire <servername> et <database_name>. Par exemple :

sqlpackage /action:export /targetfile:"C:\DatabaseName.bacpac" /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"

Pour plus d’informations sur l’exportation, consultez Exportation de SqlPackage.

Extraire et publier

Diagramme montrant comment les projets de base de données SQL peuvent déplacer des modifications de schéma.

Un .dacpac est un fichier de modèle de schéma de la base de données, contenant des définitions pour les tables, les procédures stockées et d’autres objets de la base de données source. Ce fichier peut être créé à partir d’une base de données existante avec SqlPackage ou à partir d’un projet de base de données SQL.

SqlPackage est capable de déployer un .dacpac sur une nouvelle base de données (vide) ou de mettre à jour de façon incrémentielle une base de données existante pour correspondre à l’état .dacpac souhaité.

  • Extraire crée un .dacpac ou des fichiers SQL à partir d’une base de données existante.
  • Publier déploie un .dacpac dans une base de données.

La syntaxe de SqlPackage publier et extraire est similaire aux commandes d'importation/exportation.

Avertissement

L’utilisation de SqlPackage pour déployer un projet SQL ou .dacpac dans une base de données SQL dans Fabric est recommandée. Le déploiement d’un .dacpac à partir de Visual Studio peut échouer.

Pour déployer un .dacpac créé à partir d’Azure SQL Database, DE SQL Server ou d’un projet SQL ciblant une plateforme autre que la base de données SQL dans Fabric, ajoutez la propriété /p:AllowIncompatiblePlatform=true à la commande de publication SqlPackage.

Extraire et publier la portabilité

Bien que les commandes d’importation/exportation SqlPackage soient axées sur la portabilité des données avec le .bacpac format, les commandes d’extraction et de publication sont capables de porter les données avec le .dacpac format. Les propriétés d’extraction et de publication peuvent être utilisées pour contrôler le comportement des opérations d’extraction et de publication et fournir une plus grande flexibilité pour les conversions entre plateformes.

Pour extraire et .dacpac inclure les données, utilisez la /p:ExtractAllTableData=true propriété. L’opération d’extraction crée un .dacpac qui contient à la fois le schéma et les données de la base de données source. La propriété /p:ExtractReferencedServerScopedElements=false exclut les éléments au niveau du serveur, qui ne sont pas pris en charge dans la base de données SQL dans Fabric. La commande suivante extrait une .dacpac contenant des données d'une base de données SQL existante dans Fabric.

sqlpackage /action:extract /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /targetfile:"C:\extracted.dacpac" /p:ExtractAllTableData=true  /p:ExtractReferencedServerScopedElements=false

Pour publier un .dacpac extrait avec les données, aucune propriété supplémentaire n’est requise. Toutefois, plusieurs propriétés peuvent être utilisées pour contrôler le comportement de l’opération de publication :

  • /p:AllowIncompatiblePlatform=true permet le déploiement d’un .dacpac extrait d’une autre plateforme (par exemple, Azure SQL Database, SQL Server).
  • /p:ExcludeObjectTypes=Logins;Users exclut les types d’objets qui peuvent rencontrer des problèmes de compatibilité lors de la publication sur une base de données SQL dans Fabric. Pour obtenir la liste complète des types d’objets qui peuvent être exclus, consultez la publication sqlPackage.

Comme pour la commande d’importation SqlPackage, avant de publier une .dacpac base de données SQL dans Fabric, vous devez créer la base de données dans Fabric. Vous pouvez créer la base de données via le portail Fabric ou une autre interface Fabric. La commande suivante publie l’extrait .dacpac dans une base de données SQL vide dans Fabric :

sqlpackage /action:publish /sourcefile:"C:\extracted.dacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /p:AllowIncompatiblePlatform=true /p:ExcludeObjectTypes=Logins;Users