Budget Request Analysis
เครื่องมือช่วยวิเคราะห์คำของบประมาณจากไฟล์ Excel — แปลงเป็น Parquet แล้ววิเคราะห์ด้วย DuckDB ให้เร็วและตรวจสอบย้อนได้
รวมคำของบจากหลายไฟล์ให้ถามซ้ำได้ด้วยคำสั่งเดียว และตรวจย้อนกลับไปหาไฟล์ต้นทางได้
ข้อมูลคำของบประมาณมาถึงเป็นไฟล์สเปรดชีตที่ส่งออกจากระบบต้นทาง และมาใหม่หลายรอบต่อปี — เครื่องมือนี้คือทางที่ทำให้ไฟล์พวกนั้นถามด้วย SQL ได้ และถามซ้ำได้ทุกรอบ
แปลงก่อน แล้วค่อยถาม
เครื่องมือนี้แปลงไฟล์ที่ได้รับเป็น Parquet เก็บไว้ก่อน — รูปแบบเก็บข้อมูลแบบคอลัมน์ที่บีบอัดแล้ว — จากนั้นถามด้วย SQL ผ่าน DuckDB ที่อ่านตรงจากไฟล์นั้น ดึงเฉพาะคอลัมน์และแถวที่คำถามต้องใช้ ไม่ต้องยกข้อมูลทั้งก้อนขึ้นหน่วยความจำอย่างวิธีเดิม และไม่ต้องตั้งเซิร์ฟเวอร์ฐานข้อมูล
คำถามถูกเก็บเป็นไฟล์ รันซ้ำได้ทุกครั้งที่ข้อมูลรอบใหม่มา
ความเละอยู่ที่ต้นทาง
ไฟล์ที่ได้ถูกทำมาให้คนอ่าน ไม่ได้ทำมาให้เครื่องอ่าน แต่ละรอบส่งออกเรียกชื่อคอลัมน์และตั้งชื่อชีตไม่เหมือนกัน บางแผ่นหัวตารางซ้อนหลายชั้นและมีแถวสรุปแทรกกับข้อมูล บางคอลัมน์มีรหัสตัวอักษรปนตัวเลข
วิธีรับมือคือไม่เชื่อรูปร่างของไฟล์ ขั้นตอนนำเข้าเทียบชื่อคอลัมน์กับตารางชื่อพ้อง หาชีตที่ตรงที่สุดเอง บังคับชนิดข้อมูลให้นิ่ง แล้วหยุดทันทีเมื่อคอลัมน์จำเป็นหายไป โดยไม่ทับของเดิม — พังแบบเสียงดังดีกว่าพังแบบเงียบ ยอดรวมที่รู้ค่าอยู่แล้วยังถูกตรวจซ้ำตอนนำเข้า เพื่อจับการอ่านไฟล์ผิดแบบเงียบ
ลูปที่กดซ้ำได้
ปลายทางคือคำสั่งเดียว — นำเข้า สร้างรายงานใหม่ทั้งชุด แล้วตรวจสุขภาพระบบ ขั้นไหนไม่ผ่านคือหยุด ชุดตรวจไม่ผูกกับค่าตัวเลข ข้อมูลรอบใหม่จึงไม่ทำให้การตรวจแดงหลอก ไฟล์ใหม่มาก็แค่วางทับแล้วสั่ง ที่เหลือขึ้นใหม่เอง
บทเรียน
สิ่งที่คุ้มที่สุดคือแยกข้อมูลดิบ ขั้นตอนแปลง และคำตอบ ออกจากกันให้ขาด — ข้อมูลดิบไม่มีใครแก้ ขั้นตอนแปลงอยู่ในโค้ด คำตอบสร้างใหม่ได้เสมอ พอแยกขาด เวลาตัวเลขขยับก็ไม่ต้องเดาว่าอันไหนคือของจริง