SqlPackage für Azure Synapse Analytics
In diesem Artikel wird die SqlPackage-Unterstützung für Azure Synapse Analytics behandelt. Er enthält Informationen zu den folgenden Themen:
- Integration mit Azure Blob Storage für den Zugriff auf Daten in Parquet-Dateien
- Unterstützung für serverlose SQL-Pools
Weder dedizierte noch serverlose SQL-Pools unterstützen die Import-/Exportaktionen in SqlPackage oder .bacpac
-Dateien. SqlPackage unterstützt Azure Synapse Analytics mit .dacpac
-Dateien und kann Daten in Parquet-Formatdateien in Azure Blog Storage lesen und schreiben. Um Daten aus einem dedizierten SQL-Pool zu importieren oder zu exportieren, müssen Sie die Veröffentlichungs- oder Extraktionsaktionen mit Daten verwenden, wie unten beschrieben.
Extrahieren (Exportieren von Daten)
Um Daten aus einer Azure Synapse Analytics-Datenbank in Azure Blob Storage zu exportieren, wird die Extract-Aktion von SqlPackage mit den folgenden Eigenschaften verwendet:
- /p:AzureStorageBlobEndpoint
- /p:AzureStorageContainer
- /p:AzureStorageKey
Zugriff für die Datenbank zum Zugreifen auf den Blobspeichercontainer wird über einen Speicherkontoschlüssel autorisiert. Das Datenbankschema (DACPAC-Datei) wird in den lokalen Client geschrieben, auf dem SqlPackage ausgeführt wird. Die Daten werden im Parquet-Format in Azure Blob Storage geschrieben.
Ein zusätzlicher Parameter, durch den der Azure Storage-Stammpfad innerhalb des Containers festgelegt wird, ist optional:
- /p:AzureStorageRootPath
Ohne diese Eigenschaft lautet der Standardpfad servername/databasename/timestamp/
. Daten werden in einzelnen Ordnern mit 2-teiligen Tabellennamen gespeichert.
Beispiel
Im folgenden Beispiel wird eine Datenbank namens databasename
von einem Server namens yourserver.sql.azuresynapse.net
in eine lokale Datei mit dem Namen databaseschema.dacpac
im aktuellen Verzeichnis extrahiert. Die Daten werden mithilfe eines Speicherkontoschlüssels namens storageaccountkey
in den Container containername
in einem Speicherkonto mit dem Namen storageaccount
geschrieben. Die Daten werden im Container in den Standardpfad von servername/databasename/timestamp/
geschrieben.
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
Weitere Beispiele für verfügbare Authentifizierungstypen finden Sie unter SqlPackage Extract.
Veröffentlichen (Importieren von Daten)
Um Daten aus Parquet-Dateien in Azure Blob Storage in eine Azure Synapse Analytics-Datenbank zu importieren, wird die Publish-Aktion von SqlPackage mit den folgenden Eigenschaften verwendet:
- /p:AzureStorageBlobEndpoint
- /p:AzureStorageContainer
- /p:AzureStorageRootPath
- /p:AzureStorageKey or /p:AzureSharedAccessSignatureToken
Der Zugriff zum Veröffentlichen kann über einen Speicherkontoschlüssel oder ein SAS-Token (Shared Access Signature) autorisiert werden. Das Datenbankschema (DACPAC-Datei) wird aus dem lokalen Client gelesen, auf dem SqlPackage ausgeführt wird. Die Daten werden im Parquet-Format aus Azure Blob Storage gelesen.
Beispiel
Im folgenden Beispiel wird eine Datenbank namens databasename
auf einem Server namens yourserver.sql.azuresynapse.net
aus einer lokalen Datei mit dem Namen databaseschema.dacpac
im aktuellen Verzeichnis veröffentlicht. Die Daten werden mithilfe eines Speicherkontoschlüssels namens storageaccountkey
aus dem Container containername
in einem Speicherkonto mit dem Namen storageaccount
gelesen. Die Daten werden unter dem Pfad yourserver.sql.azuresynapse.net/databasename/6-12-2022_8-09-56_AM/
im Container aus einzelnen Ordnern pro Tabelle gelesen.
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/"
Weitere Beispiele für verfügbare Authentifizierungstypen finden Sie unter SqlPackage Publish.
Unterstützung für serverlose SQL-Pools
Serverlose SQL-Pools in Synapse werden für die Extraktions- und Veröffentlichungsaktionen unterstützt. Der T-SQL-Schnittstellenbereich serverloser SQL-Pools ist standardmäßig auf externe Tabellen, externe Sichten, gespeicherte Prozeduren, Funktionen, Statistiken und Anmeldeinformationen beschränkt. Die folgenden Features werden für serverlose SQL-Pools unterstützt:
- Delta für externes Dateiformat
- OPENROWSET Anbieter CosmosDB mit Anbieter, Verbindungsobjekt unter Angabe von Anmeldedaten oder Server-Leistungsnachweis
with ()
Klausel für OPENROWSET
Nächste Schritte
- Weitere Informationen zum Extrahieren
- Weitere Informationen zum Veröffentlichen
- Erfahren Sie mehr über Azure Blob Storage.
- Weitere Informationen zu Azure Storage-Kontoschlüssel