Stream Analytics'te aramalar için başvuru verilerini kullanma

Başvuru verileri, statik veya doğası gereği yavaş değişen sınırlı bir veri kümesidir. Arama yapmak veya veri akışlarınızı artırmak için kullanılır. Başvuru verileri arama tablosu olarak da bilinir.

Örnek olarak ioT senaryolarını ele alalım. Algılayıcılar hakkındaki meta verileri, başvuru verilerinde çok sık değişmeyen depolayabilirsiniz. Ardından gerçek zamanlı IoT veri akışlarıyla birleştirebilirsiniz.

Azure Stream Analytics, düşük gecikme süreli akış işleme elde etmek için başvuru verilerini belleğe yükler. Stream Analytics işinizde başvuru verilerini kullanmak için genellikle sorgunuzda bir başvuru verisi birleştirmesi kullanırsınız.

Örnek

Arabalar gişeden geçtiğinde gerçek zamanlı bir olay akışı oluşturabilirsiniz. Gişe, plakaları gerçek zamanlı olarak yakalayabilir. Bu veriler, süresi dolan lisans plakalarını tanımlamak için kayıt ayrıntılarını içeren statik bir veri kümesiyle birleştirilebilir.

SELECT I1.EntryTime, I1.LicensePlate, I1.TollId, R.RegistrationId  
FROM Input1 I1 TIMESTAMP BY EntryTime  
JOIN Registration R  
ON I1.LicensePlate = R.LicensePlate  
WHERE R.Expired = '1'

Stream Analytics, başvuru verileri için depolama katmanı olarak Azure Blob Depolama, Azure Data Lake Storage 2. Nesil ve Azure SQL Veritabanı destekler. Diğer veri depolarında başvuru verileriniz varsa verileri ayıklamak, dönüştürmek ve desteklenen veri depolarından birine yüklemek için Azure Data Factory'yi kullanmayı deneyin. Daha fazla bilgi için bkz . Azure Data Factory'de Kopyalama Etkinliğine genel bakış.

Azure Blob Depolama veya Azure Data Lake Depolama 2. Nesil

Başvuru verileri, blob adında belirtilen tarih/saatin artan sırasına göre bir blob dizisi olarak modellenmiştir. Bloblar yalnızca dizideki son blob tarafından belirtilenden daha büyük bir tarih/saat kullanılarak dizinin sonuna eklenebilir. Bloblar giriş yapılandırmasında tanımlanır.

Daha fazla bilgi için bkz. Stream Analytics işi için Blob Depolama başvuru verilerini kullanma.

Blob başvuru verilerini yapılandırma

Başvuru verilerinizi yapılandırmak için önce başvuru verisi türünde bir giriş oluşturmanız gerekir. Aşağıdaki tabloda, başvuru verisi girişini kendi açıklamasıyla oluştururken sağlamanız gereken her özellik açıklanmaktadır.

Özellik adı Açıklama
Giriş diğer adı Bu girişe başvurmak için iş sorgusunda kullanılan kolay ad.
Storage account Bloblarınızın bulunduğu depolama hesabının adı. Stream Analytics işinizle aynı abonelikteyse açılan listeden seçin.
Depolama hesabı anahtarı Depolama hesabıyla ilişkili gizli anahtar. Depolama hesabı Stream Analytics işinizle aynı abonelikteyse bu anahtar otomatik olarak doldurulur.
Depolama kapsayıcısı Kapsayıcılar, Blob Depolama depolanan bloblar için mantıksal bir gruplandırma sağlar. Blob Depolama'a bir blob yüklediğinizde, bu blob için bir kapsayıcı belirtmeniz gerekir.
Yol deseni Bu gerekli özellik, belirtilen kapsayıcı içindeki bloblarınızı bulmak için kullanılır. Yol içinde, {date} ve {time} değişkenlerinin bir veya daha fazla örneğini belirtmeyi seçebilirsiniz.
Örnek 1: ürünler/{date}/{time}/product-list.csv
Örnek 2: products/{date}/product-list.csv
Örnek 3: product-list.csv

Blob belirtilen yolda yoksa, Stream Analytics işi blobu kullanılabilir duruma getirmek için süresiz olarak bekler.
Tarih biçimi [isteğe bağlı] Belirttiğiniz yol deseninde {date} kullandıysanız desteklenen biçimler açılan listesinden bloblarınızın düzenlendiği tarih biçimini seçin.
Örnek: YYYY/AA/GG veya AA/GG/YYYY
Saat biçimi [isteğe bağlı] Belirttiğiniz yol düzeninde {time} kullandıysanız, desteklenen biçimler açılan listesinden bloblarınızın düzenlendiği zaman biçimini seçin.
Örnek: SSS, SS/mm veya HH-mm
Olay serileştirme biçimi Sorgularınızın beklediğiniz gibi çalıştığından emin olmak için Stream Analytics'in gelen veri akışları için hangi serileştirme biçimini kullandığınızı bilmesi gerekir. Başvuru verileri için desteklenen biçimler CSV ve JSON'dır.
Kodlama UTF-8 şu anda desteklenen tek kodlama biçimidir.

Statik başvuru verileri

Başvuru verilerinizin değişmesi beklenmiyor olabilir. Statik başvuru verileri desteğini etkinleştirmek için giriş yapılandırmasında statik bir yol belirtin.

Stream Analytics blobu belirtilen yoldan alır. {date} ve {time} değiştirme belirteçleri gerekli değildir. Stream Analytics'te başvuru verileri sabit olduğundan statik başvuru veri blobu üzerine yazılması önerilmez.

Zamanlamaya göre başvuru verileri oluşturma

Başvuru verileriniz yavaş değişen bir veri kümesi olabilir. Başvuru verilerini yenilemek için, {date} ve {time} değiştirme belirteçlerini kullanarak giriş yapılandırmasında bir yol deseni belirtin. Stream Analytics, bu yol desenini temel alarak güncelleştirilmiş başvuru veri tanımlarını alır.

Örneğin, YYYY-AA-GG tarih biçimine ve HH-mm saat biçimine sahip bir desen sample/{date}/{time}/products.csv , Stream Analytics'e güncelleştirilmiş blobu sample/2015-04-16/17-30/products.csv 16 Nisan 2015'te (UTC) saat 17:30'da almasını emredmektedir.

Stream Analytics, yenilenen başvuru veri bloblarını bir dakikalık aralıklarla otomatik olarak tarar. Zaman damgası 10:30:00 olan bir blob, örneğin 10:30:30 gibi küçük bir gecikmeyle karşıya yüklenebilir. Bu bloba başvuran Stream Analytics işinde küçük bir gecikme olduğunu fark edeceksiniz.

Bu tür senaryolardan kaçınmak için blobu hedef geçerlilik süresinden önce (bu örnekte 10:30:00 olan) karşıya yükleyin. Stream Analytics işinin artık blobu bulup belleğe yüklemek ve işlemleri gerçekleştirmek için yeterli zamanı vardır.

Not

Şu anda Stream Analytics işleri blob yenilemeyi yalnızca makine süresi blob adında kodlanan zamana ilerlediğinde arar. Örneğin, iş en kısa sürede arar sample/2015-04-16/17-30/products.csv ancak 16 Nisan 2015'ten önce utc 17:30'da aramaz. Bulunan son blobdan önce kodlanmış zamanı olan bir blobu aramaz.

Örneğin, iş blobunu sample/2015-04-16/17-30/products.csvbulduktan sonra, 16 Nisan 2015'ten önceki bir kodlanmış tarihe sahip dosyaları saat 17:30'da yoksayar. Aynı kapsayıcıda geç gelen sample/2015-04-16/17-25/products.csv bir blob oluşturulursa iş bunu kullanmaz.

Başka bir örnekte, sample/2015-04-16/17-30/products.csv yalnızca 16 Nisan 2015 tarihinde saat 22:03'te üretilir, ancak kapsayıcıda daha önceki bir tarihe sahip blob yoktur. Ardından iş bu dosyayı 16 Nisan 2015 saat 22:03'te başlayarak kullanır ve o zamana kadar önceki başvuru verilerini kullanır.

Bu davranışın bir özel durumu, işin verileri zamanında yeniden işlemesi gerektiğinde veya işin ilk başlatıldığında olmasıdır.

Başlangıç zamanında, iş belirtilen iş başlangıç zamanından önce üretilen en son blobu arar. Bu davranış, iş başladığında boş olmayan bir başvuru veri kümesi olmasını sağlar. Bir tane bulunamazsa, iş şu tanılamayı görüntüler: Initializing input without a valid reference data blob for UTC time <start time>.

Bir başvuru veri kümesi yenilendiğinde, bir tanılama günlüğü oluşturulur: Loaded new reference data from <blob path>. Birçok nedenden dolayı, bir işin önceki başvuru veri kümesini yeniden yüklemesi gerekebilir. Çoğu zaman, bunun nedeni geçmiş verileri yeniden işlemektir. Aynı tanılama günlüğü o anda oluşturulur. Bu eylem, geçerli akış verilerinin geçmiş başvuru verilerini kullandığı anlamına gelmez.

Azure Data Factory , Stream Analytics tarafından başvuru veri tanımlarını güncelleştirmek için gereken güncelleştirilmiş blobları oluşturma görevini yönetmek için kullanılabilir.

Data Factory, verilerin taşınmasını ve dönüştürülmesini düzenleyen ve otomatikleştiren bulut tabanlı bir veri tümleştirme hizmetidir. Data Factory, çok sayıda bulut tabanlı ve şirket içi veri deposuna bağlanmayı destekler. Verileri, belirttiğiniz düzenli bir zamanlamaya göre kolayca taşıyabilir.

Önceden tanımlanmış bir zamanlamaya göre yenilenen Stream Analytics için başvuru verileri oluşturmak üzere Data Factory işlem hattı ayarlama hakkında daha fazla bilgi için bu GitHub örneğine bakın.

Blob başvuru verilerini yenilemeye İpuçları

  • Başvuru veri bloblarının üzerine yazmayın çünkü bunlar sabittir.
  • Başvuru verilerini yenilemenin önerilen yolu:
    • Yol deseninde {date}/{time} kullanın.
    • İş girişinde tanımlanan aynı kapsayıcıyı ve yol desenini kullanarak yeni bir blob ekleyin.
    • Dizideki son blob tarafından belirtilenden büyük bir tarih/saat kullanın.
  • Başvuru veri blobları, blob'un Son Değiştirme zamanına göre sıralanmamıştır *. Bunlar yalnızca {date} ve {time} değiştirmeleri kullanılarak blob adında belirtilen tarih ve saate göre sıralanır.
  • Çok fazla sayıda blob listelemek zorunda kalmamak için, işlemenin artık yapılmayacağı eski blobları silin. Stream Analytics'in yeniden başlatma gibi bazı senaryolarda az miktarda yeniden işlemesi gerekebilir.

Azure SQL Veritabanı

Stream Analytics işiniz SQL Veritabanı başvuru verilerini alır ve işlenmek üzere bellekte anlık görüntü olarak depolar. Başvuru verilerinizin anlık görüntüsü, depolama hesabındaki bir kapsayıcıda da depolanır. Depolama hesabını yapılandırma ayarlarında belirtirsiniz.

İş başladığında kapsayıcı otomatik olarak oluşturulur. İş durursa veya başarısız bir duruma girerse, iş yeniden başlatıldığında otomatik olarak oluşturulan kapsayıcılar silinir.

Başvuru verileriniz yavaş değişen bir veri kümesiyse, işinizde kullanılan anlık görüntüyü düzenli aralıklarla yenilemeniz gerekir.

Stream Analytics ile, SQL Veritabanı giriş bağlantınızı yapılandırırken yenileme hızı ayarlayabilirsiniz. Stream Analytics çalışma zamanı, SQL Veritabanı örneğinizi yenileme hızıyla belirtilen aralıkta sorgular. Desteklenen en hızlı yenileme hızı dakikada bir kezdir. Stream Analytics, her yenileme için sağlanan depolama hesabında yeni bir anlık görüntü depolar.

Stream Analytics, SQL Veritabanı örneğinizi sorgulamak için iki seçenek sunar. Anlık görüntü sorgusu zorunludur ve her işe dahil edilmelidir. Stream Analytics, yenileme aralığınıza göre anlık görüntü sorgusunu düzenli aralıklarla çalıştırır. Başvuru veri kümesi olarak sorgunun sonucunu (anlık görüntü) kullanır.

Anlık görüntü sorgusu çoğu senaryoya uygun olmalıdır. Büyük veri kümeleriyle ve hızlı yenileme hızlarıyla ilgili performans sorunlarıyla karşılaşırsanız delta sorgu seçeneğini kullanın. Başvuru veri kümesinin döndürülmesi 60 saniyeden uzun süre alan sorgular zaman aşımına neden olur.

Delta sorgu seçeneğiyle Stream Analytics, temel başvuru veri kümesini almak için başlangıçta anlık görüntü sorgusunu çalıştırır. Daha sonra Stream Analytics, artımlı değişiklikleri almak için yenileme aralığınıza göre değişiklik sorgusunu düzenli aralıklarla çalıştırır. Bu artımlı değişiklikler, güncelleştirilmek üzere başvuru veri kümesine sürekli uygulanır. Delta sorgu seçeneğinin kullanılması depolama maliyetini ve ağ G/Ç işlemlerini azaltmaya yardımcı olabilir.

SQL Veritabanı başvuru verilerini yapılandırma

SQL Veritabanı başvuru verilerinizi yapılandırmak için önce başvuru verileri girişi oluşturmanız gerekir. Aşağıdaki tabloda, başvuru verisi girişini kendi açıklamasıyla oluştururken sağlamanız gereken her özellik açıklanmaktadır. Daha fazla bilgi için bkz. Stream Analytics işi için SQL Veritabanı başvuru verilerini kullanma.

başvuru veri girişi olarak Azure SQL Yönetilen Örneği kullanabilirsiniz. SQL Yönetilen Örneği'de genel uç nokta yapılandırmanız gerekir. Ardından Stream Analytics'te aşağıdaki ayarları el ile yapılandırabilirsiniz. Sql Server çalıştıran ve veritabanı eklenmiş bir Azure sanal makinesi de bu ayarları el ile yapılandırarak desteklenir.

Özellik adı Açıklama
Giriş diğer adı Bu girişe başvurmak için iş sorgusunda kullanılan kolay ad.
Abonelik Aboneliğiniz.
Veritabanı Başvuru verilerinizi içeren SQL Veritabanı örneği. SQL Yönetilen Örneği için 3342 numaralı bağlantı noktasını belirtmeniz gerekir. sampleserver.public.database.windows.net,3342 bunun bir örneğidir.
Username SQL Veritabanı örneğinle ilişkilendirilmiş kullanıcı adı.
Parola SQL Veritabanı örneğinle ilişkilendirilmiş parola.
Düzenli aralıklarla yenile Bu seçenek bir yenileme hızı seçmenize olanak tanır. Yenileme hızını DD:HH:MM olarak belirtmek için Açık'ı seçin.
Anlık görüntü sorgusu Bu varsayılan sorgu seçeneği, SQL Veritabanı örneğinizden başvuru verilerini alır.
Delta sorgusu Büyük veri kümelerine ve kısa yenileme hızına sahip gelişmiş senaryolar için bir delta sorgusu ekleyin.

Boyut sınırlaması

En iyi performans için 300 MB'tan küçük başvuru veri kümelerini kullanın. Altı veya daha fazla akış birimine sahip işlerde 5 GB veya daha düşük başvuru veri kümeleri desteklenir. Büyük bir başvuru veri kümesi kullanmak işinizin uçtan uca gecikme süresini etkileyebilir.

Sorgu karmaşıklığı, pencerelenmiş toplamalar, zamana bağlı birleşimler ve zamansal analiz işlevleri gibi durum bilgisi olan işlemleri içerecek şekilde artabilir. Karmaşıklık arttığında, başvuru verilerinin desteklenen boyut üst sınırı azalır.

Stream Analytics başvuru verilerini yükleyemiyor ve karmaşık işlemler gerçekleştiremiyorsa, işin belleği tükeniyor ve başarısız oluyor. Bu gibi durumlarda akış birimi yüzde kullanım ölçümü %100'e ulaşır.

Akış birimi sayısı Önerilen boyut
1 50 MB veya daha düşük
3 150 MB veya daha düşük
6 ve sonrası 5 GB veya daha düşük

Başvuru verileri için sıkıştırma desteği kullanılamaz. 300 MB'tan büyük başvuru veri kümeleri için en iyi performans için delta sorgu seçeneğiyle kaynak olarak SQL Veritabanı kullanın. Delta sorgu seçeneği bu tür senaryolarda kullanılmıyorsa, başvuru veri kümesi her yenilendiğinde filigran gecikme ölçümünde ani artışlar görürsünüz.

bir işte birden çok başvuru veri kümesini birleştirme

Bir başvuru veri girişini yalnızca akış girişine birleştirebilirsiniz. Bu nedenle, birden çok başvuru veri kümesini birleştirmek için sorgunuzu birden çok adıma bölün. Bir örnek aşağıda verilmiştir:

With Step1 as (
    --JOIN input stream with reference data to get 'Desc'
    SELECT streamInput.*, refData1.Desc as Desc
    FROM    streamInput
    JOIN    refData1 ON refData1.key = streamInput.key 
)
--Now Join Step1 with second reference data
SELECT *
INTO    output 
FROM    Step1
JOIN    refData2 ON refData2.Desc = Step1.Desc 

IoT Edge işleri

Stream Analytics uç işleri için yalnızca yerel başvuru verileri desteklenir. Bir iş bir IoT Edge cihazına dağıtıldığında, kullanıcı tanımlı dosya yolundan başvuru verilerini yükler. Cihazda bir başvuru veri dosyasını hazır bulundurun.

Bir Windows kapsayıcısı için, başvuru veri dosyasını yerel sürücüye yerleştirin ve yerel sürücüyü Docker kapsayıcısıyla paylaşın. Linux kapsayıcısı için bir Docker birimi oluşturun ve veri dosyasını birime doldurun.

IoT Edge güncelleştirmesinde başvuru verileri bir dağıtım tarafından tetikleniyor. Tetiklendikten sonra Stream Analytics modülü, çalışan işi durdurmadan güncelleştirilmiş verileri seçer.

Başvuru verilerini iki şekilde güncelleştirebilirsiniz:

  • Azure portalından Stream Analytics işinizde başvuru veri yolunu güncelleştirin.
  • IoT Edge dağıtımını güncelleştirin.

Sonraki adımlar