في هذه الوحدة، ستنشئ تطبيقاً على Amazon Kinesis Data Analytics لتجميع بيانات المستشعر من أسطول وحيد القرن في الوقت الفعلي. سيقرأ التطبيق من بث Amazon Kinesis وسيحسب المسافة الإجمالية للانتقال ونقاط الصحة والسحر الدنيا والقصوى لكل وحيد قرن في مهمة حالية على Wild Ryde ونتائج هذه الإحصائيات المجمعة إلى بث Amazon Kinesis كل دقيقة.

تتضمن بنية هذه الوحدة تطبيقاً على Amazon Kinesis Data Analytics وتدفقات بث Amazon Kinesis للوجهة والمصدر و عملاء سطر أوامر المُنتِج والمُستهلِك.

يعالج تطبيق Amazon Kinesis Data Analytics البيانات المتدفقة من بث Amazon Kinesis للمصدر الذي أنشأناه في الوحدة السابقة ويجمعه كل دقيقة. سيصدر التطبيق كل دقيقة بيانات تشمل المسافة الإجمالية للانتقال في آخر دقيقة بالإضافة إلى القراءات الدنيا والقصوى من نقاط الصحة والسحر لكل وحيد قرن في أسطولنا. سيتم إرسال نقاط البيانات هذه إلى بث Amazon Kinesis الوجهة للمعالجة بواسطة مكونات أخرى في نظامنا.

الوقت اللازم لاستكمال الوحدة: 20دقيقة

الخدمات المستخدمة:
• Amazon Kinesis Data Streams
• Amazon Kinesis Data Analytics


  • الخطوة 1. إنشاء بث Amazon Kinesis

    استخدم وحدة تحكم Amazon Kinesis Data Streams لإنشاء بث جديد باسم wildrydes-summary مع قسم واحد.


    أ. انتقل إلى وحدة الإدارة في AWS، انقر فوق الخدمات ثم حدد Kinesis أسفل Analytics.

    ب. حدد ابدأ إذا ظهرت من خلال شاشة افتتاحية.

    جـ. حدد إنشاء بث بيانات.

    د. ادخل wildrydes-summary في اسم بث Kinesis و1 في عدد الأقسام، ثم حدد إنشاء بث Kinesis.

    هـ. في غضون 60 ثانية، سيكون بث Kinesis‏ نشطاً وجاهزاً لتخزين بيانات البث في الوقت الفعلي.

  • الخطوة 2. إنشاء تطبيق على Amazon Kinesis Data Analytics

    أنشئ تطبيقاً على Amazon Kinesis Data Analytics الذي يقرأ من بث wildrydes  استناداً إلى الوحدة السابقة ويصدر كائن JSON بالسمات التالية كل دقيقة:

    الاسم اسم وحيد القرن
    StatusTime ROWTIME مقدم بواسطة Amazon Kinesis Data Analytics
    المسافة إجمالي المسافة التي يقطعها وحيد القرن
    MinMagicPoints نقطة البيانات الدنيا لسمة MagicPoints
    MaxMagicPoints نقطة البيانات القصوى لسمة MagicPoints
    MinHealthPoints نقطة البيانات الدنيا لسمة HealthPoints
    MaxHealthPoints نقطة البيانات القصوى لسمة HealthPoints

    أ. انتقل إلى علامة التبويب الموجودة في بيئة Cloud9 المفتوحة.

    ب. قم بتشغيل المُنتِج لبدء إصدار بيانات المستشعر إلى البث.

    ./producer

    يسمح إنتاج بيانات المستشعر بنشاط أثناء إنشاء تطبيقنا لـ Amazon Kinesis Data Analytics بالكشف التلقائي لمخططنا.

    جـ. انتقل إلى وحدة الإدارة في AWS، انقر فوق الخدمات ثم حدد Kinesis أسفل Analytics.

    د. حدد إنشاء تطبيق تحليلات.

    هـ. ادخل wildrydes في اسم التطبيق ثم حدد إنشاء تطبيق.

    و. حدد توصيل بيانات البث.

    ز. حدد wildrydes من بث Kinesis.‏

    ح. مرر للأسفل وانقر فوق اكتشف المخطط، انتظر دقيقة، وتأكد من اكتشاف المخطط تلقائياً بشكل سليم.

    تأكد من أن المخطط المكتشف تلقائياً يتضمن:

     

    العمود نوع البيانات
    المسافة مزدوج
    HealthPoints عدد صحيح
    زاوية العرض مزدوج
    زاوية الطول مزدوج
    MagicPoints عدد صحيح
    الاسم VARCHAR(16)
    StatusTime الطابع الزمني

    ط. حدد حفظ ومتابعة.

    ي. حدد الانتقال إلى محرر SQL. سيؤدي هذا إلى فتح جلسة استعلام تفاعلية حيث يمكننا إنشاء استعلام على بث في الوقت الفعلي من Amazon Kinesis.

    ك. حدد نعم، ابدأ التطبيق. سيستغرق الأمر 30-90 دقيقة لكي يبدأ تطبيقك.

    ل. انسخ وألصق استعلام SQL التالي في محرر 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";

    (انقر للتكبير)

    م. حدد حفظ وتشغيل SQL. سترى في كل دقيقة وصول صفوف تحتوي على البيانات المجمّعة. انتظر وصول الصفوف.

    ن. انقر فوق رابط الوجهة.

    س. حدد الاتصال بوجهة.

    ع. حدد wildrydes-summary من بث Kinesis.‏

    ف. حدد DESTINATION_SQL_STREAM من اسم البث داخل التطبيق.

    ص. حدد حفظ ومتابعة.

    (انقر للتكبير)

  • الخطوة 3. اقرأ الرسائل الواردة من البث

    استخدم مُستهلِك سطر الأمر لعرض الرسائل من بث Kinesis لرؤية البيانات المجمّعة التي يتم إرسالها كل دقيقة.


    أ. انتقل إلى علامة التبويب الموجودة في بيئة CLoud9 المفتوحة.

    ب. قم بتشغيل المُستهلِك لبدء قراءة بيانات المستشعر من البث.

    ./consumer -stream wildrydes-summary

    سيطبع المُستهلِك الرسائل التي يتم إرسالها بواسطة تطبيق Kinesis Data Analytics كل دقيقة:

    {
      "Name": "Shadowfax",
      "StatusTime": "2018-03-18 03:20:00.000",
      "Distance": 362,
      "MinMagicPoints": 170,
      "MaxMagicPoints": 172,
      "MinHealthPoints": 146,
      "MaxHealthPoints": 149
    }
  • الخطوة 4. تجربة المُنتِج

    أوقف المُنتِج وابدأه أثناء مشاهدة لوحة المعلومات والمُستهلِك. ابدأ العديد من المُنتِجين بأسماء مختلفة لوحيد القرن.


    أ. انتقل إلى علامة التبويب الموجودة في بيئة Cloud9 المفتوحة.

    ب. أوقف المُنتِج بالضغط على Control + C ولاحظ توقف الرسائل.

    جـ. ابدأ المُنتِج مرة أخرى ولاحظ استئناف الرسائل.

    د. اضغط على زر (+) وانقر فوق محطة طرفية جديدة لفتح علامة تبويب جديدة لمحطة طرفية.

    هـ. ابدأ مثيلاً آخر للمُنتِج في علامة تبويب جديدة. ادخل اسم وحيد قرن محدد ولاحظ نقاط البيانات لكلا وحيدي القرن في مخرج المُستهلِك:

    ./producer -name Bucephalus

    و. تحقق من رؤية العديد من حيوان وحيد القرن في المخرج:

    {
        "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
    }
  • مراجعة وتلميحات


    🔑 تمكّنك Amazon Kinesis Data Analytics من الاستعلام عن بيانات البث أو إنشاء تطبيقات بث كاملة باستخدام SQL، لتتمكن من الحصول على رؤى قابلة للتنفيذ والاستجابة لاحتياجات أعمالك وعملائك على الفور.

    🔧 في هذه الوحدة، أنشأت تطبيقًا على Kinesis Data Analytics يقرأ من بث Kinesis لبيانات وحيد القرن ويصدر صف ملخص في كل دقيقة.

في الوحدة القادمة، ستستخدم AWS Lambda لمعالجة البيانات من بث Amazon Kinesis لـ wildrydes   الذي تم إنشائه سابقًا. ستقوم بإنشاء وظيفة Lambda وتكوينها للقراءة من البث وكتابة السجلات إلى جدول Amazon DynamoDB عند وصولها.