เผยแพร่ครั้งแรกเมื่อวันที่ 15 ส.ค. 2019 ที่ ObjectRocket.com/blog
เนื่องจาก CockroachDB® และ PostgreSQL® ได้รวมตัวกันในตลาดเมื่อพูดถึงปริมาณงานเชิงสัมพันธ์ ผู้คนจำนวนมากเริ่มถามว่าควรเลือกอะไร CockroachDB นำเสนอ SQL ระดับโลกอย่างแท้จริงด้วยธุรกรรมแบบกระจายและการปรับสเกลการอ่าน/เขียนแนวนอนในตัวสำหรับขนาดที่ไม่เคยมีมาก่อน ความยืดหยุ่น และประสิทธิภาพสำหรับเวิร์กโหลด SQL อย่างไรก็ตาม ยังมีบางสถานการณ์ที่ PostgreSQL อาจเหมาะสมกว่า
ความคล้ายคลึงระหว่าง CockroachDB และ PostgreSQL
เทคโนโลยีทั้งสองนี้ทับซ้อนกันเล็กน้อย อย่างแรกเลย ทั้งสองโม้:
- การปฏิบัติตามข้อกำหนดของ SQL
- ธุรกรรมกรด
- ความเข้ากันได้ของโปรโตคอลสาย PostgreSQL
- โปรแกรมควบคุมไคลเอ็นต์แบบกว้างและการสนับสนุน ORM
ฟังก์ชันนี้ครอบคลุมประเด็นสำคัญๆ ส่วนใหญ่ ซึ่งหมายความว่าตัวเลือกนั้นมาจากจุดตัดสินใจที่ละเอียดยิ่งขึ้น คุณสามารถลองใช้แอปบนฐานข้อมูลใดฐานข้อมูลหนึ่งและเปลี่ยนไปใช้อีกฐานข้อมูลหนึ่งในภายหลังโดยไม่ต้องเขียนแอปใหม่
โดยมีข้อยกเว้นเพียงไม่กี่ข้อต้องการตรวจสอบ CockroachDB แต่ตัดสินใจว่า PostgreSQL เหมาะสมกว่าหรือไม่ โอกาสค่อนข้างดีที่คุณจะไม่ประสบปัญหาใดๆ คุณมีแอปที่ทำงานบน PostgreSQL แต่คุณกำลังมองหาการปรับขนาดและเฟลโอเวอร์ที่ดีกว่าไหม CockroachDB อาจเหมาะสมกว่า
ตัวแตกต่างที่จะช่วยคุณตัดสินใจ
ความเข้ากันได้ การสืบค้นที่ซับซ้อน มาตราส่วน และความยืดหยุ่นอาจช่วยให้คุณเลือกตัวเลือกใดตัวเลือกหนึ่งได้
สเกล
ความแตกต่างที่ใหญ่ที่สุดคือวิธีที่ผลิตภัณฑ์จัดการกับการปรับขนาด การจำลองแบบ และความพร้อมใช้งานสูง (HA) CockroachDB สร้างขึ้นจากพื้นฐานเพื่อให้ฐานข้อมูล SQL ทั่วโลกพร้อมธุรกรรมแบบกระจาย คุณสามารถกระจายข้อมูลของคุณทั่วทั้งคลาวด์และภูมิภาคด้วยการควบคุมที่ละเอียดถี่ถ้วนว่าข้อมูลใดบ้างที่ได้รับอนุญาตให้อยู่ในแต่ละภูมิภาคหรือบนคลาวด์ แม้ว่าจะมีโซลูชันและส่วนขยายสำหรับการให้ฟังก์ชันการทำงานที่เหมือนกันกับ PostgreSQL แต่ก็ไม่ได้สมบูรณ์และกำหนดค่าได้ไม่ง่ายนัก และจัดการ
การมุ่งเน้นของ CockroachDB ในระดับโลกช่วยให้เป็นมิตรกับคลาวด์มากขึ้น CockroachDB คาดว่าจะมีโหนดขนาดเล็กและแบบใช้แล้วทิ้งจำนวนมาก ดังนั้นการปรับขนาดและ HA จึงสามารถจัดการเบื้องหลังได้อย่างง่ายดายสำหรับคุณ
ในทางกลับกัน PostgreSQL มีโซลูชันมากมายสำหรับ multi-master, scaling และ HA แต่ฟังก์ชันส่วนใหญ่นั้นไม่รวมอยู่ใน PostgreSQL และต้องการส่วนขยายของบุคคลที่สาม นอกจากนี้ การตั้งค่า การกำหนดค่า และการจัดการแบบวันต่อวันยังซับซ้อนกว่าเล็กน้อยสำหรับการปรับใช้ HA PostgreSQL
ความยืดหยุ่น
ประโยชน์ที่แท้จริงของ PostgreSQL คือหลายปีของการต่อสู้ที่แข็งแกร่งและขอบเขตของการปรับแต่งและส่วนขยาย เพียงเปรียบเทียบเอกสารประกอบสำหรับการกำหนดค่าเซิร์ฟเวอร์บน PostgreSQL แล้วคุณจะเห็นตัวเลือกมากมายและพารามิเตอร์การปรับแต่งสำหรับคลัสเตอร์ของคุณ ต้องการระดับการแยก? คุณมีสี่ตัวเลือก ในขณะที่ CockroachDB ให้ตัวเลือกเดียวเท่านั้น ต้องการการจำลองแบบ? PostgreSQL มีทางเลือกถึง 8 ทาง ในขณะที่ CockroachDB จัดการอยู่เบื้องหลัง
PostgreSQL ยังเสนอระบบนิเวศส่วนขยายขนาดใหญ่เพื่อขยายผลิตภัณฑ์ มีส่วนขยายหลายร้อยรายการต่อสาธารณะ และคุณสามารถเขียนส่วนขยายของคุณเองได้ ช่วงเหล่านี้มีตั้งแต่การเพิ่มการจัดกลุ่ม (เช่น Citus) ไปจนถึงวัตถุใหม่ (postGIS) ไปจนถึงการปรับ PostgreSQL ให้เหมาะสมสำหรับกรณีการใช้งานเฉพาะ (Timescale) ความยืดหยุ่นนี้มาพร้อมกับค่าใช้จ่ายอย่างแน่นอน มันสามารถทำให้เกิดความซับซ้อนและส่งผลกระทบต่อประสิทธิภาพและความเสถียรของอินสแตนซ์ของคุณ คุณอาจจบลงด้วยการกำหนดค่าสภาพแวดล้อมของคุณผิดพลาด วิธี CockroachDB ช่วยลดความซับซ้อนของสิ่งต่างๆ เพื่อให้การสร้างและจัดการคลัสเตอร์ตรงไปตรงมา
ความเข้ากันได้
หากคุณต้องการความสอดคล้องของ PostgreSQL หรือ SQL ที่สมบูรณ์กว่า PostgreSQL เป็นทางเลือกที่ดีกว่า ไม่ว่าคุณจะมีแอปรุ่นเก่าหรือต้องการแบ็กเอนด์สโตร์สำหรับ CMS มาตรฐานหรือเฟรมเวิร์กของเว็บ อาจมีการพึ่งพา PostgreSQL หรือ SQL อย่างมากที่ Cockroach อาจยังไม่รองรับ แม้ว่า Cockroach Labs ยังคงเพิ่มคุณสมบัติและฟังก์ชันการทำงานเพิ่มเติมให้กับผลิตภัณฑ์ แต่ก็ยังไม่สามารถใช้งานร่วมกับ PostgreSQL ได้ 100% อีกด้านที่คุณอาจเห็นความแตกต่างคือวิธีที่ CockroachDB จัดการกับบทบาท ผู้ใช้ กลุ่ม และการตรวจสอบสิทธิ์ ตัวเลือก PostgreSQLaauthentication นั้นแข็งแกร่งมาก และแม้ว่าCockroachDB จะเสนอ RBAC แต่ก็มีความแตกต่างที่สำคัญระหว่างสองเทคโนโลยี
คุณสามารถเอาชนะความท้าทายด้านความเข้ากันได้ แต่ท้ายที่สุดก็ขึ้นอยู่กับแอปและความสามารถในการระบุและจัดการกับความเข้ากันไม่ได้ที่อาจเกิดขึ้น
ข้อความค้นหาที่ซับซ้อน
พื้นที่ที่ Cockroach Labs ได้ทุ่มเทความพยายามอย่างมากคือความสามารถในการเข้าร่วมและปรับปรุงประสิทธิภาพด้วยเครื่องมือเพิ่มประสิทธิภาพการสืบค้น SQL ที่อิงตามต้นทุน อย่างไรก็ตาม หากคุณมี Business Intelligence หรือภาระงานด้านการวิเคราะห์ที่มีการสืบค้นที่ซับซ้อนมากและการเข้าร่วม มุมมอง การรวมกลุ่ม และการประเมินนิพจน์หลายรายการ PostgreSQL อาจเป็นตัวเลือกที่ดีกว่า
นี่คือพื้นที่ที่คุณสามารถทดสอบได้อย่างง่ายดายด้วยการประเมินหรือการพิสูจน์แนวคิด ยิ่งกรณีการใช้งานของคุณเข้าใกล้การสืบค้นข้อมูลเชิงวิเคราะห์และ OLAP มากเท่าใด PostgreSQL อาจเป็นทางออกที่ดีกว่า ด้วยธุรกรรมแบบ OLTP ที่รวดเร็ว CockroachDB สามารถช่วยได้มากที่สุด
การเปรียบเทียบโดยย่อ
CockroachDB | PostgreSQL | |
---|---|---|
ปีที่วางจำหน่าย | 2015 | 2539 |
เวอร์ชันเสถียรในปัจจุบัน | 20.1.0 | 13 |
การออกใบอนุญาต | ส่วนประกอบหลักของ Business Source License BSL ใบอนุญาตชุมชนแมลงสาบ CCLenterprise มีใบอนุญาต PostgreSQL | ใบอนุญาต PostgreSQL |
SQ:ความสอดคล้อง* | ความสอดคล้องทั้งหมดหรือบางส่วนด้วยคุณลักษณะ ~244 SQL:2011 | สอดคล้องกับคุณสมบัติ ~385 SQL:2011 |
คะแนนโบนัส | การเปลี่ยนแปลงสคีมาออนไลน์ ธุรกรรมแบบกระจาย | กระบวนงานที่เก็บไว้ เคอร์เซอร์ ทริกเกอร์ มุมมองที่เป็นรูปธรรม |
Wire Protocol | โปรโตคอลสาย PostgreSQL | โปรโตคอลสาย PostgreSQL |
ไดรเวอร์ไคลเอ็นต์ | ตัวเลือกที่ผ่านการทดสอบบวกกับระบบนิเวศขนาดใหญ่เนื่องจากโปรโตคอลสาย PostgreSQL | ระบบนิเวศขนาดใหญ่ของไดรเวอร์อย่างเป็นทางการและชุมชน |
ความเข้ากันได้ของ CMS/เฟรมเวิร์ก | บางส่วน ผ่านความเข้ากันได้ของสาย PostgreSQL | รองรับและเข้ากันได้อย่างกว้างขวางสำหรับเฟรมเวิร์กหลัก |
ปลั๊กอิน/ส่วนขยาย | ชุดคุณลักษณะสำหรับองค์กร | ระบบนิเวศขนาดใหญ่ของการขยายชุมชน |
การจำลองแบบ/HA | มีในตัว | ผ่านโอเพ่นซอร์สเพิ่มเติม/ส่วนขยาย |
หลายมาสเตอร์/คลัสเตอร์ | มีในตัว | ผ่านโอเพ่นซอร์สเพิ่มเติม/ส่วนขยาย |
ศูนย์ข้อมูลหลายศูนย์/ภูมิศาสตร์ | มีในตัว | กำหนดเองหรือผ่านการเพิ่ม/ส่วนขยายโอเพนซอร์ส |
การตรวจสอบสิทธิ์ | รหัสผ่าน ใบรับรอง | รหัสผ่าน, ใบรับรอง, GSSAPI, SSPI, รหัส, LDAP, RADIUS, PAM, BSD |
การอนุญาต | สิทธิ์ตามผู้ใช้และ RBAC | RBAC พร้อมสิทธิ์ระดับแถวและคอลัมน์ รองรับสิทธิ์ SQL:2011 เต็มรูปแบบ |
จุดแข็ง | การปรับขนาดแบบ Cloud-native ความพร้อมใช้งานสูง การกระจายทางภูมิศาสตร์ การกำหนดค่าและการปรับใช้ที่ตรงไปตรงมา | ความยืดหยุ่น การปรับแต่ง ความเข้ากันได้ และระบบนิเวศ |
จุดอ่อน | เวลาแฝงและความสมบูรณ์ของการสนับสนุน/คุณลักษณะของ SQL | ความซับซ้อนตามขนาด ประสิทธิภาพการอ่าน |
บทสรุป | เลือก CockroachDB เมื่อคุณสร้างปริมาณงานแบบ OLTP ที่มีการทำธุรกรรมสูง หรือความสามารถในการขยายขนาด (ในพื้นที่หรือทั่วโลก) เป็นสิ่งสำคัญ | เลือก PostgreSQL หากภาระงานของคุณมีการสืบค้นข้อมูลวิเคราะห์ที่หนักกว่า หรือคุณต้องการเข้าถึงชุดคุณลักษณะขนาดใหญ่ ระบบนิเวศ และแอปที่เข้ากันได้ |
* เนื่องจากไม่มีที่เก็บข้อมูลที่ฉันรู้ 100% ว่าสอดคล้องกับข้อมูลจำเพาะของ SQL:2011 ทั้งหมด ฉันจึงเพียงแค่ดูว่าแต่ละผลิตภัณฑ์รองรับสเป็คมากเพียงใด
คุณมีสองทางเลือกที่ดีก่อนคุณ ทั้งสองสามารถใช้ร่วมกันเพื่อสร้างพอร์ตโฟลิโอคลังข้อมูลที่น่าทึ่ง หากคุณกำลังสร้างจากศูนย์ในวันนี้ และคุณไม่มีความต้องการเฉพาะและความต้องการเฉพาะของ PostgreSQL และการปรับขนาด ให้มองอย่างจริงจังที่ CockroachDB เป็นโอกาสที่น่าทึ่ง อย่างไรก็ตาม หากคุณทราบแล้วว่าต้องการอะไรและต้องการมุ่งเน้นไปที่ความยืดหยุ่นในวงกว้างของ PostgreSQL เราก็สามารถช่วยได้เช่นกัน
ทั้ง PostgreSQL และ CockroachDB พร้อมใช้งานแล้ว ค้นหาสิ่งที่ใช่สำหรับคุณ
บทสรุป
ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังสามารถคลิกแชทขาย เพื่อแชทตอนนี้และเริ่มการสนทนา