SQLFluff هو لدغة SQL Linter. تم تصميم SQLFluff مع تطبيقات ELT في الاعتبار ، مع Templating و DBT. ستقوم SQLFLuff بإصلاح معظم أخطاء الابتكار تلقائيًا ، مما يسمح لك بتركيز وقتك على ما يهم.
على الرغم من أن SQL متسقة بشكل معقول في تطبيقاتها ، إلا أن هناك العديد من اللهجات المختلفة المتاحة مع اختلافات في بناء الجملة والقواعد. يدعم SQLFluff حاليًا لهجات SQL التالية (على الرغم من أنه ربما لا تكون بالكامل):
sparksql مع بناء جملة كتالوج الوحدة).نهدف إلى تسهيل التوسع في دعم هذه اللهجات وأيضًا إضافة لهجات أخرى غير مدعومة حاليًا. يرجى إثارة المشكلات (أو تصويت أي قضايا موجودة) لإعلامنا بالطلب على الدعم المفقود.
يتم الترحيب بطلبات السحب من أولئك الذين يعرفون بناء الجملة المفقودة أو اللهجات بشكل خاص وهي طريقة السؤال لإضافة الدعم. يسعدنا العمل مع أي مساهمين محتملين في هذا لمساعدتهم على إضافة هذا الدعم. يرجى إثارة مشكلة أولاً لأي تغيير كبير في ميزة للتأكد من أنه مناسب لهذا المشروع قبل قضاء الوقت في هذا العمل.
SQL نفسها لا تضع نفسها بشكل جيد للنموذج ، لذا فإن إدخال بعض المرونة وقابلية إعادة الاستخدام غالبًا ما يتم تنظيمها كما تمت مناقشتها في وثائق الوحدات النمطية الخاصة بنا.
يدعم SQLFluff القوالب التالية:
مرة أخرى ، يرجى إثارة المشكلات إذا كنت ترغب في دعم المزيد من اللغات/بناء الجملة.
لدينا أيضًا امتداد VS Code:
للبدء ، قم بتثبيت الحزمة وقم بتشغيل sqlfluff lint أو sqlfluff fix .
$ pip install sqlfluff
$ echo " SELECT a + b FROM tbl; " > test.sql
$ sqlfluff lint test.sql --dialect ansi
== [test.sql] FAIL
L: 1 | P: 1 | LT01 | Expected only single space before ' SELECT ' keyword.
| Found ' ' . [layout.spacing]
L: 1 | P: 1 | LT02 | First line should not be indented.
| [layout.indent]
L: 1 | P: 1 | LT13 | Files must not begin with newlines or whitespace.
| [layout.start_of_file]
L: 1 | P: 11 | LT01 | Expected only single space before binary operator ' + ' .
| Found ' ' . [layout.spacing]
L: 1 | P: 14 | LT01 | Expected only single space before naked identifier.
| Found ' ' . [layout.spacing]
L: 1 | P: 27 | LT01 | Unnecessary trailing whitespace at end of file.
| [layout.spacing]
L: 1 | P: 27 | LT12 | Files must end with a single trailing newline.
| [layout.end_of_file]
All Finished ? !بدلاً من ذلك ، يمكنك استخدام صورة SQLfluff Docker الرسمية أو الحصول على مسرحية باستخدام SQLFLuff Online .
للاطلاع على استخدام CLI الكامل ومرجع القواعد ، راجع مستندات SQLFLuff.
للحصول على الوثائق الكاملة ، تفضل بزيارة docs.sqlfluff.com. يتم إنشاء هذه الوثائق من هذا المستودع ، لذا يرجى إثارة المشكلات أو سحب طلبات أي إضافات أو تصحيحات أو توضيحات.
تلتزم SQLFLUFF بالإصدار الدلالي ، لذلك يجب أن تقتصر كسر التغييرات على إصدارات الإصدارات الرئيسية. بعض العناصر (مثل API Python) في حالة أقل استقرارًا وقد ترى تغييرات أكثر أهمية في كثير من الأحيان. للحصول على تفاصيل حول كسر التغييرات وكيفية الترحيل بين الإصدارات ، راجع ملاحظات الإصدار لدينا. انظر changelog لمزيد من التفاصيل. إذا كنت ترغب في الانضمام ، فيرجى التفكير في المساهمة.
تصنع الإصدارات الجديدة شهريًا. لمزيد من المعلومات ، تفضل بزيارة الإصدارات.
لدينا مجتمع سريع النمو على الركود ، تعال وانضم إلينا!
تابعنا على TwitterSQLfluff للإعلانات وغيرها من المشاركات ذات الصلة.
نحن ممتنون لجميع مساهمينا. هناك الكثير مما يجب القيام به في هذا المشروع ، وبدأنا للتو.
إذا كنت تريد أن تفهم المزيد عن بنية SQLFluff ، فيمكنك العثور على المزيد هنا.
إذا كنت ترغب في المساهمة ، تحقق من المشكلات المفتوحة على جيثب. يمكنك أيضًا رؤية الدليل للمساهمة.

مكدس التحليلات المفتاح ، اكتشف المزيد في datacoves.com.