"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > منظمة العفو الدولية > أتمتة استيراد CSV إلى postgreSQL باستخدام تدفق الهواء و Docker

أتمتة استيراد CSV إلى postgreSQL باستخدام تدفق الهواء و Docker

نشر في 2025-04-12
تصفح:988

يوضح هذا البرنامج التعليمي إنشاء خط أنابيب قوي للبيانات باستخدام تدفق Apache Airflow و Docker و PostgreSQL لأتمتة نقل البيانات من ملفات CSV إلى قاعدة بيانات. سنقوم بتغطية مفاهيم تدفق الهواء الأساسية مثل dags والمهام والمشغلين لإدارة سير العمل الفعالة.

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

أهداف التعلم:

  • فهم مفاهيم تدفق الهواء Apache الأساسي: dags ، المهام ، والمشغلين.
  • قم بإعداد وتكوين Apache Airflow مع Docker لأتمتة سير العمل.
  • دمج postgresql لإدارة البيانات داخل خطوط تدفق الهواء.
  • Master قراءة ملفات CSV وأتمتة إدخال البيانات في قاعدة بيانات postgresql.
  • إنشاء ونشر خطوط أنابيب بيانات قابلة للتطوير وفعالة باستخدام تدفق الهواء و Docker.

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

  • Docker Desktop ، VS Code ، Docker Compose
  • الفهم الأساسي لحاويات Docker والأوامر
  • أوامر Linux الأساسية
  • المعرفة الأساسية Python
  • تجربة بناء صور Docker من Dockerfiles واستخدام Docker Compose

ما هو Apache Airflow؟

Apache Airflow (Airflow) هو منصة لتأليف سير العمل وجدولة ومراقبة برمجيًا. يؤدي تحديد مهام سير العمل كرمز إلى تحسين القدرة على الصيانة ، والتحكم في الإصدار ، والاختبار ، والتعاون. تبسط واجهة المستخدم الخاصة به تصور خطوط الأنابيب ، ومراقبة التقدم ، واستكشاف الأخطاء وإصلاحها.

Automating CSV to PostgreSQL Ingestion with Airflow and Docker

مصطلحات تدفق الهواء:

  • سير العمل: عملية خطوة لخطوة لتحقيق هدف (على سبيل المثال ، خبز كعكة).
  • DAG (رسم بياني حقيقي موجه): مخطط سير العمل الذي يعرض تبعيات المهمة وترتيب التنفيذ. إنه تمثيل بصري لسير العمل. Automating CSV to PostgreSQL Ingestion with Airflow and Docker
  • المهمة: إجراء واحد داخل سير العمل (على سبيل المثال ، خلط المكونات).
  • المشغلين: بناء لبنات من المهام ، أو تحديد الإجراءات مثل تشغيل البرامج النصية Python أو تنفيذ SQL. تشمل مشغلات المفاتيح pythonoPerator ، DummyOperator ، و postgresoperator .
  • XCOMS (التواصل المتبادل): تمكين المهام لتوصيل البيانات ومشاركتها.
  • الاتصالات: إدارة بيانات الاعتماد للاتصال بالأنظمة الخارجية (على سبيل المثال ، قواعد البيانات).

إعداد تدفق Apache Airflow مع Docker و Dockerfile:

يضمن استخدام Docker بيئة متسقة وقابلة للتكرار. A Dockerfile يتم أتمتة إنشاء الصور. يجب حفظ التعليمات التالية على أنها Dockerfile (بدون امتداد):

FROM apache/airflow:2.9.1-python3.9
USER root
COPY requirements.txt /requirements.txt
RUN pip3 install --upgrade pip && pip3 install --no-cache-dir -r /requirements.txt
RUN pip3 install apache-airflow-providers-apache-spark apache-airflow-providers-amazon
RUN apt-get update && apt-get install -y gcc python3-dev openjdk-17-jdk && apt-get clean

هذا يستخدم Dockerfile صورة تدفق الهواء الرسمي ، وتثبيت التبعيات من متطلبات.

docker تكوين التكوين:

docker-corm.yml

ينشر حاويات Docker. يحدد التكوين التالي الخدمات لخادم الويب ، والمجدول ، والمحفز ، و CLI ، و init ، و postgresql. لاحظ استخدام قسم X-Airflow-Common للإعدادات المشتركة والاتصال بقاعدة بيانات postgresql. (The Full ] Docker-corm.yml طويل جدًا بحيث لا يمكن تضمينه هنا ولكن يتم عرض الأقسام الرئيسية أعلاه).

إعداد وتنفيذ المشروع:

إنشاء دليل مشروع.
  1. أضف
  2. ] dockerfile
  3. و docker-corm.yml ملفات. قم بإنشاء
  4. متطلبات.
  5. قم بتشغيل Docker -Cormpose Up -D لبدء الحاويات.
  6. الوصول إلى Airflow UI في http: // localhost: 8080 .
  7. قم بإنشاء اتصال postgresql في واجهة المستخدم Airflow (باستخدام write_to_psql كمعرف اتصال).
  8. إنشاء نموذج input.csv ملف.
  9. دالة داج وبايثون:

The Airflow DAG ( sample.py ) يحدد سير العمل:

a postgreSophorator

ينشئ جدول قاعدة البيانات.
  • a pythonoPerator (
  • cender_insert_queries
  • ) يقرأ CSV ويقوم بإنشاء SQL إدراج آخر postgreSophorator ينفذ SQL المولدة. (الكود الكامل
  • sample.py
  • طويل جدًا بحيث لا يمكن تضمينه هنا ولكن يتم عرض أقسام المفاتيح أعلاه).
  • خاتمة:

يوضح هذا المشروع خط أنابيب بيانات كامل باستخدام تدفق الهواء ، Docker ، و PostgreSQL. يبرز فوائد الأتمتة واستخدام Docker للبيئات القابلة للتكرار. يعد استخدام المشغلين وهيكل DAG مفتاحًا لإدارة سير العمل الفعالة.

(يتم حذف الأقسام المتبقية ، بما في ذلك الأسئلة الشائعة و repo github ، للإيجاز. فهي موجودة في المدخلات الأصلية.)

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3