SqlPackage avec des données dans des fichiers Parquet (préversion)
Cet article traite de la prise en charge de SqlPackage pour interagir avec les données stockées dans Stockage Blob Azure au format Parquet. Pour SQL Server 2022 et Azure SQL Managed Instance, la préversion prend en charge l’extraction et la publication avec des données dans des fichiers Parquet dans Stockage Blob Azure est disponible dans SqlPackage 162.1.176 et les versions supérieures. Azure SQL Database et SQL Server 2019 et versions antérieures ne sont pas prises en charge. Les actions d’importation et d’exportation continuent d’être disponibles pour SQL Server, Azure SQL Managed Instance et Azure SQL Database. La prise en charge des fichiers Parquet dans Stockage Blob Azure continue d’être généralement disponible pour Azure Synapse Analytics.
Avec l’extraction, le schéma de la 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. Les données sont stockées dans des dossiers individuels nommés avec des noms de tables en deux parties. CETAS est utilisé pour l’écriture des fichiers dans Stockage Blob Azure.
Avec la publication, le schéma de la 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.
Dans les SQL Databases hébergées dans Azure, les opérations d’extraction/publication avec des fichiers Parquet offrent des performances améliorées par rapport aux opérations d’importation/exportation avec des fichiers .bacpac
dans de nombreux scénarios.
Extract (exporter des données)
Pour exporter les données d’une base de données Azure Synapse Analytics vers le Stockage Blob Azure, utilisez l’action SqlPackage Extraire avec les propriétés suivantes :
- /p:AzureStorageBlobEndpoint
- /p:AzureStorageContainer
- /p:AzureStorageKey or /p:AzureSharedAccessSignatureToken
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 /p:AzureStorageRootPath
facultatif qui permet de définir le chemin racine de stockage dans le conteneur. 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 deux parties. Le nombre de fichiers créés par table dépend des cœurs MAXDOP et SQL disponibles au moment de l’exportation.
Enfin, la propriété /p:TableData
spécifie les tables dont les données sont exportées. Spécifiez les parties du nom de la table avec ou sans crochets sous le format nom_schéma.identificateur_table. Cette propriété peut être spécifiée plusieurs fois pour indiquer plusieurs tables.
Exemple
L’exemple suivant extrait une base de données nommée databasename
d’un serveur nommé yourserver
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 /SourceDatabaseName:databasename /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, 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
à 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/databasename/10-19-2023_11-09-56/
dans le conteneur.
SqlPackage /Action:Publish /SourceFile:databaseschema.dacpac /TargetServerName:yourserver /TargetDatabaseName:databasename /p:AzureStorageBlobEndpoint=https://storageaccount.blob.core.windows.net /p:AzureStorageContainer=containername /p:AzureStorageKey=storageaccountkey /p:AzureStorageRootPath="yourserver/databasename/10-19-2023_11-09-56/"
Pour consulter d’autres exemples illustrant les types d’authentification disponibles, consultez SqlPackage - Publish.
Limites
Polybase
Polybase est requis pour les opérations SqlPackage avec des fichiers Parquet. La requête suivante peut être utilisée pour vérifier si Polybase est activé :
// configuration_id = 16397 is 'allow polybase export'
// configuration_id = 16399 is 'polybase enabled'
SELECT configuration_id, value_in_use FROM sys.configurations
WHERE configuration_id IN (16397, 16399)
Vous devrez peut-être activer Polybase ou Exportation Polybase. L’activation de Polybase sur Azure SQL Managed Instance nécessite PowerShell ou Azure CLI. Il est recommandé d’évaluer si l’activation de Polybase convient à votre environnement avant d’apporter des modifications de configuration.
Types de données et tables
Les types de données pris en charge par CETAS sont pris en charge pour les opérations d’extraction et de publication avec des fichiers Parquet.
Les tables de registre sont activées pour les opérations d’extraction et de publication avec des fichiers Parquet.
Les données stockées avec Always Encrypted ne sont pas prises en charge pour les opérations d’extraction et de publication avec des fichiers Parquet.
Étapes suivantes
- En savoir plus sur Extract
- En savoir plus sur Publish
- En savoir plus sur le Stockage Blob Azure
- En savoir plus sur les signatures d’accès partagé dans Stockage Azure (SAS)
- En savoir plus sur les clés de compte de stockage Azure