[Update] วิธีเชื่อมต่อกับ Google Sheet และสร้าง Job ด้วย CData Sync

วิธีเชื่อมต่อกับ Google Sheet และสร้าง Job ด้วย CData Sync จะทำให้เราสามารถเรียกใช้ข้อมูลที่อยู่ใน Google Sheet ผ่าน RDS (MySQL) ได้อย่างง่ายดาย

สวัสดีครับ POP จากบริษัท Classmethod (Thailand) ครับ

ครั้งนี้จะมาแนะนำเกี่ยวกับวิธีเชื่อมต่อกับ Google Sheet และสร้าง Job ด้วย CData Sync

สิ่งที่ต้องมี

CData Sync และ RDS

※มี CData Sync และ RDS (MySQL) ที่เชื่อมต่อเข้าด้วยกันแล้ว

ดูวิธีการได้ที่ลิงก์ด้านล่างนี้

เตรียมไฟล์ Google Sheet ใน Google Drive

ต่อไปให้เตรียมไฟล์ Google Sheet ใน Google Drive โดยการสร้างข้อมูลจำลองอะไรก็ได้ลงใน Google Sheet เช่น ในตัวอย่างนี้เป็นการจำลองข้อมูลเกี่ยวกับราคาตามขนาดสินค้า

item_name size price
AAA01 S 200
AAA02 M 300
AAA03 L 400
AAA04 M 300
AAA05 X 500

หมายเหตุ : ควรอ่านข้อมูลในหัวข้อ สิ่งที่ต้องมี อย่างละเอียด รวมถึงบทความอื่นๆ ที่เกี่ยวข้อง เพื่อไม่ให้เกิดความผิดพลาดระหว่างการดำเนินการครับ

เพิ่ม Google Sheet ใน CData Sync

เลือก Connections จากเมนูด้านซ้าย และคลิก + Add Connection

ป้อน Google Sheet ในช่องค้นหา แล้วปิดใช้งาน Only Installed ก็จะแสดง Google Sheet ขึ้นมา
จากนั้นคลิกไอคอนดาวน์โหลด (Install Connector) แล้วเลือก Download Connector แล้วรอ Installing... สักครู่

เมื่อติดตั้งเสร็จแล้ว คลิก Google Sheet

ไปที่หน้าจอ Google Drive ที่เก็บ Google Sheet แล้วคัดลอกชื่อ Spreadsheet (ไฟล์ Google Sheet) และ Folder Id ของเราตามนี้

กลับมาที่หน้าจอ CData Sync แล้วจะตั้งค่าดังนี้
・Connection Name *: GoogleSheet1 (ป้อนตามต้องการ)
・Auth Scheme *: OAuth
・Spreadsheet: demo_order (ป้อนชื่อ Spreadsheet ที่คัดลอกมาจากขั้นตอนที่แล้ว)
・Folder Name: ป้อน Folder Id ที่คัดลอกจากขั้นตอนที่แล้ว
・คลิก Connect to Google Sheets

เลือก Email ที่ใช้เก็บไฟล์ Google Sheet

คลิก Continue

แล้วจะกลับมาหน้าจอ New Connection ของ CData GoogleSheet นี้โดยอัตโนมัติ
หากแสดงแจ้งเตือน "✅Success! Please click the Save & Test button to save." แบบนี้ ถือว่าการเชื่อมต่อจาก CData ไปยัง Google Sheet สำเร็จ

ต่อไปคลิก Save & Test แล้วจะแสดงแจ้งเตือน "✅Connection created successfully" ด้านขวาบน ก็ถือว่าเราเพิ่มการเชื่อมต่อ CData GoogleSheet เรียบร้อยแล้ว และภายใน Google Sheet จะแสดงหน้าจอแบบนี้ครับ

ต่อไปเลือก Connections จากแท็บด้านซ้าย จะเห็นว่าการเชื่อมต่อ Google Sheet นี้ถูกบันทึกใน Connection นี้เรียบร้อยแล้วครับ

เพิ่ม Job สำหรับ Google Sheet และ RDS

การเพิ่ม Job ใน CData Sync เป็นการสร้างงานซิงโครไนซ์เพื่อทำการโอนย้ายข้อมูลระหว่างแหล่งข้อมูลต้นทางและปลายทางตามที่เรากำหนด โดยครั้งนี้จะกำหนดต้นทางเป็น Google Sheet และปลายทางเป็น RDS

เลือก Jobs จากแท็บด้านซ้าย แล้วคลิก + Add Job

แล้วจะตั้งค่าดังนี้
・ป้อน Name *: gsheet_to_rds (ป้อนชื่อตามต้องการ)
・Source *: GoogleSheet1 (เลือกต้นทางเป็น Google Sheet)
・Destination *: tinnakorn_cdata_rds (เลือกปลายทางเป็น RDS)
・Type: Standard
・คลิก Add Job

เมื่อเพิ่ม Job เสร็จแล้วจะแสดงหน้าจอแบบนี้

เพิ่ม Task ใน Job

ก่อนที่จะไปเพิ่ม Task อยากให้ตรวจสอบที่หน้าจอ Google Sheet ใน Google Drive ของเราก่อนครับ
เปิดไฟล์ Google Sheet ของเรา แล้วสังเกต "ชื่อไฟล์ด้านบน" และ "แท็บชื่อ Sheet1 ด้านล่าง" ตามรูปภาพ

ความหมายของลูกศรนี้คือ ในขณะที่เราทำการ Add Task ชื่อของ Google Sheet จะแสดงตามลูกศรดังนี้

demo_order + Sheet1 => demo_order_Sheet1

กลับมาที่หน้าจอ Job ใน CData Sync อีกครั้ง แล้วเลือกแท็บ Task แล้วคลิก + Add Tasks

ติ๊ก demo_order_Sheet1 ที่เป็น Table Name ของเรา และคลิก Add Tasks

เมื่อเพิ่ม Task เสร็จแล้วจะแสดงหน้าจอแบบนี้

Run Task

ติ๊ก Table Name ที่เพิ่มเข้ามา แล้วคลิก Run เพื่อให้ข้อมูลอัปเดตไปยัง RDS แล้วรอสักครู่

เมื่อ Run เสร็จแล้ว จะแสดง Successful ใน LAST RUN แบบนี้

ตรวจสอบข้อมูล Database ใน RDS

เราจะตรวจสอบข้อมูล Database ใน RDS ที่ใช้เป็นแหล่งข้อมูลปลายทาง ว่าหลังจากที่ Run Task ใน CData Sync ไปแล้ว จะมีข้อมูล Spreadsheet เข้ามาใน RDS หรือไม่

เข้ามาที่หน้าจอ Terminal ที่ Login Server EC2 Instance ไว้ แล้วเชื่อมต่อเข้าไปยัง Database ใน RDS ผ่าน Server EC2 Instance ด้วยคำสั่งด้านล่างนี้ (ดูข้อมูลเพิ่มเติมได้ที่วิธีเชื่อมต่อไปยัง RDS (MySQL) ใน Ubuntu)

mariadb -h [RDS Endpoint] -u [Master username RDS] -p[Master password RDS]


ต่อไปรันคำสั่งเรียกดูรายการ Database ที่มีอยู่

show databases;

root@ip-xx-xx-xx-xx:~

MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| tinnakorn          |
+--------------------+
5 rows in set (0.006 sec)

MySQL [(none)]>


ต่อไปรันคำสั่งเรียกใช้ Database ที่ใช้เป็นแหล่งข้อมูลปลายทางเพื่อรับข้อมูลจากการ Run Task ใน CData Sync

use tinnakorn;

root@ip-xx-xx-xx-xx:~

MySQL [(none)]> use tinnakorn;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MySQL [tinnakorn]>


ต่อไปรันคำสั่งตรวจสอบ Table

show tables;

root@ip-xx-xx-xx-xx:~

MySQL [tinnakorn]> show tables;
+---------------------+
| Tables_in_tinnakorn |
+---------------------+
| demo_order_Sheet1   |
+---------------------+
1 row in set (0.002 sec)

MySQL [tinnakorn]>


ต่อไปรันคำสั่งเรียกดูข้อมูลที่เราเพิ่มเข้ามาใน Database ด้วยการ Run Task ไปก่อนหน้า

select * from demo_order_Sheet1;

root@ip-xx-xx-xx-xx:~

MySQL [tinnakorn]> select * from demo_order_Sheet1;
+----+-----------+------+-------+
| id | item_name | size | price |
+----+-----------+------+-------+
|  2 | AAA01     | S    |   200 |
|  3 | AAA02     | M    |   300 |
|  4 | AAA03     | L    |   400 |
|  5 | AAA04     | M    |   300 |
|  6 | AAA05     | X    |   500 |
+----+-----------+------+-------+
5 rows in set (0.001 sec)

MySQL [tinnakorn]>


เมื่อย้อนกลับไปดู Spreadsheet ใน Google Drive จะเห็นว่ามีข้อมูลตรงกับ Database ใน RDS ที่เรียกดูข้อมูลจากขั้นตอนที่แล้วครับ

สรุป

วิธีเชื่อมต่อกับ Google Sheet และสร้าง Job ด้วย CData Sync จะทำให้ง่ายต่อการจัดการ Database เช่น การดู การแก้ไข การสร้าง และการลบไฟล์ เป็นต้น ซึ่งอำนวยความสะดวกในการสร้างฐานข้อมูลต่างๆ ได้มาก เพราะว่าเราไม่ต้องรัน Code เพื่อสร้าง Database, Table และอื่นๆ ด้วยตัวเอง แต่เราสามารถดึงข้อมูลใน Google Sheet ที่เชื่อมต่อกับ CData Sync ไว้และนำมาแสดงผลหรือใช้งานผ่าน RDS (MySQL) ได้เลยครับ

ผมหวังว่าบทความนี้จะเป็นประโยชน์ให้กับผู้อ่านได้นะครับ

POP (Tinnakorn Maneewong) จากบริษัท Classmethod (Thailand) ครับ !

บทความที่เกี่ยวข้อง