Pakiet SqlPackage z danymi w plikach Parquet (wersja zapoznawcza)
W tym artykule opisano obsługę pakietu SqlPackage na potrzeby interakcji z danymi przechowywanymi w usłudze Azure Blob Storage w formacie Parquet. W przypadku programów SQL Server 2022 i Azure SQL Managed Instance wersja zapoznawcza usługi wyodrębniania i publikowania z danymi w plikach Parquet w usłudze Azure Blob Storage jest dostępna w programie SqlPackage 162.1.176 i nowszych. Usługi Azure SQL Database i SQL Server 2019 i starsze nie są obsługiwane. Akcje importowania i eksportu nadal są dostępne dla serwera SQL Server, Azure SQL Managed Instance i Azure SQL Database. Wsparcie dla plików Parquet w usłudze Azure Blob Storage jest nadal powszechnie dostępne dla usługi Azure Synapse Analytics.
Przy wyodrębnianiu z, schemat bazy danych (plik.dacpac
) jest zapisywany na lokalnym kliencie uruchamiającym SqlPackage, a dane są zapisywane w Azure Blob Storage w formacie Parquet. Dane są przechowywane w poszczególnych folderach o nazwie z dwuczęściowymi nazwami tabel.
CETAS służy do zapisywania plików w usłudze Azure Blob Storage.
W przypadku publikowania schemat bazy danych (plik.dacpac
) jest odczytywany z lokalnego klienta uruchamiającego SqlPackage, a dane są odczytywane lub zapisywane w usłudze Azure Blob Storage w formacie Parquet.
W bazach danych SQL hostowanych na platformie Azure operacje wyodrębniania/publikowania z plikami Parquet oferują lepszą wydajność operacji importowania/eksportowania przy użyciu plików .bacpac
w wielu scenariuszach.
Wyodrębnianie (eksportowanie danych)
Aby wyeksportować dane z bazy danych do usługi Azure Blob Storage, akcja wyodrębniania pakietu SqlPackage jest stosowana z następującymi właściwościami:
- /p:AzureStorageBlobEndpoint
- /p:AzureStorageContainer
- /p:AzureStorageKey lub /p:AzureSharedAccessSignatureToken
Dostęp do bazy danych w celu uzyskania dostępu do kontenera magazynu obiektów blob jest autoryzowany za pośrednictwem klucza konta magazynu. Schemat bazy danych (plik dacpac) jest zapisywany na lokalnym kliencie z uruchomionym pakietem SqlPackage, a dane są zapisywane w usłudze Azure Blob Storage w formacie Parquet.
Parametr /p:AzureStorageRootPath
jest opcjonalny i służy do ustawienia ścieżki głównej magazynu w kontenerze. Bez tej właściwości ścieżka jest domyślnie ustawiona na servername/databasename/timestamp/
. Dane są przechowywane w poszczególnych folderach o nazwie z dwuczęściowymi nazwami tabel. Liczba plików utworzonych na tabelę zależy od wartości MAXDOP i dostępnych rdzeni SQL w momencie eksportu.
Na koniec właściwość /p:TableData
określa, które tabele mają wyeksportowane dane. Określ nazwę tabeli z lub bez nawiasów kwadratowych otaczających części nazwy w formacie schema_name.table_identifier. Tę właściwość można określić wiele razy, aby wskazać wiele tabel.
Przykład
Poniższy przykład wyodrębnia bazę danych o nazwie databasename
z serwera o nazwie yourserver
do pliku lokalnego o nazwie databaseschema.dacpac
w bieżącym katalogu. Dane są zapisywane w kontenerze o nazwie containername
na koncie magazynu o nazwie storageaccount
przy użyciu klucza konta magazynu o nazwie storageaccountkey
. Dane są zapisywane w domyślnej ścieżce servername/databasename/timestamp/
w kontenerze.
SqlPackage /Action:Extract /SourceServerName:yourserver /SourceDatabaseName:databasename /TargetFile:databaseschema.dacpac /p:AzureStorageBlobEndpoint=https://storageaccount.blob.core.windows.net /p:AzureStorageContainer=containername /p:AzureStorageKey=storageaccountkey
Zobacz SqlPackage extract, aby uzyskać więcej przykładów typów uwierzytelniania, które są dostępne.
Publikowanie (importowanie danych)
Aby zaimportować dane z plików Parquet w usłudze Azure Blob Storage do bazy danych, akcja SqlPackage publikowania jest używana z następującymi właściwościami:
- /p:AzureStorageBlobEndpoint
- /p:AzureStorageContainer
- /p:AzureStorageRootPath
- /p:AzureStorageKey lub /p:AzureSharedAccessSignatureToken
Dostęp do publikowania można autoryzować za pośrednictwem klucza konta magazynowego lub tokenu sygnatury dostępu współdzielonego (SAS). Schemat bazy danych (plik dacpac) jest odczytywany z klienta lokalnego z uruchomionym pakietem SqlPackage, a dane są odczytywane z usługi Azure Blob Storage w formacie Parquet.
Przykład
Poniższy przykład publikuje bazę danych o nazwie databasename
na serwerze o nazwie yourserver
z pliku lokalnego o nazwie databaseschema.dacpac
w bieżącym katalogu. Dane są odczytywane z kontenera o nazwie containername
na koncie magazynu o nazwie storageaccount
przy użyciu klucza konta magazynu o nazwie storageaccountkey
. Dane są odczytywane z poszczególnych folderów dla każdej tabeli pod ścieżką yourserver/databasename/10-19-2023_11-09-56/
w kontenerze.
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/"
Zobacz SqlPackage publikowania, aby uzyskać więcej przykładów dostępnych typów uwierzytelniania.
Ograniczenia
Polybase
Polybase jest wymagany do operacji SqlPackage z plikami Parquet. Następujące zapytanie może służyć do sprawdzania, czy technologia Polybase jest włączona:
// 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)
Może być konieczne włączenie programu Polybase lub eksportowania programu Polybase. Włączenie funkcji Polybase w usłudze Azure SQL Managed Instance wymaga programu PowerShell lub interfejsu wiersza polecenia platformy Azure. Zaleca się sprawdzenie, czy włączenie programu Polybase jest odpowiednie dla danego środowiska przed wprowadzeniem zmian konfiguracji.
Typy tabel i danych
Typy danych obsługiwane przez CETAS są wspierane przy operacjach wyodrębniania i publikowania z użyciem plików Parquet.
Tabele rejestru są włączone na potrzeby operacji wyodrębniania i publikowania z plikami Parquet.
Dane przechowywane za pomocą Always Encrypted nie obsługują operacji wyodrębniania i publikowania z plikami Parquet.
Sprawdzanie bazy danych pod kątem nieobsługiwanych typów odbywa się przed wyodrębnieniem do formatu Parquet przy pomocy narzędzia SqlPackage, ale możesz szybko przeanalizować swoją bazę danych za pomocą T-SQL. Poniższe przykładowe zapytanie zwraca zestaw wyników typów i tabel z typami, które nie są obsługiwane do zapisywania w plikach Parquet.
SELECT DISTINCT C.DATA_TYPE, C.TABLE_SCHEMA, C.TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES T
INNER JOIN INFORMATION_SCHEMA.COLUMNS C
ON T.TABLE_SCHEMA = C.TABLE_SCHEMA
AND T.TABLE_NAME = C.TABLE_NAME
AND T.TABLE_TYPE = 'BASE TABLE'
WHERE C.DATA_TYPE NOT IN (
'binary',
'varbinary',
'char',
'varchar',
'nchar',
'nvarchar',
'smalldate',
'smalldatetime',
'date',
'datetime',
'datetime2',
'datetimeoffset',
'time',
'decimal',
'numeric',
'float',
'real',
'bigint',
'tinyint',
'smallint',
'int',
'bigint',
'bit',
'money',
'smallmoney',
'uniqueidentifier'
)
Następne kroki
- Dowiedz się więcej o wyodrębnij
- Dowiedz się więcej o Publikacja
- Dowiedz się więcej o usłudze Azure Blob Storage
- Dowiedz się więcej na temat sygnatury dostępu współdzielonego (SAS) usługi Azure Storage
- Dowiedz się więcej o kluczach kont usługi Azure Storage