มันคือ Oracle หรือ MySQL หรือสิ่งที่พวกเขาสร้างขึ้นเอง?
มันคือ Oracle หรือ MySQL หรือสิ่งที่พวกเขาสร้างขึ้นเอง?
คำตอบ:
ระบบจัดเก็บข้อมูลแบบกระจายสำหรับข้อมูลที่มีโครงสร้าง
Bigtable เป็นระบบจัดเก็บข้อมูลแบบกระจาย (สร้างโดย Google) สำหรับการจัดการข้อมูลที่มีโครงสร้างที่ออกแบบมาเพื่อปรับขนาดให้ใหญ่ขนาด: เพตาไบต์ของข้อมูลในเซิร์ฟเวอร์สินค้าโภคภัณฑ์นับพัน
หลายโครงการที่ Google เก็บข้อมูลไว้ใน Bigtable รวมถึงการทำดัชนีเว็บ Google Earth และ Google Finance แอปพลิเคชันเหล่านี้มีความต้องการที่แตกต่างกันมากใน Bigtable ทั้งในแง่ของขนาดข้อมูล (จาก URL ไปยังหน้าเว็บไปยังภาพถ่ายจากดาวเทียม) และความต้องการเวลาแฝง (จากการประมวลผลแบ็กเอนด์จำนวนมากไปจนถึงการให้บริการข้อมูล
แม้จะมีความต้องการที่หลากหลายเหล่านี้ Bigtable ได้มอบโซลูชั่นที่มีความยืดหยุ่นและประสิทธิภาพสูงสำหรับผลิตภัณฑ์ Google เหล่านี้ทั้งหมด
คุณสมบัติบางอย่าง
สถาปัตยกรรม
BigTable ไม่ใช่ฐานข้อมูลเชิงสัมพันธ์ ไม่รองรับการเชื่อมต่อและไม่รองรับการสืบค้นที่คล้ายกับ SQL แต่ละตารางเป็นแผนที่กระจัดกระจายหลายมิติ ตารางประกอบด้วยแถวและคอลัมน์และแต่ละเซลล์มีการประทับเวลา อาจมีหลายรุ่นของเซลล์ที่มีการประทับเวลาที่แตกต่างกัน การประทับเวลาอนุญาตให้ใช้งานเช่น "select 'n' รุ่นของเว็บเพจนี้" หรือ "ลบเซลล์ที่เก่ากว่าวันที่ / เวลาที่ระบุ"
เพื่อจัดการตารางขนาดใหญ่ Bigtable แยกตารางที่ขอบเขตแถวและบันทึกเป็นแท็บเล็ต แท็บเล็ตมีขนาดประมาณ 200 MB และแต่ละเครื่องจะบันทึกได้ประมาณ 100 เม็ด การตั้งค่านี้อนุญาตให้แท็บเล็ตกระจายจากตารางเดียวไปยังเซิร์ฟเวอร์อื่น ๆ นอกจากนี้ยังช่วยให้สมดุลภาระที่ละเอียด หากตารางหนึ่งได้รับข้อความค้นหาจำนวนมากสามารถส่งแท็บเล็ตอื่นหรือย้ายตารางไม่ว่างไปยังเครื่องอื่นที่ไม่ว่าง นอกจากนี้หากเครื่องหยุดทำงานแท็บเล็ตอาจกระจายไปทั่วเซิร์ฟเวอร์อื่น ๆ เพื่อให้ประสิทธิภาพการทำงานของเครื่องใด ๆ ลดน้อยลง
ตารางจะถูกจัดเก็บเป็น SSTables ที่ไม่เปลี่ยนรูปแบบและส่วนท้ายของบันทึก (หนึ่งบันทึกต่อเครื่อง) เมื่อเครื่องไม่มีหน่วยความจำระบบจะบีบอัดแท็บเล็ตบางส่วนโดยใช้เทคนิคการบีบอัดข้อมูลที่เป็นกรรมสิทธิ์ของ Google (BMDiff และ Zippy) การบีบอัดเล็กน้อยเกี่ยวข้องกับแท็บเล็ตเพียงไม่กี่เม็ดในขณะที่การบีบอัดสำคัญเกี่ยวข้องกับระบบตารางทั้งหมดและกู้คืนพื้นที่ว่างในฮาร์ดดิสก์
ตำแหน่งของแท็บเล็ต Bigtable จะถูกเก็บไว้ในเซลล์ การค้นหาแท็บเล็ตโดยเฉพาะนั้นได้รับการจัดการโดยระบบสามระดับ ลูกค้าได้รับคะแนนจากตาราง META0 ซึ่งมีเพียงตารางเดียว ตาราง META0 ติดตามแท็บเล็ต META1 จำนวนมากที่มีตำแหน่งของแท็บเล็ตที่ค้นหาอยู่ ทั้ง META0 และ META1 ใช้การดึงข้อมูลล่วงหน้าและแคชอย่างหนักเพื่อลดปัญหาคอขวดในระบบ
การดำเนินงาน
BigTable สร้างขึ้นในGoogle File System (GFS) ซึ่งใช้เป็นที่เก็บข้อมูลสำรองสำหรับไฟล์บันทึกและข้อมูล GFS จัดเก็บข้อมูลที่เชื่อถือได้สำหรับ SSTables ซึ่งเป็นรูปแบบไฟล์ที่เป็นกรรมสิทธิ์ของ Google ที่ใช้เพื่อเก็บข้อมูลตาราง
บริการอื่นที่ BigTable ใช้งานหนักคือChubbyบริการล็อคแบบกระจายที่มีความน่าเชื่อถือสูง Chubby อนุญาตให้ลูกค้าทำการล็อคซึ่งอาจเชื่อมโยงกับข้อมูลเมตาบางตัวซึ่งสามารถต่ออายุได้โดยส่งข้อความที่มีชีวิตกลับไปที่ Chubby การล็อคถูกเก็บไว้ในโครงสร้างการตั้งชื่อตามลำดับชั้นที่คล้ายกับระบบไฟล์
มีเซิร์ฟเวอร์หลักสามประเภทที่น่าสนใจในระบบ Bigtable:
ตัวอย่างจากรายงานการวิจัยของ Google:
ส่วนหนึ่งของตารางตัวอย่างที่เก็บเว็บเพจ ชื่อแถวคือ URL ที่กลับด้าน ตระกูลคอลัมน์เนื้อหามีเนื้อหาของหน้าและตระกูลคอลัมน์จุดยึดมี ข้อความของจุดยึดใด ๆที่อ้างอิงหน้า หน้าแรกของซีเอ็นเอ็นถูกอ้างอิงโดยทั้งปอและหน้าบ้านของฉันมองเพื่อให้แถวที่มีคอลัมน์ชื่อ และ
anchor:cnnsi.com
anchor:my.look.ca
เซลล์สมอแต่ละคนมีรุ่นหนึ่ง ; คอลัมน์เนื้อหามีสามรุ่นที่ timestampst3
, และt5
t6
API
การดำเนินการตามปกติกับ BigTable คือการสร้างและการลบตารางและตระกูลคอลัมน์การเขียนข้อมูลและการลบคอลัมน์จากแถว BigTable ให้ฟังก์ชันนี้แก่ผู้พัฒนาแอปพลิเคชันใน API ธุรกรรมได้รับการสนับสนุนในระดับแถว แต่ไม่สามารถใช้ได้กับแป้นแถวหลายแถว
นี่คือการเชื่อมโยงไปยังไฟล์ PDF กระดาษวิจัย
และที่นี่คุณสามารถค้นหาวิดีโอที่แสดง Jeff Dean ของ Google ในการบรรยายที่ University of Washingtonโดยพูดคุยเกี่ยวกับระบบจัดเก็บเนื้อหา Bigtable ที่ใช้ในแบ็กเอนด์ของ Google
มันเป็นสิ่งที่พวกเขาสร้างขึ้นเอง - เรียกว่า Bigtable
http://en.wikipedia.org/wiki/BigTable
Google มีเอกสารอยู่บนฐานข้อมูล:
Spannerเป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์ที่กระจายทั่วโลกของ Google (RDBMS) ซึ่งเป็นตัวตายตัวแทนของBigTable BigTableGoogle อ้างว่ามันไม่ใช่ระบบสัมพันธ์ที่บริสุทธิ์เพราะแต่ละตารางจะต้องมีคีย์หลัก
นี่คือลิงค์ของกระดาษ
Spanner เป็นฐานข้อมูลที่สามารถปรับขยายได้หลายรุ่นกระจายทั่วโลกและทำซ้ำแบบซิงโครนัสของ Google มันเป็นระบบแรกในการกระจายข้อมูลในระดับโลกและรองรับธุรกรรมการกระจายที่สอดคล้องกันจากภายนอก บทความนี้จะอธิบายถึงโครงสร้างของ Spanner ชุดคุณลักษณะของมันเหตุผลในการตัดสินใจออกแบบต่าง ๆ และ API เวลาใหม่ที่ทำให้เกิดความไม่แน่นอนของนาฬิกา API นี้และการใช้งานนั้นมีความสำคัญต่อการสนับสนุนความสอดคล้องภายนอกและคุณสมบัติที่มีประสิทธิภาพหลากหลาย: การอ่านแบบไม่บล็อกในอดีตธุรกรรมแบบอ่านอย่างเดียวที่ไม่ล็อคฟรีและการเปลี่ยนแปลงแบบแผนอะตอมมิคตลอดทั้งประแจ
ฐานข้อมูลอื่นคิดค้นโดย Google เป็นMegastore นี่คือนามธรรม:
Megastore เป็นระบบจัดเก็บข้อมูลที่พัฒนาขึ้นเพื่อตอบสนองความต้องการของบริการออนไลน์เชิงโต้ตอบในปัจจุบัน Megastore ผสมผสานความสามารถในการปรับขนาดของ NoSQL datastore เข้ากับความสะดวกสบายของ RDBMS แบบดั้งเดิมในแบบที่แปลกใหม่และให้การรับประกันความมั่นคงที่มั่นคงและความพร้อมใช้งานสูง เราให้ความหมายของกรด ACID ที่ต่อเนื่องกันได้อย่างเต็มที่ภายในพาร์ติชั่นข้อมูลที่ละเอียด การแบ่งพาร์ติชันนี้ช่วยให้เราสามารถทำซ้ำการเขียนแต่ละรายการในเครือข่ายบริเวณกว้างด้วยความหน่วงแฝงที่เหมาะสมและสนับสนุนความล้มเหลวอย่างไร้รอยต่อระหว่างดาต้าเซ็นเตอร์ บทความนี้อธิบายความหมายและอัลกอริธึมการจำลองแบบของ Megastore นอกจากนี้ยังอธิบายประสบการณ์ของเราที่สนับสนุนบริการการผลิตของ Google ที่หลากหลายที่สร้างด้วย Megastore
ดังที่คนอื่นพูดถึง Google ใช้โซลูชันพื้นบ้านที่เรียกว่า BigTable และพวกเขาได้เปิดตัวเอกสารสองสามฉบับที่อธิบายถึงโลกแห่งความจริง
ชาวอาปาเช่มีการดำเนินการของความคิดที่นำเสนอในเอกสารเหล่านี้เรียกว่าHBase HBase เป็นส่วนหนึ่งของโครงการ Hadoop ที่ใหญ่กว่าซึ่งอ้างอิงจากไซต์ของพวกเขา"เป็นแพลตฟอร์มซอฟต์แวร์ที่ช่วยให้ผู้ใช้เขียนและเรียกใช้แอปพลิเคชันที่ประมวลผลข้อมูลจำนวนมหาศาลได้อย่างง่ายดาย" มาตรฐานบางอย่างค่อนข้างน่าประทับใจ เว็บไซต์ของพวกเขาที่http://hadoop.apache.org
แม้ว่า Google จะใช้ BigTable สำหรับแอปพลิเคชันหลักทั้งหมด แต่พวกเขายังใช้ MySQLสำหรับแอปอื่น ๆ
และอาจเป็นประโยชน์ด้วยที่จะรู้ว่า BigTable ไม่ใช่ฐานข้อมูลเชิงสัมพันธ์ (เช่น MySQL) แต่เป็นตารางแฮชขนาดใหญ่ (กระจาย) ซึ่งมีลักษณะแตกต่างกันมาก คุณสามารถเล่นกับ BigTable (เวอร์ชั่น จำกัด ) ด้วยตัวคุณเองบนแพลตฟอร์มGoogle AppEngine
ถัดจาก Hadoop ที่กล่าวถึงข้างต้นมีการใช้งานอื่น ๆ อีกมากมายที่พยายามแก้ไขปัญหาเช่นเดียวกับ BigTable (ความสามารถในการขยายขนาดความพร้อมใช้งาน) ผมเห็นโพสต์บล็อกที่ดีเมื่อวานนี้ในรายการใหญ่ของพวกเขาที่นี่
Google ใช้ Bigtable เป็นหลัก
Bigtable เป็นระบบจัดเก็บข้อมูลแบบกระจายสำหรับการจัดการข้อมูลที่มีโครงสร้างที่ออกแบบมาเพื่อปรับขนาดให้ใหญ่มาก
สำหรับข้อมูลเพิ่มเติมดาวน์โหลดเอกสารจากที่นี่
Google ยังใช้ฐานข้อมูล Oracle และ MySQL สำหรับแอปพลิเคชันบางตัว
ข้อมูลเพิ่มเติมใด ๆ ที่คุณสามารถเพิ่มได้คือความนิยมอย่างสูง
Google also use Oracle
- จำเป็นต้องมีการอ้างอิง
บริการของ Google มีสถาปัตยกรรมการคงอยู่หลายภาษา BigTable ได้รับประโยชน์จากบริการส่วนใหญ่เช่น YouTube, Google Search, Google Analytics เป็นต้นบริการค้นหาใช้ MapReduce สำหรับโครงสร้างพื้นฐานของดัชนีในขั้นต้น แต่ภายหลังเปลี่ยนเป็น BigTable ในระหว่างการปล่อยคาเฟอีน
Google Cloud datastore มีแอปพลิเคชั่นมากกว่า 100 รายการที่ Google ผลิตทั้งผู้ใช้งานภายในและภายนอก แอปพลิเคชันเช่น Gmail, Picasa, Google Calendar, Android Market และ AppEngine ใช้ Cloud Datastore & Megastore
Google Trends ใช้ MillWheel สำหรับการประมวลผลสตรีม เริ่มแรกโฆษณา Google ใช้ MySQL ภายหลังย้ายไปยังฐานข้อมูล F1 - ฐานข้อมูลเชิงสัมพันธ์แบบกระจายที่กำหนดเองเป็นลายลักษณ์อักษร Youtube ใช้ MySQL พร้อม Vitess Google เก็บข้อมูลจำนวน Exabytes ไว้ในเซิร์ฟเวอร์ Commodity ด้วยความช่วยเหลือของ Google File System
ที่มา: ฐานข้อมูลของ Google: Google Services เก็บข้อมูลขนาดของ Petabyte-Exabyte อย่างไร
ฐานข้อมูลของ YouTube - มันจัดเก็บวิดีโอมากมายโดยไม่ต้องใช้พื้นที่จัดเก็บได้อย่างไร