Bu modülde, unicorn filosundan sensör verilerini gerçek zamanlı olarak toplamak için bir Amazon Kinesis Data Analytics uygulaması oluşturacaksınız. Uygulama, Amazon Kinesis veri akışından okuyacak, seyahat edilen toplam mesafeyi, geçerli durumda bir Wild Ryde'de bulunan her bir unicorn için minimum ve maksimum sağlık ve sihir noktalarını hesaplayacak ve toplanan bu istatistikleri her dakika Amazon Kinesis veri akışına gönderecektir.

Bu modülün mimarisi, bir Amazon Kinesis Data Analytics uygulamasını, kaynak ve hedef Amazon Kinesis veri akışı ile üretici ve tüketici komut satırı istemcilerini içermektedir.

Amazon Kinesis Data Analytics uygulaması, önceki modülde oluşturduğumuz kaynak Amazon Kinesis veri akışından gelen verileri işler ve bunları her dakika toplar. Her dakika, uygulama son dakikada kat edilen toplam mesafenin yanı sıra filomuzdaki her bir unicorn için sağlık ve sihir noktalarından minimum ve maksimum okumaları içeren verileri yayınlar. Bu veri noktaları, sistemimizdeki diğer bileşenler tarafından işlenmek üzere bir hedef Amazon Kinesis veri akışına gönderilecektir.

Modülü tamamlama süresi: 20 Dakika

Kullanılan hizmetler:
• Amazon Kinesis Data Streams
• Amazon Kinesis Data Analytics


  • 1. Adım. Bir Amazon Kinesis veri akışı oluşturun

    1 parça ile wildrydes-summary isimli yeni bir veri akışı oluşturmak için Amazon Kinesis Veri Akışları konsolunu kullanın.


    a. AWS Management Console’na gidin, Hizmetler seçeneğine tıklayın ve ardından Analiz altındaki Kinesis öğesini seçin.

    b. Tanıtıcı bir ekran açılırsa Kullanmaya Başlayın öğesini seçin.

    c. Veri akışı oluştur öğesini seçin.

    d.  Kinesis veri akışı adı alanına wildrydes-summary girin ve Parça sayısı alanına 1 değerini girin, ardından Knesis veri akışı öğesini seçin.

    e. 60 saniye içinde, Kinesis AKTİF olacak ve gerçek zamanlı veri akışını depolamaya hazır olacak.

  • 2. Adım. Bir Amazon Kinesis Data Analytics uygulaması oluşturun

    Önceki modülde oluşturulan wildrydes veri akışından okuyan ve her dakika aşağıdaki özniteliklere sahip bir JSON nesnesi yayımlayan bir Amazon Kinesis Data Analytics uygulaması oluşturun:

    Ad Unicorn adı
    StatusTime Amazon Kinesis Data Analytics tarafından sağlanan ROWTIME
    Mesafe Unicorn tarafından katedilen mesafe
    MinMagicPoints MagicPoints  özniteliğinin maksimum veri noktası
    MaxMagicPoints MagicPoints  özniteliğinin maksimum veri noktası
    MinHealthPoints HealthPoints özniteliğinin minimum veri noktası
    MaxHealthPoints HealthPoints özniteliğinin maksimum veri noktası

    a. Cloud9 ortamınızı açtığınız sekmeye geçin.

    b. Sensör verilerini veri akışına yayımlamaya başlamak için üreticiyi çalıştırın.

    ./producer

    Uygulamamızı derlerken aktif olarak sensör verisinin üretilmesi, Amazon Kinesis Data Analytics’in şemamızı otomatik olarak algılamasını sağlar.

    c. AWS Management Console’na gidin, Hizmetler seçeneğine tıklayın ve ardından Analiz altındaki Kinesis öğesini seçin.

    d. Analiz uygulaması oluşturun öğesini seçin.

    e. Uygulama adı alanına wildrydes girin ve ardından Uygulama oluştur öğesini seçin.

    f. Akış verisine bağlan öğesini seçin.

    g. Kinesis veri akışından wildrydes öğesini seçin.

    h. Aşağı kaydırın ve Şemayı keşfet seçeneğine tıklayın, biraz bekleyin ve şemanın doğru bir şekilde otomatik olarak keşfedildiğinden emin olun.

    Otomatik olarak keşfedilen şemanın aşağıdakileri içerdiğinden emin olun:

     

    Sütun Veri Türü:
    Mesafe DOUBLE
    HealthPoints INTERGER
    Enlem DOUBLE
    Boylam DOUBLE
    MagicPoints INTEGER
    Ad VARCHAR(16)
    StatusTime TIMESTAMP

    i. Kaydet ve devam et öğesini seçin.

    j. SQL düzenleyiciye git öğesini seçin. Bu, gerçek zamanlı Amazon Kinesis veri akışımızın üzerine bir sorgu oluşturabileceğimiz etkileşimli bir sorgu oturumu açacaktır.

    k. Uygulamayı başlatmak için Evet’i seçin. Uygulamanızın başlaması 30-90 saniye sürecektir.

    l. Aşağıdaki SQL sorgusunu kopyalayıp SQL düzenleyiciye yapıştırın:

     

    CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (
      "Name"                VARCHAR(16),
      "StatusTime"          TIMESTAMP,
      "Distance"            SMALLINT,
      "MinMagicPoints"      SMALLINT,
      "MaxMagicPoints"      SMALLINT,
      "MinHealthPoints"     SMALLINT,
      "MaxHealthPoints"     SMALLINT
    );
    
    CREATE OR REPLACE PUMP "STREAM_PUMP" AS
      INSERT INTO "DESTINATION_SQL_STREAM"
        SELECT STREAM "Name", "ROWTIME", SUM("Distance"), MIN("MagicPoints"),
                      MAX("MagicPoints"), MIN("HealthPoints"), MAX("HealthPoints")
        FROM "SOURCE_SQL_STREAM_001"
        GROUP BY FLOOR("SOURCE_SQL_STREAM_001"."ROWTIME" TO MINUTE), "Name";

    (yakınlaştırmak için tıklayın)

    m. Kaydet ve SQL sorgusunu çalıştır öğesini seçin. Her dakika, toplanan verileri içeren gelen satırları göreceksiniz. Satırların gelmesini bekleyin.

    n. Hedef seçeneğine tıklayın.

    o. Bir hedefe bağlan öğesini seçin.

    p. Kinesis veri akışından wildrydes-summary öğesini seçin.

    q. Uygulama veri akışı adından DESTINATION_SQL_STREAM öğesini seçin.

    r. Kaydet ve devam et öğesini seçin.

    (yakınlaştırmak için tıklayın)

  • 3. Adım. Akıştan mesajları okuyun

    Her dakika gönderilen toplanmış verileri görmek için Kinesis veri akışından gelen mesajları görüntülemek için komut satırı uygulamasını kullanın.


    a. Cloud9 ortamınızı açtığınız sekmeye geçin.

    b. Veri akışından sensör verisini okumaya başlamak için komut satırı uygulamasını çalıştırın.

    ./consumer -stream wildrydes-summary

    Komut satırı uygulaması, Kinesis Data Analytics uygulamasından her dakika gönderilen mesajları yazdıracaktır.

    {
      "Name": "Shadowfax",
      "StatusTime": "2018-03-18 03:20:00.000",
      "Distance": 362,
      "MinMagicPoints": 170,
      "MaxMagicPoints": 172,
      "MinHealthPoints": 146,
      "MaxHealthPoints": 149
    }
  • 4. Adım. Üretici ile deneyim

    Kontrol panosunu ve komut satırı uygulamasını izlerken üreticiyi durdurun ve başlatın. Farklı unicorn isimleri ile birden fazla üretici başlatın.


    a. Cloud9 ortamınızı açtığınız sekmeye geçin.

    b. Control + C tuşlarına basarak üreticiyi durdurun ve mesajların durduğunu görün.

    c. Üreticiyi yeniden başlatın ve mesajların devam ettiğini görün.

    d. (+) düğmesine basın ve yeni bir terminal sekmesi açmak için Yeni Terminal seçeneğine tıklayın.

    e. Yeni sekmede üreticinin başka bir örneğini başlatın. Belirli bir unicorn adı girin ve komut satırı uygulamasının çıktılarında her iki unicorn için veri noktalarını görün.

    ./producer -name Bucephalus

    f. Çıktılarda, birden fazla unicorn gördüğünüzü doğrulayın.

    {
        "Name": "Shadowfax",
        "StatusTime": "2018-03-18 03:20:00.000",
        "Distance": 362,
        "MinMagicPoints": 170,
        "MaxMagicPoints": 172,
        "MinHealthPoints": 146,
        "MaxHealthPoints": 149
    }
    {
        "Name": "Bucephalus",
        "StatusTime": "2018-03-18 03:20:00.000",
        "Distance": 1773,
        "MinMagicPoints": 140,
        "MaxMagicPoints": 148,
        "MinHealthPoints": 132,
        "MaxHealthPoints": 138
    }
  • Özet ve İpuçları


    🔑 Amazon Kinesis Data Analytics, SQL kullanarak veri akışı verilerini sorgulamanızı veya tüm veri akışı uygulamalarını oluşturmanızı sağlar. Bu sayede eyleme geçirilebilir öngörüler elde edebilir, işletmenizin ve müşterinizin ihtiyaçlarına anında yanıt verebilirsiniz.

    🔧 Bu modülde, unicorn Kinesis veri akışından okuyan ve her dakika bir özet satırı yayımlayan bir Kinesis Data Analytics uygulaması oluşturdunuz.

Bu modülde, daha önce oluşturulan wildrydes  Amazon Kinesis veri akışından alınan verileri işlemek için AWS Lambda kullanacaksınız. Veri akışından okumak ve veriler geldiğinde bir Amazon DynamoDB tablosuna kayıtları yazmak için bir Lambda işlevi oluşturacak ve yapılandıracağız.