كيفية إرسال كميات ضخمة من البيانات إلى API باستخدام Azure Data Factory

كيفية إرسال كميات ضخمة من البيانات إلى API باستخدام Azure Data Factory

إذا كانت لديك مجموعة من ملفات الإخراج في مجلد Unity الخاص بك على نظام ADLS Gen2 وتريد إرسالها عبر واجهة برمجة التطبيقات (API)، فإليك خطوة بسيطة وسهلة لتنفيذ ذلك بطريقة فعالة ومرنة.

أولاً، بما أن البيانات الموجودة في جداولك كبيرة جدًا، تصل إلى حوالي مليوني صف، وتُحول إلى ملف JSON ذات تنسيق معين، فمن المهم تقسيم البيانات إلى أجزاء أصغر يمكن إرسالها بشكل سلس. تنسيق البيانات يكون على شكل مجموعة من الكائنات، وكل كائن يحتوي على معلومات metadata وبيانات صفوف متعددة.

لحل المشكلة، يمكنك الاعتماد على خدمة Azure Data Factory (ADF) لأنها تتيح إدارة استخراج وتحميل البيانات بشكل مرن. ولكن، نظرًا لحجم البيانات، تحتاج إلى تقسيمها إلى دفعات صغيرة قبل الإرسال.

إليك طريقة بسيطة للقيام بذلك:

  1. تحديد حجم البيانات المسموح به: حسب معطيات API، يمكنك إرسال 0.5 مليون صف في كل طلب، وأقصى عدد الطلبات 20 في الجلسة. بمعنى آخر، عليك تقسيم البيانات إلى دفعات، بحيث يكون كل طلب يتضمن حوالي 0.5 مليون صف.

  2. تجزئة البيانات قبل الإرسال: يمكنك إعداد عملية في ADF تقوم بتقسيم البيانات إلى أجزاء صغيرة، بحيث تكون جاهزة للإرسال. يمكنك استخدام أنشطة مجزأة أو Script عند الحاجة لتقسيم الجدول الكبير إلى أجزاء صغيرة.

  3. تكوين عمليات الإرسال:

    • الطلب الأول (Post): يهدف إلى إرسال البيانات بشكل أوله، ويمكنك استخدام نشاط Web في ADF ليقوم بعمل POST.
    • الطلب الثاني (Put): يستخدم بعد نجاح الطلب الأول، لإكمال العملية أو تحديث البيانات.
  4. ضبط حجم البيانات: يمكنك تحكم يدويًا في حجم الـ JSON عند توليده، بحيث لا يتجاوز الحجم المحدد، مع مراعاة التقسيم إلى دفعات.

  5. التعامل مع قيود الحجم: إذا واجهت قيودًا في حجم البيانات، يمكن أن تستخدم أدوات مثل Databricks أو Azure Functions لمعالجة البيانات بشكل أكثر مرونة، والحلقات المستمرة لإرسال البيانات على دفعات.

  6. الخطوة الأخيرة: بعد تقسيم البيانات وتحضيرها بشكل صحيح، استخدم أنشطة في ADF لإرسال كل دفعة على حدة، مع الانتظار للتأكيد قبل الإرسال التالي، لضمان دقة البيانات ونجاح العملية.

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