شعار زيفيرنت

تبسيط استيعاب تدفق البيانات للتحليلات باستخدام Amazon MSK وAmazon Redshift | خدمات الويب الأمازون

التاريخ:

قرب نهاية 2022 ، أعلنت AWS عن التوفر العام لاستيعاب البث المباشر في الوقت الفعلي إلى الأمازون الأحمر For الأمازون كينسيس دفق البيانات و البث المُدار من أمازون لـ Apache Kafka (Amazon MSK)، مما يلغي الحاجة إلى تنظيم تدفق البيانات خدمة Amazon Simple Storage (Amazon S3) قبل استيعابه في Amazon Redshift.

ابتلاع البث من Amazon MSK إلى Amazon Redshift، يمثل نهجًا متطورًا لمعالجة البيانات وتحليلها في الوقت الفعلي. تعمل Amazon MSK كخدمة قابلة للتطوير بدرجة عالية ومُدارة بالكامل لـ Apache Kafka، مما يسمح بجمع ومعالجة تدفقات كبيرة من البيانات بسلاسة. يجلب دمج البيانات المتدفقة في Amazon Redshift قيمة هائلة من خلال تمكين المؤسسات من تسخير إمكانات التحليلات في الوقت الحقيقي واتخاذ القرارات المستندة إلى البيانات.

يمكّنك هذا التكامل من تحقيق زمن استجابة منخفض، يتم قياسه بالثواني، مع استيعاب مئات الميجابايت من بيانات التدفق في الثانية في Amazon Redshift. وفي الوقت نفسه، يساعد هذا التكامل على التأكد من أن أحدث المعلومات متاحة بسهولة للتحليل. نظرًا لأن التكامل لا يتطلب بيانات مرحلية في Amazon S3، يمكن لـ Amazon Redshift استيعاب بيانات التدفق بزمن وصول أقل ودون تكلفة تخزين وسيطة.

يمكنك تكوين تدفق تدفق Amazon Redshift على مجموعة Redshift باستخدام عبارات SQL للمصادقة والاتصال بموضوع MSK. يعد هذا الحل خيارًا ممتازًا لمهندسي البيانات الذين يتطلعون إلى تبسيط خطوط أنابيب البيانات وتقليل تكلفة التشغيل.

في هذه التدوينة، نقدم نظرة عامة كاملة حول كيفية التهيئة استيعاب تدفق Amazon Redshift من أمازون MSK.

حل نظرة عامة

يصف مخطط البنية التالي خدمات AWS وميزاتها التي ستستخدمها.

مخطط معماري يصف خدمات وميزات AWS التي ستستخدمها

يتضمن سير العمل الخطوات التالية:

  1. عليك أن تبدأ بتكوين اتصال أمازون MSK موصل المصدر، لإنشاء موضوع MSK، وإنشاء بيانات وهمية، وكتابتها في موضوع MSK. في هذا المنشور، نحن نعمل مع بيانات العملاء الوهمية.
  2. الخطوة التالية هي الاتصال بمجموعة Redshift باستخدام محرر الاستعلام الإصدار 2.
  3. وأخيرًا، يمكنك تكوين مخطط خارجي وإنشاء عرض ملموس في Amazon Redshift، لاستهلاك البيانات من موضوع MSK. لا يعتمد هذا الحل على موصل حوض MSK Connect لتصدير البيانات من Amazon MSK إلى Amazon Redshift.

يصف الرسم التخطيطي التالي لهندسة الحلول بمزيد من التفصيل التكوين والتكامل لخدمات AWS التي ستستخدمها.
رسم تخطيطي لهندسة الحلول يصف بمزيد من التفصيل التكوين والتكامل لخدمات AWS التي ستستخدمها
يتضمن سير العمل الخطوات التالية:

  1. يمكنك نشر موصل مصدر MSK Connect ومجموعة MSK ومجموعة Redshift داخل الشبكات الفرعية الخاصة على VPC.
  2. يستخدم موصل مصدر MSK Connect أذونات تفصيلية محددة في ملف إدارة الهوية والوصول (IAM) AWS سياسة في الخط تعلق على دور IAM، والذي يسمح للموصل المصدر بتنفيذ إجراءات على مجموعة MSK.
  3. يتم التقاط سجلات موصل مصدر MSK Connect وإرسالها إلى الأمازون CloudWatch مجموعة السجل.
  4. تستخدم مجموعة MSK ملف تكوين مجموعة MSK المخصص، مما يسمح لموصل MSK Connect بإنشاء موضوعات على مجموعة MSK.
  5. يتم التقاط سجلات مجموعة MSK وإرسالها إلى مجموعة سجلات Amazon CloudWatch.
  6. تستخدم مجموعة Redshift أذونات تفصيلية محددة في سياسة IAM المضمنة المرتبطة بدور IAM، مما يسمح لمجموعة Redshift بتنفيذ إجراءات على مجموعة MSK.
  7. يمكنك استخدام Query Editor v2 للاتصال بمجموعة Redshift.

المتطلبات الأساسية المسبقة

لتبسيط عملية توفير الموارد المطلوبة وتكوينها، يمكنك استخدام ما يلي تكوين سحابة AWS قالب:

أكمل الخطوات التالية عند تشغيل المكدس:

  1. في حالة اسم المكدس، أدخل اسمًا ذا معنى للمكدس ، على سبيل المثال ، prerequisites.
  2. اختار التالي.
  3. اختار التالي.
  4. أختار أقر بأن AWS CloudFormation قد ينشئ موارد IAM بأسماء مخصصة.
  5. اختار خضع.

تُنشئ حزمة CloudFormation الموارد التالية:

  • VPC custom-vpc، تم إنشاؤها عبر ثلاث مناطق توافر خدمات، بثلاث منها الشبكات الفرعية العامة وثلاثة الشبكات الفرعية الخاصة:
    • ترتبط الشبكات الفرعية العامة بجدول توجيه عام، ويتم توجيه حركة المرور الصادرة إلى بوابة الإنترنت.
    • ترتبط الشبكات الفرعية الخاصة بجدول توجيه خاص، ويتم إرسال حركة المرور الصادرة إلى بوابة NAT.
  • An بوابة الإنترنت مرفقة بـ Amazon VPC.
  • A بوابة NAT الذي يرتبط ب IP مرن ويتم نشرها في إحدى الشبكات الفرعية العامة.
  • ثلاث⁧⁩ مجموعات الأمان:
    • msk-connect-sg، والذي سيتم ربطه لاحقًا بموصل MSK Connect.
    • redshift-sg، والتي سيتم ربطها لاحقًا بمجموعة Redshift.
    • msk-cluster-sg، والتي سيتم ربطها لاحقًا بمجموعة MSK. يسمح بحركة المرور الواردة من msk-connect-sgو redshift-sg.
  • مجموعتان من سجلات CloudWatch:
    • msk-connect-logsلاستخدامه في سجلات MSK Connect.
    • msk-cluster-logsلاستخدامها في سجلات مجموعة MSK.
  • دوران لـ IAM:
    • msk-connect-role، والذي يتضمن أذونات IAM الدقيقة لـ MSK Connect.
    • redshift-role، والذي يتضمن أذونات IAM الدقيقة لـ Amazon Redshift.
  • A تكوين مجموعة MSK المخصص، مما يسمح لموصل MSK Connect بإنشاء موضوعات على مجموعة MSK.
  • مجموعة MSK، مع ثلاثة وسطاء منتشرين عبر الشبكات الفرعية الثلاثة الخاصة custom-vpc.msk-cluster-sg مجموعة الأمن و custom-msk-cluster-configuration يتم تطبيق التكوين على مجموعة MSK. يتم تسليم سجلات الوسيط إلى msk-cluster-logs مجموعة سجل CloudWatch.
  • A مجموعة الشبكات الفرعية العنقودية ذات الانزياح الأحمر، والذي يستخدم الشبكات الفرعية الثلاث الخاصة بـ custom-vpc.
  • مجموعة Redshift، مع عقدة واحدة منتشرة في شبكة فرعية خاصة داخل مجموعة الشبكة الفرعية لمجموعة Redshift. ال redshift-sg مجموعة أمنية و redshift-role يتم تطبيق دور IAM على مجموعة Redshift.

قم بإنشاء مكون إضافي مخصص لـ MSK Connect

في هذا المنشور ، نستخدم ملف مولد بيانات أمازون MSK تم نشرها في MSK Connect لإنشاء بيانات وهمية للعملاء وكتابتها في موضوع MSK.

أكمل الخطوات التالية:

  1. تحميل مولد بيانات أمازون MSK ملف JAR مع التبعيات من GitHub.
    صفحة awslabs github لتنزيل ملف jar الخاص بمولد بيانات Amazon msk
  2. قم بتحميل ملف JAR إلى حاوية S3 في حساب AWS الخاص بك.
    صورة وحدة تحكم Amazon s3 تعرض ملف jar الذي تم تحميله في مجموعة s3
  3. في وحدة تحكم Amazon MSK ، اختر الإضافات المخصصة مع اتصال MSK في جزء التنقل.
  4. اختار إنشاء البرنامج المساعد المخصص.
  5. اختار تصفح S3، ابحث عن ملف JAR الخاص بمولد بيانات Amazon MSK الذي قمت بتحميله إلى Amazon S3، ثم اختر اختار.
  6. في حالة اسم البرنامج المساعد المخصص، أدخل msk-datagen-plugin.
  7. اختار إنشاء البرنامج المساعد المخصص.

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

قم بإنشاء موصل MSK Connect

أكمل الخطوات التالية لإنشاء الموصل الخاص بك:

  1. في وحدة تحكم Amazon MSK ، اختر الموصلات مع اتصال MSK في جزء التنقل.
  2. اختار إنشاء موصل.
  3. في حالة نوع البرنامج المساعد المخصص، اختر استخدم البرنامج المساعد الموجود.
  4. أختار msk-datagen-plugin، ثم اختر التالي.
  5. في حالة اسم الموصل، أدخل msk-datagen-connector.
  6. في حالة نوع الكتلة، اختر مجموعة أباتشي كافكا ذاتية الإدارة.
  7. في حالة VPC، اختر custom-vpc.
  8. في حالة الشبكة الفرعية 1، اختر الشبكة الفرعية الخاصة داخل منطقة توافر الخدمات الأولى لديك.

بالنسبة custom-vpc تم إنشاؤها بواسطة قالب CloudFormation، ونحن نستخدم نطاقات CIDR الفردية للشبكات الفرعية العامة، وحتى نطاقات CIDR للشبكات الفرعية الخاصة:

    • أرقام CIDRs للشبكات الفرعية العامة هي 10.10.1.0/24 و10.10.3.0/24 و10.10.5.0/24
    • أرقام CIDR للشبكات الفرعية الخاصة هي 10.10.2.0/24 و10.10.4.0/24 و10.10.6.0/24
  1. في حالة الشبكة الفرعية 2، وحدد الشبكة الفرعية الخاصة داخل منطقة توافر الخدمات الثانية لديك.
  2. في حالة الشبكة الفرعية 3، وحدد الشبكة الفرعية الخاصة داخل منطقة توافر الخدمات الثالثة لديك.
  3. في حالة خوادم التمهيد، أدخل قائمة خوادم التمهيد لمصادقة TLS لمجموعة MSK الخاصة بك.

إلى استرداد خوادم التمهيد لمجموعة MSK الخاصة بك، انتقل إلى وحدة تحكم Amazon MSK، واختر مجموعات، اختر msk-cluster، ثم اختر عرض معلومات العميل. انسخ قيم TLS لخوادم التمهيد.

  1. في حالة مجموعات الأمان، اختر استخدم مجموعات أمان محددة لها حق الوصول إلى هذه المجموعة، و اختار msk-connect-sg.
  2. في حالة تكوين الموصل، استبدل الإعدادات الافتراضية بما يلي:
connector.class=com.amazonaws.mskdatagen.GeneratorSourceConnector
tasks.max=2
genkp.customer.with=#{Code.isbn10}
genv.customer.name.with=#{Name.full_name}
genv.customer.gender.with=#{Demographic.sex}
genv.customer.favorite_beer.with=#{Beer.name}
genv.customer.state.with=#{Address.state}
genkp.order.with=#{Code.isbn10}
genv.order.product_id.with=#{number.number_between '101','109'}
genv.order.quantity.with=#{number.number_between '1','5'}
genv.order.customer_id.matching=customer.key
global.throttle.ms=2000
global.history.records.max=1000
value.converter=org.apache.kafka.connect.json.JsonConverter
value.converter.schemas.enable=false

  1. بالنسبة لسعة الموصل، اختر المقدمة.
  2. في حالة عدد MCU لكل عامل، اختر 1.
  3. في حالة عدد العمال، اختر 1.
  4. في حالة تكوين العمال، اختر استخدم التكوين الافتراضي لـ MSK.
  5. في حالة أذونات الوصول، اختر msk-connect-role.
  6. اختار التالي.
  7. للتشفير، حدد حركة مرور TLS المشفرة.
  8. اختار التالي.
  9. في حالة تسليم السجل، اختر تسليم إلى سجلات Amazon CloudWatch.
  10. اختار تصفح، حدد msk-connect-logs، و اختار اختار.
  11. اختار التالي.
  12. مراجعة واختيار إنشاء موصل.

بعد إنشاء الرابط المخصص، ستلاحظ أن حالته كما هي الركضويمكنك الانتقال إلى الخطوة التالية.
وحدة تحكم Amazon msk تعرض موصل msk Connect الذي تم إنشاؤه بنجاح

قم بتكوين عرض تدفق Amazon Redshift لـ Amazon MSK

أكمل الخطوات التالية لإعداد عرض البث:

  1. اتصل بمجموعة Redshift الخاصة بك باستخدام Query Editor v2، وقم بالمصادقة باستخدام اسم مستخدم قاعدة البيانات awsuser، وكلمة المرور Awsuser123.
  2. قم بإنشاء مخطط خارجي من Amazon MSK باستخدام عبارة SQL التالية.

في الكود التالي، أدخل القيم الخاصة بـ redshift-role دور IAM، و msk-cluster مجموعة ARN.

CREATE EXTERNAL SCHEMA msk_external_schema
FROM MSK
IAM_ROLE '<insert your redshift-role arn>'
AUTHENTICATION iam
CLUSTER_ARN '<insert your msk-cluster arn>';

  1. اختار يجري لتشغيل جملة SQL.

يُظهر الإصدار 2 من محرر استعلام التحول الأحمر عبارة SQL المستخدمة لإنشاء مخطط خارجي من Amazon msk

  1. إنشاء رؤية محققة باستخدام عبارة SQL التالية:
CREATE MATERIALIZED VIEW msk_mview AUTO REFRESH YES AS
SELECT
    "kafka_partition",
    "kafka_offset",
    "kafka_timestamp_type",
    "kafka_timestamp",
    "kafka_key",
    JSON_PARSE(kafka_value) as Data,
    "kafka_headers"
FROM
    "dev"."msk_external_schema"."customer"

  1. اختار يجري لتشغيل جملة SQL.

يُظهر الإصدار 2 من محرر استعلام التحول الأحمر عبارة SQL المستخدمة لإنشاء عرض ملموس

  1. يمكنك الآن الاستعلام عن العرض المتحقق باستخدام عبارة SQL التالية:
select * from msk_mview LIMIT 100;

  1. اختار يجري لتشغيل جملة SQL.

يُظهر الإصدار 2 من محرر استعلام التحول الأحمر عبارة SQL المستخدمة للاستعلام عن العرض الفعلي

  1. لمراقبة تقدم السجلات التي تم تحميلها عبر البث المتدفق، يمكنك الاستفادة من SYS_STREAM_SCAN_STATES عرض المراقبة باستخدام عبارة SQL التالية:
select * from SYS_STREAM_SCAN_STATES;

  1. اختار يجري لتشغيل جملة SQL.

يُظهر الإصدار 2 من محرر استعلام التحول الأحمر عبارة SQL المستخدمة للاستعلام عن طريقة عرض مراقبة حالات فحص دفق النظام

  1. لمراقبة الأخطاء التي تمت مواجهتها في السجلات التي تم تحميلها عبر البث المتدفق، يمكنك الاستفادة من SYS_STREAM_SCAN_ERRORS عرض المراقبة باستخدام عبارة SQL التالية:
select * from SYS_STREAM_SCAN_ERRORS;

  1. اختار يجري لتشغيل جملة SQL.يُظهر الإصدار 2 من محرر استعلام التحول الأحمر عبارة SQL المستخدمة للاستعلام عن طريقة عرض مراقبة أخطاء فحص دفق النظام

تنظيف

بعد المتابعة، إذا لم تعد بحاجة إلى الموارد التي قمت بإنشائها، فاحذفها بالترتيب التالي لمنع تكبد رسوم إضافية:

  1. احذف موصل MSK Connect msk-datagen-connector.
  2. احذف البرنامج المساعد MSK Connect msk-datagen-plugin.
  3. احذف ملف JAR الخاص بمولد بيانات Amazon MSK الذي قمت بتنزيله، واحذف حاوية S3 التي قمت بإنشائها.
  4. بعد حذف موصل MSK Connect، يمكنك حذف قالب CloudFormation. سيتم حذف جميع الموارد التي أنشأها قالب CloudFormation تلقائيًا من حساب AWS الخاص بك.

وفي الختام

في هذا المنشور، أوضحنا كيفية تكوين استيعاب تدفق Amazon Redshift من Amazon MSK، مع التركيز على الخصوصية والأمان.

إن الجمع بين قدرة Amazon MSK على التعامل مع تدفقات البيانات عالية الإنتاجية مع القدرات التحليلية القوية لـ Amazon Redshift يمكّن الشركات من استخلاص رؤى قابلة للتنفيذ على الفور. يعمل تكامل البيانات في الوقت الفعلي على تعزيز سرعة واستجابة المؤسسات في فهم اتجاهات البيانات المتغيرة وسلوكيات العملاء والأنماط التشغيلية. فهو يسمح باتخاذ قرارات مستنيرة وفي الوقت المناسب، وبالتالي اكتساب ميزة تنافسية في مشهد الأعمال الديناميكي اليوم.

ينطبق هذا الحل أيضًا على العملاء الذين يتطلعون إلى استخدامه أمازون MSK Serverless و أمازون Redshift Serverless.

نأمل أن يكون هذا المنشور فرصة جيدة لمعرفة المزيد حول تكامل خدمة AWS وتكوينها. أخبرنا بتعليقاتك في قسم التعليقات.


عن المؤلفين

سيباستيان فلاد هو مهندس حلول شريك أول في Amazon Web Services، ولديه شغف بحلول البيانات والتحليلات ونجاح العملاء. يعمل سيباستيان مع عملاء المؤسسات لمساعدتهم على تصميم وبناء حلول حديثة وآمنة وقابلة للتطوير لتحقيق نتائج أعمالهم.

شاراد باي هو المستشار الفني الرئيسي في AWS. وهو متخصص في تدفق التحليلات ويساعد العملاء على بناء حلول قابلة للتطوير باستخدام Amazon MSK وAmazon Kinesis. يتمتع بخبرة تزيد عن 16 عامًا في المجال ويعمل حاليًا مع عملاء الوسائط الذين يستضيفون منصات البث المباشر على AWS، ويديرون ذروة التزامن لأكثر من 50 مليونًا. قبل انضمامه إلى AWS، تضمنت مسيرة شاراد المهنية كمطور برامج رئيسي 9 سنوات من البرمجة والعمل باستخدام تقنيات مفتوحة المصدر مثل JavaScript وPython وPHP.

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة