Aracılığıyla paylaş


HARICI DOSYA FORMATI OLUŞTUR (Transact-SQL)

Şunlar için geçerlidir: SQL Server 2016 (13.x) and later versions Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL database in Microsoft Fabric

Hadoop, Azure Blob Storage, Azure Data Lake Store, OneLake (Microsoft Fabric) veya harici akışlarla ilişkili giriş ve çıkış akışları için harici verileri tanımlayan harici bir dosya formatı nesnesi oluşturur. Dış dosya biçimi oluşturmak, Dış Tablo oluşturmak için önkoşuldur. Dış Dosya Biçimi oluşturarak, dış tablo tarafından başvuruda bulunılan verilerin gerçek düzenini belirtirsiniz. Dış Tablo oluşturmak için bkz. CREATE EXTERNAL TABLE (Transact-SQL).

Aşağıdaki dosya biçimleri desteklenir:

  • Sınırlandırılmış metin

    Microsoft Fabric'teki SQL veritabanı yalnızca sınırlandırılmış metin CSV formatını destekler.

  • Hive RCFile

    Azure Synapse Analytics, Azure SQL Managed Instance, Azure SQL Database, SQL database in Microsoft Fabric veya SQL Server 2022 (16.x) için geçerli değildir.

  • Hive ORC

    Azure Synapse Analytics, Azure SQL Managed Instance, Azure SQL Database, SQL database in Microsoft Fabric veya SQL Server 2022 (16.x) için geçerli değildir.

  • Parke

  • JSON

    Yalnızca Azure SQL Edge için geçerlidir. Diğer platformlardaki JSON verilerini içeri aktarmak için kullanma OPENROWSET hakkında bilgi için bkz. Azure Synapse Analytics'te sunucusuz SQL havuzunu kullanarak JSONbelgelerini SQL Server'a aktarma veya JSON dosyalarını sorgulama.

  • Delta

    YalnızcaAzure Synapse Analytics, Azure SQL Database, SQL Server 2022 (16.x) ve sonraki sürümlerdeki serverless SQL pool'lara uygulanır. Delta Lake sürüm 1.0'a sorgulayabilirsiniz. Delta Lake 1.2'de sütunları yeniden adlandırma gibi değişiklikler desteklenmediğinden bu yana ortaya çıkmıştır. Delta'nın daha yüksek sürümlerini silme vektörleri, v2 denetim noktaları ve diğer özelliklerle kullanıyorsanız Lakehouses için Microsoft Fabric SQL analiz uç noktası gibi diğer sorgu altyapılarını kullanmayı göz önünde bulundurun.

Transact-SQL söz dizimi kuralları

Sözdizimi

-- Create an external file format for DELIMITED (CSV/TSV) files.
CREATE EXTERNAL FILE FORMAT file_format_name
WITH (
        FORMAT_TYPE = DELIMITEDTEXT
    [ , FORMAT_OPTIONS ( <format_options> [ ,...n  ] ) ]
    [ , DATA_COMPRESSION = {
           'org.apache.hadoop.io.compress.GzipCodec'
        }
     ]);

<format_options> ::=
{
    FIELD_TERMINATOR = field_terminator
    | STRING_DELIMITER = string_delimiter
    | FIRST_ROW = integer -- Applies to: Azure Synapse Analytics and SQL Server 2022 and later versions
    | DATE_FORMAT = datetime_format
    | USE_TYPE_DEFAULT = { TRUE | FALSE }
    | ENCODING = {'UTF8' | 'UTF16'}
    | PARSER_VERSION = {'parser_version'}

}

Tartışmalar

file_format_name

Dış dosya biçimi için bir ad belirtir.

FORMAT_TYPE

Dış verilerin biçimini belirtir.

  • FORMAT_TYPE = PARKE

    Parquet biçimini belirtir.

  • FORMAT_TYPE = ORC

    İyileştirilmiş Satır Sütunlu (ORC) biçimini belirtir. Bu seçenek, dış Hadoop kümesinde Hive sürüm 0.11 veya üzerini gerektirir. Hadoop'ta, ORC dosya biçimi RCFILE dosya biçiminden daha iyi sıkıştırma ve performans sunar.

  • FORMAT_TYPE = RCFILE, SERDE_METHOD = SERDE_method

    Kayıt Sütunlu dosya biçimini (RcFile) belirtir. Bu seçenek bir Hive Seri Hale Getirici ve Seri Durumdan Çıkarıcı (SerDe) yöntemi belirtmenizi gerektirir. Rc dosyalarını sorgulamak için Hadoop'ta Hive/HiveQL kullanıyorsanız bu gereksinim aynıdır. SerDe yönteminin büyük/küçük harfe duyarlı olduğunu unutmayın.

    PolyBase'in desteklediği iki SerDe yöntemiyle RCFile belirtme örnekleri.

    • FORMAT_TYPE = RCFILE, SERDE_METHOD = 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe'
    • FORMAT_TYPE = RCFILE, SERDE_METHOD = 'org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe'
  • FORMAT_TYPE = DELIMITEDTEXT

    Sütun ayırıcıları olan bir metin formatı belirler, yani alan sonlayıcıları.

  • FORMAT_TYPE = JSON

    Bir JSON biçimi belirtir. Yalnızca Azure SQL Edge için geçerlidir.

  • FORMAT_TYPE = DELTA

    Delta Lake biçimini belirtir. Azure Synapse Analytics ve SQL Server 2022 (16.x) içindeki sunucusuz SQL havuzları için geçerlidir.

FORMAT_OPTIONS

Opsiyonel. Yalnızca sınırlandırılmış metin veri türleri için.

Yalnızca Azure Synapse Analytics'teki sunucusuz SQL havuzları destekler PARSER_VERSION.

Sunucusuz SQL havuzları seçeneği desteklemez DATE_FORMAT .

DATA_COMPRESSION = data_compression_method

Dış veriler için veri sıkıştırma yöntemini belirtir. Belirtilmediğinde DATA_COMPRESSION , varsayılan değer sıkıştırılmamış verilerdir.

Düzgün çalışabilmek için Gzip sıkıştırılmış dosyalarının dosya uzantısına .gz sahip olması gerekir.

Biçim DELIMITEDTEXT türü şu sıkıştırma yöntemini destekler: DATA_COMPRESSION = org.apache.hadoop.io.compress.GzipCodec

Sınırlandırılmış metin biçimi seçenekleri

Bu bölümde açıklanan biçim seçenekleri isteğe bağlıdır ve yalnızca sınırlandırılmış metin dosyalarına uygulanır.

FIELD_TERMINATOR = field_terminator

Yalnızca sınırlandırılmış metin dosyaları için geçerlidir. Alan sonlandırıcısı, metinle ayrılmış dosyadaki her alanın (sütunun) sonunu işaretleyen bir veya daha fazla karakter belirtir. Varsayılan değer, kanal karakteridir |. Garantili destek için bir veya daha fazla ASCII karakteri kullanmanızı öneririz.

Örnekler:

  • FIELD_TERMINATOR = '|'
  • FIELD_TERMINATOR = ' '
  • FIELD_TERMINATOR = ꞌ\tꞌ
  • FIELD_TERMINATOR = '~|~'

STRING_DELIMITER

STRING_DELIMITER = *string_delimiter*

Metinsel değerleri metinle ayrılmış dosyaya alan bir karakter belirtir. Varsayılan değer "" boş dizesidir. değeri STRING_DELIMITER işlevdeki FIELDQUOTE seçeneğiyle OPENROWSET BULK işlevsel olarak eşdeğerdir.

Uyarı

Synapse ayrılmış SQL havuzlarındaki Hadoop tabloları, STRING_DELIMITER bir veya daha fazla karakter belirtmenizi sağlar. Sunucusuz SQL havuzunda yalnızca bir karakter kullanabilirsiniz.

Örnekler:

  • STRING_DELIMITER = '"'

  • STRING_DELIMITER = '0x22' (Çift tırnak onaltılık)

  • STRING_DELIMITER = '*'

  • STRING_DELIMITER = ꞌ,ꞌ

  • STRING_DELIMITER = '0x7E0x7E' (İki tilde, örneğin, ~~) - ayrılmış SQL havuzunda desteklenir.

FIRST_ROW = first_row_int

Şunlar için geçerlidir: Azure Synapse Analytics, SQL Server 2022 ve sonraki sürümleri

PolyBase yükü sırasında tüm dosyalarda ilk okunan satır numarasını belirtir. Bu parametre 1 - 15 değerlerini alabilir. Değer iki olarak ayarlanırsa, veriler yüklendiğinde her dosyadaki (üst bilgi satırı) ilk satır atlanır. Satır sonlandırıcılarının (/r/n, /r, /n) varlığına bağlı olarak satırlar atlanır. Dışarı aktarma için bu seçenek kullanıldığında, verilerin veri kaybı olmadan okunabilmesini sağlamak için satırlar eklenir. Değer 2 olarak >ayarlanırsa, dışarı aktarılan ilk satır dış tablonun Sütun adlarıdır.

DATE_FORMAT = datetime_format

Sınırlandırılmış bir metin dosyasında görünebilecek tüm tarih ve saat verileri için özel bir biçim belirtir. Kaynak dosya varsayılan tarih saat biçimlerini kullanıyorsa, bu seçenek gerekli değildir. Dosya başına yalnızca bir özel tarih saat biçimine izin verilir. Dosya başına birden fazla özel tarih saat biçimi belirtemezsiniz. Ancak, her biri dış tablo tanımındaki ilgili veri türü için varsayılan biçimse birden fazla tarih saat biçimi kullanabilirsiniz.

Önemli

PolyBase yalnızca verileri içeri aktarmak için özel tarih biçimini kullanır. Dış dosyaya veri yazmak için özel biçimi kullanmaz.

DATE_FORMAT belirtilmediğinde veya boş dize olduğunda PolyBase aşağıdaki varsayılan biçimleri kullanır:

  • Tarih saati: 'yyyy-MM-dd HH:mm:ss'

  • Smalldatetime: 'yyyy-MM-dd HH:mm'

  • tarih: 'yyyy-MM-dd'

  • Datetime2: 'yyyy-MM-dd HH:mm:ss'

  • Datetimeoffset: 'yyyy-MM-dd HH:mm:ss'

  • zaman: 'HH:mm:ss'

Önemli

Özel DATE_FORMAT belirtilmesi tüm varsayılan tür biçimlerini geçersiz kılar. Bu, dosyalarınızdaki tüm tarih saat, tarih ve saat hücrelerinde aynı tarih biçimlerine sahip olmanız gerektiği anlamına gelir. geçersiz kılınmış DATE_FORMATile, tarih ve saat değerleriniz farklı biçimde olamaz.

Örnek tarih biçimleri aşağıdaki tabloda verilmiştir:

Tabloyla ilgili notlar:

  • Yıl, ay ve gün birkaç biçime ve siparişe sahip olabilir. Tabloda yalnızca ymd biçimi gösterilir. Ay bir veya iki basamak veya üç karakter içerebilir. Gün bir veya iki basamak içerebilir. Yıl iki veya dört basamak içerebilir.

  • Milisaniye (fffffff) gerekli değildir.

  • am veya pm (tt) gerekli değildir. Varsayılan değer: AM.

Tarih Türü Örnek Açıklama
tarih ve saat DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fff Yıl, ay ve güne ek olarak, bu tarih biçimi 00-24 saat, 00-59 dakika, 00-59 saniye ve milisaniye için üç basamak içerir.
tarih ve saat DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffftt Yıl, ay ve güne ek olarak, bu tarih biçimi 00-12 saat, 00-59 dakika, 00-59 saniye, milisaniye için üç basamak ve AM, am, PMveya pmiçerir.
smalldatetime DATE_FORMAT = yyyy-MM-dd HH:mm Yıl, ay ve güne ek olarak, bu tarih biçimi 00-23 saat, 00-59 dakika içerir.
smalldatetime DATE_FORMAT = yyyy-MM-dd hh:mmtt Yıl, ay ve güne ek olarak, bu tarih biçimi 00-11 saat, 00-59 dakika, saniye yok ve AM, am, PMveya pmiçerir.
tarih DATE_FORMAT = yyyy-MM-dd Yıl, ay ve gün. Zaman öğesi dahil değildir.
tarih DATE_FORMAT = yyyy-MMM-dd Yıl, ay ve gün. ile ay belirtildiğindeMMM, giriş değeri bir veya dizeleridir, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, OctNovveya Dec.
datetime2 DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fffffff Yıl, ay ve güne ek olarak, bu tarih biçimi milisaniyeler için 00-23 saat, 00-59 dakika, 00-59 saniye ve yedi basamak içerir.
datetime2 DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffffffftt Yıl, ay ve güne ek olarak, bu tarih biçimi 00-11 saat, 00-59 dakika, 00-59 saniye, milisaniye için yedi basamak ve AM, am, PMveya pmiçerir.
datetimeoffset DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fffffff zzz Yıl, ay ve güne ek olarak, bu tarih biçimi 00-23 saat, 00-59 dakika, 00-59 saniye ve milisaniyeler için 7 basamak ve giriş dosyasına olarak {+&#124;-}HH:ssyerleştirdiğiniz saat dilimi uzaklığını içerir. Örneğin, gün ışığından yararlanmadan Los Angeles saati UTC'nin 8 saat gerisinde olduğundan, giriş dosyasındaki -08:00 değeri Los Angeles saat dilimini belirtir.
datetimeoffset DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffffffftt zzz Yıl, ay ve güne ek olarak, bu tarih biçimi 00-11 saat, 00-59 dakika, 00-59 saniye, milisaniye için yedi basamak, (AM, am, PMveya pm) ve saat dilimi uzaklığını içerir. Önceki satırdaki açıklamaya bakın.
zaman DATE_FORMAT = HH:mm:ss Tarih değeri yoktur; yalnızca 00-23 saat, 00-59 dakika ve 00-59 saniye.

Desteklenen tarih ve saat biçimleri

Dış dosya biçimi çok sayıda tarih ve saat biçimini açıklayabilir:

tarih ve saat smalldatetime tarih datetime2 datetimeoffset
[M[M]]M-[d]d-[yy]yy HH:mm:ss[.fff] [M[M]]M-[d]d-[yy]yy HH:mm[:00] [M[M]]M-[d]d-[yy]yy [M[M]]M-[d]d-[yy]yy HH:mm:ss[.fffffff] [M[M]]M-[d]d-[yy]yy HH:mm:ss[.fffffff] zzz
[M[M]]M-[d]d-[yy]yy hh:mm:ss[.fff][tt] [M[M]]M-[d]d-[yy]yy hh:mm[:00][tt] [M[M]]M-[d]d-[yy]yy hh:mm:ss[.fffffff][tt] [M[M]]M-[d]d-[yy]yy hh:mm:ss[.fffffff][tt] zzz
[M[M]]M-[yy]yy-[d]d HH:mm:ss[.fff] [M[M]]M-[yy]yy-[d]d HH:mm[:00] [M[M]]M-[yy]yy-[d]d [M[M]]M-[yy]yy-[d]d HH:mm:ss[.fffffff] [M[M]]M-[yy]yy-[d]d HH:mm:ss[.fffffff] zzz
[M[M]]M-[yy]yy-[d]d hh:mm:ss[.fff][tt] [M[M]]M-[yy]yy-[d]d hh:mm[:00][tt] [M[M]]M-[yy]yy-[d]d hh:mm:ss[.fffffff][tt] [M[M]]M-[yy]yy-[d]d hh:mm:ss[.fffffff][tt] zzz
[yy]yy-[M[M]]M-[d]d HH:mm:ss[.fff] [yy]yy-[M[M]]M-[d]d HH:mm[:00] [yy]yy-[M[M]]M-[d]d [yy]yy-[M[M]]M-[d]d HH:mm:ss[.fffffff] [yy]yy-[M[M]]M-[d]d HH:mm:ss[.fffffff] zzz
[yy]yy-[M[M]]M-[d]d hh:mm:ss[.fff][tt] [yy]yy-[M[M]]M-[d]d hh:mm[:00][tt] [yy]yy-[M[M]]M-[d]d hh:mm:ss[.fffffff][tt] [yy]yy-[M[M]]M-[d]d hh:mm:ss[.fffffff][tt] zzz
[yy]yy-[d]d-[M[M]]M HH:mm:ss[.fff] [yy]yy-[d]d-[M[M]]M HH:mm[:00] [yy]yy-[d]d-[M[M]]M [yy]yy-[d]d-[M[M]]M HH:mm:ss[.fffffff] [yy]yy-[d]d-[M[M]]M HH:mm:ss[.fffffff] zzz
[yy]yy-[d]d-[M[M]]M hh:mm:ss[.fff][tt] [yy]yy-[d]d-[M[M]]M hh:mm[:00][tt] [yy]yy-[d]d-[M[M]]M hh:mm:ss[.fffffff][tt] [yy]yy-[d]d-[M[M]]M hh:mm:ss[.fffffff][tt] zzz
[d]d-[M[M]]M-[yy]yy HH:mm:ss[.fff] [d]d-[M[M]]M-[yy]yy HH:mm[:00] [d]d-[M[M]]M-[yy]yy [d]d-[M[M]]M-[yy]yy HH:mm:ss[.fffffff] [d]d-[M[M]]M-[yy]yy HH:mm:ss[.fffffff] zzz
[d]d-[M[M]]M-[yy]yy hh:mm:ss[.fff][tt] [d]d-[M[M]]M-[yy]yy hh:mm[:00][tt] [d]d-[M[M]]M-[yy]yy hh:mm:ss[.fffffff][tt] [d]d-[M[M]]M-[yy]yy hh:mm:ss[.fffffff][tt] zzz
[d]d-[yy]yy-[M[M]]M HH:mm:ss[.fff] [d]d-[yy]yy-[M[M]]M HH:mm[:00] [d]d-[yy]yy-[M[M]]M [d]d-[yy]yy-[M[M]]M HH:mm:ss[.fffffff] [d]d-[yy]yy-[M[M]]M HH:mm:ss[.fffffff] zzz
[d]d-[yy]yy-[M[M]]M hh:mm:ss[.fff][tt] [d]d-[yy]yy-[M[M]]M hh:mm[:00][tt] [d]d-[yy]yy-[M[M]]M hh:mm:ss[.fffffff][tt] [d]d-[yy]yy-[M[M]]M hh:mm:ss[.fffffff][tt] zzz

Ayrıntılar:

  • Ay, gün ve yıl değerlerini ayırmak için aşağıdaki ayırıcılardan birini kullanmanız gerekir: -, /veya .. Kolaylık olması için tabloda yalnızca - ayırıcı kullanılır.

  • Ayı metin olarak belirtmek için üç veya daha fazla karakter kullanın. Bir veya iki karakter içeren aylar sayı olarak yorumlanır.

  • Saat değerlerini ayırmak için simgesini kullanın : .

  • Köşeli ayraç içine alınmış harfler isteğe bağlıdır.

  • Harfler tt [AM|PM|am|pm] olarak belirler. AM varsayılan değerdir. Belirtildiğinde tt , saat değeri (hh) 0 ile 12 arasında olmalıdır.

  • Harfler zzz , sistemin geçerli saat dilimi için saat dilimi uzaklığını biçiminde {+|-}HH:ss]belirler.

USE_TYPE_DEFAULT = { DOĞRU | SAHTE }

PolyBase metin dosyasından veri aldığında sınırlandırılmış metin dosyalarındaki eksik değerlerin nasıl işleneceğini belirtir. Varsayılan değer YANLIŞ'tır.

  • DOĞRU

    Metin dosyasından veri alırken, dış tablo tanımında karşılık gelen sütunun veri türü için varsayılan değeri kullanarak eksik değerleri depolayın. Örneğin, eksik bir değeri şununla değiştirin:

    • 0 sütun sayısal sütun olarak tanımlanmışsa. Ondalık sütunlar desteklenmez ve hata oluşturur.

    • Sütun bir dize sütunuysa boş "" dizesi.

    • 1900-01-01 sütun bir tarih sütunuysa.

    • Azure Synapse Analytics'te için USE_TYPE_DEFAULT=trueFORMAT_TYPE = DELIMITEDTEXT, PARSER_VERSION = '2.0'desteklenmez.

  • YANLIŞ

    Tüm eksik değerleri olarak NULLdepolayın. Sınırlandırılmış metin dosyasında sözcüğü NULL kullanılarak depolanan tüm NULL değerler dizesi NULLolarak içeri aktarılır.

KODLAMA = {'UTF8' | 'UTF16'}

Azure Synapse Analytics ve Analytics Platform Sistemi'nde (PDW) (APS CU7.4), PolyBase UTF8 ve UTF16-LE kodlanmış sınırlandırılmış metin dosyalarını okuyabilir.

SQL Server'da PolyBase, UTF16 ile kodlanmış dosyaların okunmasını desteklemez.

İzinler

ALTER ANY EXTERNAL FILE FORMAT izni gerektirir.

Açıklamalar

Dış dosya biçimi SQL Server ve Azure Synapse Analytics'te veritabanı kapsamlıdır. Analiz Platformu Sistemi'nde (PDW) sunucu kapsamına alınır.

Hadoop formatı yalnızca SQL Server 2016, 2017 ve 2019'da desteklenmektedir.

Biçim seçeneklerinin tümü isteğe bağlıdır ve yalnızca sınırlandırılmış metin dosyalarına uygulanır.

Veriler sıkıştırılmış biçimlerden birinde depolandığında PolyBase, veri kayıtlarını döndürmeden önce verilerin sıkıştırmasını çözer.

Microsoft Fabric'teki SQL veritabanı yalnızca sınırlı metin ve Parquet dosya formatlarının CSV formatını destekler. Fabric SQL veritabanı, veri kaynağı olarak yalnızca Microsoft Fabric'te OneLake'i destekler.

Sınırlamalar

Sınırlanmış metin dosyalarındaki satır sınırlayıcısı Hadoop'un LineRecordReader tarafından desteklenmelidir. Yani , veya \rolmalıdır\n\r\n. Bu sınırlayıcılar kullanıcı tarafından yapılandırılamaz.

Desteklenen SerDe yöntemlerinin RCFiles ile birleşimleri ve desteklenen veri sıkıştırma yöntemleri bu makalenin önceki bölümlerinde listelenmiştir. Tüm birleşimler desteklenmez.

En fazla eşzamanlı PolyBase sorgusu sayısı 32'dir. 32 eşzamanlı sorgu çalıştırıldığında, her sorgu dış dosya konumundan en fazla 33.000 dosya okuyabilir. Kök klasör ve her alt klasör de dosya olarak sayılır. Eşzamanlılık derecesi 32'den azsa, dış dosya konumu 33.000'den fazla dosya içerebilir.

Dış tablodaki dosya sayısıyla ilgili sınırlama nedeniyle, dış dosya konumunun kök ve alt klasörlerinde 30.000'den az dosya depolamanızı öneririz. Ayrıca, kök dizin altındaki alt klasör sayısını az sayıda tutmanızı öneririz. Çok fazla dosyaya başvurulduğunda, Java Sanal Makinesi yetersiz bellek özel durumu oluşabilir.

PolyBase aracılığıyla Verileri Hadoop veya Azure Blob Depolama'ya aktarırken, CREATE EXTERNAL TABLE komutunda tanımlanan sütun adları (meta veriler) değil, yalnızca veriler dışarı aktarılır.

Kilitleme

EXTERNAL FILE FORMAT nesnesinde paylaşılan bir kilit alır.

Gösteri

Sıkıştırılmış dosyaların kullanılması her zaman dış veri kaynağı ile SQL Server arasında daha az veri aktarımı arasında bir denge sağlarken, verileri sıkıştırmak ve açmak için CPU kullanımını artırır.

Gzip sıkıştırılmış metin dosyaları bölünebilir değildir. Gzip sıkıştırılmış metin dosyalarının performansını artırmak için, dış veri kaynağında aynı dizinde depolanan birden çok dosya oluşturmanızı öneririz. Bu dosya yapısı, PolyBase'in birden çok okuyucu ve sıkıştırmayı açma işlemi kullanarak verileri daha hızlı okumasına ve sıkıştırmasını açmasına olanak tanır. sıkıştırılmış dosyaların ideal sayısı, işlem düğümü başına en fazla veri okuyucu işlemi sayısıdır. SQL Server'da

Analiz Platformu Sistemi'nde (PDW) en fazla veri okuyucu işlemi sayısı düğüm başına 8'dir. Azure Synapse Analytics'te en fazla veri okuyucu işlemi sayısı düğüm başına 20 okuyucudur.

Örnekler

A. DELIMITEDTEXT dış dosya biçimi oluşturma

Bu örnek, metinle ayrılmış bir dosya için textdelimited1 adlı bir dış dosya biçimi oluşturur. FORMAT_OPTIONS için listelenen seçenekler, dosyadaki alanların bir kanal karakteri |kullanılarak ayrılması gerektiğini belirtir. Metin dosyası da Gzip codec bileşeniyle sıkıştırılır. Belirtilmezse DATA_COMPRESSION , metin dosyası sıkıştırılmaz.

Sınırlandırılmış bir metin dosyası için, veri sıkıştırma yöntemi varsayılan Codec bileşeni org.apache.hadoop.io.compress.DefaultCodecveya Gzip Codec bileşeni org.apache.hadoop.io.compress.GzipCodecolabilir.

CREATE EXTERNAL FILE FORMAT textdelimited1
WITH (
    FORMAT_TYPE = DELIMITEDTEXT,
    FORMAT_OPTIONS (
        FIELD_TERMINATOR = '|',
        DATE_FORMAT = 'MM/dd/yyyy' ),
    DATA_COMPRESSION = 'org.apache.hadoop.io.compress.GzipCodec'
);

B. RCFile dış dosya biçimi oluşturma

Bu örnek, yöntemini serialization/deserializationkullanan org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe bir RCFile için dış dosya biçimi oluşturur. Ayrıca, veri sıkıştırma yöntemi için Varsayılan Codec'in kullanılacağını belirtir. Belirtilmezse DATA_COMPRESSION , varsayılan sıkıştırma yoktur.

CREATE EXTERNAL FILE FORMAT rcfile1
WITH (
    FORMAT_TYPE = RCFILE,
    SERDE_METHOD = 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe',
    DATA_COMPRESSION = 'org.apache.hadoop.io.compress.DefaultCodec'
);

C. ORC dış dosya biçimi oluşturma

Bu örnek, verileri veri sıkıştırma yöntemiyle org.apache.io.compress.SnappyCodec sıkıştıran bir ORC dosyası için dış dosya biçimi oluşturur. Belirtilmezse DATA_COMPRESSION , varsayılan sıkıştırma yoktur.

CREATE EXTERNAL FILE FORMAT orcfile1
WITH (
    FORMAT_TYPE = ORC,
    DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);

D. PARQUET dış dosya biçimi oluşturma

Bu örnek, verileri veri sıkıştırma yöntemiyle org.apache.io.compress.SnappyCodec sıkıştıran bir Parquet dosyası için bir dış dosya biçimi oluşturur. Belirtilmezse DATA_COMPRESSION , varsayılan sıkıştırma yoktur.

CREATE EXTERNAL FILE FORMAT parquetfile1
WITH (
    FORMAT_TYPE = PARQUET,
    DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);

E. Üst bilgi satırını atlayan sınırlandırılmış metin dosyası oluşturma

Şunlar için geçerlidir: Azure Synapse Analytics ve SQL Server 2022 (16.x) ve üzeri.

Bu örnek, csv dosyası için tek bir üst bilgi satırı içeren bir dış dosya biçimi oluşturur. Daha fazla bilgi için bkz. PolyBase ile CSV dosyasını sanallaştırma.

CREATE EXTERNAL FILE FORMAT skipHeader_CSV
WITH (FORMAT_TYPE = DELIMITEDTEXT,
      FORMAT_OPTIONS(
          FIELD_TERMINATOR = ',',
          STRING_DELIMITER = '"',
          FIRST_ROW = 2,
          USE_TYPE_DEFAULT = True)
);

F. JSON dış dosya biçimi oluşturma

Şunlar için geçerlidir: Azure SQL Edge.

Bu örnek, verileri veri sıkıştırma yöntemiyle org.apache.io.compress.SnappyCodec sıkıştıran bir JSON dosyası için dış dosya biçimi oluşturur. Belirtilmezse DATA_COMPRESSION , varsayılan sıkıştırma yoktur. Bu örnek Azure SQL Edge için geçerlidir ve şu anda diğer SQL ürünleri için desteklenmemektedir.

CREATE EXTERNAL FILE FORMAT jsonFileFormat
WITH (
    FORMAT_TYPE = JSON,
    DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);

G. Delta tablosu dış dosya biçimi oluşturma

Bu örnek, Delta tablo türü dosya biçimi için bir dış dosya biçimi oluşturur. Bu örnek SQL Server 2022 (16.x) için geçerlidir. Daha fazla bilgi için bkz. PolyBase ile delta tablosunu sanallaştırma.

CREATE EXTERNAL FILE FORMAT DeltaFileFormat
WITH (
    FORMAT_TYPE = DELTA
);