ما المقصود بـ AWS Kinesis؟ نمط التصميم وحالات الاستخدام والمقارنة

نشرت: 2022-07-01

نحن نعيش في عصر التكامل بين التطبيقات والإشعارات الفورية والتحديثات الفورية للبيانات. في مثل هذا السيناريو ، يصبح إنشاء أنظمة الوقت الفعلي وصيانتها وتعديلها أكثر أهمية.

على مر السنين ، كانت هناك العديد من الأدوات المفيدة التي تم تطويرها للمساعدة في بناء وصيانة مثل هذه الأنظمة عبر الأنظمة الأساسية. تعد RabbitMQ و Kafka و AWS Kinesis ثلاث أدوات من هذا القبيل ساعدت المطورين والمهندسين على العمل بسلاسة مع البيانات في الوقت الفعلي. تم إنشاء جميع هذه الأنظمة وصيانتها ، مع مراعاة الأهداف المختلفة. لذلك ، فإنهم يأتون بمزاياهم وقيودهم المميزة بناءً على الوظيفة التي يقومون بها.

ستتحدث هذه المقالة بالتفصيل عن AWS Kinesis وكيف تعمل.

Kinesis هي خدمة بث تم إنشاؤها على رأس AWS. يمكن استخدامه لمعالجة جميع أنواع البيانات - من السجلات وبيانات إنترنت الأشياء وبيانات الفيديو وأي تنسيق بيانات بشكل أساسي. يتيح لك ذلك تشغيل نماذج وعمليات مختلفة للتعلم الآلي على البيانات في الوقت الفعلي أثناء تدفقها عبر نظامك. وبالتالي ، فإنه يقلل من متاعب المرور عبر قواعد البيانات التقليدية مع زيادة الكفاءة الإجمالية.

جدول المحتويات

اكتشف دورات ماجستير إدارة الأعمال الشعبية لدينا

ماجستير في إدارة الأعمال من جامعة جولدن جيت ماجستير في إدارة الأعمال (MBA) Liverpool Business School ماجستير في إدارة الأعمال من كلية ديكين للأعمال
ماجستير في إدارة الأعمال في التسويق الرقمي من جامعة ديكن ماجستير في إدارة الأعمال التنفيذية من SSBM عرض جميع دورات ماجستير إدارة الأعمال

نمط تصميم الحانة / الفرعية

قبل أن نتعمق أكثر في كيفية استخدام Kinesis بالضبط ، من الضروري معرفة المزيد عن نموذج التصميم الذي يستخدمه. في هذه الحالة ، نتحدث عن تصميم الناشر والمشترك ، والذي يشار إليه غالبًا باسم نمط تصميم pub / sub. تم تطوير نمط التصميم هذا لجعل الناشر - مرسل الرسالة ، يدفع الأحداث إلى Kinesis - ناقل حدث. بعد ذلك ، يوزع ناقل الحدث هذا بيانات الإدخال بنجاح على جميع المشتركين.

أحد العناصر الأساسية التي يجب مراعاتها هنا هو أن الناشرين ليس لديهم فكرة عن وجود أي مشتركين. تتم إدارة جميع المراسلات ونقل الرسائل بالكامل بواسطة AWS Kinesis.

بعبارة أخرى ، يتم استخدام نمط تصميم عام / فرعي للتواصل الفعال للرسائل دون إنشاء تصميم متقارب بشكل كبير. بدلاً من ذلك ، يركز Kinesis على استخدام المكونات المستقلة وبناء سير عمل موزع شامل من ذلك.

في جوهرها ، تعد AWS Kinesis أداة بث قوية توفر مزايا مميزة ، لا سيما بالمقارنة مع أدوات البث الأخرى في الوقت الفعلي. تتمثل إحدى هذه الفوائد في أنها خدمة مُدارة ، لذلك لا يتعين على المطورين التعامل مع إدارة النظام. يتيح ذلك للمطورين التركيز بشكل أكبر على التعليمات البرمجية والأنظمة الخاصة بهم وبدرجة أقل على الواجبات الإدارية.

الآن ، دعونا نلقي نظرة على بعض حالات استخدام Kinesis.

حالة استخدام AWS Kinesis - تدفق البيانات

يعد AWS Kinesis مفيدًا للشركات الكبيرة والصغيرة التي تتطلع إلى إدارة بياناتها ودمجها في منصات مختلفة. يعد Kinesis مفيدًا في السيناريوهات الكبيرة والصغيرة للمؤسسات التي تتطلع إلى إدارة بياناتها ودمجها عبر الأنظمة الأساسية.

لنلقِ نظرة على حالتين كبيرتين من حالات الاستخدام حيث استخدمت الشركات AWS Kinesis لإدارة كميات كبيرة من البيانات في الوقت الفعلي بسلاسة.

نيتفليكس

تستخدم Netflix خدمة AWS Kinesis لمعالجة عدة تيرابايت من بيانات السجل كل يوم. يحتاج Netflix إلى تطبيق مركزي يقوم بتسجيل البيانات كلها في الوقت الفعلي. باستخدام Kinesis ، طورت Netflix أداة Dredge التي تثري المحتوى بالبيانات الوصفية في الوقت الفعلي. بهذه الطريقة ، تتم معالجة البيانات على الفور أثناء مرورها عبر جهاز Kinesis. هذا يلغي خطوة واحدة مملة لتحميل البيانات في قاعدة بيانات للمعالجة في المستقبل.

فيريتون

توفر شركة Veriton خدمات الذكاء الاصطناعي والتعلم الآلي. يستخدم تدفقات الفيديو AWS Kinesis لمعالجة بيانات العملاء. تطبق Veriton أيضًا نماذج ML و AI على المحتوى في الوقت الفعلي لتحسينه باستخدام المقاييس والبيانات الوصفية. باستخدام هذه المعلومات الإضافية ، تسهل Veritone البحث عن تدفقات فيديو Kinesis من خلال النظر إلى الصوت ، والتعرف على الوجه ، والبيانات الموسومة ، وما إلى ذلك.

هذان مجرد مثالين من الأمثلة العديدة لكيفية استفادة الشركات اليوم من AWS Kinesis للعمل مع تدفق البيانات في الوقت الفعلي بشكل أكثر كفاءة.

دعنا ننتقل إلى الجوانب الفنية والمكونات الأساسية لتيار AWS Kinesis.

تعلم دورات الذكاء الاصطناعي والتعلم الآلي من أفضل الجامعات في العالم. احصل على درجة الماجستير أو برنامج PGP التنفيذي أو برامج الشهادات المتقدمة لتسريع مسار حياتك المهنية.

تيارات مقابل خرطوم الاطفاء

تقدم AWS Kinesis للمطورين منتجين أساسيين - Kinetic Streams و Kinesis Firehose.

للعمل مع Kinesis Stream ، ستحتاج إلى استخدام مكتبة Kinesis Producer Library. سيسمح لك بوضع جميع البيانات في الوقت الفعلي في البث الخاص بك. علاوة على ذلك ، يمكنك توصيل هذه المكتبة بأي تطبيق أو عملية تقريبًا. ومع ذلك ، فإن Kinesis Streams ليست خدمة مُدارة بنسبة 100٪. لذلك ، سيحتاج فريق المطورين إلى توسيع نطاقه يدويًا عند الحاجة. بالإضافة إلى ذلك ، ستبقى البيانات التي يتم إدخالها في الدفق هناك لمدة سبعة أيام.

Kinesis Firehose أسهل قليلاً في التنفيذ. يتم إرسال البيانات التي يتم تغذيتها إلى Kinesis Firehose إلى Amazon Redshift و Amazon S3 وحتى Elasticsearch - وكل ذلك باستخدام محرك AWS Kinesis. بعد ذلك ، يمكنك معالجتها وفقًا لمتطلباتك. إذا تم تخزين البيانات في Amazon S3 أو أي نظام تخزين AWS آخر ، فيمكنك تركها هناك للمدة التي تريدها.

إعداد دفق على Kinesis

قبل أن تبدأ في الوصول إلى Kinesis ، يجب عليك إعداد دفق من خلال الوصول إلى AWS CLI. في غلاف الأمر ، أدخل الأمر التالي لإنشاء دفق يسمى DataProcessingStream

–تيار-اسم DataProcessingStream \

–شارد-كونت 1 \

- منطقة الاتحاد الأوروبي الغرب - 1

إنشاء خط أنابيب متدفق باستخدام بايثون

بمجرد إعداد دفق على Kinesis ، يجب أن تبدأ في بناء المنتج والمستهلك. تساعدك المكونات الأساسية لـ Kinesis في إنشاء طبقة وصول لدمج الأنظمة والبرامج والتطبيقات الأخرى.

في هذا البرنامج التعليمي ، سنعمل مع مكتبة boto3 Python للاتصال بـ Kinesis.

خلق المنتج

استخدم الكود المذكور أدناه لإنشاء المنتج باستخدام لغة برمجة Python:

استيراد boto3

استيراد json

استيراد التسجيل

logging.basicConfig (المستوى = logging.INFO)

جلسة = boto3.Session (region_name = 'eu-west-1)

العميل = session.client ('kinesis')

test_data = {'data_tag': 'DataOne'، 'Score': '10'، 'char': 'Database Warrior'}

الاستجابة = client.put_record (

StreamName = 'DataProcessingStream' ،

البيانات = json.dumps ({

“data_tag”: test_data ['data_tag'] ،

"النتيجة": test_data ['درجة'] ،

“char”: test_data ['char']

}) ،

مفتاح التقسيم = 'a01 ′

)

logging.info (“Input New Data Score:٪ s”، test_data)

لسحب البيانات ، تحتاج إلى برنامج نصي آخر للاستماع إلى البيانات التي يتم تغذيتها للمنتجين. لذلك ، يمكنك استخدام ShardIterator للوصول إلى جميع البيانات التي يتم إدخالها في Kinesis. بهذه الطريقة ، يمكنك الوصول إلى السجلات في الوقت الحقيقي والمستقبلية في Kinesis.

خلق المستهلك

استخدم الكود المذكور أدناه لإنشاء مستهلك بايثون:

استيراد boto3

استيراد json

استيراد النظم

استيراد التسجيل

logging.basicConfig (المستوى = logging.INFO)

جلسة = boto3.Session (region_name = 'eu-west-1)

العميل = session.client ('kinesis')

aws_kinesis_stream = client.describe_stream (StreamName = 'DataProcessingStream)

shard_id = aws_kinesis_stream ['StreamDescription'] ['Shards'] [0] ['ShardId']

stream_response = client.get_shard_iterator (

StreamName = 'DataProcessingStream' ،

ShardId = shard_id ،

ShardIteratorType = 'TRIM_HORIZON'

)

مكرر = stream_response ['ShardIterator']

احيانا صحيح:

محاولة:

aws_kinesis_response = client.get_records (ShardIterator = مكرر ، الحد = 5)

iterator = aws_kinesis_response ['NextShardIterator']

للتسجيل في aws_kinesis_response ['السجلات']:

إذا كانت "البيانات" في السجل و len (السجل ["البيانات"])> 0:

logging.info ("نقاط البيانات الجديدة المتلقاة:٪ s" ، json.loads (سجل ["البيانات"]))

باستثناء لوحة المفاتيح المقاطعة:

sys.exit ()

في المثال أعلاه ، نقوم فقط بطباعة البيانات.

مشاكل خطوط الأنابيب Kinesis

إن Kinesis مفيد حقًا ، لكنه لا يأتي بدون تحديات وأوجه قصور. يمكن أن يُطلق على أحد التحديات الكبيرة التي ستواجهها أثناء العمل مع Kinesis "إمكانية الملاحظة".

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

اقرأ مقالاتنا المشهورة المتعلقة ببرنامج ماجستير إدارة الأعمال

راتب المحلل المالي - المبتدئين وذوي الخبرة أهم أسئلة وأجوبة المقابلة للموارد البشرية خيارات التوظيف MBA للتسويق في الولايات المتحدة
أفضل الخيارات الوظيفية في الولايات المتحدة الأمريكية بعد ماجستير إدارة الأعمال في الموارد البشرية أفضل 7 خيارات وظيفية في المبيعات الوظائف المالية ذات الأجور الأعلى في الولايات المتحدة: من المتوسط ​​إلى الأعلى
أفضل 7 خيارات وظيفية في التمويل في الولايات المتحدة: يجب أن يقرأ أهم 5 اتجاهات تسويقية في عام 2022 راتب MBA في الولايات المتحدة الأمريكية في عام 2022 [جميع التخصصات]

ختاماً

لا شك في أن تدفق البيانات والعمل مع البيانات في الوقت الفعلي هو حاجة الساعة ، وسيزداد فقط مع إنتاج عالمنا المزيد والمزيد من البيانات. لذلك ، إذا كنت مهتمًا بإتقان حيل Kinesis ، فقد تساعدك الدورة التدريبية الاحترافية.

ماجستير العلوم في upGrad في التعلم الآلي والذكاء الاصطناعي ، الذي يتم تقديمه بالتعاون مع IIIT-B و LJMU ، هو دورة شاملة مدتها 18 شهرًا مصممة لمساعدتك على البدء بأساسيات استكشاف البيانات والوصول إلى جميع المفاهيم الأساسية للغة البرمجة اللغوية العصبية ، العميقة التعلم والتعلم المعزز والمزيد. علاوة على ذلك - يمكنك العمل في مشاريع صناعية ، ودعم وظيفي بزاوية 360 درجة ، وإرشاد شخصي ، وفرص للتواصل بين الأقران ، وغير ذلك الكثير لمساعدتك على إتقان التعلم الآلي والذكاء الاصطناعي.

1. هل يمكن لـ AWS Kinesis سحب البيانات؟

Amazon Kinesis عبارة عن حل دفق بيانات دائم وقابل للتطوير في الوقت الفعلي يعمل عن طريق التقاط غيغابايت من البيانات بشكل مستمر في الوقت الفعلي من آلاف المصادر.

2. هل يمكن لتيار Kinesis أن يحتوي على مستهلكين متعددين؟

نعم ، باستخدام مكررات الأجزاء ، يمكنك توفير العديد من المستهلكين في دفق Kinesis واحد.

3. ما نوع قائمة الانتظار التي تعمل معها AWS Kinesis؟

AWS Kinesis هي FIFO - First In First Out - في عملياتها وعمليات البيانات.