0Pricing
Cloud & IT Cert Prep · درس

AWS Glue: ETL وكتالوج البيانات

شغّل مهام ETL دون خوادم باستخدام AWS Glue، وسجّل مخططات الجداول في Glue Data Catalogue، واكتشف البيانات الجديدة تلقائيًا

AWS Glue: ETL وكتالوج البيانات درس مجاني في Cloud & IT Cert Prep على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cloud & IT Cert Prep، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.

ما هي AWS Glue؟

AWS Glue هي خدمة ETL مُدارة بالكامل وبلا خوادم (استخراج وتحويل وتحميل). لا تحتاجون إلى توفير أي خوادم أو إدارتها — إذ تخصص Glue عمال Spark أو Python تلقائيًا عند تشغيل المهمة. تتكون Glue من مكوّنين رئيسيين: محرك ETL لمهام تحويل البيانات، وData Catalogue لتخزين البيانات الوصفية حول مصادر البيانات وأهدافها.

شرح Glue Data Catalogue

يُعد Glue Data Catalogue مستودعًا مركزيًا للبيانات الوصفية ومتوافقًا مع Apache Hive Metastore. وهو يخزن قواعد البيانات والجداول وتعريفات الأعمدة وأنواع البيانات ومعلومات التقسيم. تستخدم خدمات مثل Athena وRedshift Spectrum وEMR كتالوج البيانات نفسه، ما يجعله مصدر الحقيقة الوحيد لمعرفة البيانات الموجودة ومكانها في S3.

# List databases in the Glue Data Catalogue
aws glue get-databases --query 'DatabaseList[*].Name'

# List tables in a database
aws glue get-tables --database-name my_db --query 'TableList[*].Name'

Glue Crawlers: الاكتشاف التلقائي للمخطط

يتصل Glue Crawler بمخزن بيانات (S3 أو JDBC أو DynamoDB)، ويأخذ عينات من البيانات، ثم يستنتج تلقائيًا المخطط وبنية التقسيم. بعد ذلك يكتب تعريفات الجداول في Data Catalogue أو يحدّثها. ويمكن تشغيل Crawlers وفق جدول زمني أو عند الطلب. كما تدعم الزحف التزايدي بحيث تعالج الأقسام الجديدة فقط في عمليات التشغيل اللاحقة.

# Create and start a Glue Crawler via CLI
aws glue create-crawler \
  --name sales-crawler \
  --role arn:aws:iam::123456789012:role/GlueRole \
  --database-name my_db \
  --targets '{"S3Targets": [{"Path": "s3://my-data-lake-123/landing/sales/"}]}'

aws glue start-crawler --name sales-crawler

كتابة مهمة Glue ETL

مهمة Glue ETL هي نص PySpark أو Scala Spark يقرأ من مصدر، ويطبق التحويلات باستخدام واجهة DynamicFrame، ثم يكتب إلى هدف. وتوسّع DynamicFrames إمكانات Spark DataFrames بمرونة المخطط؛ إذ تتعامل تلقائيًا مع أنواع البيانات غير المتسقة وJSON المتداخل. ويمكنكم إنشاء نص مهمة تمهيدي من المحرر المرئي في Glue Studio.

# Minimal Glue PySpark ETL job
from awsglue.context import GlueContext
from awsglue.transforms import *
from pyspark.context import SparkContext

sc = SparkContext()
glueContext = GlueContext(sc)

# Read from Data Catalogue table
source = glueContext.create_dynamic_frame.from_catalog(
    database='my_db', table_name='raw_sales')

# Drop null order_id rows
cleaned = Filter.apply(frame=source, f=lambda r: r['order_id'] is not None)

# Write Parquet to curated zone
glueContext.write_dynamic_frame.from_options(
    frame=cleaned,
    connection_type='s3',
    connection_options={'path': 's3://my-data-lake-123/curated/sales/'},
    format='parquet')

عمال مهام Glue ووحدات DPU

تخصص Glue السعة باستخدام Data Processing Units (DPUs). وتعادل وحدة DPU واحدة 4 وحدات vCPU وذاكرة قدرها 16 جيجابايت. تختارون نوع العامل (G.1X أو G.2X أو G.025X للمرونة أو بث Spark) وعدد العمال. بالنسبة إلى المهام الصغيرة، استخدموا نوع مهمة G.025X Python Shell، الذي يستخدم ربع DPU واحدًا ويُعد فعالًا جدًا من حيث التكلفة للتحويلات البسيطة.

# Create a Glue job with G.1X workers
aws glue create-job \
  --name clean-sales \
  --role arn:aws:iam::123456789012:role/GlueRole \
  --command '{"Name": "glueetl", "ScriptLocation": "s3://scripts/clean_sales.py", "PythonVersion": "3"}' \
  --worker-type G.1X \
  --number-of-workers 5 \
  --glue-version '4.0'

سير عمل Glue والمحفزات

يربط Glue Workflow بين Crawlers والمهام في رسم بياني للتبعيات. يكتشف Crawler البيانات الجديدة، ثم يشغّل عند اكتماله مهمة، ثم مهمة أخرى، وهكذا. ويمكن أن تكون المحفزات مجدولة (cron)، أو قائمة على الأحداث (عند الطلب)، أو مشروطة (تُشغّل عند نجاح مهمة أو فشلها). وتوفر Workflows رسمًا بيانيًا موجّهًا لا دوريًا مرئيًا لمسار ETL دون خدمة تنسيق منفصلة.

# Create a schedule trigger that starts a job every night at 2 AM UTC
aws glue create-trigger \
  --name nightly-clean \
  --type SCHEDULED \
  --schedule 'cron(0 2 * * ? *)' \
  --actions '[{"JobName": "clean-sales"}]' \
  --start-on-creation

Glue Studio: أداة إنشاء ETL المرئية

يوفر Glue Studio واجهة سحب وإفلات لتصميم مهام ETL رسوميًا دون كتابة تعليمات PySpark البرمجية يدويًا. تصلون عقد المصدر (S3 وجداول Catalogue وJDBC) بعقد التحويل (التصفية والضم والتجميع وPython المخصص)، ثم بعقد الهدف. وينشئ Glue Studio نص Spark تلقائيًا. كما يوفر لوحة معلومات لتشغيل المهام ومراقبة حالة التنفيذ ومقاييس جودة البيانات.

جودة بيانات Glue

تتيح AWS Glue Data Quality (‏DQDL — لغة تعريف جودة البيانات) كتابة قواعد للتحقق من البيانات أثناء تدفقها عبر مهمة ETL. ويمكن للقواعد التحقق من معدلات القيم الفارغة ونطاقات القيم والتكامل المرجعي والتفرّد. إذا أخفقت البيانات في قواعد الجودة، تستطيع Glue إيقاف المهمة أو توجيه السجلات التالفة إلى مسار حجر صحي في S3 للمراجعة اليدوية، بدلًا من تمرير بيانات فاسدة إلى المنطقة المنسقة دون تنبيه.

# DQDL rule example for Glue Data Quality
# Reject rows where order_total is negative or null
Rules = [
  IsComplete 'order_total',
  ColumnValues 'order_total' >= 0
]

Glue مقارنة بخيارات ETL الأخرى

بالنسبة إلى اختبار SAA-C03، احرصوا على معرفة متى توصي بـ Glue ومتى توصي بالبدائل. استخدموا Glue لإجراء ETL باستخدام Spark بلا خوادم وللتكامل مع Data Catalogue. استخدموا AWS Data Pipeline لتنسيق مهام نقل البيانات القديمة (في الغالب المهام الموروثة). استخدموا Amazon EMR عندما تحتاجون إلى تهيئة مخصصة لمجموعات Hadoop أو Spark أو إلى أحمال عمل طويلة التشغيل. استخدموا Lambda للتحويلات الجزئية الخفيفة القائمة على الأحداث للحمولات الصغيرة.

JDBC ومصادر البيانات غير التابعة لـ S3

يمكن لـ Glue الاتصال بقواعد البيانات العلائقية عبر JDBC connections — مثل RDS وAurora وRedshift أو قواعد البيانات المحلية من خلال Glue VPC Connection. عرّفوا اتصالًا باستخدام عنوان URL لـ JDBC وبيانات الاعتماد من Secrets Manager ومجموعة أمان VPC. ثم تستخدم Glue واجهة شبكة مخصصة موضوعة داخل الشبكة الفرعية لـ VPC للوصول إلى نقاط نهاية قواعد البيانات الخاصة دون المرور عبر الإنترنت العام.

# Create a Glue JDBC connection to RDS Aurora
aws glue create-connection \
  --connection-input '{
    "Name": "aurora-prod",
    "ConnectionType": "JDBC",
    "ConnectionProperties": {
      "JDBC_CONNECTION_URL": "jdbc:mysql://aurora-cluster.cluster-xyz.us-east-1.rds.amazonaws.com:3306/sales",
      "SECRET_ID": "arn:aws:secretsmanager:us-east-1:123:secret:rds-creds"
    },
    "PhysicalConnectionRequirements": {
      "SubnetId": "subnet-abc123",
      "SecurityGroupIdList": ["sg-xyz456"],
      "AvailabilityZone": "us-east-1a"
    }
  }'

Bookmarks: المعالجة التزايدية

افتراضيًا، ستعيد مهمة Glue معالجة كل سجل في كل عملية تشغيل. وتتتبع Glue Job Bookmarks ملفات الإدخال التي عولجت مسبقًا، بحيث تلتقط عمليات التشغيل اللاحقة البيانات الجديدة فقط. وتُعد Bookmarks ضرورية لمصادر S3 التي تعمل بنمط الإلحاق فقط، حيث تستقبل البادئة نفسها ملفات جديدة يوميًا. فعّلوا Bookmarks في معلمات المهمة باستخدام --job-bookmark-option job-bookmark-enable.

# Start Glue job with bookmark enabled
aws glue start-job-run \
  --job-name clean-sales \
  --arguments '{"--job-bookmark-option": "job-bookmark-enable"}'

اختبار سريع

اختبر مدى فهمكم لمفاهيم AWS Solutions Architect (SAA-C03) الواردة في هذا الدرس.

مراجعة الدرس

تعلمتم في هذا الدرس أن: AWS Glue يوفر عمليات ETL بلا خوادم باستخدام PySpark وواجهة DynamicFrame API، وتعمل Glue Crawlers على اكتشاف المخططات تلقائيًا وملء Data Catalogue، وتتيح Glue Bookmarks إجراء معالجة تزايدية للبيانات الجديدة في S3. بعد ذلك، سنستكشف Amazon Athena لإجراء استعلامات SQL بلا خوادم مباشرةً على S3.

الأسئلة الشائعة

هل درس «AWS Glue: ETL وكتالوج البيانات» مجاني؟

نعم — نص درس «AWS Glue: ETL وكتالوج البيانات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cloud & IT Cert Prep، انتقل إلى CoddyKit PRO. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.

ماذا ستتعلم في «AWS Glue: ETL وكتالوج البيانات»؟

شغّل مهام ETL دون خوادم باستخدام AWS Glue، وسجّل مخططات الجداول في Glue Data Catalogue، واكتشف البيانات الجديدة تلقائيًا تتمرن على Cloud & IT Cert Prep مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Cloud & IT Cert Prep؟

لا تُشترط خبرة سابقة. Cloud & IT Cert Prep على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «AWS Glue: ETL وكتالوج البيانات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Cloud & IT Cert Prep هذا؟

نعم. كل درس في Cloud & IT Cert Prep يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. إنشاء بحيرة بيانات على S3
  2. AWS Glue: ETL وكتالوج البيانات
  3. Amazon Athena: SQL دون خوادم على S3
  4. Kinesis Streams وFirehose والتحليلات الفورية
← العودة إلى Cloud & IT Cert Prep