#ETL
3 บทความ
Workflow

ย้ายเว็บ .aspx เก่าทั้งเว็บ ทำเป็น catalog JSON แล้วคัดรูปขยะออกเอง
เจ้าของเว็บ .aspx เก่าขอให้ทำเว็บใหม่ แต่เนื้อหาสิบกว่าปีอยู่ในฐานข้อมูลที่เข้าไม่ถึงแล้ว ผมเลยไล่เก็บหน้าเว็บของเขาเองมาทำเป็น catalog JSON ที่คง legacy_id ไว้ทั้งหมด แล้วเขียนตัวคัดรูปสามชั้นกันไม่ให้ QR ของแถมกลายเป็นรูปปกบทความ

นำเข้าไฟล์ .xls จากระบบเก่าหลายร้อยไฟล์ลง Laravel ด้วย PhpSpreadsheet
ไฟล์ .xls จากระบบเก่าที่หัวตารางภาษาไทยเป็น tis-620 อ่านชื่อคอลัมน์ไม่ได้ ไฟล์ใหญ่ทำ PhpSpreadsheet กิน memory จนล้ม และไฟล์ที่ผู้ใช้รวมเองก็มีแถวซ้ำในตัวเอง — เลิกอ่านชื่อคอลัมน์แล้วนับตำแหน่งแทน ใส่ read filter และกันซ้ำด้วย natural key

นำเข้า/ย้ายข้อมูลไทยให้ไม่พัง: กับดัก VARCHAR, idempotency, สระ OCR
บทเรียนจริงจากงานนำเข้า/ย้ายข้อมูลไทยหลายแสนแถว — VARCHAR สั้นไปตัด synthetic key จนชนกันเงียบๆ, idempotency ที่ต้อง DELETE ก่อน INSERT ไม่งั้นยอดพุ่ง 200%, collation ที่มอง su001 กับ SU001 เท่ากันแต่เก็บทั้งคู่, และสระไทยเพี้ยนจาก OCR ที่ต้องมี normalization map ก่อน insert