Azure Synapse Analytics’teki ayrılmış SQL havuzu için veri yükleme stratejileri

geleneksel SMP adanmış SQL havuzları verileri yüklemek için bir ayıkla, dönüştürme ve yükleme (ETL) işlemi kullanır. Azure Synapse Analytics 'te Synapse SQL, işlem ve depolama kaynaklarının ölçeklenebilirlik ve esnekliğinden faydalanan dağıtılmış sorgu işleme mimarisini kullanır.

Ayıklama, yükleme ve dönüştürme (ELT) işleminin kullanımı, yerleşik olarak dağıtılan sorgu işleme yeteneklerini kullanır ve yüklemeden önce veri dönüştürme için gereken kaynakları ortadan kaldırır.

adanmış SQL havuzları bcp ve sqlbulkcopy apıgibi popüler SQL Server seçenekleri de dahil olmak üzere birçok yükleme yöntemini destekleirken, verileri yüklemenin en hızlı ve en ölçeklenebilir yolu polybase dış tabloları ve COPY deyimleridir.

polybase ve COPY ifadesiyle, Azure Blob depolamada depolanan dış verilere veya T SQL dili aracılığıyla Azure Data Lake Store erişebilirsiniz. Yükleme sırasında en fazla esneklik için, COPY ifadesini kullanmanızı öneririz.

ELT nedir?

ayıklama, yükleme ve dönüştürme (ELT), verilerin bir kaynak sistemden ayıklandığı, adanmış bir SQL havuzuna yüklendiği ve sonra dönüştürülebileceği bir işlemdir.

ELT 'ı uygulamaya yönelik temel adımlar şunlardır:

  1. Kaynak verileri metin dosyalarına ayıklayın.
  2. Verileri Azure Blob depolama alanına veya Azure Data Lake Store ekleyin.
  3. Verileri yükleme için hazırlayın.
  4. Verileri PolyBase veya COPY komutuyla hazırlama tablolarına yükleyin.
  5. Verileri dönüştürün.
  6. Verileri üretim tablolarına ekleyin.

Yükleme öğreticisi için bkz. Azure Blob depolamadan veri yükleme.

1. kaynak verileri metin dosyalarına ayıklayın

Kaynak sisteminizden veri alma, depolama konumuna bağlıdır. Amaç, verileri desteklenen sınırlandırılmış metin veya CSV dosyalarına taşımaktır.

Desteklenen dosya biçimleri

PolyBase ve COPY ifadesiyle, UTF-8 ve UTF-16 kodlamalı sınırlandırılmış metin veya CSV dosyalarından veri yükleyebilirsiniz. Ayrılmış metin veya CSV dosyalarına ek olarak, ORC ve Parquet gibi Hadoop dosya biçimlerinden yüklenir. PolyBase ve COPY deyimleri, verileri gzip ve Snappy sıkıştırılmış dosyalarından de yükleyebilir.

Genişletilmiş ASCII, sabit genişlikli biçim ve WinZip veya XML gibi iç içe biçimler desteklenmez. SQL Server dışarı aktarıyorsanız, verileri sınırlandırılmış metin dosyalarına aktarmak için bcp komut satırı aracını kullanabilirsiniz.

2. verileri Azure Blob depolama alanına veya Azure Data Lake Store ekleyin

Verileri Azure depolama 'ya taşımak için Azure Blob depolama alanına veya Azure Data Lake Store Gen2taşıyabilirsiniz. Her iki konumda da veriler metin dosyalarında depolanmalıdır. PolyBase ve COPY deyimleri her iki konumdan de yüklenebilir.

Azure Depolama verileri taşımak için kullanabileceğiniz araçlar ve hizmetler:

  • Azure ExpressRoute hizmeti ağ aktarım hızını, performansı ve öngörülebilirlik geliştirir. ExpressRoute, verilerinizi Azure 'a adanmış bir özel bağlantıyla yönlendiren bir hizmettir. ExpressRoute bağlantıları, verileri genel İnternet üzerinden yönlendirmez. Bağlantılar, genel İnternet üzerinden tipik bağlantılardan daha fazla güvenilirlik, daha hızlı hız, daha düşük gecikme süreleri ve daha yüksek güvenlik sunar.
  • azcopy yardımcı programı , verileri genel internet üzerinden Azure Depolama 'a taşıtabilecek. Bu, veri boyutlarınızın 10 TB 'den küçük olması durumunda geçerlidir. AzCopy ile düzenli olarak yükleme gerçekleştirmek için, kabul edilebilir olup olmadığını görmek için ağ hızını test edin.
  • Azure Data Factory (ADF) , yerel sunucunuza yükleyebileceğiniz bir ağ geçidine sahip olabilir. ardından, yerel sunucunuzdaki verileri Azure Depolama 'ye taşımak için bir işlem hattı oluşturabilirsiniz. adanmış SQL havuzlarıyla Data Factory kullanmak için bkz. adanmış SQL havuzları için verileri yükleme.

3. verileri yükleme için hazırlama

Yüklemeden önce Depolama hesabınızdaki verileri hazırlamanız ve temizlemeniz gerekebilir. veri hazırlama işlemi, verileri metin dosyalarına dışarı aktardığınızda veya veriler Azure Depolama olduktan sonra veri kaynağında olduğunda gerçekleştirilebilir. Mümkün olduğunca önce verilerle çalışmak en kolay yoldur.

Tabloları tanımlama

COPY ifadesini kullanırken, önce yüklediğiniz tablo (ler) i adanmış SQL havuzunuza göre tanımladığınız tabloları tanımlamalısınız.

polybase kullanıyorsanız, yüklemeden önce adanmış SQL havuzunuzdaki dış tabloları tanımlamanız gerekir. polybase, Azure Depolama 'daki verileri tanımlamak ve verilere erişmek için dış tabloları kullanır. Dış tablo, veritabanı görünümüne benzer. dış tablo, tablo şemasını içerir ve adanmış SQL havuzunun dışında depolanan verileri gösterir.

Dış tabloları tanımlama, veri kaynağını, metin dosyalarının biçimini ve tablo tanımlarını belirtmeyi içerir. T-SQL söz konusu olacak sözdizimi başvuru makaleleri şunlardır:

parquet dosyalarını yüklerken aşağıdaki SQL veri türü eşlemesini kullanın:

Parquet türü Parquet mantıksal türü (ek açıklama) SQL veri türü
BOOLEAN bit
IKILI/BYTE_ARRAY ikili
ÇIFT float
FLOAT real
INT32 int
INT64 bigint
INT96 datetime2
FIXED_LEN_BYTE_ARRAY ikili
Ý UTF8 nvarchar
Ý DIZISINDE nvarchar
Ý YARDıMıNıN nvarchar
Ý EDIN uniqueidentifier
Ý KATEGORI decimal
Ý JSON nvarchar(MAX)
Ý BSON varbinary (max)
FIXED_LEN_BYTE_ARRAY ON -DA -LIK decimal
BYTE_ARRAY ARALIĞI varchar(max),
INT32 INT(8, true) smallint
INT32 INT(16, true) smallint
INT32 INT(32, true) int
INT32 INT(8, false) tinyint
INT32 INT(16, false) int
INT32 INT(32, false) bigint
INT32 DATE date
INT32 ON -DA -LIK decimal
INT32 ZAMAN (MILIS) time
INT64 INT(64, true) bigint
INT64 INT(64, false ) decimal(20,0)
INT64 ON -DA -LIK decimal
INT64 ZAMAN (MILIS) time
INT64 ZAMAN DAMGASı (MILIS) datetime2
Karmaşık tür LİSTE varchar(maks.)
Karmaşık tür HARİTA varchar(maks.)

Önemli

  • SQL ayrılmış havuzlar şu anda MICROS ve NANOS duyarlıklı Parquet veri türlerini desteklememektedir.
  • Parquet ile SQL arasında türler eşleşmezse veya desteklenmeyen Parquet veri türleri varsa şu hatayla karşılaşabilirsiniz: "HdfsBridge::recordReaderFillBuffer - Kayıt okuyucu arabelleği doldurmada beklenmeyen hatayla karşılaşıldı: ClassCastException: ..."
  • 0-127 aralığındaki bir değeri Parquet ve ORC dosya biçimi için küçük bir sütuna yükleme desteklenmiyor.

Dış nesneler oluşturma örneği için bkz. Dış tablolar oluşturma.

Metin dosyalarını biçimlendirme

PolyBase kullanıyorsanız, tanımlanan dış nesnelerin metin dosyalarının satırlarını dış tablo ve dosya biçimi tanımıyla hizalaması gerekir. Metin dosyasının her satırdaki veriler tablo tanımıyla uyumlu olması gerekir. Metin dosyalarını biçimlendirmek için:

  • Verileriniz ilişkisel olmayan bir kaynaktan geliyorsa bunu satırlara ve sütunlara dönüştürmeniz gerekir. Verilerin ister ilişkisel ister ilişkisel olmayan bir kaynaktan olsun, verilerin verileri yüklemeyi planlamış tablo için sütun tanımları ile hizalanması için dönüştürülmesi gerekir.
  • Metin dosyasındaki verileri hedef tablodaki sütunlar ve veri türleriyle uyumlu olacak şekilde biçimlendirin. Dış metin dosyalarında veri türleri ile ayrılmış havuz SQL arasındaki yanlış hiza, yükleme sırasında satırların reddedilmesine neden olur.
  • Metin dosyasındaki alanları bir sonlandırıcı ile ayırma. Kaynak verilerinizde buluna bir karakter veya karakter dizisi kullanmaya emin olun. CREATE EXTERNAL FILE FORMAT ile belirttiğiniz sonlandırıcıyı kullanın.

4. PolyBase veya COPY deyimini kullanarak verileri yükleme

Verileri hazırlama tablosuna yüklemek en iyi uygulamadır. Hazırlama tabloları, üretim tablolarına müdahale etmeden hataları işlemeye olanak sağlar. Hazırlama tablosu, verileri üretim tablolarına eklemeden önce veri dönüştürmeleri için ayrılmış SQL havuzu paralel işleme mimarisini kullanma fırsatı da sağlar.

Yükleme seçenekleri

Verileri yüklemek için şu yükleme seçeneklerin herhangi birini kullanabilirsiniz:

  • COPY deyimi, verileri sorunsuz ve esnek bir şekilde yüklemenizi sağlayan önerilen yükleme yardımcı programıdır. deyimi, PolyBase'in sağlamay olduğu birçok ek yükleme özelliğine sahip. Örnek bir öğreticiyi çalıştırmak için NY taksi COPY öğreticisi'ne bakın.
  • T-SQL PolyBase dış veri nesneleri tanımlamanız gerekir.
  • Azure Data Factory (ADF) ile PolyBase ve COPY deyimi başka bir düzenleme aracıdır. İşlem hattını tanımlar ve işleri zamanlar.
  • SSIS ile PolyBase, kaynak verileriniz SQL Server. SSIS, kaynağı hedef tablo eşlemelerini tanımlar ve yükü de ayarlar. SSIS paketleriniz zaten varsa, paketleri yeni veri ambarı hedefiyle çalışacak şekilde değiştirebilirsiniz.
  • PolyBase Azure Databricks bir tablodan Databricks veri çerçevesine veri aktarabilir ve/veya PolyBase kullanarak bir Databricks veri çerçevesine veri yazar.

Diğer yükleme seçenekleri

PolyBase ve COPY deyimine ek olarak bcp veya SqlBulkCopy API'sini kullanabilirsiniz. bcp, Azure Blob depolamadan geçerek doğrudan veritabanına yüklenir ve yalnızca küçük yükler için tasarlanmıştır.

Not

Bu seçeneklerin yük performansı PolyBase ve COPY deyiminden daha yavaştır.

5. Verileri dönüştürme

Veriler hazırlama tablosunda yer alırken, iş yükünüz için gereken dönüştürmeleri gerçekleştirin. Ardından verileri bir üretim tablosuna taşıma.

6. Verileri üretim tablolarına ekleme

INSERT INTO ... SELECT deyimi, verileri hazırlama tablosundan kalıcı tabloya taşır.

Bir ETL işlemi tasarlarken, işlemi küçük bir test örneğinde çalıştırmayı deneyin. Tablodan bir dosyaya 1000 satır ayıklamayı, Azure'a taşımayı ve ardından hazırlama tablosuna yüklemeyi deneyin.

İş ortağı yükleme çözümleri

İş ortaklarımızın birçoğunda yükleme çözümleri vardır. Daha fazla bilgi için çözüm iş ortaklarımızın listesine bakın.

Sonraki adımlar

Yükleme kılavuzu için bkz. Veri yükleme için en iyi yöntemler.