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