Join ตาราง PostgreSQL กับ MySQL โดยไม่ต้องย้ายข้อมูล
ลูกค้าอยู่ใน PostgreSQL ออเดอร์อยู่ใน MySQL แล้วต้องการรายงานที่มีทั้งสองอย่าง หน้านี้อธิบายว่าทำไม SQL ปกติทำไม่ได้ ทางเลือกที่มี และวิธีทำใน Ruamhub
ทำไม JOIN ธรรมดาใช้ไม่ได้
คำสั่ง JOIN ทำงานภายในฐานข้อมูลเดียว PostgreSQL มองไม่เห็นตารางใน MySQL และกลับกัน ต้องมีอะไรสักอย่างอ่านทั้งสองฝั่งมารวมกัน จะเป็นคน (export แล้วรวมใน Excel) ส่วนเสริมของฐานข้อมูล หรือเครื่องมือกลางก็ได้
ทางเลือกที่มี
| วิธี | ต้องเตรียมอะไร | ทำซ้ำทุกสัปดาห์ | เหมาะกับ |
|---|---|---|---|
| Export CSV แล้วรวมใน Excel | ไม่ต้องเตรียม | ทำมือใหม่ทุกครั้ง | งานครั้งเดียว ข้อมูลไม่มาก |
| postgres_fdw / mysql_fdw | สิทธิ์ superuser ติดตั้ง extension บนเซิร์ฟเวอร์ | ได้ ด้วย view หรือ cron | ทีมที่มี DBA ดูแลฐานข้อมูลเอง |
| คลังข้อมูล + ETL | เซิร์ฟเวอร์ เครื่องมือ ETL และคนดูแล | ได้ | ข้อมูลระดับหลายร้อยล้านแถว |
| Join Canvas ใน Ruamhub | การเชื่อมต่อ 2 ตัว (อ่านอย่างเดียวได้) | ได้ ตั้งเวลาได้ในแพ็กเกจ Dev ขึ้นไป | ทีมที่อยากได้ผลวันนี้ โดยไม่แตะเซิร์ฟเวอร์ |
ทำใน Ruamhub
เชื่อมต่อทั้งสองฐาน
เพิ่มการเชื่อมต่อ PostgreSQL และ MySQL ติ๊กอ่านอย่างเดียวได้เลย เพราะการ join แค่อ่านข้อมูล
ลากสองตารางมาวาง
ลาก customers จาก PostgreSQL และ orders จาก MySQL มาวางบน Join Canvas แล้วลากเส้นจาก customers.id ไป orders.customer_id
เลือกชนิด join และดูผล
เลือก inner หรือ left join ตรวจตัวอย่าง 100 แถวแรก เพิ่ม filter หรือ group by ได้ถ้าต้องการยอดรวม
บันทึกเป็นตาราง
ตั้งตารางปลายทางในฐานข้อมูลที่เขียนได้ แล้วรันทันทีหรือตั้งเวลาให้รันเองทุกคืน
| id | name |
|---|---|
| 1 | Somchai K. |
| 2 | Narin P. |
| 3 | Malee S. |
| id | customer_id | total |
|---|---|---|
| 1042 | 1 | 1,250 |
| 1043 | 2 | 480 |
| 1044 | 1 | 2,900 |
| 1045 | 3 | 760 |
| order | customer | total |
|---|---|---|
| #1042 | Somchai K. | ฿1,250 |
| #1043 | Narin P. | ฿480 |
| #1044 | Somchai K. | ฿2,900 |
| #1045 | Malee S. | ฿760 |
ต้องใช้แพ็กเกจอะไร
- แพ็กเกจ Free ลองได้ครบ: เชื่อมต่อได้ 2 ตัว สร้าง pipeline ได้ 1 ตัว และรันเองได้ 30 ครั้งต่อเดือน
- ตั้งเวลาให้รันเองต้องใช้แพ็กเกจ Dev ขึ้นไป
- ฐานข้อมูลต้องเชื่อมต่อจากอินเทอร์เน็ตได้ หรือเข้าผ่าน SSH tunnel
ฟีเจอร์ที่ใช้คู่กัน
Join Canvas
ลากตารางจากคนละฐานข้อมูลหรือไฟล์ Excel มาวางบนแคนวาส join, กรอง, group by แล้วดูผลลัพธ์ได้ทันที
ดูรายละเอียดการเชื่อมต่อฐานข้อมูล
เชื่อมต่อ PostgreSQL, MySQL, SQL Server, Oracle, SQLite และ MongoDB ผ่าน TLS หรือ SSH tunnel ตั้งเป็นอ่านอย่างเดียวได้ และให้ทีมใช้ร่วมกันโดยไม่ต้องรู้รหัสผ่าน
ดูรายละเอียดPipeline และตั้งเวลารัน
บันทึกผลจาก Join Canvas เป็นตารางในฐานข้อมูลที่เลือก หรือส่งเป็น report ทางอีเมล SFTP, S3 และ shared folder รันเองหรือตั้งเวลา และดูประวัติการรันทุกครั้ง
ดูรายละเอียด
คำถามที่พบบ่อย
ใช้กับฐานข้อมูล production ได้ไหม?
ได้ ตั้งการเชื่อมต่อเป็นอ่านอย่างเดียว ระบบจะกันการเขียนทุกอย่างลงฐานข้อมูลนั้น แล้วเขียนผลลัพธ์ลงฐานข้อมูลอื่นที่ใช้ทำรายงาน
join ข้าม PostgreSQL กับ MySQL ทำงานอย่างไร?
ระบบใช้ DuckDB อ่านตารางจากแต่ละการเชื่อมต่อแล้ว join ให้ ข้อมูลไม่ถูกเก็บไว้ที่ Ruamhub นอกจากตารางผลลัพธ์ที่คุณเลือกเขียนลงฐานข้อมูลของคุณเอง
ถ้ามีข้อมูลบางส่วนอยู่ในไฟล์ Excel ด้วยล่ะ?
อัปโหลดไฟล์ CSV หรือ .xlsx แล้ววางบนแคนวาสเดียวกัน join กับตารางจากทั้งสองฐานข้อมูลได้
เริ่มรวมข้อมูลทุกฐานไว้ในที่เดียว
เริ่มฟรีได้เลย หรือนัดเดโมให้เราพาดูการใช้งานกับข้อมูลของทีมคุณ