Stream Analytics'e giriş olarak veri akışı yapın
Stream Analytics, Dört tür kaynaktan giriş olarak Azure veri akışlarıyla birinci sınıf tümleştirmeye sahiptir:
Bu giriş kaynakları Stream Analytics işinizle aynı Azure aboneliğinde veya farklı bir abonelikte bulunabilir.
Sıkıştırma
Stream Analytics tüm giriş kaynakları için sıkıştırmayı destekler. Desteklenen sıkıştırma türleri şunlardır: None, Gzip ve Deflate. Sıkıştırma desteği başvuru verileri için kullanılamaz. Giriş verileri sıkıştırılmış Avro verileriyse Stream Analytics bunu saydam bir şekilde işler. Sıkıştırma türünü Avro serileştirme ile belirtmeniz gerekmez.
Giriş oluşturma, düzenleme veya test
Akış işinizde mevcut girişleri eklemek ve görüntülemek veya düzenlemek için Azure portalını, Visual Studio'yu ve Visual Studio Code'ı kullanabilirsiniz. Ayrıca Azure portalı, Visual Studio ve Visual Studio Code'dan giriş bağlantılarını test edebilir ve örnek verilerden sorguları test edebilirsiniz. Sorgu yazdığınızda, FROM yan tümcesindeki girişi listelersiniz. Kullanılabilir girişlerin listesini portaldaki Sorgu sayfasından alabilirsiniz. Birden çok giriş JOIN
kullanmak veya birden çok SELECT
sorgu yazmak istiyorsanız.
Not
En iyi yerel geliştirme deneyimi için Visual Studio Code için Stream Analytics araçlarını kullanmanızı kesinlikle öneririz. Visual Studio 2019 (sürüm 2.6.3000.0) için Stream Analytics araçlarında bilinen özellik boşlukları vardır ve bundan sonra geliştirilmeyecektir.
Event Hubs’dan veri akışı sağlama
Azure Event Hubs, yüksek oranda ölçeklenebilir bir yayımlama-abone olma olayı alma işlemidir. Bir olay hub'ı saniyede milyonlarca olay toplayabilir, böylece bağlı cihazlarınız ve uygulamalarınız tarafından üretilen büyük miktarda veriyi işleyip analiz edebilirsiniz. Event Hubs ve Stream Analytics birlikte gerçek zamanlı analiz için uçtan uca bir çözüm sağlayabilir. Event Hubs, olayları Azure'a gerçek zamanlı olarak aktarmanıza olanak tanır ve Stream Analytics işleri bu olayları gerçek zamanlı olarak işleyebilir. Örneğin, Event Hubs'a web tıklamaları, algılayıcı okumaları veya çevrimiçi günlük olayları gönderebilirsiniz. Ardından gerçek zamanlı filtreleme, toplama ve bağıntı için giriş verileri için Event Hubs'ı kullanmak üzere Stream Analytics işleri oluşturabilirsiniz.
EventEnqueuedUtcTime
bir olayın olay hub'ına gelişinin zaman damgasıdır ve Event Hubs'tan Stream Analytics'e gelen olayların varsayılan zaman damgasıdır. Olay yükünde bir zaman damgası kullanarak verileri akış olarak işlemek için TIMESTAMP BY anahtar sözcüğünü kullanmanız gerekir.
Event Hubs Tüketici grupları
Her olay hub'ı girişini kendi tüketici grubuna sahip olacak şekilde yapılandırmanız gerekir. bir iş kendi kendine birleşim içerdiğinde veya birden çok girişe sahip olduğunda, bazı girişler birden fazla okuyucu aşağı akışı tarafından okunabilir. Bu durum, tek bir tüketici grubundaki okuyucu sayısını etkiler. Event Hubs'ın bölüm başına tüketici grubu başına beş okuyucu sınırını aşmasını önlemek için, her Stream Analytics işi için bir tüketici grubu atamanız en iyi yöntemdir. Standart katman olay hub'ı için 20 tüketici grubu sınırı da vardır. Daha fazla bilgi için bkz . Azure Stream Analytics girişlerinde sorun giderme.
Event Hubs'dan giriş oluşturma
Aşağıdaki tabloda, bir olay hub'ından veri girişi akışı yapmak için Azure portalındaki Yeni giriş sayfasındaki her özellik açıklanmaktadır:
Özellik | Açıklama |
---|---|
Giriş diğer adı | Bu girişe başvurmak için işin sorgusunda kullandığınız kolay ad. |
Abonelik | Olay hub'ı kaynağının bulunduğu Azure aboneliğini seçin. |
Event Hub ad alanı | Event Hubs ad alanı, olay hub'ları için bir kapsayıcıdır. Bir olay hub'ı oluşturduğunuzda, ad alanını da oluşturursunuz. |
Olay Hub'ı adı | Giriş olarak kullanılacak olay hub'ının adı. |
Event Hub tüketici grubu (önerilir) | Her Stream Analytics işi için ayrı bir tüketici grubu kullanmanızı öneririz. Bu dize, olay hub'ından veri almak için kullanılacak tüketici grubunu tanımlar. Hiçbir tüketici grubu belirtilmezse Stream Analytics işi tüketici grubunu kullanır $Default . |
Kimlik doğrulama modu | Olay hub'ına bağlanmak için kullanmak istediğiniz kimlik doğrulamasının türünü belirtin. Olay hub'ı ile kimlik doğrulaması yapmak için bir bağlantı dizesi veya yönetilen kimlik kullanabilirsiniz. Yönetilen kimlik seçeneği için Stream Analytics işi için sistem tarafından atanan bir yönetilen kimlik veya olay hub'ı ile kimlik doğrulaması için kullanıcı tarafından atanan yönetilen kimlik oluşturabilirsiniz. Yönetilen kimlik kullandığınızda, yönetilen kimliğin Azure Event Hubs Veri Alıcısı veya Azure Event Hubs Veri Sahibi rollerinin üyesi olması gerekir. |
Olay Hub'ı ilke adı | Event Hubs'a erişim sağlayan paylaşılan erişim ilkesi. Her paylaşılan erişim ilkesinin bir adı, ayarladığınız izinleri ve erişim anahtarları vardır. Event Hubs ayarlarını el ile sağlama seçeneğini belirlemediğiniz sürece bu seçenek otomatik olarak doldurulur. |
Bölüm anahtarı | Bu, yalnızca işiniz uyumluluk düzeyi 1.2 veya üzerini kullanacak şekilde yapılandırılmışsa kullanılabilen isteğe bağlı bir alandır. Girişiniz bir özellik tarafından bölümlenmişse, bu özelliğin adını buraya ekleyebilirsiniz. Bu özellik üzerinde bir PARTITION BY veya GROUP BY yan tümcesi içeriyorsa sorgunuzun performansını geliştirmek için kullanılır. Bu iş uyumluluk düzeyi 1.2 veya üzerini kullanıyorsa, bu alan varsayılan olarak PartitionId. |
Olay serileştirme biçimi | Gelen veri akışının serileştirme biçimi (JSON, CSV, Avro, Parquet veya Diğer (Protobuf, XML, özel...)). JSON biçiminin belirtimle uyumlu olduğundan ve ondalık sayılar için baştaki 0'ı içermediğinden emin olun. |
Kodlama | UTF-8 şu anda desteklenen tek kodlama biçimidir. |
Olay sıkıştırma türü | Hiçbiri (varsayılan), Gzip veya Deflate gibi gelen veri akışını okumak için kullanılan sıkıştırma türü. |
Şema kayıt defteri (önizleme) | Olay hub'ından alınan olay verileri için şemalar içeren şema kayıt defterini seçebilirsiniz. |
Verileriniz bir Event Hubs akış girişinden geldiğinde Stream Analytics sorgunuzda aşağıdaki meta veri alanlarına erişebilirsiniz:
Özellik | Açıklama |
---|---|
EventProcessedUtcTime | Stream Analytics'in olayı işlediği tarih ve saat. |
EventEnqueuedUtcTime | Event Hubs'ın olayları aldığı tarih ve saat. |
PartitionId | Giriş bağdaştırıcısı için sıfır tabanlı bölüm kimliği. |
Örneğin, bu alanları kullanarak aşağıdaki örneğe benzer bir sorgu yazabilirsiniz:
SELECT
EventProcessedUtcTime,
EventEnqueuedUtcTime,
PartitionId
FROM Input
Not
Event Hubs'ı IoT Hub Yolları için uç nokta olarak kullanırken, GetMetadataPropertyValue işlevini kullanarak IoT Hub meta verilerine erişebilirsiniz.
IoT Hub'dan veri akışı
Azure IoT Hub, IoT senaryoları için iyileştirilmiş yüksek oranda ölçeklenebilir bir yayımlama-abone olma olayı alma özelliğidir.
Stream Analytics'teki bir IoT Hub'dan gelen olayların varsayılan zaman damgası, olayın IoT Hub'ına ulaştığı zaman damgasıdır EventEnqueuedUtcTime
. Olay yükünde bir zaman damgası kullanarak verileri akış olarak işlemek için TIMESTAMP BY anahtar sözcüğünü kullanmanız gerekir.
Iot Hub Tüketici grupları
Her Stream Analytics IoT Hub girişini kendi tüketici grubuna sahip olacak şekilde yapılandırmanız gerekir. bir iş kendi kendine birleşim içerdiğinde veya birden çok girişi olduğunda, bazı girişler birden fazla okuyucu aşağı akışı tarafından okunabilir. Bu durum, tek bir tüketici grubundaki okuyucu sayısını etkiler. Bölüm başına tüketici grubu başına beş okuyucu olan Azure IoT Hub sınırının aşılmasını önlemek için, her Stream Analytics işi için bir tüketici grubu seçmek en iyi yöntemdir.
IoT Hub'ı veri akışı girişi olarak yapılandırma
Aşağıdaki tabloda, bir IoT Hub'ı akış girişi olarak yapılandırdığınızda Azure portalındaki Yeni giriş sayfasındaki her özellik açıklanmaktadır.
Özellik | Açıklama |
---|---|
Giriş diğer adı | Bu girişe başvurmak için işin sorgusunda kullandığınız kolay ad. |
Abonelik | IoT Hub kaynağının bulunduğu aboneliği seçin. |
IoT Hub | Giriş olarak kullanılacak IoT Hub'ın adı. |
Tüketici grubu | Her Stream Analytics işi için farklı bir tüketici grubu kullanmanızı öneririz. Tüketici grubu IoT Hub'dan veri almak için kullanılır. Stream Analytics, aksini belirtmediğiniz sürece $Default tüketici grubunu kullanır. |
Paylaşılan erişim ilkesi adı | IoT Hub'a erişim sağlayan paylaşılan erişim ilkesi. Her paylaşılan erişim ilkesinin bir adı, ayarladığınız izinleri ve erişim anahtarları vardır. |
Paylaşılan erişim ilkesi anahtarı | IoT Hub'a erişimi yetkilendirmek için kullanılan paylaşılan erişim anahtarı. IoT Hub ayarlarını el ile sağlama seçeneğini belirlemediğiniz sürece bu seçenek otomatik olarak doldurulur. |
Uç nokta | IoT Hub için uç nokta. |
Bölüm anahtarı | Bu, yalnızca işiniz uyumluluk düzeyi 1.2 veya üzerini kullanacak şekilde yapılandırılmışsa kullanılabilen isteğe bağlı bir alandır. Girişiniz bir özellik tarafından bölümlenmişse, bu özelliğin adını buraya ekleyebilirsiniz. Bu özellikte PARTITION BY veya GROUP BY yan tümcesi içeriyorsa sorgunuzun performansını geliştirmek için kullanılır. Bu iş uyumluluk düzeyi 1.2 veya üzerini kullanıyorsa, bu alan varsayılan olarak "PartitionId" olarak adlandırılır. |
Olay serileştirme biçimi | Gelen veri akışının serileştirme biçimi (JSON, CSV, Avro, Parquet veya Diğer (Protobuf, XML, özel...)). JSON biçiminin belirtimle uyumlu olduğundan ve ondalık sayılar için baştaki 0'ı içermediğinden emin olun. |
Kodlama | UTF-8 şu anda desteklenen tek kodlama biçimidir. |
Olay sıkıştırma türü | Hiçbiri (varsayılan), Gzip veya Deflate gibi gelen veri akışını okumak için kullanılan sıkıştırma türü. |
IoT Hub'dan akış verileri kullandığınızda, Stream Analytics sorgunuzda aşağıdaki meta veri alanlarına erişebilirsiniz:
Özellik | Açıklama |
---|---|
EventProcessedUtcTime | Olayın işlendiği tarih ve saat. |
EventEnqueuedUtcTime | IoT Hub'ın olayı aldığı tarih ve saat. |
PartitionId | Giriş bağdaştırıcısı için sıfır tabanlı bölüm kimliği. |
IoTHub.MessageId | IoT Hub'da iki yönlü iletişimi ilişkilendirmek için kullanılan kimlik. |
IoTHub.CorrelationId | IoT Hub'daki ileti yanıtlarında ve geri bildirimlerinde kullanılan bir kimlik. |
IoTHub.ConnectionDeviceId | Bu iletiyi göndermek için kullanılan kimlik doğrulama kimliği. Bu değer, IoT Hub tarafından hizmete bağlı iletilere damgalanır. |
IoTHub.ConnectionDeviceGenerationId | Bu iletiyi göndermek için kullanılan kimliği doğrulanmış cihazın oluşturma kimliği. Bu değer, IoT Hub tarafından hizmet gelen iletilerine damgalanır. |
IoTHub.EnqueuedTime | IoT Hub'ın iletiyi aldığı zaman. |
Blob depolamadan veya Data Lake Storage 2. Nesil veri akışı
Bulutta depolanabilen büyük miktarlarda yapılandırılmamış veri içeren senaryolar için Azure Blob depolama veya Azure Data Lake Storage 2. Nesil uygun maliyetli ve ölçeklenebilir bir çözüm sunar. Blob depolama veya Azure Data Lake Storage 2. Nesil verileri bekleyen veriler olarak kabul edilir. Ancak bu veriler Stream Analytics tarafından veri akışı olarak işlenebilir.
Günlük işleme, Stream Analytics ile bu tür girişleri kullanmak için yaygın olarak kullanılan bir senaryodur. Bu senaryoda, telemetri veri dosyaları bir sistemden yakalanır ve anlamlı verileri ayıklamak için ayrıştırılıp işlenmesi gerekir.
Stream Analytics'te bir Blob depolama veya Azure Data Lake Storage 2. Nesil olayının varsayılan zaman damgası, en son değiştirildiği zaman damgasıdır( olan ).BlobLastModifiedUtcTime
Bir blob saat 13:00'te bir depolama hesabına yüklenirse ve Azure Stream Analytics işi Şimdi 13:01 seçeneği kullanılarak başlatılırsa, değiştirme süresi iş çalışma süresinin dışında olduğundan alınmaz.
Bir blob saat 13:00'te bir depolama hesabı kapsayıcısına yüklenirse ve Azure Stream Analytics işi Özel Saat kullanılarak saat 13:00 veya daha önceki bir saatte başlatılırsa, değiştirme zamanı iş çalışma döneminin içinde olduğu için blob alınır.
Azure Stream Analytics işi Şimdi kullanılarak saat 13:00'te başlatılırsa ve 13:01'de depolama hesabı kapsayıcısına bir blob yüklenirse, Azure Stream Analytics blobu alır. Her bloba atanan zaman damgası yalnızca tabanlıdır BlobLastModifiedTime
. Blob'un içinde yer aldığı klasörün atanan zaman damgasıyla hiçbir ilişkisi yoktur. Örneğin, içeren bir blob varsa, bu bloba 2019/10-01/00/b1.txt
BlobLastModifiedTime
2019-11-11
atanan zaman damgası olur.2019-11-11
Olay yükünde bir zaman damgası kullanarak verileri akış olarak işlemek için TIMESTAMP BY anahtar sözcüğünü kullanmanız gerekir. Stream Analytics işi Azure Blob depolamadan veri çeker veya blob dosyası kullanılabilir durumdaysa her saniye Azure Data Lake Storage 2. Nesil girişi alır. Blob dosyası kullanılamıyorsa, en fazla 90 saniye gecikme süresine sahip üstel geri alma olur.
Not
Stream Analytics, mevcut blob dosyasına içerik eklemeyi desteklemez. Stream Analytics her dosyayı yalnızca bir kez görüntüler ve iş verileri okuduktan sonra dosyada gerçekleşen değişiklikler işlenmez. En iyi yöntem, bir blob dosyasının tüm verilerini aynı anda karşıya yüklemek ve ardından farklı, yeni bir blob dosyasına daha yeni olaylar eklemektir.
Birçok blobun sürekli eklendiği ve Stream Analytics'in eklendikçe blobları işlediği senaryolarda, bazı blobların ayrıntı BlobLastModifiedTime
düzeyi nedeniyle nadir durumlarda atlanması mümkündür. Blobları birbirinden en az iki saniye ayırarak bu durumu azaltabilirsiniz. Bu seçenek uygun değilse, büyük hacimli olayların akışını yapmak için Event Hubs'ı kullanabilirsiniz.
Blob depolamayı akış girişi olarak yapılandırma
Aşağıdaki tabloda, Blob depolamayı akış girişi olarak yapılandırdığınızda Azure portalındaki Yeni giriş sayfasındaki her özellik açıklanmaktadır.
Özellik | Açıklama |
---|---|
Giriş diğer adı | Bu girişe başvurmak için işin sorgusunda kullandığınız kolay ad. |
Abonelik | Depolama kaynağının bulunduğu aboneliği seçin. |
Depolama hesabı | Blob dosyalarının bulunduğu depolama hesabının adı. |
Depolama hesabı anahtarı | Depolama hesabıyla ilişkili gizli anahtar. Ayarları el ile sağlama seçeneğini belirlemediğiniz sürece bu seçenek otomatik olarak doldurulur. |
Kapsayıcı | Kapsayıcılar bloblar için mantıksal bir gruplandırma sağlar. Yeni bir kapsayıcı oluşturmak için Mevcut kapsayıcıyı kullan'ı veya Yeni oluştur'u seçebilirsiniz. |
Kimlik doğrulama modu | Depolama hesabına bağlanmak için kullanmak istediğiniz kimlik doğrulamasının türünü belirtin. Depolama hesabıyla kimlik doğrulaması yapmak için bir bağlantı dizesi veya yönetilen kimlik kullanabilirsiniz. Yönetilen kimlik seçeneği için Stream Analytics işine sistem tarafından atanan bir yönetilen kimlik veya depolama hesabıyla kimlik doğrulaması yapmak için kullanıcı tarafından atanan yönetilen kimlik oluşturabilirsiniz. Yönetilen kimlik kullandığınızda, yönetilen kimlik depolama hesabında uygun bir rolün üyesi olmalıdır. |
Yol deseni (isteğe bağlı) | Belirtilen kapsayıcı içindeki blobları bulmak için kullanılan dosya yolu. Kapsayıcının kökünden blobları okumak istiyorsanız, yol deseni ayarlamayın. Yol içinde, şu üç değişkenin bir veya daha fazla örneğini belirtebilirsiniz: {date} , {time} veya {partition} Örnek 1: cluster1/logs/{date}/{time}/{partition} Örnek 2: cluster1/logs/{date} Karakter * , yol ön eki için izin verilen bir değer değildir. Yalnızca geçerli Azure blob karakterlerine izin verilir. Kapsayıcı adlarını veya dosya adlarını eklemeyin. |
Tarih biçimi (isteğe bağlı) | Yolda tarih değişkenini kullanırsanız, dosyaların düzenlendiği tarih biçimi. Örnek: YYYY/MM/DD Blob girişinde {date} veya {time} yolunda olduğunda, klasörlere artan zaman sırasına göre bakılır. |
Saat biçimi (isteğe bağlı) | Yoldaki zaman değişkenini kullanırsanız, dosyaların düzenlendiği zaman biçimi. Şu anda desteklenen tek değer saat cinsindendir HH . |
Bölüm anahtarı | Bu, yalnızca işiniz uyumluluk düzeyi 1.2 veya üzerini kullanacak şekilde yapılandırılmışsa kullanılabilen isteğe bağlı bir alandır. Girişiniz bir özellik tarafından bölümlenmişse, bu özelliğin adını buraya ekleyebilirsiniz. Bu özellikte PARTITION BY veya GROUP BY yan tümcesi içeriyorsa sorgunuzun performansını geliştirmek için kullanılır. Bu iş uyumluluk düzeyi 1.2 veya üzerini kullanıyorsa, bu alan varsayılan olarak "PartitionId" olarak adlandırılır. |
Giriş bölümlerinin sayısı | Bu alan yalnızca yol deseninde {partition} mevcut olduğunda bulunur. Bu özelliğin değeri =1 tamsayıdır >. pathPattern içinde {partition} nerede görünürse görünsin, 0 ile bu alanın değeri -1 arasında bir sayı kullanılır. |
Olay serileştirme biçimi | Gelen veri akışının serileştirme biçimi (JSON, CSV, Avro, Parquet veya Diğer (Protobuf, XML, özel...)). JSON biçiminin belirtimle uyumlu olduğundan ve ondalık sayılar için baştaki 0'ı içermediğinden emin olun. |
Kodlama | CSV ve JSON için utf-8 şu anda desteklenen tek kodlama biçimidir. |
Sıkıştırma | Hiçbiri (varsayılan), Gzip veya Deflate gibi gelen veri akışını okumak için kullanılan sıkıştırma türü. |
Verileriniz bir Blob depolama kaynağından geldiğinde, Stream Analytics sorgunuzda aşağıdaki meta veri alanlarına erişebilirsiniz:
Özellik | Açıklama |
---|---|
BlobName | Olayın geldiği giriş blobunun adı. |
EventProcessedUtcTime | Stream Analytics'in olayı işlediği tarih ve saat. |
BlobLastModifiedUtcTime | Blob'un en son değiştirildiği tarih ve saat. |
PartitionId | Giriş bağdaştırıcısı için sıfır tabanlı bölüm kimliği. |
Örneğin, bu alanları kullanarak aşağıdaki örneğe benzer bir sorgu yazabilirsiniz:
SELECT
BlobName,
EventProcessedUtcTime,
BlobLastModifiedUtcTime
FROM Input
Apache Kafka'dan veri akışı
Azure Stream Analytics, verileri almak için doğrudan Apache Kafka kümelerine bağlanmanızı sağlar. Çözüm düşük koddur ve tamamen Microsoft'taki Azure Stream Analytics ekibi tarafından yönetilir ve iş uyumluluğu standartlarını karşılamasına olanak sağlar. Kafka girişi geriye dönük olarak uyumludur ve sürüm 0.10'dan başlayarak en son istemci sürümüne sahip tüm sürümleri destekler. Kullanıcılar, yapılandırmalara bağlı olarak bir sanal ağ içindeki Kafka kümelerine ve genel uç nokta içeren Kafka kümelerine bağlanabilir. Yapılandırma, mevcut Kafka yapılandırma kurallarına dayanır. Desteklenen sıkıştırma türleri None, Gzip, Snappy, LZ4 ve Zstd'dir.
Daha fazla bilgi için bkz . Kafka'dan Azure Stream Analytics'e veri akışı yapma (Önizleme).