Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makale, Parquet biçimindeki Azure Blob Depolama'da depolanan verilerle etkileşime yönelik SqlPackage desteğini kapsar.
ayıklandığında, veritabanı şeması (.dacpac dosyası) SqlPackage çalıştıran yerel istemciye yazılır ve veriler Parquet biçiminde Azure Blob Depolama'ya yazılır. Veriler, iki bölümlü tablo adlarıyla adlı tek tek klasörlerde depolanır.
CREATE EXTERNAL TABLE AS SELECT (CETAS), Azure Blob Depolama'da dosyaları yazmak için kullanılır.
yayımla, veritabanı şeması (.dacpac dosyası) SqlPackage çalıştıran yerel istemciden okunur ve veriler Parquet biçiminde Azure Blob Depolama'ya yazılır veya buradan okunur.
SQL Server 2022 ve Azure SQL Yönetilen Örneği için, Azure Blob Depolama'daki Parquet dosyalarındaki verilerle ayıklama ve yayımlama önizleme desteği, SqlPackage 162.1.176 ve üzeri sürümlerde kullanılabilir. Azure SQL Veritabanı için yayımlama için önizleme desteği SqlPackage 170.1.61 ve üzeri sürümlerde kullanılabilir. SQL Server 2019 ve önceki sürümleri desteklenmez. içeri aktarma ve dışarı aktarma eylemleri SQL Server, Azure SQL Yönetilen Örneği ve Azure SQL Veritabanı için kullanılabilir olmaya devam ediyor. Azure Blob Depolama'da Parquet dosyaları desteği, Azure Synapse Analytics için genel kullanımda olmaya devam ediyor.
Azure'da barındırılan SQL veritabanlarında Parquet dosyalarıyla yapılan ayıklama/yayımlama işlemleri, birçok senaryoda .bacpac dosyalarıyla içeri/dışarı aktarma işlemlerine göre gelişmiş performans sunar.
Veri dışa aktarma
Veritabanındaki verileri Azure Blob Depolama'ya aktarmak için SqlPackage ayıklama eylemi aşağıdaki özelliklerle kullanılır:
/p:AzureStorageBlobEndpoint/p:AzureStorageContainer-
/p:AzureSharedAccessSignatureTokenveya/p:AzureStorageKey(SQL Server ile kullanım için desteklenmez)
Veritabanının blob depolama kapsayıcısına erişmesi için erişim, bir depolama hesabı anahtarı aracılığıyla yetkilendirilmiştir. Veritabanı şeması (.dacpac dosyası) SqlPackage çalıştıran yerel istemciye yazılır ve veriler Parquet biçiminde Azure Blob Depolama'ya yazılır.
/p:AzureStorageRootPath parametresi, kapsayıcı içindeki depolama kök yolunu ayarlayan isteğe bağlıdır. Bu özellik olmadan, yol varsayılan olarak servername/databasename/timestamp/şeklindedir. Veriler, iki bölümlü tablo adlarıyla adlandırılan tek tek klasörlerde depolanır. Tablo başına oluşturulan dosyaların sayısı, dışarı aktarma sırasında MAXDOP ve kullanılabilir SQL çekirdeklerine bağlıdır.
Son olarak, /p:TableData özelliği verilerinin dışarı aktarıldığı tabloları belirtir. Ad bölümlerini schema_name.table_identifier biçiminde çevreleyen köşeli ayraçlar içeren veya olmayan tablo adını belirtin. Bu özellik, birden çok tabloyu göstermek için birden çok kez belirtilebilir.
Example
Aşağıdaki örnek, databasename adlı bir sunucudan yourserver adlı bir veritabanını geçerli dizindeki databaseschema.dacpac adlı yerel dosyaya ayıklar. Veriler, containernameadlı bir depolama hesabı anahtarı kullanılarak storageaccount adlı depolama hesabında storageaccountkey adlı bir kapsayıcıya yazılır. Veriler kapsayıcıdaki varsayılan servername/databasename/timestamp/ yoluna yazılır.
SqlPackage /Action:Extract /SourceServerName:yourserver /SourceDatabaseName:databasename /TargetFile:databaseschema.dacpac /p:AzureStorageBlobEndpoint=https://storageaccount.blob.core.windows.net /p:AzureStorageContainer=containername /p:AzureStorageKey=storageaccountkey
Kullanılabilir kimlik doğrulama türlerine ilişkin diğer örnekler için SqlPackage çıkarma bölümüne bakın.
Yayımlama (verileri içeri aktarma)
Azure Blob Depolama'daki Parquet dosyalarından veritabanına veri aktarmak için SqlPackage yayımlama eylemi aşağıdaki özelliklerle kullanılır:
/p:AzureStorageBlobEndpoint/p:AzureStorageContainer/p:AzureStorageRootPath-
/p:AzureSharedAccessSignatureTokenveya/p:AzureStorageKey(SQL Server ile kullanım için desteklenmez)
Yayımlama erişimi bir depolama hesabı anahtarı veya paylaşılan erişim imzası (SAS) belirteci aracılığıyla yetkilendirilebilir. Veritabanı şeması (.dacpac dosyası) SqlPackage çalıştıran yerel istemciden okunur ve veriler Azure Blob Depolama'dan Parquet biçiminde okunur.
Example
Aşağıdaki örnek, geçerli dizindeki databasename adlı yerel dosyadan yourserver adlı bir sunucuya databaseschema.dacpac adlı bir veritabanı yayımlar. Veriler, containernameadlı bir depolama hesabı anahtarı kullanılarak storageaccount adlı depolama hesabında storageaccountkey adlı bir kapsayıcıdan okunur. Veriler, kapsayıcıdaki yourserver/databasename/10-19-2023_11-09-56/ yolunun altındaki tablo başına tek tek klasörlerden okunur.
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/"
Daha fazla kimlik doğrulama türü örneği için SqlPackage yayınla bölümüne bakın.
Limitations
PolyBase
SQL Server ve Azure SQL Yönetilen Örneği için, Parquet dosyalarıyla SqlPackage işlemleri için PolyBase gereklidir. PolyBase'in etkinleştirilip etkinleştirilmediğini denetlemek için aşağıdaki sorgu kullanılabilir:
// 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)
PolyBase veya PolyBase dışarı aktarmayı etkinleştirmeniz gerekebilir. Azure SQL Yönetilen Örneğinde PolyBase'in etkinleştirilmesi için PowerShell veya Azure CLI gerekir. Yapılandırma değişiklikleri yapmadan önce PolyBase'i etkinleştirmenin ortamınız için doğru olup olmadığını değerlendirmeniz gerekir.
Tablo ve veri türleri
Veri türlerinin çoğu Parquet dosyalarıyla ayıklama ve yayımlama işlemleri için desteklenir. Desteklenmeyen veri türlerine sahip tablolar, tablo verilerinin Parquet formatı yerine .dacpac dosyasına aktarılmasına neden olur. Aşağıdaki veri türleri desteklenir ve Azure Blob Depolama'daki Parquet dosyalarına yazılır:
- char
- varchar
- nchar
- nvarchar
- text
- ntext
- decimal
- numeric
- float
- real
- bit
- tinyint
- smallint
- int
- bigint
- smallmoney
- money
- smalldate
- smalldatetime
- date
- datetime
- datetime2
- datetimeoffset
- time
- uniqueidentifier
- timestamp
- rowversion
- binary
- varbinary
- image
- xml
- json
- vector
Kayıt defteri tabloları, Parquet dosyalarıyla ayıklama ve yayımlama işlemleri için etkinleştirilmiştir.
Always Encrypted ile depolanan veriler, Parquet dosyalarıyla ayıklama ve yayımlama işlemleri için desteklenmez.
Doğrudan Azure Blob Depolama'ya yazılan Parquet dosyaları yerine .dacpac dosyasına yazılacak veri türlerini belirlemek için T-SQL ile veritabanınızı inceleyebilirsiniz. Aşağıdaki örnek sorgu, Parquet dosyalarına yazma işlemi için desteklenmeyen türlere ve tablolara sahip bir sonuç listesi döndürür.
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',
'tinyint',
'smallint',
'int',
'bigint',
'bit',
'money',
'smallmoney',
'uniqueidentifier',
'timestamp',
'rowversion',
'text',
'ntext',
'image',
'xml',
'json',
'vector'
);