SqlPackage con dati nei file Parquet (anteprima)
Questo articolo illustra il supporto di SqlPackage per interagire con i dati archiviati in Archiviazione BLOB di Azure in formato Parquet. Per SQL Server 2022 e Istanza gestita di SQL di Azure, il supporto dell'anteprima per l'estrazione e la pubblicazione con dati nei file Parquet in Archiviazione BLOB di Azure è disponibile in SqlPackage 162.1.176 e versioni successive. Database SQL di Azure e SQL Server 2019 e versioni precedenti non sono supportati. Le azioni di importazione ed esportazione continuano a essere disponibili per SQL Server, Istanza gestita di SQL di Azure e database SQL di Azure. Il supporto per i file Parquet in Archiviazione BLOB di Azure continua a essere disponibile a livello generale per Azure Synapse Analytics.
Con l'estrazione, lo schema del database (file .dacpac
) viene scritto nel client locale che esegue SqlPackage e i dati vengono scritti in Archiviazione BLOB di Azure in formato Parquet. I dati vengono archiviati in singole cartelle denominate con nomi di tabella in due parti. CETAS viene usato per scrivere i file in Archiviazione BLOB di Azure.
Con la pubblicazione, lo schema del database (file .dacpac
) viene letto dal client locale che esegue SqlPackage e i dati vengono scritti in Archiviazione BLOB di Azure in formato Parquet.
Nei database SQL ospitati in Azure le operazioni di estrazione/pubblicazione con file Parquet offrono prestazioni migliori rispetto alle operazioni di importazione/esportazione con file .bacpac
in molti scenari.
Estrarre (esportare i dati)
Per esportare i dati da un database a Archiviazione BLOB di Azure, l'azione di estrazione di SqlPackage viene usata con le proprietà seguenti:
- /p:AzureStorageBlobEndpoint
- /p:AzureStorageContainer
- /p:AzureStorageKey or /p:AzureSharedAccessSignatureToken
L'accesso al database per accedere al contenitore di archiviazione BLOB è autorizzato tramite una chiave dell'account di archiviazione. Lo schema del database (file .dacpac) viene scritto nel client locale che esegue SqlPackage e i dati vengono scritti in Archiviazione BLOB di Azure in formato Parquet.
Il parametro /p:AzureStorageRootPath
, che imposta il percorso radice di archiviazione all'interno del contenitore, è facoltativo: Senza questa proprietà, per impostazione predefinita il percorso è servername/databasename/timestamp/
. I dati vengono archiviati in singole cartelle denominate con nomi di tabella in due parti. Il numero di file creati per tabella dipende da MAXDOP e dai core SQL disponibili al momento dell'esportazione.
Infine, la proprietà /p:TableData
specifica quali tabelle hanno i dati esportati. Specificare il nome della tabella con o senza parentesi che racchiudono le parti che compongono il nome nel formato seguente: nome_schema.identificatore_tabella. Questa proprietà può essere specificata più volte per indicare più tabelle.
Esempio
Nell'esempio seguente viene estratto un database denominato databasename
da un server denominato yourserver
in un file locale denominato databaseschema.dacpac
nella directory corrente. I dati sono scritti in un contenitore denominato containername
in un account di archiviazione denominato storageaccount
usando una chiave dell'account di archiviazione denominata storageaccountkey
. I dati sono scritti nel percorso predefinito di servername/databasename/timestamp/
nel contenitore.
SqlPackage /Action:Extract /SourceServerName:yourserver /SourceDatabaseName:databasename /TargetFile:databaseschema.dacpac /p:AzureStorageBlobEndpoint=https://storageaccount.blob.core.windows.net /p:AzureStorageContainer=containername /p:AzureStorageKey=storageaccountkey
Per altri esempi di tipi di autenticazione disponibili, vedere Estrazione di SqlPackage.
Pubblicare (importare dati)
Per importare dati da file Parquet in Archiviazione BLOB di Azure in un database, l'azione di pubblicazione di sqlPackage viene usata con le proprietà seguenti:
- /p:AzureStorageBlobEndpoint
- /p:AzureStorageContainer
- /p:AzureStorageRootPath
- /p:AzureStorageKey or /p:AzureSharedAccessSignatureToken
L'accesso per la pubblicazione può essere autorizzato tramite una chiave dell'account di archiviazione o un token di firma di accesso condiviso (SAS). Lo schema del database (file .dacpac) viene letto dal client locale che esegue SqlPackage e i dati vengono scritti in Archiviazione BLOB di Azure in formato Parquet.
Esempio
Nell'esempio seguente viene pubblicato un database denominato databasename
in un server denominato yourserver
da un file locale denominato databaseschema.dacpac
nella directory corrente. I dati sono letti da un contenitore denominato containername
in un account di archiviazione denominato storageaccount
usando una chiave dell'account di archiviazione denominata storageaccountkey
. I dati sono letti da singole cartelle per tabella nel percorso yourserver/databasename/10-19-2023_11-09-56/
nel contenitore.
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/"
Per altri esempi di tipi di autenticazione disponibili, vedere Pubblicazione di SqlPackage.
Limiti
PolyBase
Polybase è necessario per le operazioni SqlPackage con file Parquet. È possibile usare la query seguente per verificare se Polybase è abilitato:
// 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)
Potrebbe essere necessario abilitare l'esportazione Polybase o Esportazione Polybase. L'abilitazione di Polybase in Istanza gestita di SQL di Azure richiede PowerShell o l'interfaccia della riga di comando di Azure. È consigliabile valutare se l'abilitazione di Polybase è adatta all'ambiente prima di apportare modifiche alla configurazione.
Tipi di dati e tabelle
I tipi di dati supportati da CETAS sono supportati per le operazioni di estrazione e pubblicazione con file Parquet.
Le tabelle libro mastro sono abilitate per le operazioni di estrazione e pubblicazione con file Parquet.
I dati archiviati con Always Encrypted non sono supportati per le operazioni di estrazione e pubblicazione con file Parquet.
Passaggi successivi
- Altre informazioni sulla funzionalità Estrai
- Altre informazioni sulla funzionalità Pubblica
- Informazioni sull'Archiviazione BLOB di Azure
- Altre informazioni sulla firma di accesso condiviso (SAS) di archiviazione di Azure
- Altre informazioni sulle chiavi dell'account di archiviazione di Azure