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.
Akış alımı, alma ve sorgu arasında düşük gecikme süresine ihtiyaç duyduğunuzda verileri yüklemek için kullanışlıdır. Aşağıdaki senaryolarda akışla veri alımını değerlendirin.
- Bir saniyeden kısa gecikme süresi gereklidir.
- Her tabloya veri akışının görece küçük olduğu (saniye başına birkaç kayıt) ancak genel veri alımı hacminin yüksek olduğu (saniyede binlerce kayıt) birçok tablonun işlemsel işlemesini iyileştirmek için.
Her tabloya veri akışı yüksekse (saatte 4 GB'ın üzerinde), kuyruğa alınmış alımı kullanmayı göz önünde bulundurun.
Farklı alım yöntemleri hakkında daha fazla bilgi edinmek için bkz . Veri alımına genel bakış.
Önceki SDK sürümlerini temel alan kod örnekleri için arşivlenmiş makaleye bakın.
Uygun yayın akışı alma türünü seçin
İki akış alımı türü desteklenir:
| Alma türü | Açıklama |
|---|---|
| Veri bağlantısı | Event Hubs, IoT Hub ve Event Grid veri bağlantıları, küme düzeyinde etkinleştirilmiş olması koşuluyla akış alımını kullanabilir. Akış alımını kullanma kararı, hedef tabloda yapılandırılan akış alma ilkesine göre yapılır. Veri bağlantılarını yönetme hakkında bilgi için bkz. Event Hub, IoT Hub ve Event Grid. |
| Özel alma | Özel veri alımı, Azure Veri Gezgini istemci kitaplıklarından birini kullanan bir uygulama yazmanızı gerektirir. Özel aktarımı yapılandırmak için bu makaledeki bilgileri kullanın. C?view=azure-data-explorer&preserve-view=true# akış alımı örnek uygulamasını yararlı bulabilirsiniz. |
Ortamınıza uygun alım türünü seçmenize yardımcı olması için aşağıdaki tabloyu kullanın:
| Ölçüt | Veri bağlantısı | Özel Alma |
|---|---|---|
| Veri alımı başlatma ile sorgu için kullanılabilir veriler arasındaki veri gecikmesi | Daha uzun gecikme | Daha kısa gecikme |
| Geliştirme yükü | Hızlı ve kolay kurulum, geliştirme yükü yok | Bir uygulama oluşturmak, verileri almak, hataları işlemek ve veri tutarlılığını sağlamak için yüksek geliştirme yükü |
Not
Azure portalını kullanarak veya C# dilinde program aracılığıyla kümenizde akış alımını etkinleştirme ve devre dışı bırakma işlemini yönetebilirsiniz. Özel uygulamanız için C# kullanıyorsanız programlı yaklaşımı kullanarak daha kullanışlı bulabilirsiniz.
Önkoşullar
- Azure aboneliği. Ücretsiz bir Azure hesabı oluşturun.
Performans ve operasyonel konular
Akış alımını etkileyebilecek başlıca katkıda bulunanlar şunlardır:
- VM ve küme boyutu: Akış alımı performansı ve kapasite ölçekleri, vm ve küme boyutlarının artmasıyla sağlanır. Eşzamanlı alım isteklerinin sayısı çekirdek başına altı ile sınırlıdır. Örneğin, D14 ve L16 gibi 16 çekirdekli SKU'lar için desteklenen en yüksek yük 96 eşzamanlı alım isteğidir. D11 gibi iki çekirdek SKU için desteklenen en yüksek yük 12 eşzamanlı alma isteğidir.
- Veri boyutu sınırı: Akış alma isteğinin veri boyutu sınırı 4 MB'tır. Bu, veri alımı sırasında güncelleştirme ilkeleri için oluşturulan tüm verileri içerir.
- Şema güncelleştirmeleri: Tablo oluşturma ve değiştirme ve alma eşlemeleri gibi şema güncelleştirmeleri, akış alımı hizmeti için beş dakika kadar sürebilir. Daha fazla bilgi için bkz . Akış alımı ve şema değişiklikleri.
- SSD kapasitesi: Akış yoluyla veri alınmasa bile bir kümede akış alımını etkinleştirmek, veri akışı için küme makinelerinin yerel SSD diskinin bir bölümünü kullanır ve sık erişimli önbellek için kullanılabilir depolama alanını azaltır.
- Veritabanı imleçleri: Akış alımı kullanılırken veritabanı imleç güncelleştirmeleri 60 saniyeye kadar veri kullanılabilirliğinin gerisinde kalabilir. Bu gecikme, verilerin akış arabelleğinden kalıcı sütun-deposu uzantılarına geçirildiği, ve bu sırada imlecin (artımlı işleme, sürekli dışa aktarmalar veya gerçekleştirilmiş görünümler için kullanılır) güncellendiği asenkron arka plan mühürleme işlemlerinden kaynaklanır. İş yükünüz tam bir kez semantik için anında imleç tutarlılığı gerektiriyorsa, bunun yerine kuyruklu alım kullanmayı düşünün veya uygulama mantığınızda bu olası gecikmeyi hesaba katın.
Kümenizde streaming veri alımını etkinleştirin
Akış alımını kullanabilmeniz için önce kümenizde özelliği etkinleştirmeniz ve bir akış alma ilkesi tanımlamanız gerekir. Kümeyi oluştururken özelliği etkinleştirebilir veya mevcut bir kümeye ekleyebilirsiniz.
Uyarı
Akış alımını etkinleştirmeden önce sınırlamaları gözden geçirin.
Yeni küme oluştururken akış alımını etkinleştirme
Azure portalını kullanarak veya C# dilinde program aracılığıyla yeni bir küme oluştururken akış alımını etkinleştirebilirsiniz.
Azure Veri Gezgini kümesi ve veritabanı oluşturma adımlarını kullanarak küme oluştururken, Yapılandırmalar sekmesinde Akış alımı>Açık olarak seçin.
Mevcut bir kümede akış veri alımını etkinleştirme
Mevcut bir kümeniz varsa Azure portalını kullanarak veya C# dilinde program aracılığıyla akış alımını etkinleştirebilirsiniz.
Azure portalında Azure Veri Gezgini kümenize gidin.
Ayarlar'da Yapılandırmalar'ı seçin.
Yapılandırmalar bölmesinde Açık'ı seçerekAkış alımını etkinleştirin.
Kaydet'i seçin.
Hedef tablo oluşturma ve ilkeyi tanımlama
Akış alma verilerini almak için bir tablo oluşturun ve Azure portalını kullanarak veya C# dilinde program aracılığıyla ilgili ilkesini tanımlayın.
Azure portalında kümenize gidin.
Sorgu'yu seçin.
Akış alımı yoluyla verileri alacak tabloyu oluşturmak için aşağıdaki komutu Sorgu bölmesine kopyalayın ve Çalıştır'ı seçin.
.create table TestTable (TimeStamp: datetime, Name: string, Metric: int, Source:string)
Aşağıdaki komutlardan birini Sorgu bölmesine kopyalayın ve Çalıştır'ı seçin. Bu, oluşturduğunuz tabloda veya tabloyu içeren veritabanında akış alma ilkesini tanımlar.
İpucu
Veritabanı düzeyinde tanımlanan bir ilke, veritabanındaki mevcut ve gelecekteki tüm tablolar için geçerlidir. İlkeyi veritabanı düzeyinde etkinleştirdiğinizde tablo başına etkinleştirmeniz gerekmez.
Oluşturduğunuz tabloda ilkeyi tanımlamak için şunu kullanın:
.alter table TestTable policy streamingingestion enableOluşturduğunuz tabloyu içeren veritabanında ilkeyi tanımlamak için şunu kullanın:
.alter database StreamingTestDb policy streamingingestion enable
Kümenize veri almak için bir akış veri alımı uygulaması oluşturun
Tercih ettiğiniz dili kullanarak kümenize veri almak için uygulamanızı oluşturun.
Not
Kuyruğa alınan alma için kuyruğa alınmış alımı kullanarak veri almak için uygulama oluşturma yönergelerine bakın
using System.IO;
using System.Threading.Tasks;
using Kusto.Data; // Requires Package Microsoft.Azure.Kusto.Data
using Kusto.Data.Common;
using Kusto.Ingest; // Requires Package Microsoft.Azure.Kusto.Ingest
namespace StreamingIngestion;
class Program
{
static async Task Main(string[] args)
{
var clusterPath = "https://<clusterName>.<region>.kusto.windows.net";
var appId = "<appId>";
var appKey = "<appKey>";
var appTenant = "<appTenant>";
// Create Kusto connection string with App Authentication
var connectionStringBuilder = new KustoConnectionStringBuilder(clusterPath)
.WithAadApplicationKeyAuthentication(
applicationClientId: appId,
applicationKey: appKey,
authority: appTenant
);
// Create a disposable client that will execute the ingestion
using var client = KustoIngestFactory.CreateStreamingIngestClient(connectionStringBuilder);
// Ingest from a compressed file
var fileStream = File.Open("MyFile.gz", FileMode.Open);
// Initialize client properties
var ingestionProperties = new KustoIngestionProperties(databaseName: "<databaseName>", tableName: "<tableName>");
// Create source options
var sourceOptions = new StreamSourceOptions { CompressionType = DataSourceCompressionType.gzip, };
// Ingest from stream
await client.IngestFromStreamAsync(fileStream, ingestionProperties, sourceOptions);
}
}
Kümenizdeki stream verisini alma işlemini devre dışı bırakın
Uyarı
Akış verisi alımının devre dışı bırakılması birkaç saat sürebilir.
Azure Veri Gezgini kümenizde akış alımını devre dışı bırakmadan önce, tüm ilgili tablo ve veritabanlarından akış alımı ilkesini bırakın. Akış alımı ilkesinin kaldırılması, Azure Veri Gezgini kümenizin içinde veri yeniden düzenlemeyi tetikler. Akış besleme verileri, başlangıç depolama alanından sütun deposundaki kalıcı depolamaya taşınır (bölümler veya dilimler). Bu işlem, ilk depolamadaki veri miktarına bağlı olarak birkaç saniye ile birkaç saat arasında sürebilir.
Akış alma ilkesini bırakma
Akış alma ilkesini Azure portalını kullanarak veya C# dilinde program aracılığıyla bırakabilirsiniz.
Azure portalında Azure Veri Gezgini kümenize gidin ve Sorgu'yu seçin.
Akış alma ilkesini tablodan bırakmak için aşağıdaki komutu Sorgu bölmesine kopyalayın ve Çalıştır'ı seçin.
.delete table TestTable policy streamingingestion
Ayarlar'da Yapılandırmalar'ı seçin.
Yapılandırmalar bölmesinde Kapalı'yı seçerek Akış alımını devre dışı bırakın.
Kaydet'i seçin.
Sınırlamalar
- Veri eşlemeleri, akış alımında kullanılmak üzere önceden oluşturulmalıdır. Tek tek akış alımı istekleri satır içi veri eşlemelerini barındırmaz.
- Kapsam etiketleri akış alımı verilerinde ayarlanamaz.
-
Güncelleme ilkesi
- Güncelleştirme ilkesi yalnızca kaynak tablodaki yeni alınan verilere başvurabilir, veritabanındaki diğer verilere veya tablolara başvuramaz.
- Python eklentisi desteklenmiyor
- Bir işlem ilkesi ile güncelleştirme politikası başarısız olduğunda, yeniden denemeler toplu alıma geri döner.
- Bir işleç içeren basamaklı
joiniçin, tüm yukarı akış tablolarında akış alımını devre dışı bırakmanız gerekir. Örneğin, Tablo1'in Tablo2'yi, Tablo2'nin Tablo3'ü ve Tablo3'ün Tablo4'ü güncellediği basamaklı güncelleme ilkelerini göz önünde bulundurun. Tablo4'ün güncelleştirme ilkesi birleştirme içeriyorsa Tablo1, Tablo2 ve Tablo3'te akış alımını devre dışı bırakmanız gerekir.
- İzleyen veritabanları için öncü olarak kullanılan bir kümede akış alımı etkinleştirildiyse, akış alımı verilerini izlemek için aşağıdaki kümelerde de akış alımı etkinleştirilmelidir. Aynı durum, küme verilerinin Veri Paylaşımı aracılığıyla paylaşılıp paylaşılmadığı için de geçerlidir.