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. 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ı ve 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.
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.
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:AzureSharedAccessSignatureToken
veya/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.
Örnek
Aşağıdaki örnek, databasename
adlı bir sunucudan yourserver
adlı bir veritabanını geçerli dizindeki databaseschema.dacpac
adlı yerel dosyaya ayıklar. Veriler, containername
adlı 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:AzureSharedAccessSignatureToken
veya/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.
Örnek
Aşağıdaki örnek, geçerli dizindeki databasename
adlı yerel dosyadan yourserver
adlı bir sunucuya databaseschema.dacpac
adlı bir veritabanı yayımlar. Veriler, containername
adlı 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.
Sınırlama
PolyBase
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
- Metin
- ntext
- ondalık
- Sayısal
- yüzmek
- Gerçek
- bit
- tinyint
- smallint
- Int
- büyük
- küçük para
- para
- smallDate
- smalldatetime
- tarih
- tarih ve saat
- datetime2
- datetimeoffset
- zaman
- benzersiz tanımlayıcı
- zaman etiketi
- Rowversion
- ikili
- varbinary
- görüntü
- XML
- json
- vektör
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'
);