Bagikan melalui


SqlPackage dengan data dalam file Parquet (pratinjau)

Artikel ini membahas dukungan SqlPackage untuk berinteraksi dengan data yang disimpan dalam Azure Blob Storage yang dalam format Parquet. Untuk SQL Server 2022 dan Azure SQL Managed Instance, dukungan pratinjau untuk mengekstrak dan menerbitkan dengan data dalam file Parquet di Azure Blob Storage tersedia di SqlPackage 162.1.176 dan yang lebih tinggi. Azure SQL Database dan SQL Server 2019 dan yang lebih lama tidak didukung. Tindakan impor dan ekspor terus tersedia untuk SQL Server, Azure SQL Managed Instance, dan Azure SQL Database. Dukungan untuk file Parquet di Azure Blob Storage terus tersedia secara umum untuk Azure Synapse Analytics.

Dengan ekstrak, skema database (.dacpac file) ditulis ke klien lokal yang menjalankan SqlPackage dan data ditulis ke Azure Blob Storage dalam format Parquet. Data disimpan dalam folder individual bernama dengan nama tabel dua bagian. CETAS digunakan untuk menulis file di Azure Blob Storage.

Dengan menerbitkan, skema database (.dacpac file) dibaca dari klien lokal yang menjalankan SqlPackage dan data dibaca dari atau ditulis ke Azure Blob Storage dalam format Parquet.

Dalam database SQL yang dihosting di Azure, operasi ekstrak/terbitkan dengan file Parquet menawarkan peningkatan performa dibandingkan operasi impor/ekspor dengan .bacpac file dalam banyak skenario.

Ekstrak (ekspor data)

Untuk mengekspor data dari database ke Azure Blob Storage, tindakan ekstrak SqlPackage digunakan dengan properti berikut:

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

Akses untuk database untuk mengakses kontainer penyimpanan blob diotorisasi melalui kunci akun penyimpanan. Skema database (file.dacpac) ditulis ke klien lokal yang menjalankan SqlPackage dan data ditulis ke Azure Blob Storage dalam format Parquet.

Parameter /p:AzureStorageRootPath bersifat opsional, yang mengatur jalur akar penyimpanan dalam kontainer. Tanpa properti ini, jalur default ke servername/databasename/timestamp/. Data disimpan dalam folder individual bernama dengan nama tabel dua bagian. Jumlah file yang dibuat per tabel tergantung pada MAXDOP dan inti SQL yang tersedia pada saat ekspor.

Terakhir, properti /p:TableData menentukan tabel mana yang telah mengekspor datanya. Tentukan nama tabel dengan atau tanpa tanda kurung di sekitar bagian nama dalam format schema_name.table_identifier. Properti ini dapat ditentukan beberapa kali untuk menunjukkan beberapa tabel.

Contoh

Contoh berikut mengekstrak database bernama databasename dari server bernama yourserver ke file lokal bernama databaseschema.dacpac di direktori saat ini. Data ditulis ke kontainer bernama containername di akun penyimpanan bernama storageaccount menggunakan kunci akun penyimpanan bernama storageaccountkey. Data ditulis ke jalur servername/databasename/timestamp/ default dalam kontainer.

SqlPackage /Action:Extract /SourceServerName:yourserver /SourceDatabaseName:databasename /TargetFile:databaseschema.dacpac /p:AzureStorageBlobEndpoint=https://storageaccount.blob.core.windows.net /p:AzureStorageContainer=containername /p:AzureStorageKey=storageaccountkey

Lihat Ekstrak SqlPackage untuk contoh lebih lanjut jenis autentikasi yang tersedia.

Terbitkan (impor data)

Untuk mengimpor data dari file Parquet di Azure Blob Storage ke database, tindakan penerbitan SqlPackage digunakan dengan properti berikut:

  • /p:AzureStorageBlobEndpoint
  • /p:AzureStorageContainer
  • /p:AzureStorageRootPath
  • /p:AzureStorageKey atau /p:AzureSharedAccessSignatureToken

Akses untuk penerbitan dapat diotorisasi melalui kunci akun penyimpanan atau token tanda tangan akses bersama (SAS). Skema database (file.dacpac) dibaca dari klien lokal yang menjalankan SqlPackage dan data dibaca dari Azure Blob Storage dalam format Parquet.

Contoh

Contoh berikut menerbitkan database bernama databasename ke server bernama yourserver dari file lokal bernama databaseschema.dacpac di direktori saat ini. Data dibaca dari kontainer bernama containername di akun penyimpanan bernama storageaccount menggunakan kunci akun penyimpanan bernama storageaccountkey. Data dibaca dari folder individual per tabel di bawah jalur yourserver/databasename/10-19-2023_11-09-56/ dalam kontainer.

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

Lihat Penerbitan SqlPackage untuk contoh jenis autentikasi lainnya yang tersedia.

Batasan

Polybase

Polybase diperlukan untuk operasi SqlPackage dengan file Parquet. Kueri berikut dapat digunakan untuk memeriksa apakah Polybase diaktifkan:

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

Anda mungkin perlu mengaktifkan ekspor Polybase atau Polybase. Mengaktifkan Polybase di Azure SQL Managed Instance memerlukan PowerShell atau Azure CLI. Disarankan agar Anda mengevaluasi apakah mengaktifkan Polybase tepat untuk lingkungan Anda sebelum membuat perubahan konfigurasi.

Jenis tabel dan data

Jenis data yang didukung oleh CETAS didukung untuk operasi ekstrak dan terbitkan dengan file Parquet.

Tabel ledger diaktifkan untuk operasi ekstrak dan terbitkan dengan file Parquet.

Data yang disimpan dengan Always Encrypted tidak didukung untuk mengekstrak dan menerbitkan operasi dengan file Parquet.

Langkah berikutnya