شعار زيفيرنت

قم بتحسين بنية البيانات الخاصة بك من خلال البث في الوقت الفعلي باستخدام Amazon Data Firehose وSnowflake | خدمات الويب الأمازون

التاريخ:

يتطلب عالم اليوم سريع الخطى رؤى وقرارات في الوقت المناسب، الأمر الذي يزيد من أهمية تدفق البيانات. تشير البيانات المتدفقة إلى البيانات التي يتم إنشاؤها بشكل مستمر من مجموعة متنوعة من المصادر. وتتكاثر مصادر هذه البيانات، مثل أحداث تدفق النقرات، وتغيير التقاط البيانات (CDC)، وسجلات التطبيقات والخدمات، وتدفقات بيانات إنترنت الأشياء (IoT). تقدم Snowflake خيارين لجلب البيانات المتدفقة إلى نظامها الأساسي: Snowpipe وSnowflake Snowpipe Streaming. يعد Snowpipe مناسبًا لحالات استخدام استيعاب الملفات (التجميع)، مثل تحميل الملفات الكبيرة من خدمة تخزين أمازون البسيطة (أمازون S3) إلى ندفة الثلج. تعد ميزة Snowpipe Streaming، وهي ميزة أحدث تم إصدارها في مارس 2023، مناسبة لحالات استخدام (بث) مجموعة الصفوف، مثل تحميل دفق مستمر من البيانات من الأمازون كينسيس دفق البيانات or Amazon Managed Streaming لأباتشي كافكا (أمازون MSK).

قبل Snowpipe Streaming، استخدم عملاء AWS Snowpipe في كلتا حالتي الاستخدام: استيعاب الملفات واستيعاب مجموعة الصفوف. أولاً، قمت باستيعاب بيانات التدفق إلى Kinesis Data Streams أو Amazon MSK، ثم استخدمت Amazon Data Firehose لتجميع التدفقات وكتابتها إلى Amazon S3، متبوعة باستخدام Snowpipe لتحميل البيانات إلى Snowflake. ومع ذلك، يمكن أن تؤدي هذه العملية متعددة الخطوات إلى تأخيرات تصل إلى ساعة قبل أن تتوفر البيانات للتحليل في Snowflake. علاوة على ذلك، فهو مكلف، خاصة عندما يكون لديك ملفات صغيرة يتعين على Snowpipe تحميلها إلى مجموعة عملاء Snowflake.

لحل هذه المشكلة، تتكامل Amazon Data Firehose الآن مع Snowpipe Streaming، مما يتيح لك التقاط تدفقات البيانات وتحويلها وتسليمها من Kinesis Data Streams وAmazon MSK وFirehose Direct PUT إلى Snowflake في ثوانٍ وبتكلفة منخفضة. من خلال بضع نقرات على وحدة تحكم Amazon Data Firehose، يمكنك إعداد تدفق Firehose لتوصيل البيانات إلى Snowflake. لا توجد التزامات أو استثمارات مسبقة لاستخدام Amazon Data Firehose، ولا تدفع إلا مقابل كمية البيانات المتدفقة.

تتضمن بعض الميزات الرئيسية لبرنامج Amazon Data Firehose ما يلي:

  • خدمة بدون خادم مُدارة بالكامل – لا تحتاج إلى إدارة الموارد، ويقوم Amazon Data Firehose بالتكيف تلقائيًا ليتوافق مع إنتاجية مصدر بياناتك دون إدارة مستمرة.
  • سهل الاستخدام بدون رمز - لا تحتاج لكتابة التطبيقات.
  • تسليم البيانات في الوقت الحقيقي - يمكنك إيصال البيانات إلى وجهاتك بسرعة وكفاءة في ثوانٍ.
  • التكامل مع أكثر من 20 خدمة AWS – يتوفر التكامل السلس للعديد من خدمات AWS، مثل Kinesis Data Streams وAmazon MSK وAmazon VPC Flow Logs وسجلات AWS WAF وAmazon CloudWatch Logs وAmazon EventBridge وAWS IoT Core والمزيد.
  • نموذج الدفع عند الاستخدام - أنت تدفع فقط مقابل حجم البيانات الذي تعالجه Amazon Data Firehose.
  • الإتصال - يمكن لـ Amazon Data Firehose الاتصال بالشبكات الفرعية العامة أو الخاصة في VPC الخاص بك.

يشرح هذا المنشور كيف يمكنك جلب البيانات المتدفقة من AWS إلى Snowflake في غضون ثوانٍ لإجراء تحليلات متقدمة. نحن نستكشف البنى المشتركة ونوضح كيفية إعداد حل منخفض الكود وبدون خادم وفعال من حيث التكلفة لتدفق البيانات بزمن وصول منخفض.

نظرة عامة على الحل

فيما يلي خطوات تنفيذ الحل لدفق البيانات من AWS إلى Snowflake:

  1. قم بإنشاء قاعدة بيانات ومخطط وجدول Snowflake.
  2. قم بإنشاء دفق بيانات Kinesis.
  3. قم بإنشاء تدفق تسليم Firehose باستخدام Kinesis Data Streams كمصدر وSnowflake كوجهة له باستخدام رابط خاص آمن.
  4. لاختبار الإعداد، قم بإنشاء بيانات دفق العينة من مولد بيانات Amazon Kinesis (KDG) مع دفق تسليم Firehose كوجهة.
  5. استعلم عن جدول Snowflake للتحقق من صحة البيانات التي تم تحميلها في Snowflake.

تم توضيح الحل في الرسم التخطيطي التالي للهندسة المعمارية.

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

يجب أن يكون لديك المتطلبات الأساسية التالية:

قم بإنشاء قاعدة بيانات ومخطط وجدول Snowflake

أكمل الخطوات التالية لإعداد بياناتك في Snowflake:

  • قم بتسجيل الدخول إلى حساب Snowflake الخاص بك وقم بإنشاء قاعدة البيانات:
    create database adf_snf;

  • إنشاء مخطط في قاعدة البيانات الجديدة:
    create schema adf_snf.kds_blog;

  • إنشاء جدول في المخطط الجديد:
    create or replace table iot_sensors
    (sensorId number,
    sensorType varchar,
    internetIP varchar,
    connectionTime timestamp_ntz,
    currentTemperature number
    );

قم بإنشاء دفق بيانات Kinesis

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

  • في وحدة تحكم Kinesis Data Streams، اختر تدفقات البيانات في جزء التنقل.
  • اختار إنشاء دفق البيانات.
  • بالنسبة لاسم دفق البيانات، أدخل اسمًا (على سبيل المثال، KDS-Demo-Stream).
  • اترك الإعدادات المتبقية كإعداد افتراضي.
  • اختر إنشاء دفق بيانات.

إنشاء تدفق توصيل Firehose

أكمل الخطوات التالية لإنشاء تدفق تسليم Firehose باستخدام تدفقات بيانات Kinesis كمصدر وSnowflake كوجهة له:

  • في وحدة تحكم Amazon Data Firehose، اختر إنشاء تيار خرطوم الإطفاء.
  • في حالة مصدر، اختر الأمازون كينسيس دفق البيانات.
  • في حالة الرحلات، اختر ندفة الثلج.
  • في حالة دفق بيانات Kinesis، استعرض للوصول إلى مصدر البيانات الذي قمت بإنشائه مسبقًا.
  • في حالة اسم تيار خرطوم الحريق، اترك الاسم الافتراضي الذي تم إنشاؤه أو أدخل اسمًا تفضله.
  • تحت إعدادات الإتصال، قم بتوفير المعلومات التالية لتوصيل Amazon Data Firehose بـ Snowflake:
    • في حالة عنوان URL لحساب ندفة الثلج، أدخل عنوان URL لحساب Snowflake الخاص بك.
    • في حالة مستخدم، أدخل اسم المستخدم الذي تم إنشاؤه في المتطلبات الأساسية.
    • في حالة مفتاح سري، أدخل المفتاح الخاص الذي تم إنشاؤه في المتطلبات الأساسية. تأكد من أن المفتاح الخاص بتنسيق PKCS8. لا تقم بتضمين PEM header-BEGIN البادئة و footer-END لاحقة كجزء من المفتاح الخاص. إذا تم تقسيم المفتاح عبر عدة أسطر، فقم بإزالة فواصل الأسطر.
    • في حالة النوع، حدد استخدم دور Snowflake المخصص وأدخل دور IAM الذي لديه حق الوصول للكتابة في جدول قاعدة البيانات.

يمكنك الاتصال بـ Snowflake باستخدام الاتصال العام أو الخاص. إذا لم تقم بتوفير نقطة نهاية VPC، فسيكون وضع الاتصال الافتراضي عامًا. للسماح بإدراج عناوين IP الخاصة بـ Firehose في سياسة شبكة Snowflake الخاصة بك، راجع اختر ندفة الثلج لوجهتك. إذا كنت تستخدم عنوان URL لرابط خاص، فقدم معرف VPCE باستخدام SYSTEM$GET_PRIVATELINK_CONFIG:

select SYSTEM$GET_PRIVATELINK_CONFIG();

تقوم هذه الوظيفة بإرجاع تمثيل JSON لمعلومات حساب Snowflake الضرورية لتسهيل تكوين الخدمة الذاتية للاتصال الخاص بخدمة Snowflake، كما هو موضح في لقطة الشاشة التالية.

  • بالنسبة لهذا المنشور، نحن نستخدم رابطًا خاصًا معرف VPCE، أدخل معرف VPCE.
  • تحت إعدادات تكوين قاعدة البيانات، أدخل قاعدة بيانات Snowflake والمخطط وأسماء الجداول.
  • في مجلة إعدادات النسخ الاحتياطي القسم ل دلو النسخ الاحتياطي S3، أدخل المجموعة التي قمت بإنشائها كجزء من المتطلبات الأساسية.
  • اختار إنشاء تيار خرطوم الإطفاء.

بدلاً من ذلك ، يمكنك استخدام ملف تكوين سحابة AWS لإنشاء دفق تسليم Firehose باستخدام Snowflake كوجهة بدلاً من استخدام وحدة تحكم Amazon Data Firehose.

لاستخدام مكدس CloudFormation، اختر

BDB-4100-CFN-Launch-Stack

إنشاء بيانات دفق العينة
قم بإنشاء نموذج لبيانات الدفق من KDG باستخدام دفق بيانات Kinesis الذي قمت بإنشائه:

{ 
"sensorId": {{random.number(999999999)}}, 
"sensorType": "{{random.arrayElement( ["Thermostat","SmartWaterHeater","HVACTemperatureSensor","WaterPurifier"] )}}", 
"internetIP": "{{internet.ip}}", 
"connectionTime": "{{date.now("YYYY-MM-DDTHH:m:ss")}}", 
"currentTemperature": {{random.number({"min":10,"max":150})}} 
}

الاستعلام عن جدول Snowflake

الاستعلام عن جدول Snowflake:

select * from adf_snf.kds_blog.iot_sensors;

يمكنك التأكد من أن البيانات التي تم إنشاؤها بواسطة KDG والتي تم إرسالها إلى Kinesis Data Streams تم تحميلها في جدول Snowflake من خلال Amazon Data Firehose.

استكشاف الأخطاء:

إذا لم يتم تحميل البيانات في Kinesis Data Steams بعد أن يرسل KDG البيانات إلى تدفق تسليم Firehose، فقم بالتحديث وتأكد من تسجيل الدخول إلى KDG.

إذا أجريت أي تغييرات على تعريف جدول الوجهة Snowflake، فأعد إنشاء دفق تسليم Firehose.

تنظيف

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

وفي الختام

توفر Amazon Data Firehose طريقة مباشرة لتوصيل البيانات إلى Snowpipe Streaming، مما يتيح لك توفير التكاليف وتقليل زمن الوصول إلى ثوانٍ. لتجربة Amazon Kinesis Firehose مع Snowflake، راجع Amazon Data Firehose مع Snowflake باعتباره معمل الوجهة.


حول المؤلف

سوابنا باندلا هو مهندس حلول أول في فريق SA المتخصص في AWS Analytics. لدى Swapna شغف تجاه فهم احتياجات العملاء من البيانات والتحليلات وتمكينهم من تطوير حلول مبنية على السحابة ومصممة بشكل جيد. خارج العمل، تستمتع بقضاء الوقت مع عائلتها.

مصطفى منصور هو مدير منتج رئيسي - فني في Amazon Web Services حيث يعمل على Amazon Kinesis Data Firehose. إنه متخصص في تطوير تجارب منتج بديهية تحل التحديات المعقدة للعملاء على نطاق واسع. عندما لا يعمل بجد في Amazon Kinesis Data Firehose ، من المحتمل أن تجد مصطفى في ملعب الاسكواش ، حيث يحب مواجهة منافسيه وإتقان لقطاته.

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

بقعة_صورة

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

بقعة_صورة