Freigeben über


SqlPackage für Azure Synapse Analytics

Dieser Artikel behandelt die SqlPackage-Unterstützung für Azure Synapse Analytics. Sie 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

Sowohl dedizierte als auch serverlose SQL-Pools unterstützen die Import-/Exportaktionen in SqlPackage oder .bacpac Dateien nicht. SqlPackage unterstützt Azure Synapse Analytics mit .dacpac Dateien und kann Daten in Parkettformatdateien 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 wie unten beschrieben verwenden.

Extrahieren (Exportieren von Daten)

Um Daten aus einer Azure Synapse Analytics-Datenbank in Azure Blob Storage zu exportieren, wird die SqlPackage-Extraktaktion mit folgenden Eigenschaften verwendet:

  • /p:AzureStorageBlobEndpoint
  • /p:AzureStorageContainer
  • /p:AzureStorageKey

Der Zugriff auf die Datenbank, um auf den Blob-Speichercontainer zuzugreifen, wird über einen Speicherkontoschlüssel autorisiert. Das Datenbankschema (DACPAC-Datei) wird in den lokalen Client geschrieben, auf dem SqlPackage ausgeführt wird, und die Daten werden in Azure Blob Storage im Parkettformat geschrieben.

Ein zusätzlicher Parameter ist optional, der den Speicherstammpfad innerhalb des Containers festlegt:

  • /p:AzureStorageRootPath

Ohne diese Eigenschaft wird der Pfad standardmäßig auf servername/databasename/timestamp/festgelegt. Daten werden in einzelnen Ordnern gespeichert, die mit zweiteiligen Tabellennamen benannt werden.

Beispiel

Im folgenden Beispiel wird eine Datenbank namens databasename von einem Server mit dem Namen yourserver.sql.azuresynapse.net in eine lokale Datei mit dem Namen databaseschema.dacpac im aktuellen Verzeichnis extrahiert. Die Daten werden in einen Container namens containername in einem Speicherkonto mit dem Namen storageaccount mithilfe eines Speicherkontoschlüssels namens storageaccountkeygeschrieben. Die Daten werden in den Standardpfad von servername/databasename/timestamp/ im Container 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-Extrakt.

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 oder /p:AzureSharedAccessSignatureToken

Der Zugriff für die Veröffentlichung kann über einen Speicherkontoschlüssel oder ein SAS-Token (Shared Access Signature) autorisiert werden. Das Datenbankschema (DACPAC-Datei) wird vom lokalen Client gelesen, auf dem SqlPackage ausgeführt wird, und die Daten werden aus Azure Blob Storage im Parkettformat gelesen.

Beispiel

Im folgenden Beispiel wird eine Datenbank namens databasename auf einem Server mit dem Namen yourserver.sql.azuresynapse.net aus einer lokalen Datei namens databaseschema.dacpac im aktuellen Verzeichnis veröffentlicht. Die Daten werden aus einem Container mit dem Namen containername in einem Speicherkonto mit dem Namen storageaccount mithilfe eines Speicherkontoschlüssels namens storageaccountkeygelesen. Die Daten werden aus einzelnen Ordnern pro Tabelle unter dem Pfad yourserver.sql.azuresynapse.net/databasename/6-12-2022_8-09-56_AM/ im Container 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 die verfügbaren Arten der Authentifizierung finden Sie unter SqlPackage Publish.

Unterstützung für serverlose SQL-Pools

Synapse serverlose SQL-Pools werden sowohl für die Extrakt- als auch für die Veröffentlichungsaktionen unterstützt. Der T-SQL-Oberflächenbereich serverloser SQL-Pools ist auf externe Tabellen, externe Ansichten, gespeicherte Prozeduren, Funktionen, Statistiken und Anmeldeinformationen beschränkt. Die folgenden Features sind in der Unterstützung für serverlose SQL-Pools enthalten:

Nächste Schritte