เลือกใช้ Database บน Google Cloud Platform ยังไงดี?

NSLog0
Algorithml
Published in
2 min readJun 12, 2023

--

Intro ❤️💙💚💛

สำหรับบทความนี้ผมจะมาอธิบายการเลือกใช้งาน Database บน Google Cloud Platform (GCP)ให้ทุกคนได้เข้าใจก่อนถึงหลักการและวิธีการ จริงๆ แล้วต้องบอกว่าสั้นมากๆ บทความนี้ผมจะแนะนำแค่ Big Query, Big Table, Cloud Sql, Cloud Spanner, Firestore เพราะถือเป็น Service หลักๆ ที่ทาง GCP ทำมาให้เราได้ใช้งานการ แต่อาจจะมีบางคนที่เพิ่งย้ายมาหรือทำมาสักพักแล้วแต่ยังสับสน 😮‍💨 กับ Database Service อยู่ ผมเลยจึงจะถือโอกาสสรุปให้ทุกคนได้อ่านกันแบบง่ายๆ

Structured and Unstructured data 🤔

🤩 ก่อนจะไปต่อเราต้องมาทำความเข้าใจเรื่อง Structured และ Unstructured data ก่อนเพราะในบทความนี้ผมจะมาอธิบายแค่การเลือกใช้ Service เพื่อเก็บ Structured data

Unstructured data 📂 🗄️ จะประกอบไปด้วยข้อมูลพวก รูปภาพ, วีดีโอ, ออดิโอ หรือไฟล์เอกสารต่างๆ และอาจจะมีฟอร์แมตอื่นๆ อีก สำหรับข้อมูลพวกนี้เราก็จะไปใช้พวก Stroage ต่างๆ เก็บข้อมูลขึ้นอยู่กับว่าใช้ Cloud เจ้าไหน

Principle

เราสามารถสรุปเป็นภาพง่ายๆ ได้ไม่กี่นาทีเองครับ สำหรับการเลือกใช้งาน Database ของ GCP เพราะผมก็ใชัหลักการในการเลือกแบบนี้เลย

❤️💙💚💛

ถ้ามองเป็นภาพแบบนี้จะดูง่ายมากๆ เลยใช่ไหมครับ จริงๆ แล้วก็ไม่ได้กำหนดว่าต้องเป็น GCP นะ แค่เราต้องมองภาพให้ออกว่าเราทำงานแบบไหน 😉 งานวิเคราะห์ หรืองานทรานแซคชัน เก็บแบบไหน SQL หรือ NoSQL ดีหรือถนัดเขียนคิวรี่แบบไหน 🥳หรือบางคนอาจจะมีวิธีวิเคราะห์อย่างอื่นๆ เช่นอาจจะมีเรื่องความเร็ว 💨 หรือความเหมาะสมของ data ก็ขึ้นอยู่กับแต่ละทีมไปครับ ถ้าสรุปกันได้แล้วค่อยมาดูภาพอีกทีว่าต้องใช้ Service ไหนนั้นเอง

SQL or NoSQL

จริงๆ แล้วถ้าเรามองภาพจากสโคปง่ายๆ ว่าเราอยากใช้ว่าเป็น SQL หรือ NoSQL ก่อน เพราะหลักๆ แล้วมันมีการเขียนคิวรี่อยู่ไม่กี่แบบหรอกครับ ถ้าใครไม่ถนัดเขียน SQL ก็แค่ไปทำ NoSQL แทนแบบนี้ หรืออาจจะวิเคราะห์ด้านประสิทธิภาพของ SQL และ NoSQL ร่วมด้วย อันนี้ก็แล้วแต่หลักการของแต่ละคนไป

Do the right job 🥹

หลังจาการเลือกได้แล้วว่าจะทำ SQL หรือ NoSQL เราก็มาวิเคราะห์ว่าเราต้องการทำ Transaction data หรือ Analytic data เช่นเราต้องการทำแอพสั่งอาหารและมีพวก History, Order detail อะไรต่างๆ ก็คือว่าง่ายๆ ทำ Database มารองรับการทำงานของแอพพลิแคชั่นก็ให้ไปทาง Transactional workload แล้วค่อยทำ pipeline หรือ process บางอย่างเพื่อโยนไปให้ฝั่ง Analytical Workload ใช้งานอีกทีอันนี้ก็แล้วแต่การออกแบบอีกนั้นแหละครับ

แต่ถ้าเราต้องสร้าง Database เพื่อไว้สำหรับทำ ML, AI หรือทำ Customer Data Platform (CDP) เพื่อให้ทาง Business หรือทีม Data Analytic เข้ามาใช้ Data ก็ให้เลือกไปทาง Analytical Workload

Scale 🏛️

สำหรับพวก Storage และ Database service ของ GCP เป็น full-managed service อยู่แล้วครับ ดังนั้นเราเลยไม่ต้องห่วงเรื่องการทำ Scale แต่ไม่ได้บอกว่ามันไม่ต้อง Scale นะครับ ️🤣

ถ้าเป็นพวก Transactional workload ตรงส่วนของ SQL เราก็ยังต้อง config การ scale อยู่ แต่มันก็ไม่ยากแบบสมัยก่อน สมัยยังไม่มี cloud เพราะเราสามารถตั้งค่าได้ตั้งแต่ตอนที่สร้าง Service ครับ สามารถเข้าไปลองกด explore กันเล่นๆ ดูได้ แต่ในส่วนของ Big Query หรือ Analytical Workload พวกนี้ Google เขาจัดการให้อยู่แล้วตรงนี้เราแทบจะไม่ต้องสนใจเรื่อง scale เลย จะเหลือแค่มาคำนวนเรื่อง cost แทน 😎

ขอบคุณที่เข้ามาอ่าน หากมีคอมเม้นหรือคำแนะนำให้ปรับปรุงสามารถคอมเม้นกันมาได้นะครับ ❤️

--

--