Aracılığıyla paylaş


Azure Event Hubs veri bağlantısı

Azure Event Hubs , büyük bir veri akışı platformu ve olay alımı hizmetidir. Azure Veri Gezgini, müşteri tarafından yönetilen Event Hubs'tan sürekli alım sunar.

Event Hubs alma işlem hattı, birkaç adımda olayları Azure Veri Gezgini'a aktarır. İlk olarak Azure portalında bir olay hub'ı oluşturursunuz. Ardından Azure Veri Gezgini belirli bir biçimdeki verilerin verilen alım özellikleri kullanılarak alınacağı bir hedef tablo oluşturursunuz. Event Hubs bağlantısının olay yönlendirmeyi bilmesi gerekir. Veriler, olay sistemi özelliklerine göre seçili özelliklerle eklenebilir. Olay hub'ı oluşturmak ve olayları göndermek için Event Hubs'a bağlantı oluşturun. Bu işlem Azure portalı üzerinden, C# veya Python ile program aracılığıyla veya Azure Resource Manager şablonuyla yönetilebilir.

Azure Veri Gezgini'da veri alımı hakkında genel bilgi için bkz. Azure Veri Gezgini veri alımına genel bakış.

Azure Veri Gezgini veri bağlantısı kimlik doğrulama mekanizmaları

  • Yönetilen Kimlik tabanlı veri bağlantısı (önerilir): Yönetilen kimlik tabanlı veri bağlantısı kullanmak, veri kaynaklarına bağlanmanın en güvenli yoludur. Bir veri kaynağından veri getirme özelliği üzerinde tam denetim sağlar. Yönetilen kimlik kullanılarak bir veri bağlantısının kurulumu için aşağıdaki adımlar gerekir:

    1. Kümenize yönetilen kimlik ekleyin.
    2. Veri kaynağında yönetilen kimliğe izinler verin. Azure Event Hubs'dan veri getirmek için yönetilen kimliğin Azure Event Hubs Veri Alıcısı izinlerine sahip olması gerekir.
    3. Hedef veritabanlarında bir yönetilen kimlik ilkesi ayarlayın.
    4. Verileri getirmek için yönetilen kimlik kimlik doğrulamasını kullanarak bir veri bağlantısı oluşturun.

    Dikkat

    Yönetilen kimlik izinleri veri kaynağından kaldırılırsa, veri bağlantısı artık çalışmaz ve veri kaynağından veri getiremez.

  • Anahtar tabanlı veri bağlantısı: Veri bağlantısı için yönetilen kimlik doğrulaması belirtilmezse, bağlantı otomatik olarak anahtar tabanlı kimlik doğrulamasına ayarlanır. Anahtar tabanlı bağlantılar, Azure Event Hubs bağlantı dizesi gibi bir kaynak bağlantı dizesi kullanarak veri getirir. Azure Veri Gezgini, belirtilen kaynak için kaynak bağlantı dizesi alır ve güvenli bir şekilde kaydeder. Bağlantı dizesi daha sonra veri kaynağından veri getirmek için kullanılır.

    Dikkat

    Anahtar döndürülürse, veri bağlantısı artık çalışmaz ve veri kaynağından veri getiremez. Sorunu çözmek için veri bağlantısını güncelleştirin veya yeniden oluşturun.

Veri biçimi

  • Veriler olay hub'ından EventData nesneleri biçiminde okunur.

  • Desteklenen biçimlere bakın.

    Not

  • Veriler sıkıştırma algoritması kullanılarak GZip sıkıştırılabilir. Alma özelliklerini kullanarak veya statik Veri Bağlantısı ayarlarında dinamik olarak belirtebilirsinizCompression.

    Not

    Sıkıştırılmış biçimler (Avro, Parquet, ORC, ApacheAvro ve W3CLOGFILE) için veri sıkıştırma desteklenmez. Özel kodlama ve eklenmiş sistem özellikleri sıkıştırılmış verilerde desteklenmez.

Event Hubs özellikleri

Azure Veri Gezgini aşağıdaki Event Hubs özelliklerini destekler:

Not

Meta verileri olaylarla ilişkilendirmek için kullanılan Event Hubs özel özelliklerinin alımı desteklenmez. Özel özellikleri almanız gerekiyorsa, bunları olay verilerinin gövdesine gönderin. Daha fazla bilgi için bkz . Özel özellikleri alma.

Alma özellikleri

Alma özellikleri, veri alımı işlemini, verilerin nereye yönlendirileceği ve nasıl işlendiği hakkında bilgi verir. EventData.Properties kullanarak olay alımının alım özelliklerini belirtebilirsiniz. Aşağıdaki özellikleri ayarlayabilirsiniz:

Not

Özellik adları büyük/küçük harfe duyarlıdır.

Özellik Açıklama
Veritabanı Hedef veritabanının büyük/küçük harfe duyarlı adı. Varsayılan olarak, veriler veri bağlantısıyla ilişkili hedef veritabanına alınır. Varsayılan veritabanını geçersiz kılmak ve farklı bir veritabanına veri göndermek için bu özelliği kullanın. Bunu yapmak için önce bağlantıyı çok veritabanılı bir bağlantı olarak ayarlamanız gerekir.
Tablo Mevcut hedef tablonun büyük/küçük harfe duyarlı adı. Bölmedeki kümeyi Table Data Connection geçersiz kılar.
Biçimlendir Veri biçimi. Bölmedeki kümeyi Data format Data Connection geçersiz kılar.
IngestionMappingReference Kullanılacak mevcut alım eşlemesinin adı. Bölmedeki kümeyi Column mapping Data Connection geçersiz kılar.
Sıkıştırma Veri sıkıştırma, None (varsayılan) veya GZip sıkıştırma.
Kodlama Veri kodlama, varsayılan değer UTF8'dir. .NET tarafından desteklenen kodlamalardan herhangi biri olabilir.
Etiketler JSON dizi dizesi olarak biçimlendirilmiş, alınan verilerle ilişkilendirilecek etiketlerin listesi. Etiketleri kullanırken performansın etkileri vardır.
RawHeaders Olay kaynağının Kafka olduğunu ve Azure Veri Gezgini diğer yönlendirme özelliklerini okumak için bayt dizisi seri durumdan çıkarma kullanması gerektiğini gösterir. Değer yoksayılır.

Not

Yalnızca veri bağlantısını oluşturduktan sonra sıraya alınan olaylar alınıyor.

Olay yönlendirme

Kümenize bir veri bağlantısı oluşturduğunuzda, alınan verilerin nereye gönderileceğine ilişkin yönlendirmeyi belirtebilirsiniz. Varsayılan yönlendirme, hedef veritabanıyla ilişkili bağlantı dizesi belirtilen hedef tabloya yapılır. Verileriniz için varsayılan yönlendirme statik yönlendirme olarak da adlandırılır. Yukarıda belirtilen olay verileri özelliklerini ayarlayarak verileriniz için alternatif bir yönlendirme belirtebilirsiniz.

Olay verilerini alternatif veritabanına yönlendirme

Verileri alternatif bir veritabanına yönlendirme varsayılan olarak kapalıdır. Verileri farklı bir veritabanına göndermek için önce bağlantıyı çok veritabanılı bir bağlantı olarak ayarlamanız gerekir. Bunu Azure portalında, C#, Python'da veya ARM şablonunda yapabilirsiniz. Veritabanı yönlendirmesine izin vermek için kullanılan kullanıcı, grup, hizmet sorumlusu veya yönetilen kimlik en azından kümede katkıda bulunan rolüne ve yazma izinlerine sahip olmalıdır.

Alternatif bir veritabanı belirtmek için Veritabanı alımı özelliğini ayarlayın.

Uyarı

Bağlantıyı çok veritabanılı veri bağlantısı olarak ayarlamadan alternatif bir veritabanı belirtmek, alımın başarısız olmasına neden olur.

Olay verilerini alternatif bir tabloya yönlendirme

Her olay için alternatif bir tablo belirtmek için Tablo, Biçim, Sıkıştırma ve eşleme alımı özelliklerini ayarlayın. Bağlantı, alınan verileri EventData.Properties içinde belirtildiği gibi dinamik olarak yönlendirir ve bu olay için statik özellikleri geçersiz kılır.

Aşağıdaki örnek, olay hub'ı ayrıntılarını ayarlamayı ve hava durumu ölçüm verilerini alternatif veritabanına (MetricsDB) ve tabloya (WeatherMetrics) göndermeyi gösterir. Veriler JSON biçimindedir ve mapping1, WeatherMetrics tablosunda önceden tanımlanmıştır.

// This sample uses Azure.Messaging.EventHubs which is a .Net Framework library.
await using var producerClient = new EventHubProducerClient("<eventHubConnectionString>");
// Create the event and add optional "dynamic routing" properties
var eventData = new EventData(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(
    new { Timestamp = DateTime.UtcNow, MetricName = "Temperature", Value = 32 }
)));
eventData.Properties.Add("Database", "MetricsDB");
eventData.Properties.Add("Table", "WeatherMetrics");
eventData.Properties.Add("Format", "json");
eventData.Properties.Add("IngestionMappingReference", "mapping1");
eventData.Properties.Add("Tags", "['myDataTag']");
var events = new[] { eventData };
// Send events
await producerClient.SendAsync(events);

Olay sistemi özellikleri eşlemesi

Sistem özellikleri, olay sıralandığı sırada Event Hubs hizmeti tarafından ayarlanan özellikleri depolar. Olay hub'ına veri bağlantısı, belirli bir sistem özellikleri kümesini belirli bir eşlemeye göre bir tabloya alınan verilere ekleyebilir.

Not

  • Ekleme sistemi özellikleri json ve tablosal biçimler (örneğinJSON, , , MultiJSONCSV, , TSV, PSV, SCsv, , SOHsv) TSVEiçin desteklenir.
  • Desteklenmeyen bir biçim (i.e. TXT veya gibi ParquetAvro sıkıştırılmış biçimler) kullanıldığında veriler yine alınır, ancak özellikler yoksayılır.
  • Olay Hub'ı iletilerinin sıkıştırması ayarlandığında sistem özelliklerini ekleme desteklenmez. Bu tür senaryolarda uygun bir hata gönderilir ve veriler alınmaz.
  • Tablosal veriler için sistem özellikleri yalnızca tek kayıtlı olay iletileri için desteklenir.
  • JSON verileri için sistem özellikleri birden çok kayıtlı olay iletileri için de desteklenir. Böyle durumlarda sistem özellikleri yalnızca olay iletisinin ilk kaydına eklenir.
  • Eşleme için CSV , özellikler kaydın başına veri bağlantısının oluşturulmasında listelenen sırayla eklenir. Gelecekte değişebileceği için bu özelliklerin sırasına güvenmeyin.
  • Eşleme içinJSON, özellikler Sistem özellikleri tablosundaki özellik adlarına göre eklenir.

Event Hubs hizmeti aşağıdaki sistem özelliklerini kullanıma sunar:

Özellik Veri Türü Açıklama
x-opt-enqueued-time datetime Olayın sıralandığı UTC saati
x-opt-sequence-number long Olay hub'ının bölüm akışı içindeki olayın mantıksal sıra numarası
x-opt-offset string Olayın olay hub'ı bölüm akışından uzaklığı. Uzaklık tanımlayıcısı, olay hub'ı akışının bir bölümünde benzersizdir
x-opt-publisher string İleti bir yayımcı uç noktasına gönderildiyse yayımcı adı
x-opt-partition-key string Olayı depolayan ilgili bölümün bölüm anahtarı

IoT Central olay hub'larıyla çalışırken yüke IoT Hub sistem özelliklerini de ekleyebilirsiniz. Listenin tamamı için bkz . IoT Hub sistem özellikleri.

Tablonun Veri Kaynağı bölümünde Olay sistemi özelliklerini seçtiyseniz, özellikleri tablo şemasına ve eşlemesine eklemeniz gerekir.

Şema eşleme örnekleri

Tablo şeması eşleme örneği

Verileriniz üç sütun (Timespan, Metricve Value) içeriyorsa ve eklediğiniz özellikler isex-opt-offsetx-opt-enqueued-time, şu komutu kullanarak tablo şemasını oluşturun veya değiştirin:

    .create-merge table TestTable (TimeStamp: datetime, Metric: string, Value: int, EventHubEnqueuedTime:datetime, EventHubOffset:string)

CSV eşleme örneği

Kaydın başına veri eklemek için aşağıdaki komutları çalıştırın. Sıralı değerleri not edin.

    .create table TestTable ingestion csv mapping "CsvMapping1"
    '['
    '   { "column" : "Timespan", "Properties":{"Ordinal":"2"}},'
    '   { "column" : "Metric", "Properties":{"Ordinal":"3"}},'
    '   { "column" : "Value", "Properties":{"Ordinal":"4"}},'
    '   { "column" : "EventHubEnqueuedTime", "Properties":{"Ordinal":"0"}},'
    '   { "column" : "EventHubOffset", "Properties":{"Ordinal":"1"}}'
    ']'

JSON eşleme örneği

Veriler, sistem özellikleri eşlemesi kullanılarak eklenir. Şu komutları çalıştırın:

    .create table TestTable ingestion json mapping "JsonMapping1"
    '['
    '    { "column" : "Timespan", "Properties":{"Path":"$.timestamp"}},'
    '    { "column" : "Metric", "Properties":{"Path":"$.metric"}},'
    '    { "column" : "Value", "Properties":{"Path":"$.value"}},'
    '    { "column" : "EventHubEnqueuedTime", "Properties":{"Path":"$.x-opt-enqueued-time"}},'
    '    { "column" : "EventHubOffset", "Properties":{"Path":"$.x-opt-offset"}}'
    ']'

Event Hubs Capture Avro dosyaları için şema eşlemesi

Event Hubs verilerini kullanmanın bir yolu, Azure Blob Depolama veya Azure Data Lake Storage'da Azure Event Hubs aracılığıyla olayları yakalamaktır. Daha sonra yakalama dosyalarını Azure Veri Gezgini'da event grid veri bağlantısı kullanılarak yazıldıkları şekilde alabilirsiniz.

Yakalama dosyalarının şeması, Event Hubs'a gönderilen özgün olayın şemasından farklıdır. Hedef tablo şemasını bu farkı göz önünde bulundurarak tasarlamanız gerekir. Özellikle, olay yükü yakalama dosyasında bayt dizisi olarak temsil edilir ve bu dizinin kodu Event Grid Azure Veri Gezgini veri bağlantısı tarafından otomatik olarak çözülmez. Event Hubs Avro yakalama verilerinin dosya şeması hakkında daha ayrıntılı bilgi için bkz . Azure Event Hubs'da yakalanan Avro dosyalarını keşfetme.

Olay yükünün kodunu doğru bir şekilde çözmek için:

  1. Body Yakalanan olayın alanını hedef tablodaki türdeki dynamic bir sütunla eşleyin.
  2. unicode_codepoints_to_string() işlevini kullanarak bayt dizisini okunabilir bir dizeye dönüştüren bir güncelleştirme ilkesi uygulayın.

Özel özellikleri alma

Event Hubs'dan olaylar alınırken, olay veri nesnesinin body bölümünden veriler alınır. Ancak Event Hubs özel özellikleri nesnenin properties bölümünde tanımlanır ve alınmaz. Müşteri özelliklerini almak için bunları nesnenin bölümündeki verilere body eklemelisiniz.

Aşağıdaki örnek, Event Hubs (sol) tarafından tanımlanan özel özelliği customProperty içeren olay veri nesnesini alma için gereken katıştırılmış özellik (sağ) ile karşılaştırır.

{
"body":{
"value": 42
},
"properties":{
"customProperty": "123456789"
}
}
{
"body":{
"value": 42,
"customProperty": "123456789"
}
}

Olay verileri nesnesinin bölümündeki verilere body özel özellikler eklemek için aşağıdaki yöntemlerden birini kullanabilirsiniz:

  • Event Hubs'ta, olay verileri nesnesini oluştururken, özel özellikleri nesnenin bölümündeki verilerin body bir parçası olarak ekleyin.
  • Olay hub'ından olayları işlemek ve olay verilerine özel özellikleri eklemek için Azure Stream Analytics'i kullanın. Azure Stream Analytics'ten Azure Veri Gezgini çıkış bağlayıcısını kullanarak verileri yerel olarak alabilir veya verileri başka bir olay hub'ına ve oradan kümenize yönlendirebilirsiniz.
  • Özel özellikleri eklemek ve ardından verileri almak için Azure İşlevleri kullanın.

Bölgeler arası Event Hubs veri bağlantısı

En iyi performans için aşağıdaki tüm kaynakları kümeyle aynı bölgede oluşturun. Başka bir alternatif yoksa Premium veya Ayrılmış Event Hubs katmanlarını kullanmayı göz önünde bulundurun. Event Hubs katman karşılaştırması burada bulunabilir.

Olay hub’ı oluşturma

Henüz bir olay hub'ına sahip değilseniz Olay hub'ı oluşturun. Olay hub'ına bağlanma, Azure portalı üzerinden, C# veya Python ile program aracılığıyla veya Azure Resource Manager şablonuyla yönetilebilir.

Not

  • Olay hub'ı oluşturduktan sonra dinamik olarak bölüm ekleme özelliği yalnızca Event Hubs Premium ve Ayrılmış katmanlarla kullanılabilir. Bölüm sayısını ayarlarken uzun vadeli ölçeği göz önünde bulundurun.
  • Tüketici grubu , tüketici başına benzersiz olmalıdır . Azure Veri Gezgini bağlantısına ayrılmış bir tüketici grubu oluşturun.

Olayları gönderme

Veri oluşturan ve bir olay hub'ına gönderen örnek uygulamaya bakın.

Örnek veri oluşturma örneği için bkz. Olay hub'ından Azure'a veri alma Veri Gezgini

Coğrafi olağanüstü durum kurtarma çözümünü ayarlama

Olay hub'ı bir Coğrafi olağanüstü durum kurtarma çözümü sunar. Azure Veri Gezgini olay hub'ı ad alanlarını desteklemezAlias. Çözümünüzde Coğrafi olağanüstü durum kurtarmayı uygulamak için iki olay hub'ı veri bağlantısı oluşturun: biri birincil ad alanı ve biri ikincil ad alanı için. Azure Veri Gezgini her iki olay hub'ı bağlantısını da dinler.

Not

Birincil ad alanından ikincil ad alanına yük devretme uygulamak kullanıcının sorumluluğundadır.