Ayrılmış SQL havuzu için PolyBase veri yükleme stratejisi tasarlama

Tip

Microsoft Fabric Data Warehouse geleceğe hazır mimariye, yerleşik yapay zekaya ve yeni özelliklere sahip data lake foundation üzerinde kurumsal ölçekli ilişkisel bir ambardır. Veri ambarı konusunda yeniyseniz Fabric Data Warehouse ile başlayın. Mevcut özel SQL havuzu iş yükleri, veri bilimi, gerçek zamanlı analiz ve raporlama genelinde yeni özelliklere erişmek için Fabric yükseltilebilir.

Geleneksel simetrik çok işlemli sistem (SMP) veri ambarlarında verileri yüklemek için Ayıklama, Dönüştürme ve Yükleme (ETL) işlemi kullanılı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.

Buna karşılık, Ayıklama, Yükleme ve Dönüştürme (ELT) işlemi yerleşik dağıtılmış sorgu işleme özelliklerinden yararlanabilir ve yüklemeden önce verileri dönüştürmek için gereken kaynakları ortadan kaldırır.

SQL havuzu toplu kopyalama programı (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, Transact-SQL (T-SQL) dili aracılığıyla Azure Blob depolama veya Azure Data Lake Storage depolanan dış verilere erişen bir teknolojidir.

Polybase ELT'yi uygula

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

Ayrılmış SQL havuzu için PolyBase ELT uygulamayla ilgili 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 Storage içine alın.
  3. Verileri yüklemeye 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 . New York Taxicab veri kümesini yükleme.

Daha fazla bilgi için bkz Yükleme desenleri ve stratejileri.

Kaynak verileri metin dosyalarına ayıkla

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ındaki verileri yükler. PolyBase ayrıca Hadoop dosya biçimlerinden RC Dosyası, ORC ve Parquet'den de yüklenir. PolyBase ayrıca Gzip ve Snappy sıkıştırılmış dosyalarından veri yükleyebilir. PolyBase şu anda genişletilmiş ASCII, sabit genişlikli biçim veya WinZip, JSON ve XML gibi iç içe biçimler desteklemez.

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. Aşağıdaki tabloda Azure Synapse Analytics eşlenmiş Parquet veri türleri listelenmiştir.

Parquet veri türü SQL veri türü
tinyint tinyint
smallint smallint
int int
bigint bigint
boolean bit
çift yüzer
yüzer gerçek
çift money
çift smallmoney
string nchar
string nvarchar
string char
string varchar
ikili ikili
ikili varbinary
timestamp tarih
timestamp smalldatetime
timestamp datetime2
timestamp tarih saat
timestamp zaman
tarih tarih
ondalık ondalık

Verileri Azure Blob depolama alanına veya Azure Data Lake Deposu'na aktarma

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

Verileri Azure Depolama taşımak için aşağıdaki araçları ve hizmetleri kullanabilirsiniz:

  • Azure ExpressRoute hizmeti ağ aktarım hızını, performansı ve öngörülebilirliği artırır. 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üresi 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ı denetleyin.
  • Azure Data Factory yerel sunucunuza yükleyebileceğiniz bir ağ geçidine sahiptir. Ardından verileri yerel sunucunuzdan Azure Depolama'ya taşımak için bir işlem hattı oluşturabilirsiniz. Data Factory'yi ayrılmış SQL havuzuyla kullanmak için bkz. Azure Synapse Analytics içine veri yükleme.

Verileri yüklemeye 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 alanına geçtikten sonra verileriniz kaynaktayken veri hazırlama gerçekleştirilebilir. Verilerle mümkün olduğunca erken ç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ı tanımlama veri kaynağını, metin dosyalarının biçimini ve tablo tanımlarını belirtmeyi içerir. Aşağıda ihtiyacınız olan T-SQL söz dizimi konuları yer almaktadı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 hizalı olacak şekilde 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.

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 sunar.

PolyBase ile yükleme seçenekleri

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

  • Microsoft Entra ID kullanarak dış verileri yükleyin.
  • Yönetilen kimlik kullanarak dış verileri yükleyin.
  • T-SQL ile PolyBase, verileriniz Azure Blob depolama veya Azure Data Lake Storage 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 tablolarla eşlerken arka planda bu nesneleri tanımlar. T-SQL yüklerini yönetmek için Azure Data Factory, SSIS veya Azure İşlevleri kullanabilirsiniz.
  • PolyBase ile SQL Server Integration Services (SSIS), kaynak verileriniz SQL Server'da olduğunda iyi çalışır. SSIS, kaynak-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 ile PolyBase başka bir düzenleme aracıdır. İşlem hattını tanımlar ve işleri planlar.
  • Azure Databricks ile PolyBase, verileri Azure Synapse Analytics tablosundan Databricks veri çerçevesine aktarır ve/veya Databricks veri çerçevesinden Azure Synapse Analytics tablosuna PolyBase kullanarak yazar.

PolyBase olmayan yükleme seçenekleri

Verileriniz PolyBase ile uyumlu değilse bcp veya SQLBulkCopy API'sini kullanabilirsiniz. BCP, Azure Blob depolamadan geçmeden 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.

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.

Verileri üretim tablolarına ekleme

deyimi INSERT INTO ... SELECT , hazırlama tablosundaki verileri 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 1.000 satır ayıklamayı, Azure'a taşımayı ve ardından bir 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.