SQLFluff และการตรวจรูปแบบโค้ด
ตรวจรูปแบบ SQL ด้วย SQLFluff บังคับใช้รูปแบบมาตรฐานของทีม และแก้ไขปัญหาการจัดรูปแบบที่พบบ่อยโดยอัตโนมัติ
SQLFluff และการตรวจรูปแบบโค้ด เป็นบทเรียน SQL Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน SQL Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส SQL Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดจึงต้องตรวจรูปแบบ SQL
SQL มักเขียนด้วยมือ จึงจัดรูปแบบไม่สอดคล้องกันได้ง่าย การตรวจรูปแบบจะบังคับใช้รูปแบบมาตรฐานของทีมโดยอัตโนมัติ:
- คำสำคัญตัวพิมพ์เล็กเทียบกับ UPPER
- วางจุลภาคท้ายบรรทัดเทียบกับต้นบรรทัด
- รูปแบบการตั้งชื่อสำหรับตารางและคอลัมน์
- การเยื้อง
- รูปแบบที่ควรหลีกเลี่ยง (SELECT *, การ JOIN ที่กำกวม และอื่น ๆ)
SQLFluff: ตัวตรวจรูปแบบโดยพฤตินัย
เป็นโอเพนซอร์ส รองรับรูปแบบ 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 และฟังก์ชันอ้างอิง:
sqlfluff lint --templater dbt models/ตัวดักก่อนยืนยันการเปลี่ยนแปลง
เรียกใช้ SQLFluff ก่อนยืนยันการเปลี่ยนแปลงทุกครั้ง:
# .pre-commit-config.yaml
repos:
- repo: https://github.com/sqlfluff/sqlfluff
rev: 3.0.0
hooks:
- id: sqlfluff-lint
- id: sqlfluff-fixในระบบผสานรวมต่อเนื่อง
บล็อกคำขอรวมโค้ดที่มีข้อผิดพลาดจากการตรวจรูปแบบ:
# GitHub Actions
- name: SQLFluff
run: |
pip install sqlfluff
sqlfluff lint models/รูปแบบที่ควรหลีกเลี่ยงในการตรวจรูปแบบ
- L044/AM04 — หลีกเลี่ยง SELECT *
- AM05 — หลีกเลี่ยง JOIN โดยนัย (จุลภาค)
- ST05 — หลีกเลี่ยงคิวรีย่อยใน FROM (ใช้ CTE)
- L010 — การใช้ตัวพิมพ์ใหญ่เล็กไม่สอดคล้องกัน
ตัวจัดรูปแบบเทียบกับตัวตรวจสอบโค้ด
SQLFluff ทำได้ทั้งสองอย่าง ได้แก่ ตรวจสอบ AND จัดรูปแบบอัตโนมัติ:
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 ใช้กำหนดกฎ
- เรียกใช้ในขั้นตอนก่อนคอมมิตและ CI
- ใช้ร่วมกับ dbt สำหรับกระบวนการทำงาน SQL แบบครบวงจร
ตรวจสอบความเข้าใจ
เครื่องมือใดเป็นมาตรฐานแบบโอเพนซอร์สสำหรับตรวจสอบ SQL และทำงานร่วมกับแม่แบบ dbt ได้
คำถามที่พบบ่อย
บทเรียน “SQLFluff และการตรวจรูปแบบโค้ด” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “SQLFluff และการตรวจรูปแบบโค้ด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส SQL Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส SQL Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “SQLFluff และการตรวจรูปแบบโค้ด”
ตรวจรูปแบบ SQL ด้วย SQLFluff บังคับใช้รูปแบบมาตรฐานของทีม และแก้ไขปัญหาการจัดรูปแบบที่พบบ่อยโดยอัตโนมัติ คุณปฏิบัติ SQL Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน SQL Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน SQL Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “SQLFluff และการตรวจรูปแบบโค้ด” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน SQL Academy นี้ได้ไหม
ได้ บทเรียน SQL Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐาน DBT (เครื่องมือสร้างข้อมูล)
- SQLFluff และการตรวจรูปแบบโค้ด
- การทดสอบ SQL: การทดสอบ dbt, Great Expectations
- CI สำหรับการเปลี่ยนแปลงโครงสร้างข้อมูล (GitHub Actions)