0Pricing
SQL Academy · درس

SQLFluff وفحص الأسلوب

افحص SQL باستخدام SQLFluff، وفرض أسلوب موحّد، وأصلح مشكلات التنسيق الشائعة تلقائيًا

SQLFluff وفحص الأسلوب درس مجاني في SQL Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في SQL Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة SQL Academy 4 دروس في المجموع.

لماذا ندقق SQL؟

تُكتب SQL يدويًا، ومن السهل تنسيقها بطريقة غير متسقة. ويفرض التدقيق أسلوبًا موحدًا تلقائيًا:

  • الكلمات المفتاحية بأحرف صغيرة أو كبيرة
  • الفاصلة في نهاية السطر أو بدايته
  • اصطلاحات تسمية الجداول والأعمدة
  • المسافات البادئة
  • الأنماط المضادة، مثل SELECT * وعمليات الربط الغامضة وغيرها

SQLFluff: أداة التدقيق الفعلية المعتمدة

أداة مفتوحة المصدر ومدركة للهجات SQL، وتدعم العديد من صيغ SQL وتعمل بشكل ممتاز مع dbt:

pip install sqlfluff

sqlfluff lint models/
sqlfluff fix models/   # auto-fix where safe

تهيئة SQLFluff

تهيئة .sqlfluff:

[sqlfluff]
dialect = postgres
templater = dbt
max_line_length = 120

[sqlfluff:rules:capitalisation.keywords]
capitalisation_policy = upper

[sqlfluff:rules:capitalisation.identifiers]
extended_capitalisation_policy = lower

القواعد القياسية

يحتوي SQLFluff على أكثر من 50 قاعدة للتسمية والتنسيق وتغيير حالة الأحرف والبنية وإزالة الغموض. عطّل القواعد حسب الحاجة:

[sqlfluff]
exclude_rules = AM05, ST05

التعطيل داخل السطر

تخطَّ فحصًا لسطر واحد:

SELECT *  -- noqa: AM04
FROM users;

التكامل مع dbt

يفهم SQLFluff كلاً من Jinja وref():

sqlfluff lint --templater dbt models/

خطاف ما قبل commit

شغّل SQLFluff قبل كل commit:

# .pre-commit-config.yaml
repos:
  - repo: https://github.com/sqlfluff/sqlfluff
    rev: 3.0.0
    hooks:
      - id: sqlfluff-lint
      - id: sqlfluff-fix

في CI

امنع PRs التي تحتوي على أخطاء التدقيق:

# GitHub Actions
- name: SQLFluff
  run: |
    pip install sqlfluff
    sqlfluff lint models/

الأنماط المضادة التي يجب تدقيقها

  • L044/AM04 — تجنّب SELECT *
  • AM05 — تجنّب JOIN الضمني، أي الفاصلة
  • ST05 — تجنّب الاستعلامات الفرعية في FROM، واستخدم CTEs
  • L010 — عدم اتساق حالة الأحرف

المنسّق مقابل أداة التدقيق

ينفّذ SQLFluff الأمرين — يفحص ويُنسّق تلقائيًا:

sqlfluff format models/    # newer: dedicated format command
sqlfluff fix models/       # alias for format + safe rule fixes

أدوات أخرى

  • pg_format — ينسّق SQL تنسيقًا مقروءًا (مع التركيز على PostgreSQL)
  • SQLFluff هو الأكثر استخدامًا؛ ويتكامل مع dbt
  • التنسيق عند الحفظ في المحررات (VS Code وJetBrains)

مراجعة

يقضي التدقيق على النقاشات المتعلقة بالأسلوب، ويكشف الأخطاء الحقيقية.

  • SQLFluff للتدقيق والتنسيق
  • يُستخدم .sqlfluff لضبط القواعد
  • شغّلوه في pre-commit وCI
  • ادمجوه مع dbt لإنشاء سير عمل متكامل لـ SQL

اختبار سريع

ما الأداة مفتوحة المصدر التي تُعدّ المعيار لتدقيق SQL، وتعمل مع قوالب dbt؟

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

هل درس «SQLFluff وفحص الأسلوب» مجاني؟

نعم — نص درس «SQLFluff وفحص الأسلوب» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة SQL Academy، انتقل إلى CoddyKit PRO. تتضمن دورة SQL Academy 4 دروس في المجموع.

ماذا ستتعلم في «SQLFluff وفحص الأسلوب»؟

افحص SQL باستخدام SQLFluff، وفرض أسلوب موحّد، وأصلح مشكلات التنسيق الشائعة تلقائيًا تتمرن على SQL Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ SQL Academy؟

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

كم من الوقت يستغرق درس «SQLFluff وفحص الأسلوب»؟

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

هل يمكنني كتابة وتشغيل أكواد في درس SQL Academy هذا؟

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

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

  1. أساسيات DBT (أداة بناء البيانات)
  2. SQLFluff وفحص الأسلوب
  3. اختبار SQL: اختبارات dbt وGreat Expectations
  4. التكامل المستمر لتغييرات المخطط (GitHub Actions)
← العودة إلى SQL Academy