Azure Event Hubs veri bağlantısı
Azure Event Hubs, büyük veri akışı platformu ve olay alımı hizmetidir. Azure Veri Gezgini, müşteri tarafından yönetilen Event Hubs'tan sürekli alım sağlar.
Event Hubs alım işlem hattı, olayları birkaç adımda Azure Veri Gezgini'a aktarır. İlk olarak Azure portal 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 katıştırılabilir. Olay hub'ı oluşturmak ve olayları göndermek için Event Hubs'a bağlantı oluşturun. Bu işlem Azure portal aracılığıyla, 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 veri bağlantısı kurulumu için aşağıdaki adımlar gerekir:
- Kümenize yönetilen kimlik ekleyin.
- Veri kaynağında yönetilen kimliğe izinler verin.
- Hedef veritabanlarında yönetilen kimlik ilkesi ayarlayın.
- 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ı devre dışı bırakılır ve veri kaynağından veri getiremez.
- Anahtar tabanlı veri bağlantısı: Veri bağlantısında yönetilen kimlik 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 verileri getirir. Azure Veri Gezgini, belirtilen kaynak için kaynak bağlantı dizesi oluşturur ve veri bağlantısına 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ı devre dışı bırakılır ve veri kaynağından veri getiremez. Sorunu çözmek için veri bağlantısını güncelleştirin veya yeniden oluşturun.
- MI'nin Azure Event Hubs'dan veri getirebilmesi için en az Azure Event Hubs Veri Alıcısı olmalıdır.
Veri biçimi
Veriler olay hub'ından EventData nesneleri biçiminde okunur.
Desteklenen biçimlere bakın.
Not
- Event Hub'dan veri alımı RAW biçimini desteklemez.
- Azure Event Hub Şema Kayıt Defteri ve şemasız Avro desteklenmez.
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:
- Olayı ilgili tabloya yönlendirmeye yardımcı olan kapalı bir alım özellikleri kümesi.
- Belirli bir eşlemeye göre verilere ekleyebileceğiniz kapalı bir olay sistemi özellikleri kümesi.
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
Veri alımı özellikleri, veri alımı işlemini, verilerin nereye yönlendirileceği ve nasıl işlendiğini açıklar. 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 aktarılır. Varsayılan veritabanını geçersiz kılmak ve verileri farklı bir veritabanına 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. |
Encoding | Veri kodlama, varsayılan utf8'dir. Desteklenen .NET kodlamalarından 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ıralanan 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. Verilerinizin varsayılan yönlendirmesi 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 Azure portal, C#, Python veya ARM şablonunda yapabilirsiniz. Veritabanı yönlendirmeye 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 belirtilen şekilde dinamik olarak yönlendirir ve bu olayın statik özelliklerini 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 yönelik veri bağlantısı, belirli bir eşlemeyi temel alan bir tabloya alınan verilere seçili bir sistem özellikleri kümesini ekleyebilir.
Not
- Ekleme sistemi özellikleri json ve tablosal biçimler (örneğin
JSON
, ,MultiJSON
,CSV
, ,TSV
,PSV
,SCsv
, ,SOHsv
, )TSVE
için desteklenir. - Desteklenmeyen bir biçim (i.e. TXT veya gibi
Parquet
Avro
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 özelliklerinin katıştırılması 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çin
JSON
, ö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ıraya alındığı 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. sistem özelliklerini IoT Hub.
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
, Metric
ve Value
) içeriyorsa ve eklediğiniz özellikler ve x-opt-offset
isex-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"}}'
']'
Olay Hub'ı Yakalama Avro dosyaları için şema eşleme
Olay Hub'ı verilerini kullanmanın bir yolu, Azure Blob Depolama veya Azure Data Lake Storage Azure Event Hubs üzerinden olayları yakalamaktır. Daha sonra yakalama dosyalarını, Azure Veri Gezgini bir Event Grid Veri Bağlantısı kullanılarak yazıldıkları gibi alabilirsiniz.
Yakalama dosyalarının şeması, Event Hub'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 Hub Avro yakalama verilerinin dosya şeması hakkında daha ayrıntılı bilgi için bkz. Azure Event Hubs'de yakalanan Avro dosyalarını keşfetme.
Olay yükünün kodunu doğru şekilde çözmek için:
Body
Yakalanan olayın alanını hedef tablodaki türdekidynamic
bir sütunla eşleyin.- 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'tan olaylar alınırken, veriler olay veri nesnesinin bölümünden alınır body
. 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 veri nesnesinin bölümündeki verilere body
özel özellikler eklemek için aşağıdaki yöntemlerden birini kullanabilirsiniz:
- Event Hubs'ta, olay verisi nesnesini oluştururken, nesnenin bölümündeki verilerin
body
bir parçası olarak özel özellikleri 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ı Olay Hub'ı veri bağlantısı
En iyi performans için kümeyle aynı bölgede aşağıdaki tüm kaynakları oluşturun. Başka alternatif yoksa Premium veya Ayrılmış Olay Hub'ı katmanlarını kullanmayı göz önünde bulundurun. Olay Hub'ı katmanları 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 aracılığıyla, 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 her tüketici için 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, biri birincil ad alanı ve diğeri ikincil ad alanı için olmak üzere iki olay hub'ı veri bağlantısı oluşturun. 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.
İlgili içerik
- Verileri olay hub'ından Azure Veri Gezgini'ne alma
- C kullanarak Azure Veri Gezgini için olay hub'ı veri bağlantısı oluşturma#
- Python kullanarak Azure Veri Gezgini için olay hub'ı veri bağlantısı oluşturma
- Azure Resource Manager şablonunu kullanarak Azure Veri Gezgini için olay hub'ı veri bağlantısı oluşturma
- Ücretsiz kümenizdeki Event Hubs veri bağlantılarını yönetme
- Azure Veri Gezgini ile Azure İzleyici günlüklerini alma ve sorgulama
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin