Data Sources
Data Source คืออะไร?
หัวข้อที่มีชื่อว่า “Data Source คืออะไร?”Data Source คือการเชื่อมต่อแบบ read-only จาก GrowthBook ไปยัง warehouse หรือ database ของคุณ GrowthBook ใช้การเชื่อมต่อนี้เพื่อรัน analysis queries เมื่อต้องการ — ไม่มีการเขียนข้อมูลกลับไปเลย Engine ที่รองรับได้แก่ BigQuery, Snowflake, Postgres, MySQL, ClickHouse, Redshift, Databricks, Athena, PrestoDB และอื่นๆ
การเชื่อมต่อ data source
หัวข้อที่มีชื่อว่า “การเชื่อมต่อ data source”ขั้นตอนที่ 1 — เปิด Data Sources
หัวข้อที่มีชื่อว่า “ขั้นตอนที่ 1 — เปิด Data Sources”- เข้าสู่ระบบ GrowthBook
- ใน sidebar ด้านซ้าย ไปที่ Analysis แล้วคลิก Data Sources
- คลิก Add Data Source
ขั้นตอนที่ 2 — เลือกประเภท connection
หัวข้อที่มีชื่อว่า “ขั้นตอนที่ 2 — เลือกประเภท connection”- เลือกประเภท warehouse ของคุณ (เช่น BigQuery, Snowflake, หรือ Postgres)
- กรอกรายละเอียด connection ที่ warehouse ต้องการ:
- BigQuery: วาง service account JSON key และเลือก default project
- Snowflake: กรอก account, warehouse, database, schema, username, และ password
- Postgres / MySQL: กรอก host, port, database name, username, และ password
- คลิก Test Connection เพื่อตรวจสอบว่า GrowthBook เข้าถึง warehouse ได้
- คลิก Save
ขั้นตอนที่ 3 — เขียน experiment assignment query
หัวข้อที่มีชื่อว่า “ขั้นตอนที่ 3 — เขียน experiment assignment query”Assignment query เป็น query ที่สำคัญที่สุดใน GrowthBook เพราะเป็นตัวตอบคำถามที่ว่า: “ผู้ใช้คนไหนเห็น experiment variation ไหน และเมื่อไหร่?”
Assignment query ปกติเลือก 4 columns:
| Column | สิ่งที่เก็บไว้ |
|---|---|
experiment_id | GrowthBook experiment key (เช่น checkout-redesign) |
variation_id | ดัชนี variation ที่ผู้ใช้ถูก assign ให้ (0 = control, 1 = variation A, …) |
user_id | user identifier ที่คงที่ (user UUID, anonymous ID ฯลฯ) |
timestamp | เวลาที่ assignment เกิดขึ้น (UTC) |
ตัวอย่างสำหรับ BigQuery events table:
SELECT experiment_id, variation_id, user_id, timestampFROM `myproject.analytics.experiment_viewed`WHERE timestamp >= '{{ startDate }}' AND timestamp <= '{{ endDate }}'GrowthBook จะแทนที่ {{ startDate }} และ {{ endDate }} โดยอัตโนมัติเมื่อรัน analysis
ขั้นตอนที่ 4 — (ไม่บังคับ) เพิ่ม identifier joins
หัวข้อที่มีชื่อว่า “ขั้นตอนที่ 4 — (ไม่บังคับ) เพิ่ม identifier joins”ถ้า warehouse ของคุณใช้ ID ประเภทต่างกัน (anonymous cookie ID กับ logged-in user ID) ให้เพิ่ม Identifier Joins เพื่อให้ GrowthBook เชื่อม ID เหล่านั้นกันได้ข้ามตาราง assignment และ metric
ยังไม่มี warehouse? ไม่เป็นไร
หัวข้อที่มีชื่อว่า “ยังไม่มี warehouse? ไม่เป็นไร”ถ้าคุณเพิ่งเริ่มต้นและยังไม่มี data warehouse GrowthBook สามารถทำงานได้โดยไม่ต้องมี warehouse สำหรับ feature flags และ targeting พื้นฐาน คุณเพิ่ม data source ได้ภายหลังเมื่อพร้อมรัน statistical experiments GrowthBook ยังรองรับการ upload CSV data สำหรับการทดลองแบบเบาๆ ด้วย
ข้อแลกเปลี่ยน
หัวข้อที่มีชื่อว่า “ข้อแลกเปลี่ยน”| ตัวเลือก | Benefit | Cost |
|---|---|---|
| เชื่อม data warehouse ของตัวเอง | data ไม่ต้องออกจาก infrastructure ควบคุมเต็มที่ | ต้องมี warehouse และ ops team ดูแลอยู่แล้ว |
| ใช้ event tracking ผ่าน third-party | ตั้งค่าเร็วกว่า | data อยู่นอกการควบคุมของทีม |
ข้อผิดพลาดที่พบบ่อย
หัวข้อที่มีชื่อว่า “ข้อผิดพลาดที่พบบ่อย”- เชื่อม data source ที่ schema ไม่ตรงกับที่ GrowthBook คาดหวัง ทำให้ query metric ผิด
- ไม่ตั้ง permission ที่เหมาะสมให้ GrowthBook query warehouse (query ช้าหรือถูก block)
- ใช้ sample table แทน full event table ทำให้ผลลัพธ์เพี้ยน
💡 ตัวอย่างจากของจริง
บริษัทที่ใช้ Snowflake/BigQuery ภายในอยู่แล้วมักเลือก GrowthBook เพราะเชื่อมกับ warehouse เดิมได้ตรง ไม่ต้อง duplicate data ไปที่ระบบใหม่