Realtime vs Cloud Firestore: เลือกฐานข้อมูล Firebase ใด
เผยแพร่แล้ว: 2018-10-12ประวัติย้อนกลับไปในฐานข้อมูล Firebase ไม่ไกลเกินไป ก่อตั้งขึ้นในฐานะแพลตฟอร์มการพัฒนามือถือและเว็บ Firebase เกิดขึ้นในปี 2011 จากนั้นในปี 2014 ก็ถูกซื้อกิจการโดย Google ยักษ์ใหญ่ด้านเทคโนโลยีและชะตากรรมของมันเปลี่ยนไป
ก้าวข้ามประวัติศาสตร์วิวัฒนาการของ Firebase ภายในหนึ่งปีหลังจากที่ Google เข้าซื้อกิจการ มันถูกรวมเข้ากับ Divshot และตั้งแต่นั้นมาก็ขยายเป็นแพลตฟอร์มแบบครบวงจรสำหรับนักพัฒนามือถือ
ตอนนี้ Firebase ผสานรวมกับบริการอื่นๆ ของ Google เพื่อนำเสนอผลิตภัณฑ์และขนาดที่กว้างขึ้นสำหรับนักพัฒนา อันที่จริง ประโยชน์ที่ได้รับทำให้ Firebase สำหรับสตาร์ท อัพเป็นกระบวนการที่กำลังมาแรง
ฐานข้อมูล Firebase คืออะไร? Firebase คือ BaaS นั่นคือ Backend as a Service การใช้ผลิตภัณฑ์ที่จัดทำโดย Firebase ไม่ใช่แค่นักพัฒนาอุปกรณ์เคลื่อนที่เท่านั้นที่สามารถสร้างแอปพลิเคชันคุณภาพสูงได้ Google ได้เปิดตัวคุณลักษณะใหม่หลายอย่างสำหรับ ผู้ใช้เว็บ Firebase เช่นกัน
Firebase มีอยู่สองผลิตภัณฑ์ที่ทำให้สามารถสร้างแอปพลิเคชันทั้งหมดที่เราเพิ่งกล่าวถึงได้ เรียลไทม์และ Cloud Firestore
เรียลไทม์เป็นผลิตภัณฑ์ที่มีรากฐานมาอย่างดีของฐานข้อมูล Firebase ของ Google และ Cloud Firestore ในขณะที่มีแนวโน้มว่าเทคโนโลยีที่ดีกว่าจะยังคงอยู่ในขั้นตอนการทดสอบเบต้า
ตาม Google :
ฐานข้อมูลเรียลไทม์ เป็นฐานข้อมูลดั้งเดิมของ Firebase เป็นโซลูชันที่มีประสิทธิภาพและมีเวลาแฝงต่ำสำหรับแอปบนอุปกรณ์เคลื่อนที่ที่ต้องการสถานะการซิงค์ระหว่างไคลเอ็นต์ในแบบเรียลไทม์
Cloud Firestore เป็นฐานข้อมูลเรือธงใหม่ของ Firebase สำหรับ การพัฒนาแอพมือถือ ปรับปรุงความสำเร็จของฐานข้อมูลเรียลไทม์ด้วยโมเดลข้อมูลใหม่ที่ใช้งานง่ายยิ่งขึ้น Cloud Firestore ยังนำเสนอการสืบค้นข้อมูลที่สมบูรณ์ยิ่งขึ้น เร็วขึ้น และปรับขนาดได้ดีกว่าฐานข้อมูลเรียลไทม์
ก่อนที่จะมาที่คุณสมบัติแต่ละรายการของ Realtime Database และ Cloud Firestore ให้เรามาดูกันว่าข้อดีและข้อเสียของการใช้ฐานข้อมูล Firebase สำหรับโครงการต่อไปของคุณมีอะไรบ้าง:
ข้อดีของฐานข้อมูล Firebase:
หากเราดูรายการเหตุผลแล้ว เหตุใดจึงควรใช้ฐานข้อมูล firebase เป็นฐานข้อมูลแบบครบวงจรสำหรับ การพัฒนาแอปบนมือถือและเว็บแอป ทั้งหมด เราจะเห็นว่าเหตุใด Firebase db จึงได้รับความนิยมอย่างมากในอุตสาหกรรมการพัฒนาแอปบนอุปกรณ์เคลื่อนที่
- การย้ายข้อมูลอย่างง่าย – การพัฒนาล่าสุดทำให้นักพัฒนามีเครื่องมือในการโยกย้ายข้อมูลออกได้อย่างง่ายดาย
- ไม่จำเป็นต้องมีความรู้เพิ่มเติม – เกือบไม่มีความรู้ที่จำเป็นเกี่ยวกับ devOps หรือ sysadmin เพื่อทำงานใน Firebase db
- การตรวจสอบความถูกต้องของข้อมูลประเภทต่างๆ – แม้ว่าโครงสร้างฐานข้อมูล Firebase จะไม่มีสคีมา แต่ก็ยังมีความสามารถพื้นฐานในการตรวจสอบข้อมูลประเภทต่างๆ
- เครื่องมือแบบครบวงจร – เป็นเครื่องมือที่ครอบคลุมทุกอย่างและเป็นเครื่องมือเดียวที่คุณต้องการสำหรับแบ็คเอนด์ของแอปพลิเคชันมือถือขนาดเล็ก
- ใช้งานง่ายกว่า – ระดับความยากในการใช้งานสูงกว่าค่าเฉลี่ยเล็กน้อย แต่ง่ายกว่าระบบอื่นๆ ส่วนใหญ่เมื่อต้องผสานรวมกับการวิเคราะห์และการตรวจสอบความผิดพลาด
- การใช้งานฟรี – ฟรีในช่วงเริ่มต้น ดังนั้นนักพัฒนาที่ทดลองใช้งานครั้งแรกจึงไม่ต้องกังวลกับการลงทุนครั้งแรกครั้งใหญ่
- Rich Code Libraries – ไลบรารีโค้ด ทั้งหมดในภาษาการเขียนโปรแกรมมีความคล้ายคลึงกันและได้รับการดูแลอย่างดีสำหรับผู้มาใหม่เช่นกัน
- โครงสร้างข้อมูล JSON – โครงสร้าง ข้อมูลคือ JSON ซึ่งจับคู่กับ UI JavaScript ได้อย่างสมบูรณ์แบบ
- การพัฒนาที่รวดเร็ว – การสร้างแอปพลิเคชันตั้งแต่เริ่มต้นนั้นรวดเร็วมาก – การรับรองความถูกต้อง อีเมล การกำหนดเวอร์ชัน โฮสติ้ง การตรวจสอบ DevOps เวลาทำงาน
- สตรีมได้ง่าย – การทำงานแบบเรียลไทม์หรือการอัปเดตการสตรีมนั้นง่ายมาก
ตอนนี้ให้เราเปรียบเทียบฐานข้อมูล The Realtime และ Cloud Firestore เพื่อให้เข้าใจได้ชัดเจนยิ่งขึ้นว่าควรใช้ฐานข้อมูลใด Cloud firestore ยังอยู่ในขั้นตอนการทดสอบเบต้า และกำลังมองหาและทำงานในวิธีที่มีแนวโน้มดีกว่าฐานข้อมูลเรียลไทม์ ในการเปรียบเทียบนี้จะเห็นว่าฐานข้อมูลทั้งสองแตกต่างกันอย่างไรและใครชนะ ฐานข้อมูลเรียลไทม์กับคลาวด์ไฟร์สโตร์
แบบจำลองข้อมูล
- ฐานข้อมูลแบบเรียลไทม์ จัดเก็บข้อมูลเป็นต้นไม้ JSON ขนาดใหญ่หนึ่งต้น ซึ่งทำให้ง่ายต่อการจัดเก็บข้อมูลอย่างง่าย แต่ข้อมูลที่ซับซ้อนหรือแบบลำดับชั้นนั้นยากต่อการจัดระเบียบตามขนาด
- ในทางกลับกัน Cloud Firestore จะเก็บข้อมูลในรูปแบบของเอกสารที่จัดเป็นคอลเลกชัน ในการนี้ การจัดเก็บข้อมูลอย่างง่ายจะคล้ายกับ JSON และจัดเก็บไว้ในเอกสาร ในขณะที่ข้อมูลที่ซับซ้อนหรือแบบลำดับชั้นไม่สามารถจัดระเบียบตามขนาดได้ง่ายขึ้นด้วยการใช้การรวบรวมย่อยภายในเอกสาร และโดยรวมแล้ว มันต้องการการดีนอร์มอลไลซ์เซชั่นที่น้อยลงและการแบนข้อมูล
การสนับสนุนแบบเรียลไทม์และออฟไลน์
- ฐานข้อมูลเรียลไทม์ ให้การสนับสนุนแบบออฟไลน์สำหรับไคลเอ็นต์มือถือ Android และ iOS เท่านั้น
- ในทางกลับกัน Cloud Firestore ให้การสนับสนุนออฟไลน์สำหรับไคลเอนต์ Android, iOS และเว็บเช่นกัน
การสอบถาม
- ฐานข้อมูลแบบเรียลไทม์ ให้การสืบค้นเชิงลึกพร้อมฟังก์ชันการเรียงลำดับและการกรองที่จำกัด ซึ่งนักพัฒนาสามารถเรียงลำดับหรือกรองคุณสมบัติในแบบสอบถามเดียว และการสืบค้นข้อมูลทั้งหมดนั้นลึกโดยค่าเริ่มต้น กล่าวคือ จะส่งคืนทรีย่อยทั้งหมดเสมอ
- Cloud Firestore จัดทำดัชนีการสืบค้นด้วยการเรียงลำดับและการกรองแบบผสม ซึ่งนักพัฒนาสามารถเชื่อมโยงตัวกรองและรวมการกรองและการเรียงลำดับบนคุณสมบัติในการสืบค้นเดียว นอกจากนี้ยังสามารถเขียนแบบสอบถามแบบตื้นสำหรับคอลเลกชันย่อยได้ กล่าวคือ นักพัฒนาสามารถสืบค้นภายในเอกสารแทนการสืบค้นทั้งคอลเลกชันหรือทั้งเอกสาร ไม่เพียงแค่นี้แต่คิวรีจะถูกสร้างดัชนีโดยค่าเริ่มต้น หมายความว่าประสิทธิภาพของคิวรีเป็นสัดส่วนกับขนาดของชุดผลลัพธ์และไม่ใช่ชุดข้อมูล
ธุรกรรม
- ใน ฐานข้อมูลเรียลไทม์ มีการดำเนินการเขียนและธุรกรรมพื้นฐาน เขียนข้อมูลทำงานเป็นการดำเนินการแต่ละรายการและธุรกรรมจำเป็นต้องมีการเรียกกลับให้เสร็จสิ้นใน SDK ดั้งเดิม
- Cloud Firestore อนุญาตให้ดำเนินการเขียนและธุรกรรมของ Atomic มันแบทช์การทำงานและดำเนินการให้เสร็จสิ้นโดยอัตโนมัติ นอกจากนี้ ธุรกรรมจะทำซ้ำโดยอัตโนมัติจนกว่าจะเสร็จสิ้น
ประสิทธิภาพและความน่าเชื่อถือ
- ฐาน ข้อมูล เรียลไทม์ เป็นผลิตภัณฑ์สำหรับผู้ใหญ่ มีความเสถียรจากการทดลองและทดสอบผลิตภัณฑ์จริงหลายครั้ง นอกจากนี้ยังมีเวลาแฝงที่ต่ำมาก ดังนั้นจึงเป็นตัวเลือกที่ดีสำหรับการซิงค์สถานะบ่อยๆ แม้ว่าฐานข้อมูลจะจำกัดความพร้อมใช้งานของโซนในภูมิภาคเดียว
- ยังวัดประสิทธิภาพของ Cloud Firestore ไม่ได้เนื่องจาก ยังอยู่ในช่วงเบต้า และความเสถียรในผลิตภัณฑ์เบต้านั้นไม่เหมือนกับผลิตภัณฑ์ที่เปิดตัวอย่างสมบูรณ์ แต่ในแง่ของความน่าเชื่อถือ Cloud Firestore จะเก็บข้อมูลทั้งหมดของคุณไว้ในศูนย์ข้อมูลหลายแห่งในภูมิภาคต่างๆ ทำให้มั่นใจได้ถึงความสามารถในการปรับขนาดทั่วโลกและความน่าเชื่อถือที่แข็งแกร่ง ตามทฤษฎีแล้ว เมื่อใดก็ตามที่ Cloud Firestore ออกจากรุ่นเบต้า ก็จะมีความน่าเชื่อถือที่แข็งแกร่งกว่าฐานข้อมูลแบบเรียลไทม์
ความสามารถในการปรับขนาด
- ใน ฐานข้อมูลเรียลไทม์ การปรับขนาดต้องใช้การแบ่งส่วนข้อมูล พูดง่ายๆ ก็คือ ปรับขนาดเป็นการเชื่อมต่อพร้อมกันประมาณ 100,000 ครั้ง และการเขียน 1,000 ครั้ง/วินาทีในฐานข้อมูลเดียว และยิ่งไปกว่านั้น จำเป็นต้องมีการแบ่งส่วนข้อมูลของคุณในหลายฐานข้อมูล
- เมื่อ Cloud firestore ออกเวอร์ชันเบต้า การปรับขนาดจะเป็นไปโดยอัตโนมัติและนักพัฒนาจะไม่ต้องแบ่งข้อมูลออกเป็นหลายอินสแตนซ์
ความปลอดภัย
- ฐานข้อมูลเรียลไทม์ มีกฎการเรียงซ้อนที่ต้องการการตรวจสอบแยกต่างหาก กฎฐานข้อมูล firebase เป็นเพียงตัวเลือกความปลอดภัยเท่านั้น และนักพัฒนาจำเป็นต้องตรวจสอบข้อมูลแยกกันโดยใช้กฎ 'ตรวจสอบ'
- Cloud Firestore มีการรักษาความปลอดภัยที่เรียบง่ายและมีประสิทธิภาพมากขึ้นสำหรับ SDK มือถือ เว็บและเซิร์ฟเวอร์ที่ใช้ Identity and Access Management (IAM) การตรวจสอบข้อมูลยังเกิดขึ้นโดยอัตโนมัติ นอกจากนี้ กฎยังสามารถจำกัดการสืบค้นข้อมูล กล่าวคือ หากผลลัพธ์ของการสืบค้นอาจมีข้อมูลที่นักพัฒนาไม่สามารถเข้าถึงได้ การสืบค้นข้อมูลทั้งหมดจะล้มเหลว
ราคา
- ฐาน ข้อมูล เรียลไทม์ คิดค่าใช้จ่ายเฉพาะแบนด์วิดท์และพื้นที่เก็บข้อมูล แต่มีราคาสูงกว่า
- ในทางกลับกัน Cloud Firestore จะเรียกเก็บเงินจากการดำเนินการในฐานข้อมูลของคุณเป็นหลัก (อ่าน เขียน ลบ) และในอัตราที่ต่ำกว่า แบนด์วิดท์ และที่เก็บข้อมูล นอกจากนี้ยังรองรับการจำกัดการใช้จ่ายรายวันสำหรับโครงการ Google App Engine
คุณยังคงสงสัยว่า firebase ทำงานอย่างไร? มาย้อนบทสรุปของสิ่งที่เรารู้ในบทความข้างต้นกัน
เมื่อใดควรใช้ฐานข้อมูลเรียลไทม์:
- หากข้อมูลของคุณเรียบง่ายและไม่ซับซ้อนหรือมีลำดับชั้น
- หากคุณต้องการปรับขนาดให้ต่ำกว่า 100,000 การเชื่อมต่อพร้อมกัน 1,000 ครั้ง/วินาทีในฐานข้อมูลเดียว
- เมื่อคุณต้องการฐานข้อมูลที่คิดค่าใช้จ่ายสำหรับแบนด์วิดธ์และพื้นที่จัดเก็บโดยรวมและไม่ได้ดำเนินการใดๆ
เมื่อใดควรใช้ฐานข้อมูล Cloud Firestore:
- หากข้อมูลของคุณซับซ้อนหรือเป็นลำดับชั้น
- หากข้อมูลของคุณขยายเกิน 100,000 การเชื่อมต่อพร้อมกัน
- หากคุณต้องการวงเงินการใช้จ่ายที่แม่นยำยิ่งขึ้นและฐานข้อมูลที่เรียกเก็บเงินจาก 1 เป็นหลักคือ PicCollage, Fabulous, Shazam และ Skyscanner และเราทุกคนต่างเห็นพ้องกันว่าพวกเขากำลังทำงานสำเร็จ
โดยสรุป โมเดล Firebase db ทำได้ดีสำหรับพวกเขา Firebase แบบเรียลไทม์ทำงานได้อย่างประสบความสำเร็จมาหลายปีแล้วและในปีที่แล้วด้วยการเปิดตัว Cloud Firestore รุ่นเบต้า สิ่งที่ดีกว่านั้นอยู่ในร้านนักพัฒนาแอปบนอุปกรณ์เคลื่อนที่และบริษัทพัฒนาแอป