Freigeben über


SqlPackage mit Daten in Parquet-Dateien (Vorschau)

In diesem Artikel wird die SqlPackage-Unterstützung für die Interaktion mit Daten behandelt, die im Azure Blob Storage im Parquet-Format gespeichert sind. Für SQL Server 2022 und Azure SQL Managed Instance ist in SqlPackage 162.1.176 und später eine Vorschauunterstützung für das Extrahieren und Veröffentlichen mit Daten in Parquet-Dateien in Azure Blob Storage verfügbar. Azure SQL-Datenbank und SQL Server 2019 und früher werden nicht unterstützt. Die Import- und Exportaktionen sind weiterhin für SQL Server, Azure SQL verwaltete Instanz und Azure SQL-Datenbank verfügbar. Die Unterstützung für Parquet-Dateien in Azure Blob Storage ist weiterhin allgemein für Azure Synapse Analytics verfügbar.

Mit Extrahieren wird das Datenbankschema (.dacpac-Datei) in den lokalen Client geschrieben, auf dem SqlPackage ausgeführt wird. Die Daten werden im Parquet-Format in Azure Blob Storage geschrieben. Die Daten werden in einzelnen Ordnern mit 2-teiligen Tabellennamen gespeichert. CETAS wird verwendet, um die Dateien in Azure Blob Storage zu schreiben.

Mit Veröffentlichen wird 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.

In SQL-Datenbanken, die in Azure gehostet werden, bieten die Extrakt-/Veröffentlichungsvorgänge mit Parquet-Dateien eine verbesserte Leistung gegenüber Import-/Exportvorgängen mit .bacpac-Dateien in vielen Szenarien.

Extrahieren (Exportieren von Daten)

Um Daten aus einer Datenbank in Azure Blob Storage zu exportieren, wird die Extrahieren-Aktion von SqlPackage mit den folgenden Eigenschaften verwendet:

  • /p:AzureStorageBlobEndpoint
  • /p:AzureStorageContainer
  • /p:AzureStorageKey or /p:AzureSharedAccessSignatureToken

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.

Der Parameter /p:AzureStorageRootPath, durch den der Azure Storage-Stammpfad innerhalb des Containers festgelegt wird, ist optional. Ohne diese Eigenschaft lautet der Standardpfad servername/databasename/timestamp/. Daten werden in einzelnen Ordnern mit 2-teiligen Tabellennamen gespeichert. Die Anzahl der pro Tabelle erstellten Dateien hängt vom MAXDOP und den verfügbaren SQL-Kernen zum Zeitpunkt des Exports ab.

Schließlich gibt die Eigenschaft /p:TableData an, welche Tabellen ihre Daten exportiert haben. Geben Sie den Tabellennamen mit oder ohne Klammern um die Namensteile im Format schema_name.table_identifier an. Diese Eigenschaft kann mehrfach angegeben werden, um mehrere Tabellen anzuzeigen.

Beispiel

Im folgenden Beispiel wird eine Datenbank namens databasename von einem Server namens yourserver 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 /SourceDatabaseName:databasename /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 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 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/databasename/10-19-2023_11-09-56/ im Container aus einzelnen Ordnern pro Tabelle gelesen.

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/"

Weitere Beispiele für verfügbare Authentifizierungstypen finden Sie unter SqlPackage Publish.

Begrenzungen

Polybase

Polybase ist für SqlPackage-Vorgänge mit Parquet-Dateien erforderlich. Die folgende Abfrage kann verwendet werden, um zu überprüfen, ob Polybase aktiviert ist:

// 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)

Möglicherweise müssen Sie den Export von Polybase oder Polybase aktivieren. Das Aktivieren von Polybase auf Azure SQL verwaltete Instanz erfordert PowerShell oder Azure CLI. Es wird empfohlen, zu bewerten, ob die Aktivierung von Polybase für Ihre Umgebung geeignet ist, bevor Sie Konfigurationsänderungen vornehmen.

Tabellendatentypen

Von CETAS unterstützte Datentypen werden für Extrakt- und Veröffentlichungsvorgänge mit Parquet-Dateien unterstützt.

Ledger-Tabellen sind für Extrakt- und Veröffentlichungsvorgänge mit Parquet-Dateien aktiviert.

Mit Always Encrypted gespeicherte Daten werden für Extrakt- und Veröffentlichungsvorgänge mit Parquet-Dateien nicht unterstützt.

Nächste Schritte