Twitter ใช้ Apache Cassandra เพื่อขับเคลื่อนแพลตฟอร์มโซเชียลมีเดียอย่างไร

เผยแพร่แล้ว: 2022-11-17

Twitter เป็นแพลตฟอร์มเครือข่ายสังคมที่ช่วยให้ผู้ใช้สามารถส่งและอ่านข้อความสั้นๆ ที่เรียกว่า "ทวีต" มีมาตั้งแต่ปี 2549 และกลายเป็นหนึ่งในแพลตฟอร์มโซเชียลมีเดียที่ได้รับความนิยมมากที่สุด ในขณะที่ Twitter ใช้ระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) สำหรับบางส่วนของโครงสร้างพื้นฐาน แต่จะใช้ฐานข้อมูล NoSQL ที่เรียกว่า Apache Cassandra เป็นหลัก Cassandra ได้รับการออกแบบมาเพื่อจัดการข้อมูลจำนวนมากโดยมีความพร้อมใช้งานและประสิทธิภาพสูง Twitter ใช้ Cassandra ด้วยเหตุผลหลายประการ ประการแรกสามารถปรับขนาดได้มาก Twitter สามารถเพิ่มโหนด Cassandra ได้อย่างง่ายดายเมื่อฐานผู้ใช้เติบโตขึ้น ประการที่สอง Cassandra มีความพร้อมใช้งานสูง แม้ว่าโหนด Cassandra หนึ่งจะล่ม แต่โหนดอื่น ๆ ก็สามารถรับการหย่อนได้ ในที่สุดแคสแซนดราก็รวดเร็ว นี่เป็นสิ่งสำคัญสำหรับแพลตฟอร์มโซเชียลมีเดียที่ผู้ใช้คาดหวังการอัปเดตตามเวลาจริง ดังนั้น แม้ว่า Twitter จะใช้ฐานข้อมูลเชิงสัมพันธ์ แต่ฐานข้อมูลหลักคือ NoSQL สิ่งนี้ทำให้ Twitter ปรับขนาดได้อย่างรวดเร็วและมอบประสบการณ์ที่รวดเร็วและเชื่อถือได้แก่ผู้ใช้

Kevin Weil ผู้อำนวยการฝ่ายพัฒนาผลิตภัณฑ์ของ Twitter ให้คำอธิบายเกี่ยวกับวิธีที่บริษัทใช้ NoSQL ในวิดีโอที่โพสต์เมื่อต้นปีนี้ ทุกวัน ผู้ใช้ Twitter สร้างข้อมูลประมาณ 12 เพตะไบต์ ซึ่งเท่ากับประมาณ 4 เพตะไบต์ต่อปี Hadoop พร้อมด้วยโครงการโอเพ่นซอร์สของตัวเองที่เรียกว่า FlockDB ใช้ในการวิเคราะห์ ข้อมูลโซเชีย ลและวิเคราะห์ข้อมูล Twitter รวบรวมและใช้ข้อมูลทั้งหมดที่รวบรวมเพื่อนำเสนอเนื้อหาที่เกี่ยวข้อง ตาม Weil SlideShare นี้เป็นสถานที่ที่ดีในการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีที่ Twitter วิเคราะห์กราฟทางสังคม Twitter ยังคงทดลองใช้ Cassandra ซึ่งเป็นฐานข้อมูล NoSQL แบบโอเพ่นซอร์สของ Facebook เป็นบริการ

MySQL เป็นที่เก็บข้อมูลหลักของ Twitter ตั้งแต่เริ่มก่อตั้ง เมื่อเลเยอร์การคงอยู่ขยายเป็นคลัสเตอร์จำนวนมาก Twitter มีการปรับใช้ MySQL ขนาดใหญ่ตั้งแต่เริ่มก่อตั้ง มีคลัสเตอร์ MySQL นับพันที่มีโหนดนับล้านในนั้น และให้บริการการสืบค้นต่อวินาที

Google Cloud ให้บริการฐานข้อมูล NoSQL 2 ประเภท ได้แก่ Cloud Firestore ซึ่งเป็นฐานข้อมูลเชิงเอกสาร และ Cloud Object Storage ซึ่งเป็นระบบจัดเก็บข้อมูล ใช้งานง่ายและปรับให้เหมาะสมสำหรับเอกสารขนาดเล็ก ทำให้เหมาะสำหรับแอปพลิเคชันมือถือ ฐานข้อมูลเอกสารที่สามารถปรับขนาดได้ง่าย ทำงานได้ดี และใช้งานง่ายใน Cloud Datastore

เทคโนโลยี NoSQL ขับเคลื่อนแอพมือถือของ Ryanair ซึ่งเป็นสายการบินที่พลุกพล่านที่สุดในโลก ซึ่งให้บริการผู้ใช้มากกว่า 3 ล้านคนต่อเดือน ในช่วงแปดปีที่ผ่านมา Marriott ใช้ NoSQL เพื่อเรียกใช้ระบบการจองซึ่งสร้างรายได้ 38 พันล้านดอลลาร์ นอกเหนือจากระบบจัดการเนื้อหาที่เป็นกรรมสิทธิ์ของบริษัทแล้ว Presto ซึ่งใช้โดยสำนักพิมพ์หนังสือพิมพ์อันดับ 1 ของสหรัฐอเมริกา The Chronicle of Higher Education ยังใช้ NoSQL

PostgreSQL และ Cassandra เป็นระบบฐานข้อมูลแบ็กเอนด์สองระบบของ Instagram

Twitter ใช้ฐานข้อมูลประเภทใด

เครดิตรูปภาพ: sqlnethub.com

Twitter ใช้ฐานข้อมูลเชิงสัมพันธ์เพื่อจัดเก็บทวีต ฐานข้อมูลนี้ออกแบบมาเพื่อจัดเก็บข้อมูลในชุดตาราง โดยแต่ละตารางจะมีข้อมูลเกี่ยวกับลักษณะเฉพาะของทวีต ตัวอย่างเช่น มีตารางสำหรับข้อมูลผู้ใช้ ตารางสำหรับทวีตเอง และตารางสำหรับความสัมพันธ์ระหว่างผู้ใช้

เราอาจต้องการข้อมูลนี้บางส่วนสำหรับบริการบางอย่างของเรา เช่น การขอให้ส่งคำขอของคุณไปยังเซิร์ฟเวอร์เฉพาะ แต่ไม่จำเป็น หากคุณต้องการกำหนดเส้นทางคำขอของคุณ คุณไม่จำเป็นต้องทราบการประทับเวลาของทวีตของคุณ
อย่างไรก็ตาม ข้อมูลยังคงอยู่ในการจัดเก็บและประมวลผล ไม่จำเป็นต้องลบหรือไม่เปิดเผยข้อมูล ข้อมูลของเราไม่สามารถเข้าถึงได้โดยรัฐบาล แต่ยังคงสามารถใช้เพื่อรวบรวมข้อมูลเกี่ยวกับคุณได้
ข้อกังวลด้านความเป็นส่วนตัวบางประการเป็นผลมาจากการจัดเก็บและประมวลผลข้อมูลนี้ นอกจากนี้ยังช่วยให้รัฐบาลติดตามการเคลื่อนไหวและกิจกรรมของคุณได้ตั้งแต่แรก นอกจากนี้ยังอนุญาตให้รัฐบาลเข้าถึงข้อมูลส่วนบุคคลของคุณโดยไม่ได้รับความยินยอมจากคุณ
เราไม่เก็บข้อความทวีตของคุณ ชื่อและเวลาประทับของบัญชีนี้เป็นสิ่งเดียวที่เราเก็บไว้ เราไม่จัดเก็บเนื้อหาทวีตของคุณ
ทวีตของคุณไม่ได้มาพร้อมกับข้อมูลใด ๆ ที่เราสามารถเก็บไว้ได้
เราจัดเก็บเฉพาะชื่อบัญชีและเวลาประทับเมื่ออัปโหลดภาพ

ประโยชน์ของการใช้ Mysql

Twitter เคยใช้ MySQL เพื่อจัดเก็บทวีตในอดีต MySQL สามารถจัดการคำขอจำนวนมากได้เนื่องจากความน่าเชื่อถือและลักษณะที่สอดคล้องกัน Facebook ใช้ MySQL เพื่อจัดเก็บข้อมูล โซเชียลมีเดีย ทั้งหมด

Facebook ใช้ sql หรือ Nosql?

เครดิตรูปภาพ: phoenixnap.com

เนื่องจากให้ความยืดหยุ่นในการสร้างแบบจำลองข้อมูลและ MySQL แพร่หลายเมื่อ FB เริ่มทำงาน จึงใช้ SQL เป็นฐานข้อมูลถาวรและ memcache เป็นแคช "lookaside" ในช่วงแรก ๆ ของ FB

ฐานข้อมูล Facebook จัดเก็บโปรไฟล์ของลูกค้า ซึ่งคิดเป็นประมาณ 23% ของลูกค้าทั้งหมด หลักการพื้นฐานที่เป็นรากฐานของสถาปัตยกรรมแบบกระจายทั่วโลกในระดับอินเทอร์เน็ตของ Facebook นำไปใช้กับแอปพลิเคชันระดับองค์กรที่มีความสำคัญต่อธุรกิจ รวมถึง SaaS ที่มีผู้ใช้หลายคน และมีบทเรียนที่ต้องเรียนรู้จากการทำความเข้าใจวิวัฒนาการของฐานข้อมูลที่ Facebook ให้ดียิ่งขึ้น TAO NoSQL Graph API ซึ่งสร้างขึ้นจาก Mystria ฐานข้อมูลโอเพ่นซอร์สยอดนิยม เวอร์ชันแยกส่วน เป็นหนึ่งใน NoSQL API ของ FB TAO แบ่งพาร์ติชันที่เก่ากว่า 1,000 ฐานข้อมูล MySQL มาสเตอร์-สเลฟด้วยตนเองให้กลายเป็นสเลฟที่แยกย่อยได้นับพัน เป็นผลให้แอปพลิเคชันไม่ใช้ฐานข้อมูลเพื่อทำธุรกรรมข้ามชาร์ดและ JOIN ข้ามชาร์ดอีกต่อไป ดังนั้น หากมีการดำเนินการเฟลโอเวอร์ประเภทนี้ ข้อมูลล่าสุดจะสูญหายไป เนื่องจากออบเจ็กต์และการเชื่อมโยงทั้งหมดถูกแคชไว้บนเซิร์ฟเวอร์เดียวกัน จึงสามารถจัดเก็บไว้ในชาร์ดเดียวกันได้โดยไม่มีกำหนด

ระดับของการจัดระเบียบข้อมูลถูกกำหนดให้เป็นเทคนิคการเพิ่มประสิทธิภาพที่สำคัญซึ่งใช้เพื่อเพิ่มการเข้าถึงข้อมูลในเวลาแฝง ชุมชนนักพัฒนาละทิ้ง SQL หันไปใช้ NoSQL API แบบกำหนดเองของ TAO หลังจากที่ FB บังคับให้เลิกใช้ SQL query API ฐานข้อมูล Spanner ของ Google ซึ่งสร้างขึ้นเมื่อกว่าทศวรรษที่แล้ว ถูกสร้างขึ้นโดยเป็นส่วนหนึ่งของฐานข้อมูล TAO ของ FB โมเดลข้อมูลของ Spanner ตรงข้ามกับกราฟโซเชียล ซึ่งเป็นภาระงานการเข้าถึงแบบสุ่มแบบดั้งเดิมสำหรับ OLTP มากกว่า ฐานข้อมูลแบบกระจายรุ่นที่สองสร้างขึ้นจากความสามารถในการขยายขนาดใหญ่และการกระจายข้อมูลทั่วโลกซึ่งเป็นส่วนหนึ่งของชั้นฐานข้อมูล Spanner ใช้ฉันทามติแบบกระจายตามส่วนย่อยเพื่อให้แน่ใจว่าแต่ละส่วน (ไม่ใช่เฉพาะแต่ละอินสแตนซ์) ยังคงพร้อมใช้งานสูงในกรณีที่บริการล้มเหลว แม้ว่าจะมีการเปลี่ยนแปลงการกำหนดค่าคลัสเตอร์ของแอปพลิเคชัน แต่ก็ยังคงใช้งานได้

ข้อมูลที่เกี่ยวข้องกับภูมิภาคท้องถิ่นจะยังคงได้รับการจัดอันดับให้อยู่ในอันดับต้น ๆ ของรายการเนื่องจากคุณลักษณะต่าง ๆ เช่น การแบ่งพื้นที่ทางภูมิศาสตร์ในระดับตารางและระดับแถว ตัวจัดการธุรกรรมแบบกระจายใช้ในธุรกรรมแบบหลายส่วนเพื่อจัดการกระบวนการ 2-Phase Commit เช่นเดียวกับการเอียงของสัญญาณนาฬิกาในแต่ละโหนด เราใช้ TAO เป็นมาตรการลดต้นทุนที่ FB ทำให้เราสามารถลงทุนใน MySQL ที่แยกส่วนได้ Google เลือกที่จะเปลี่ยนเส้นทางด้วย Spanner ซึ่งเป็นฐานข้อมูลใหม่ทั้งหมดที่มีความสามารถในการปรับขนาดในแนวนอน ความสามารถในการจำลองตำแหน่งทางภูมิศาสตร์ที่ราบรื่น และความล้มเหลวของโครงสร้างพื้นฐานที่ง่ายดาย

มีเหตุผลมากมายที่ทำให้ฐานข้อมูล NoSQL ได้รับความนิยม ระบบใช้วิธีการอื่นในการจัดเก็บข้อมูลที่มีประสิทธิภาพมากขึ้นเมื่อต้องจัดการกับข้อมูลจำนวนมาก
ฐานข้อมูล NoSQL ถูกใช้โดยธุรกิจที่มีชื่อเสียงหลายแห่ง เช่น Amazon, Netflix, Microsoft, Snapchat และ Dropbox การเลือกฐานข้อมูล NoSQL เป็นหนึ่งในการตัดสินใจที่ดีที่สุดที่พวกเขาเคยทำมา เนื่องจากแอปพลิเคชันของพวกเขาจัดการกับข้อมูลจำนวนมาก
ด้วยเหตุนี้ ฐานข้อมูล NoSQL จึงมีความยืดหยุ่นมากขึ้นในการจัดเก็บข้อมูลของบริษัทต่างๆ เป็นผลให้มีการจัดระเบียบและเข้าถึงข้อมูลได้ดีขึ้น นอกจากนี้ ฐานข้อมูล NoSQL ยังมีข้อดีตรงที่เร็วกว่าในแง่ของการประมวลผลข้อมูลจำนวนมาก
เหมาะอย่างยิ่งสำหรับธุรกิจที่ต้องการจัดเก็บข้อมูลจำนวนมากเพื่อพิจารณาฐานข้อมูล NoSQL ด้วยวิธีการที่ไม่เหมือนใครในการประมวลผลข้อมูล ทำให้สามารถจัดการข้อมูลด้วยความเร็วที่สูงขึ้นและมีประสิทธิภาพมากขึ้น


Twitter ใช้ฐานข้อมูลกราฟหรือไม่

เครดิตรูปภาพ: metricool.com

Twitter เก็บข้อมูลหลัก เช่น กราฟความสนใจ เส้นเวลา และข้อมูลผู้ใช้ไว้ใน MySql Twitter มีสคีมาหลายร้อยรายการและโหนดนับพันที่ให้บริการการค้นหาหลายล้านรายการต่อวินาทีในคลัสเตอร์ที่ใหญ่ที่สุด บริการ Flockdb ใช้ในการคำนวณกราฟ

มีการกล่าวถึงการใช้ ฐานข้อมูลกราฟ การประยุกต์ใช้กับข้อมูล COVID-19 และภาษาที่เลือกใช้สำหรับกราฟ หลังจากการแชท คุณสามารถอ่านข้อมูลเชิงลึกได้ที่นี่ เข้าร่วมทวีตแชทของเราเวลา 13:00 น. EST ในวันนี้ หัวข้อสถานะของฐานข้อมูลกราฟในปี 2020 เราจะนำเสนอคำถามหลายข้อที่จะใช้เพื่ออำนวยความสะดวกในการสนทนา ฐานข้อมูลกราฟได้รับการแสดงว่ามีประโยชน์มากในอดีต เนื่องจากความสามารถในการเชื่อมต่อข้อมูล จัดการข้อมูลจำนวนมหาศาล และดำเนินการได้อย่างน่าชื่นชม จึงเป็นสิ่งจำเป็นสำหรับองค์กรที่เน้นการวิเคราะห์ทั้งหมด พวกมันแตกต่างจากความจริงที่ว่าสามารถใช้เชื่อมต่อข้อมูลจากหลายแหล่งมากกว่าฐานข้อมูล

ขณะนี้ผู้ใช้สามารถใช้กราฟเหล่านี้เพื่อรับประโยชน์จากฟังก์ชันเฉพาะที่พบใน ฐานข้อมูลกราฟ ในระหว่างการวิเคราะห์ข้อมูล ผู้ใช้ใหม่จำนวนมากอาจได้รับการแนะนำให้รู้จักกับ #knowledgegraph เป็นกรณีการใช้งานแรก เนื่องจากหลายบริษัทต้องการ #analytics จากแหล่งข้อมูลที่มีโครงสร้างและไม่มีโครงสร้างที่หลากหลาย เมื่อพูดถึง #NLP และการรวมเอาต์พุตกับแหล่งที่มาต่างๆ #graphdb คือทางออกที่ดีที่สุด จะมีการหารือเกี่ยวกับ COVID-19 ในเชิงลึกมากขึ้นใน GraphDB Q2 # GraphDB อาจเห็นการใช้งานจำนวนมากในไตรมาสที่ 2 เป็นโซลูชันการติดตามผู้ติดต่อ ด้วยเหตุนี้ ข้อมูลจึงไม่ยุติธรรมสำหรับองค์กรขนาดใหญ่ในลักษณะที่ข้อมูลสามารถค้นหาได้ เข้าถึงได้ ทำงานร่วมกันได้ และนำมาใช้ใหม่ได้ RDF* เป็นกราฟคุณสมบัติ

มีความสับสนเกิดขึ้นอย่างไม่ต้องสงสัย สหพันธ์เป็นหัวข้อที่น่าสนใจในขณะนี้ ต้องนำเข้าข้อมูลนี้ในไฟล์ #graphdbs หากคุณสร้างแบบจำลองอย่างถูกต้อง คุณไม่จำเป็นต้องใช้ RDF* การใช้วิทยาศาสตร์ข้อมูลกราฟเพื่อเชื่อมต่อและเชื่อมโยงชุดข้อมูลที่แตกต่างกันเป็นวิธีที่ยอดเยี่ยมในการดำเนินการดังกล่าว ไม่มีความแตกต่างอย่างมีนัยสำคัญระหว่าง RDF* และ LPG ในปัจจุบัน ผู้ให้บริการที่เปิดใช้งาน RDF โดยทั่วไปจะสนับสนุนคุณสมบัติที่มีป้ายกำกับ ซึ่งช่วยให้กราฟอัลกอสและฟังก์ชันการวิเคราะห์อื่นๆ มองไม่เห็นโดย RDF รุ่นก่อนๆ

ฉันควรใช้ rdf หรือ sparcl ระหว่างพีซีและแอปบนอุปกรณ์เคลื่อนที่ อันที่จริง การสร้างทรัพย์สินจาก RDF ไม่ใช่วิทยาศาสตร์ที่เร่งรีบ แต่ ML อาจสร้างสามเท่าจากคุณสมบัติใน #GraphDB @stevesarfield กราฟ DBMS เมื่อคุณดู ontology คุณกำลังจำลองมัน และมันจะตามคุณเข้านอน นอกจากนี้ บรรณาธิการของเราได้เริ่มโต้ตอบกับตลาดของ GraphDB เป้าหมายของเราคือการรวบรวมรายการผลิตภัณฑ์ที่ดีที่สุดสำหรับผู้บริโภคอย่างครอบคลุม กราฟความรู้สามารถสร้างได้ด้วย GraphDB โดยการรวมข้อมูลที่มีโครงสร้างและไม่มีโครงสร้าง ทำให้สามารถใช้เป็นเครื่องมือในการวิเคราะห์ได้ ผู้ใช้จำนวนมากจะพบว่าสิ่งนี้เป็นจุดเริ่มต้นของการเดินทางสู่ฐานข้อมูลกราฟในอนาคต

เป็นเวลานานแล้วที่ FOSS เป็นแหล่งข้อมูลหลักสำหรับโครงการโอเพ่นซอร์ส แต่อาจกลับมามีบทบาทอีกครั้งในอนาคต # GraphDB อาจเป็นวิธีที่ดีที่สุดในการจัดระเบียบส่วนประกอบที่แตกต่างกันทั้งหมดในระบบนิเวศ #IoT เมื่อเติบโตเต็มที่ในองค์กรและระบบนิเวศ บริษัทบัตรเครดิตใช้ GraphDB เพื่อตรวจจับรูปแบบกิจกรรมที่น่าสงสัย เมื่อคุณต้องการรวม schema ที่ไม่สมบูรณ์เข้ากับแหล่งข้อมูลที่ไม่สมบูรณ์อื่นๆ การใช้ #GraphDB อาจเป็นตัวเลือกที่ดี ติดต่อกันและรักษาสุขภาพด้วย AnzoGraphDB โซลูชันฐานข้อมูล GOLAP ของ Cambridge Semantics ให้บริบทและความหมายในระดับมหาศาลในฐานข้อมูลกราฟ Massively Parallel Processing (MPP) ในหน่วยความจำ แบบสอบถามการผ่านกราฟสามารถปรับขนาดเพื่อตอบสนองความต้องการของคลังข้อมูลและการวิเคราะห์ที่ซับซ้อน และยังสามารถจัดการการรวมข้อมูลจำนวนมาก ลองใช้ AnzoGraphDB ฟรีเพื่อดูว่าสามารถช่วยคุณจัดการชุดข้อมูลจำนวนมหาศาลของคุณได้ดีขึ้นหรือไม่

ยักษ์ใหญ่ด้านโซเชียลมีเดียใช้ฐานข้อมูลกราฟเพื่อปรับปรุงแพลตฟอร์มของตนอย่างไร

MySQL ซึ่งเป็นระบบจัดการฐานข้อมูล เดิมใช้เพื่อเก็บข้อมูล Twitter เราเปลี่ยนจากอินสแตนซ์ฐานข้อมูลขนาดเล็กเป็นอินสแตนซ์ฐานข้อมูลขนาดใหญ่ จากนั้นจึงเปลี่ยนจากอินสแตนซ์ฐานข้อมูลขนาดใหญ่หนึ่งไปยังอีกอินสแตนซ์หนึ่ง ฐานข้อมูลของ Twitter ใช้เพื่อเก็บข้อมูลของผู้ใช้ทั้งหมด ทำให้กลายเป็นหนึ่งใน บริษัทโซเชียลมีเดียที่ทรงอิทธิพล ที่สุด บริษัทสามารถปรับปรุงแพลตฟอร์มโดยการวิเคราะห์พฤติกรรมของผู้ใช้และติดตามความคืบหน้าของพวกเขา เริ่มแรกเครื่องมือค้นหาของ Instagram ขับเคลื่อนโดย Elasticsearch ซึ่งเป็นเครื่องมือค้นหากราฟทางสังคมที่สร้างโดย Facebook แต่ในที่สุดก็ถูกแทนที่ด้วยยูนิคอร์น นอกจากการใช้ฐานข้อมูลกราฟเพื่อติดตามว่าผู้ใช้โต้ตอบอย่างไรแล้ว Instagram ยังใช้เพื่อติดตามความสัมพันธ์ของผู้ใช้อีกด้วย Instagram สามารถปรับปรุงประสบการณ์ของผู้ใช้และนำเสนอเนื้อหาที่เกี่ยวข้องมากขึ้นโดยการวิเคราะห์ข้อมูลโซเชียลมีเดีย ฐานข้อมูลกราฟและการวิเคราะห์ถูกใช้โดย Facebook, Instagram และ Twitter เพื่อทำความเข้าใจที่ดีขึ้นว่าผู้ใช้โต้ตอบกันอย่างไรและสร้างแพลตฟอร์มที่ดีขึ้น