Azure Synapse Analytics'te ayrılmış SQL havuzu için PolyBase veri yükleme stratejisi tasarlama

Geleneksel SMP veri ambarları verileri yüklemek için Ayıklama, Dönüştürme ve Yükleme (ETL) işlemi kullanır. Azure SQL havuzu, işlem ve depolama kaynaklarının ölçeklenebilirlik ve esnekliğinden yararlanan yüksek düzeyde paralel işleme (MPP) mimarisidir. Ayıklama, Yükleme ve Dönüştürme (ELT) işlemi yerleşik dağıtılmış sorgu işleme özelliklerinden yararlanabilir ve verileri yüklemeden önce dönüştürmek için gereken kaynakları ortadan kaldırır.

SQL havuzu BCP ve SQL BulkCopy API'si gibi Polybase dışı seçenekler de dahil olmak üzere birçok yükleme yöntemini desteklese de, verileri yüklemenin en hızlı ve en ölçeklenebilir yolu PolyBase'i kullanmaktır. PolyBase, T-SQL dili aracılığıyla Azure Blob depolama veya Azure Data Lake Store'da depolanan dış verilere erişen bir teknolojidir.

Ayıklama, Yükleme ve Dönüştürme (ELT)

Ayıklama, Yükleme ve Dönüştürme (ELT), verilerin kaynak sistemden ayıklandığı, bir veri ambarı içine yüklendiği ve dönüştürüldüğü bir işlemdir.

Ayrılmış SQL havuzu için PolyBase ELT uygulamak için 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'a alın.
  3. Verileri yüklenmek üzere hazırlayın.
  4. PolyBase kullanarak verileri ayrılmış SQL havuzu hazırlama tablolarına yükleyin.
  5. Verileri dönüştürme.
  6. Verileri üretim tablolarına ekleyin.

Yükleme öğreticisi için bkz. Azure blob depolamadan Azure Synapse Analytics'e veri yüklemek için PolyBase kullanma.

Daha fazla bilgi için bkz . Desenleri yükleme blogu.

1. Kaynak verileri metin dosyalarına ayıklama

Kaynak sisteminizden veri almak depolama konumuna bağlıdır. Amaç, verileri PolyBase tarafından desteklenen sınırlandırılmış metin dosyalarına taşımaktır.

PolyBase dış dosya biçimleri

PolyBase, UTF-8 ve UTF-16 ile kodlanmış sınırlandırılmış metin dosyalarından veri yükler. PolyBase ayrıca Hadoop dosya biçimlerinden RC Dosyası, ORC ve Parquet'ten de yüklenir. PolyBase ayrıca Gzip ve Snappy sıkıştırılmış dosyalarından da veri yükleyebilir. PolyBase şu anda genişletilmiş ASCII, sabit genişlikli biçimi ve WinZip, JSON ve XML gibi iç içe yerleştirilmiş biçimleri desteklememektedir.

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. Azure Synapse Analytics veri türü eşlemesine yönelik Parquet aşağıdaki gibidir:

Parquet Veri Türü SQL Veri Türü
tinyint tinyint
smallint smallint
int int
bigint bigint
boolean bit
double float
float real
double Para
double Smallmoney
string Nchar
string nvarchar
string char
string varchar
ikili ikili
ikili Varbinary
timestamp date
timestamp Smalldatetime
timestamp datetime2
timestamp datetime
timestamp time
date date
decimal decimal

2. Verileri Azure Blob depolamaya veya Azure Data Lake Store'a aktarma

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

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

  • Azure ExpressRoute hizmeti ağ aktarım hızını, performansı ve öngörülebilirliği geliştirir. ExpressRoute, verilerinizi ayrılmış bir özel bağlantı üzerinden Azure'a yönlendiren bir hizmettir. ExpressRoute bağlantıları verileri genel İnternet üzerinden yönlendirmez. Bağlantılar genel İnternet üzerinden yapılan tipik bağlantılara göre daha fazla güvenilirlik, daha yüksek hız, daha düşük gecikme süreleri ve daha yüksek güvenlik sunar.
  • AzCopy yardımcı programı verileri genel İnternet üzerinden Azure Depolama'ya taşır. Bu, veri boyutlarınız 10 TB'tan küçükse çalışır. AzCopy ile düzenli olarak yük gerçekleştirmek için ağ hızını test edin ve kabul edilebilir olup olmadığını görün.
  • Azure Data Factory (ADF) yerel sunucunuza yükleyebileceğiniz bir ağ geçidine sahiptir. Ardından yerel sunucunuzdan Azure Depolama'ya veri taşımak için bir işlem hattı oluşturabilirsiniz. Data Factory'yi ayrılmış SQL havuzuyla kullanmak için bkz . Ayrılmış SQL havuzuna veri yükleme.

3. Verileri yüklenmek üzere hazırlama

Depolama hesabınızdaki verileri ayrılmış SQL havuzuna yüklemeden önce hazırlamanız ve temizlemeniz gerekebilir. Verileri metin dosyalarına aktardığınızda veya veriler Azure Depolama'ya aktarıldıktan sonra verileriniz kaynaktayken veri hazırlama gerçekleştirilebilir. Verilerle sürecin en erken aşamalarında çalışmak en kolayıdır.

Dış tabloları tanımlama

Verileri yükleyebilmeniz için önce veri ambarınızdaki 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 veri ambarı dışında depolanan verileri gösterir.

Dış tabloların tanımlanması için veri kaynağının, metin dosyalarının biçiminin ve tablo tanımlarının belirtilmesi gerekir. Aşağıda, ihtiyacınız olacak T-SQL söz dizimi konuları yer alır:

Metin dosyalarını biçimlendirme

Dış nesneler tanımlandıktan sonra, metin dosyalarının satırlarını dış tablo ve dosya biçimi tanımıyla hizalamanız gerekir. Metin dosyasının her satırındaki veriler tablo tanımıyla hizalanmalıdır. Metin dosyalarını biçimlendirmek için:

  • Verileriniz ilişkisel olmayan bir kaynaktan geliyorsa, bunları satırlara ve sütunlara dönüştürmeniz gerekir. Verilerin ilişkisel veya ilişkisel olmayan bir kaynaktan olması fark etmeksizin verilerin, verileri yüklemeyi planladığınız tablonun sütun tanımlarıyla uyumlu olacak şekilde dönüştürülmesi gerekir.
  • METIN dosyasındaki verileri, SQL havuzu hedef tablosundaki sütun ve veri türleriyle hizalamak için biçimlendirin. Dış metin dosyalarındaki veri türleri ile veri ambarı tablosu arasındaki yanlış hizalama, yük sırasında satırların reddedilmesine neden olur.
  • Metin dosyasındaki alanları sonlandırıcıyla ayırın. Kaynak verilerinizde bulunmayan bir karakter veya karakter dizisi kullandığınızdan emin olun. CREATE EXTERNAL FILE FORMAT ile belirttiğiniz sonlandırıcıyı kullanın.

4. PolyBase kullanarak verileri ayrılmış SQL havuzu hazırlama tablolarına yükleme

Hazırlama tablosuna veri yüklemek en iyi yöntemdir. Hazırlama tabloları, üretim tablolarını engellemeden hataları işlemenize olanak sağlar. Hazırlama tablosu, verileri üretim tablolarına eklemeden önce veri dönüştürmeleri için SQL havuzu yerleşik dağıtılmış sorgu işleme özelliklerini kullanma fırsatı da sağlar.

PolyBase ile yükleme seçenekleri

PolyBase ile veri yüklemek için şu yükleme seçeneklerinden herhangi birini kullanabilirsiniz:

  • T-SQL ile PolyBase , verileriniz Azure Blob depolama veya Azure Data Lake Store'da olduğunda iyi çalışır. Yükleme işlemi üzerinde en fazla denetimi sağlar, ancak dış veri nesnelerini tanımlamanızı da gerektirir. Diğer yöntemler, kaynak tabloları hedef tablolara eşlerken arka planda bu nesneleri tanımlar. T-SQL yüklerini yönetmek için Azure Data Factory, SSIS veya Azure işlevlerini kullanabilirsiniz.
  • Kaynak verileriniz SQL Server olduğunda SSIS ile PolyBase iyi çalışır. SSIS, kaynak ile hedef tablo eşlemelerini tanımlar ve ayrıca yükü düzenler. SSIS paketleriniz zaten varsa paketleri yeni veri ambarı hedefiyle çalışacak şekilde değiştirebilirsiniz.
  • Azure Data Factory (ADF) ile PolyBase bir diğer düzenleme aracıdır. İşlem hattını tanımlar ve işleri zamanlar.
  • Azure Databricks ile PolyBase, bir Azure Synapse Analytics tablosundaki verileri Databricks veri çerçevesine aktarır ve/veya PolyBase kullanarak bir Databricks veri çerçevesindeki verileri bir Azure Synapse Analytics tablosuna yazar.

PolyBase olmayan yükleme seçenekleri

Verileriniz PolyBase ile uyumlu değilse bcp veya SQLBulkCopy API'sini kullanabilirsiniz. BCP, Azure Blob depolamadan doğrudan ayrılmış SQL havuzuna yüklenir ve yalnızca küçük yükler için tasarlanmıştır. Bu seçeneklerin yük performansının PolyBase'den daha yavaş olduğunu unutmayın.

5. Verileri dönüştürme

Veriler hazırlama tablosundayken, iş yükünüzün gerektirdiği dönüştürmeleri gerçekleştirin. Ardından verileri bir üretim tablosuna taşıyın.

6. Verileri üretim tablolarına ekleme

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

BIR ETL işlemi tasarladığınızda, 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 çoğunun yükleme çözümleri vardır. Daha fazla bilgi edinmek için çözüm iş ortaklarımızın listesine bakın.

Sonraki adımlar

Yükleme yönergeleri için bkz. Veri yükleme kılavuzu.