เมื่อสเปรดชีตเริ่มไม่พอ: ย้ายข้อมูลมาร์เก็ตเพลสเข้า PostgreSQL
คู่มือออกแบบไปป์ไลน์ Spyliner Hub แรก ตั้งแต่การเข้าถึงปลายทางไปจนถึง Mapping โหมดเขียน และการติดตาม
สเปรดชีตเป็นเครื่องมือปฏิบัติการที่ดี แต่ไม่ใช่ชั้นข้อมูลดิบที่เหมาะเมื่อหลายร้าน ประวัติยาว แดชบอร์ด และแอปภายในพึ่งพาไฟล์เดียว
Spyliner Hub เชื่อมชุดข้อมูลมาร์เก็ตเพลสกับตาราง PostgreSQL ที่มีอยู่ คุณค่าหลักอยู่ที่การตัดสินใจเรื่องโครงสร้างตาราง การจับคู่ฟิลด์ และวิธีเขียนข้อมูลที่กลับมาอีกครั้ง
ใช้ปลายทางให้เหมาะ
PostgreSQL เหมาะเมื่อข้อมูลมีผู้ใช้หลายระบบ
เลือก Database Sync เมื่อแดชบอร์ด BI งานแปลงข้อมูล แอปภายใน หรือหลายทีมต้องการแหล่งข้อมูลที่เสถียร ใช้ Google Sheets ต่อเมื่อคนต้องการพื้นที่ทำงานที่ยืดหยุ่น
เริ่มด้วยร้านเดียวและชุดข้อมูลเดียวในตารางที่ไม่สำคัญ ก่อนขยายไปทุกบัญชี
ความปลอดภัยมาก่อนความสะดวก
เตรียมปลายทางที่พร้อมสำหรับ Production
- ✓ใช้ Role ฐานข้อมูลเฉพาะที่มีสิทธิ์เท่าที่จำเป็น
- ✓ใช้เส้นทางเครือข่ายที่ได้รับอนุมัติ
- ✓สร้างคอลัมน์ที่เข้ากันได้เฉพาะฟิลด์ที่ต้องการ
- ✓อย่าแชร์ Connection String ใน Ticket ภาพหน้าจอ โค้ด หรือแชต
ภายในขั้นตอนของ Hub
สร้างและทดสอบการจับคู่จากแหล่งข้อมูลสู่ตาราง
- 1
เพิ่ม PostgreSQL
เปิด Destinations เพิ่ม PostgreSQL ทดสอบการเชื่อมต่อแล้วบันทึก
- 2
เลือกแหล่งข้อมูล
เปิด Syncs สร้าง Sync แล้วเลือกร้านและชุดข้อมูล
- 3
เลือกตาราง
เลือกปลายทาง Schema และตารางหลัง Hub ตรวจคอลัมน์
- 4
จับคู่และทดสอบ
จับคู่ฟิลด์กับคอลัมน์ที่เข้ากัน และรัน Test write access
- 5
ตั้งตารางเวลา
ตรวจการตั้งค่า เลือกเวลา และสร้าง Sync
การตัดสินใจสำหรับข้อมูลที่กลับมา
ใช้ upsert กับข้อมูลที่เปลี่ยน และ insert-only กับ Log แบบต่อท้าย
ออเดอร์และข้อมูลประสิทธิภาพมักเปลี่ยน Upsert เพิ่มแถวใหม่และอัปเดตแถวที่ตรงกับ Conflict Key ตารางต้องมี Unique Constraint หรือ Index ที่เข้ากัน
Insert-only ไม่แก้ไขแถวเดิมและเพิ่มข้อมูลใหม่ตาม Constraint ของ PostgreSQL ใช้เมื่อพฤติกรรมแบบ Append เป็นสิ่งที่ตั้งใจ
- ✓จับคู่ spylinerSyncKey กับ text หรือ varchar เป็นตัวระบุเริ่มต้น
- ✓กำหนดคอลัมน์ตัวระบุให้ Unique เมื่อใช้เป็น Conflict Target
- ✓บันทึกโหมดเขียนและผู้รับผิดชอบไปป์ไลน์
คำตอบแบบสั้น
คำถามที่พบบ่อย
Spyliner Hub รองรับ MySQL หรือ Data Warehouse ไหม?+
ปัจจุบันปลายทางฐานข้อมูลที่รองรับคือ PostgreSQL
การรันด้วยตนเองใช้การตั้งค่าอื่นไหม?+
ไม่ การรันด้วยตนเองและตามเวลาใช้แหล่งข้อมูล Mapping ปลายทาง และโหมดเขียนเดียวกัน
ควรใช้โหมดใดกับออเดอร์?+
โดยทั่วไปใช้ upsert เพราะสถานะออเดอร์เปลี่ยนได้ ตรวจให้ Conflict Key มี Constraint ที่เหมาะสม


