SqlPackage per Azure Synapse Analytics
Questo articolo illustra il supporto di SqlPackage per Azure Synapse Analytics. Questo argomento include le informazioni seguenti:
- Integrazione con Archiviazione BLOB di Azure per l'accesso ai dati nei file Parquet
- Supporto per i pool SQL serverless
I pool SQL dedicati e serverless non supportano le azioni di importazione/esportazione in SqlPackage o nei file .bacpac
. SqlPackage supporta Azure Synapse Analytics con i file .dacpac
e può leggere e scrivere dati in file in formato Parquet nel Archiviazione BLOB di Azure. Per importare o esportare dati da un pool SQL dedicato, è necessario usare le azioni di pubblicazione o estrazione con i dati come descritto di seguito.
Estrarre (esportare i dati)
Per esportare i dati da un database di Azure Synapse Analytics a Archiviazione BLOB di Azure, l'azione di estrazione di SqlPackage viene usata con le proprietà seguenti:
- /p:AzureStorageBlobEndpoint
- /p:AzureStorageContainer
- /p:AzureStorageKey
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.
Un parametro aggiuntivo, che imposta il percorso radice di archiviazione all'interno del contenitore, è facoltativo:
- /p:AzureStorageRootPath
Senza questa proprietà, per impostazione predefinita il percorso è servername/databasename/timestamp/
. I dati vengono archiviati in singole cartelle denominate con nomi di tabella in 2 parti.
Esempio
Nell'esempio seguente viene estratto un database denominato databasename
da un server denominato yourserver.sql.azuresynapse.net
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.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
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 di Azure Synapse Analytics, 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.sql.azuresynapse.net
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.sql.azuresynapse.net/databasename/6-12-2022_8-09-56_AM/
nel contenitore.
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/"
Per altri esempi di tipi di autenticazione disponibili, vedere Pubblicazione di SqlPackage.
Supporto per i pool SQL serverless
I pool SQL serverless di Synapse sono supportati sia per le azioni di estrazione che di pubblicazione. La superficie di attacco T-SQL dei pool SQL serverless è limitata dalla progettazione a tabelle esterne, viste esterne, stored procedure, funzioni, statistiche e credenziali. Le funzionalità seguenti sono incluse nel supporto per i pool SQL serverless:
- Formato di file esterno Delta
- Provider OPENROWSET CosmosDB con PROVIDER, CONNECTION, OBJECT e CREDENTIAL o SERVER_CREDENTIAL specificati
- Clausola
with ()
in OPENROWSET
Passaggi successivi
- Altre informazioni sulla funzionalità Estrai
- Altre informazioni sulla funzionalità Pubblica
- Informazioni sull'Archiviazione BLOB di Azure
- Altre informazioni sulle chiavi dell'account di archiviazione di Azure