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 makalede, Azure Stream Analytics kullanarak Azure SQL Veritabanı'na veri yüklerken daha iyi yazma aktarım hızı performansı elde etmeye yönelik ipuçları açıklanır.
Azure Stream Analytics'teki SQL çıkışı, paralel olarak yazmayı bir seçenek olarak destekler. Bu seçenek, birden çok çıkış bölümünün eşzamanlı olarak hedef tabloya yazdığı tam paralel iş topolojilerine olanak tanır. Ancak bu seçeneğin Azure Stream Analytics'te etkinleştirilmesi, veritabanı yapılandırmanıza ve tablo şemanıza önemli ölçüde bağlı olduğundan daha yüksek aktarım hızı elde etmek için yeterli olmayabilir. Dizinler, kümeleme anahtarı, dizin doldurma faktörü ve sıkıştırma seçeneklerinin tabloları yükleme süresi üzerinde etkisi vardır. İç karşılaştırmalara göre sorgu ve yük performansını geliştirmek için veritabanınızı iyileştirme hakkında daha fazla bilgi için bkz. SQL Veritabanı performans kılavuzu. SQL Veritabanı'na paralel olarak yazarken yazmaların sıralanması garanti edilmemektedir.
Burada, her hizmette çözümünüzün genel aktarım hızını geliştirmeye yardımcı olabilecek bazı yapılandırmalar yer alır.
Azure Stream Analytics
Bölümleme devral – Bu SQL çıkış yapılandırması seçeneği, önceki sorgu adımınızın veya girişinizin bölümleme düzenini devralmayı etkinleştirir. Bunu etkinleştirerek, disk tabanlı bir tabloya yazma ve işiniz için tam paralel bir topoloji kullanma sayesinde daha yüksek bir aktarım hızı elde edebilirsiniz. Bu bölümleme zaten diğer birçok çıkış için otomatik olarak gerçekleşir. Tablo kilitleme (TABLOCK) bu seçenekle yapılan toplu eklemeler için de devre dışı bırakılır.
Uyarı
8'den fazla giriş bölümü olduğunda, giriş bölümleme düzenini devralma uygun bir seçim olmayabilir. Bu üst sınır, tek bir kimlik sütunu ve kümelenmiş dizin içeren bir tabloda gözlemlendi. Bu durumda, çıktı yazıcılarının sayısını açıkça belirtmek için sorgunuzda INTO 8 kullanmayı göz önünde bulundurun. Şemanıza ve dizin seçiminize bağlı olarak gözlemleriniz farklılık gösterebilir.
Toplu İş Boyutu - SQL çıkış yapılandırması, hedef tablonuzun/iş yükünüzün yapısına göre Azure Stream Analytics SQL çıkışında en büyük toplu iş boyutunu belirtmenize olanak tanır. Yığın boyutu, her toplu ekleme işlemiyle gönderilen en fazla kayıt sayısıdır. Kümelenmiş sütun depolama dizinlerinde, 100 bin civarındaki grup boyutları daha fazla paralelleştirme, minimum günlük kaydı ve kilitleme iyileştirmeleri sağlar. Disk tabanlı tablolarda, daha yüksek toplu iş boyutları toplu eklemeler sırasında kilit yükseltmeyi tetikleyebileceği için çözümünüz için en uygun değer 10K (varsayılan) veya daha düşük olabilir.
Giriş İletisi Ayarlama – Bölümleme ve toplu iş boyutunu devralma seçeneğini kullanarak iyileştirdiyseniz, bölüm başına ileti başına giriş olaylarının sayısını artırmak yazma aktarım hızınızı artırmaya yardımcı olur. Giriş iletisi ayarlaması, Azure Stream Analytics içindeki toplu işlem boyutlarının belirtilen Toplu İşlem Boyutuna kadar olabilmesini sağlayarak bu şekilde aktarım hızını artırır. Bu, EventHub veya Blob'da sıkıştırma kullanılarak veya giriş iletisi boyutları artırılarak elde edilebilir.
SQL Azure
Bölümlenmiş Tablo ve Dizinler – Bölüm anahtarınızla aynı sütuna sahip tabloda bölümlenmiş SQL tablosu ve bölümlenmiş dizinler kullanmak (örneğin, PartitionId) yazma işlemleri sırasında bölümler arasındaki çekişmeleri önemli ölçüde azaltabilir. Bölümlenmiş tablo için BİRİnCİl dosya grubunda bir bölüm işlevi ve bölüm düzeni oluşturmanız gerekir. Bu, yeni veriler yüklenirken mevcut verilerin kullanılabilirliğini de artırır. Bölüm sayısına bağlı olarak günlük GÇ sınırına ulaşılabilir ve bu sayı SKU yükseltilerek artırılabilir.
Benzersiz anahtar ihlallerinden kaçının : Azure Stream Analytics Etkinlik Günlüğü'nde birden çok anahtar ihlali uyarı iletisi alırsanız, işinizin kurtarma olayları sırasında gerçekleşme olasılığı olan benzersiz kısıtlama ihlallerinden etkilenmediğinden emin olun. Dizinlerinizde IGNORE_DUP_KEY seçeneği ayarlanarak bu durum önlenebilir.
Azure Data Factory ve In-Memory Tabloları
- In-Memory Tablo geçici tablo olarak – In-Memory tablolar çok hızlı veri yüklemelerine olanak sağlar, ancak verilerin belleğe sığması gerekir. Karşılaştırmalar, bellek içi tablodan disk tabanlı bir tabloya toplu yüklemenin, kimlik sütunu ve kümelenmiş dizin içeren disk tabanlı tabloya tek bir yazıcı kullanarak doğrudan toplu eklemeden yaklaşık 10 kat daha hızlı olduğunu gösterir. Bu toplu ekleme performansından yararlanmak için Azure Data Factory'yi kullanarak verileri bellek içi tablodan disk tabanlı tabloya kopyalayan bir kopyalama işi ayarlayın.
Performans Tuzaklarını Önleme
Verileri aktarma, insert deyimini ayrıştırma, deyimi çalıştırma ve işlem kaydı verme gibi ek yüklerden kaçınıldığından, verileri toplu ekleme işlemi tek eklemelerle veri yüklemekten çok daha hızlıdır. Bunun yerine, verilerin akışını yapmak için depolama altyapısına daha verimli bir yol kullanılır. Bu yolun kurulum maliyeti, disk tabanlı bir tablodaki tek bir insert deyiminden çok daha yüksektir. Başabaş noktası genellikle yaklaşık 100 satırdır ve bu noktadan sonra toplu yükleme neredeyse her zaman daha verimlidir.
Gelen olayların oranı düşükse, 100 satırdan daha düşük toplu iş boyutları kolayca oluşturulabilir, bu da toplu eklemeyi verimsiz hale getirir ve çok fazla disk alanı kullanır. Bu sınırlamayı geçici olarak çözmek için şu eylemlerden birini yapabilirsiniz:
- Her satır için basit ekleme kullanmak üzere INSTEAD OF tetikleyici oluşturun.
- Önceki bölümde açıklandığı gibi bir In-Memory geçici tablosu kullanın.
Kümelenmemiş bir columnstore dizinine (NCCI) yazarken, küçük toplu eklemeler çok fazla segment oluşturabilir ve bu da dizinin çökmesine neden olabilir. Bu durumda, bunun yerine Kümelenmiş Columnstore dizini kullanılması önerilir.
Özet
Özetle, SQL çıkışı için Azure Stream Analytics'teki bölümlenmiş çıkış özelliğiyle işinizi SQL Azure'da bölümlenmiş bir tabloyla paralel hale getirme, size önemli aktarım hızı iyileştirmeleri sunmalıdır. Azure Data Factory'den faydalanarak In-Memory tablosundan Disk tabanlı tablolara veri taşımayı düzenlemek, büyük bir aktarım hızı artışı sağlayabilir. Mümkünse, ileti yoğunluğunun artırılması genel aktarım hızının artırılmasında da önemli bir faktör olabilir.
Sonraki Adımlar
- Azure Stream Analytics çıkışlarını anlama
- Azure SQL Veritabanı'na Azure Stream Analytics çıkışı
- Azure Stream Analytics işinden Azure SQL Veritabanı'na veya Azure Synapse Analytics'e erişmek için yönetilen kimlikleri kullanma
- Azure Stream Analytics işi için SQL Veritabanından başvuru verilerini kullanma
- Azure İşlevleri ile Azure SQL Veritabanı'nda kayıtları güncelleştirme veya birleştirme
- Hızlı Başlangıç: Azure portalını kullanarak Stream Analytics işi oluşturma