Partager via


SqlPackage pour Azure Synapse Analytics

Cet article traite de la prise en charge de SqlPackage pour Azure Synapse Analytics. Il comprend des informations sur les sujets suivants :

  • Intégration à Stockage Blob Azure pour accéder aux données dans des fichiers Parquet
  • Prise en charge des pools SQL serverless

Les pools SQL dédiés et serverless ne prennent pas en charge les actions d’importation/exportation dans SqlPackage ou dans des fichiers .bacpac. SqlPackage prend en charge Azure Synapse Analytics avec des fichiers .dacpac, et peut lire et écrire des données dans des fichiers au format Parquet dans Stockage Blog Azure. Pour importer ou exporter des données à partir d’un pool SQL dédié, vous devez utiliser les actions de publication ou d’extraction avec des données, comme indiqué ci-dessous.

Extract (exporter des données)

Pour exporter les données d’une base de données Azure Synapse Analytics vers Stockage Blob Azure, utilisez l’action SqlPackage Extract avec les propriétés suivantes :

  • /p:AzureStorageBlobEndpoint
  • /p:AzureStorageContainer
  • /p:AzureStorageKey

L’accès de la base de données au conteneur de stockage d’objets blob est autorisé par le biais d’une clé de compte de stockage. Le schéma de base de données (fichier .dacpac) est écrit sur le client local exécutant SqlPackage et les données sont écrites dans Stockage Blob Azure au format Parquet.

Il existe un paramètre supplémentaire facultatif qui permet de définir le chemin racine de stockage dans le conteneur :

  • /p:AzureStorageRootPath

Sans cette propriété, le chemin par défaut est servername/databasename/timestamp/. Les données sont stockées dans des dossiers individuels nommés avec des noms de tables en 2 parties.

Exemple

L’exemple suivant extrait une base de données nommée databasename d’un serveur nommé yourserver.sql.azuresynapse.net vers un fichier local nommé databaseschema.dacpac dans le répertoire actif. Les données sont écrites dans un conteneur nommé containername dans un compte de stockage nommé storageaccount avec une clé de compte de stockage nommée storageaccountkey. Les données sont écrites dans le chemin par défaut de servername/databasename/timestamp/ dans le conteneur.

SqlPackage /Action:Extract /SourceServerName:yourserver.sql.azuresynapse.net /SourceDatabaseName:databasename /SourceUser:sqladmin /SourcePassword:{your_password} /TargetFile:databaseschema.dacpac /p:AzureStorageBlobEndpoint=https://storageaccount.blob.core.windows.net /p:AzureStorageContainer=containername /p:AzureStorageKey=storageaccountkey

Pour consulter d’autres exemples illustrant les types d’authentification disponibles, consultez SqlPackage - Extract.

Publish (importer des données)

Pour importer les données de fichiers Parquet dans Stockage Blob Azure vers une base de données Azure Synapse Analytics, utilisez l’action SqlPackage Publish avec les propriétés suivantes :

  • /p:AzureStorageBlobEndpoint
  • /p:AzureStorageContainer
  • /p:AzureStorageRootPath
  • /p:AzureStorageKey or /p:AzureSharedAccessSignatureToken

L’accès à la publication peut être autorisé via une clé de compte de stockage ou un jeton de signature d’accès partagé (SAS). Le schéma de base de données (fichier .dacpac) est lu à partir du client local exécutant SqlPackage et les données sont lues à partir de Stockage Blob Azure au format Parquet.

Exemple

L’exemple suivant publie une base de données nommée databasename sur un serveur nommé yourserver.sql.azuresynapse.net à partir d’un fichier local nommé databaseschema.dacpac dans le répertoire actif. Les données sont lues à partir d’un conteneur nommé containername dans un compte de stockage nommé storageaccount avec une clé de compte de stockage nommée storageaccountkey. Les données sont lues à partir de dossiers individuels par table sous le chemin yourserver.sql.azuresynapse.net/databasename/6-12-2022_8-09-56_AM/ dans le conteneur.

SqlPackage /Action:Publish /SourceFile:databaseschema.dacpac /TargetServerName:yourserver.sql.azuresynapse.net /TargetDatabaseName:databasename /TargetUser:sqladmin /TargetPassword:{your_password} /p:AzureStorageBlobEndpoint=https://storageaccount.blob.core.windows.net /p:AzureStorageContainer=containername  /p:AzureStorageKey=storageaccountkey /p:AzureStorageRootPath="yourserver.sql.azuresynapse.net/databasename/6-12-2022_8-09-56_AM/"

Pour consulter d’autres exemples illustrant les types d’authentification disponibles, consultez SqlPackage - Publish.

Prise en charge des pools SQL serverless

Les pools SQL serverless Synapse sont pris en charge pour les actions d’extraction et de publication. La surface d’exposition T-SQL des pools SQL serverless est limitée par défaut aux tables externes, aux vues externes, aux procédures stockées, aux fonctions, aux statistiques et aux informations d’identification. Les fonctionnalités suivantes sont incluses dans la prise en charge des pools SQL serverless :

  • Format de fichier externe delta
  • Fournisseur OPENROWSET CosmosDB avec PROVIDER, CONNECTION, OBJECT et CREDENTIAL ou SERVER_CREDENTIAL spécifiés
  • with () clause sur OPENROWSET

Étapes suivantes