Dalam modul ini, Anda akan membuat aplikasi Amazon Kinesis Data Analytics untuk mengumpulkan data sensor dari armada unicorn secara real-time. Aplikasi ini akan membaca dari Amazon Kinesis stream, menghitung jarak total yang ditempuh, dan poin kesehatan dan magic minimum dan maksimum untuk setiap unicorn yang saat ini menggunakan Wild Ryde dan menampilkan statistik gabungan ini ke stream Amazon Kinesis setiap menit.

Arsitektur untuk modul ini melibatkan aplikasi Amazon Kinesis Data Analytics, sumber dan tujuan Amazon Kinesis streams, dan produser dan klien baris perintah.

Aplikasi Amazon Kinesis Data Analytics memproses data dari sumber Amazon Kinesis stream yang kami buat di modul sebelumnya dan menggabungkannya berdasarkan per menit. Setiap menit, aplikasi akan memancarkan data termasuk jarak total yang ditempuh pada menit terakhir serta pembacaan minimum dan maksimum dari poin kesehatan dan ajaib untuk setiap unicorn di armada kami. Poin data ini akan dikirim ke Amazon Kinesis stream tujuan untuk diproses oleh komponen lain di sistem kami.

Waktu untuk menyelesaikan modul: 20 Menit

Layanan yang digunakan:
• Steraming Data Amazon Kinesis
• Amazon Kinesis Data Analytics


  • Langkah 1. Membuat Amazon Kinesis stream

    Gunakan konsol Amazon Kinesis Data Streams untuk membuat stream baru bernama wildrydes-summary dengan 1 shard.


    a. Buka AWS Management Console, klik Layanan lalu pilih Kinesis di bawah Analitik.

    b. Pilih Mulai jika diminta dengan layar pengantar.

    c. Pilih Buat stream data.

    d. Masukkan wildrydes-summary ke nama stream Kinesis dan 1 ke Nomor shard, lalu pilih Buat stream Kinesis.

    e. Dalam 60 detik, stream Kinesis Anda akan AKTIF dan siap untuk menyimpan data streaming real-time.

  • Langkah 2. Buat aplikasi Amazon Kinesis Data Analytics

    Buat aplikasi Amazon Kinesis Data Analytics yang membaca dari stream wildrydes yang dibangun di modul sebelumnya dan memancarkan objek JSON dengan atribut berikut setiap menit:

    Nama Nama Unicorn
    StatusTime ROWTIME disediakan oleh Amazon Kinesis Data Analytics
    Jarak Jumlah jarak yang ditempuh oleh unicorn
    MinMagicPoints Titik data maksimum dari atribut MagicPoints
    MaxMagicPoints Titik data maksimum dari atribut MagicPoints
    MinHealthPoints Titik data minimum atribut HealthPoints
    MaxHealthPoints Titik data maksimum dari HealthPoints

    a. Beralih ke tab tempat lingkungan Cloud9 Anda terbuka.

    b. Jalankan produser untuk mulai memancarkan data sensor ke stream.

    ./producer

    Secara aktif menghasilkan data sensor saat kami sedang membangun aplikasi kami memungkinkan Amazon Kinesis Data Analytics untuk secara otomatis mendeteksi skema kami.

    c. Buka AWS Management Console, klik Layanan lalu pilih Kinesis di bawah Analitik.

    d. Pilih Buat aplikasi analitik.

    e. Masukkan wildrydes ke dalam nama Aplikasi dan kemudian pilih Buat aplikasi.

    f. Pilih Sambungkan data streaming.

    g. Pilih wildrydes dari stream Kinesis.

    h. Gulir ke bawah dan klik Temukan skema, tunggu sebentar, dan pastikan skema tersebut ditemukan secara otomatis.

    Pastikan skema yang ditemukan secara otomatis meliputi:

     

    Kolom Jenis Data
    Jarak DOUBLE
    HealthPoints INTERGER
    Lintang DOUBLE
    Bujur DOUBLE
    MagicPoints INTEGER
    Nama VARCHAR(16)
    StatusTime TIMESTAMP

    i. Pilih Simpan dan lanjutkan.

    j. Pilih Buka editor SQL. Ini akan membuka sesi kueri interaktif tempat kami dapat membuat kueri di atas Amazon Kinesis stream kami.

    k. Pilih Ya, mulai aplikasi. Ini akan memakan waktu 30-90 detik untuk memulai aplikasi Anda.

    l. Salin dan tempel kueri SQL berikut ke dalam editor SQL:

     

    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";

    (klik untuk zoom)

    m. Pilih Simpan dan jalankan SQL. Setiap menit, Anda akan melihat baris yang tiba berisi data yang dikumpulkan. Tunggu sampai baris tiba.

    n. Klik tautanTujuan .

    o. Pilih Hubungkan ke tujuan.

    p. Pilih wildrydes-summary dari Kinesis stream.

    q. Pilih DESTINATION_SQL_STREAM dari nama stream dalam aplikasi.

    r. Pilih Simpan dan lanjutkan.

    (klik untuk zoom)

  • Langkah 3. Baca pesan dari stream

    Gunakan konsumen baris perintah untuk melihat pesan dari stream Kinesis untuk melihat data agregat yang dikirim setiap menit.


    a. Beralih ke tab tempat lingkungan Cloud9 Anda terbuka.

    b. Jalankan konsumen untuk mulai membaca data sensor dari stream.

    ./consumer -stream wildrydes-summary

    Konsumen akan mencetak pesan yang dikirim oleh aplikasi Kinesis Data Analytics setiap menit:

    {
      "Name": "Shadowfax",
      "StatusTime": "2018-03-18 03:20:00.000",
      "Distance": 362,
      "MinMagicPoints": 170,
      "MaxMagicPoints": 172,
      "MinHealthPoints": 146,
      "MaxHealthPoints": 149
    }
  • Langkah 4. Bereksperimen dengan produser

    Menghentikan dan memulai produsen sambil melihat dasbor dan konsumen. Memulai banyak produsen dengan nama unicorn berbeda.


    a. Beralih ke tab tempat lingkungan Cloud9 Anda terbuka.

    b. Menghentikan produser dengan menekan Control + C dan perhatikan pesan berhenti.

    c. Mulai produser lagi dan perhatikan pesan dilanjutkan.

    d. Tekan tombol (+) dan klik Terminal Baru untuk membuka tab terminal baru.

    e. Mulai instans lain produsen di tab baru. Berikan nama unicorn spesifik dan titik data pemberitahuan untuk kedua unicorn dalam output konsumen:

    ./producer -name Bucephalus

    f. Pastikan Anda melihat beberapa unicorn di output:

    {
        "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
    }
  • Rekap & Kiat


    🔑 Amazon Kinesis Data Analytics memungkinkan Anda untuk meminta data streaming atau membangun seluruh aplikasi streaming menggunakan SQL, sehingga Anda dapat memperoleh wawasan yang dapat ditindaklanjuti dan menanggapi kebutuhan bisnis dan pelanggan Anda dengan segera.

    🔧 Dalam modul ini, Anda telah membuat aplikasi Kinesis Data Analytics yang membaca dari stream Kinesis data unicorn dan memancarkan baris ringkasan setiap menit.

Dalam modul berikutnya, Anda akan menggunakan AWS Lambda untuk memproses data dari wildrydes  Amazon Kinesis stream yang dibuat sebelumnya. Kami akan membuat dan mengonfigurasi fungsi Lambda untuk membaca dari stream dan menulis catatan ke tabel Amazon DynamoDB saat tabelnya tiba.