Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

Polyglot Persistence Explained: เลือกฐานข้อมูลที่เหมาะสมสำหรับทุก Use Case

เผยแพร่ครั้งแรกเมื่อวันที่ 30 เมษายน 2561 ที่ ObjectRocket.com/blog

Polyglot persistence หมายถึงการใช้เทคโนโลยีจัดเก็บข้อมูลที่แตกต่างกันเพื่อจัดการความต้องการจัดเก็บข้อมูลที่หลากหลาย มันเป็นสาขาของ polyglot programming—การใช้ภาษาโปรแกรมมิ่งที่แตกต่างกันเพื่อสร้างแอปพลิเคชัน อย่างง่ายๆ คือแอปพลิเคชันที่ใช้เทคโนโลยีฐานข้อมูลหลักมากกว่าหนึ่งตัว

Polyglot Persistence Explained: เลือกฐานข้อมูลที่เหมาะสมสำหรับทุก Use Case

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

Polyglot Persistence Explained: เลือกฐานข้อมูลที่เหมาะสมสำหรับทุก Use Case

จัดการความต้องการจัดเก็บข้อมูลของคุณ

Monoglot® ดี (และยังคงดี) สำหรับแอปพลิเคชันง่ายๆ ที่ใช้ workload ประเภทเดียว อย่างไรก็ตาม แอปพลิเคชันกลายเป็นซับซ้อนอย่างรวดเร็ว

แพลตฟอร์ม E-commerce เรียบง่ายใช้เครื่องมือต่อไปนี้:

  • Session data เพื่อเพิ่มสินค้าในตะกร้า
  • Search engine เพื่อค้นหาผลิตภัณฑ์
  • Recommendation engine, การซื้อในอนาคตที่เป็นไปได้จากบันทึกการซื้อ
  • Payment platform สำหรับบริการ geolocation

การนำ polyglot persistence ไปใช้ช่วยให้คุณขับเคลื่อนแอปพลิเคชันด้วยข้อมูลจากประเภทการจัดเก็บที่แตกต่างกัน คุณสามารถดึง financial transactions ที่เสร็จสิ้นจาก Oracle® ในขณะที่ติดตามข้อมูลผู้ใช้ใน MongoDB® และให้ Redis® จัดการ cache

นำ polyglot persistence ไปใช้และพิจารณาตัวเลือก

คำร้องเรียนหลายอย่างที่อ้างถึงความซับซ้อนของการสร้าง polyglot persistence มาจากการพยายามบังคับให้ storage solutions เข้าโปรเจกต์ที่ไม่เหมาะสม นั่นนำไปสู่การสร้าง support processes จำนวนมากและสถาปัตยกรรมมอนสเตอร์ที่เติบโตไม่รู้จบ

การวางแผนอย่างรอบคอบกำจัด 90% ของปัญหาที่เป็นไปได้ พิจารณาเป้าหมายของคุณ คุณต้องการ integral business function? คุณต้องการเริ่ม transition ส่วนใหญ่ของการดำเนินงานของบริษัทไปสู่โมเดลนี้?

ใช้เทคโนโลยีจัดเก็บข้อมูลที่เหมาะสม

ทีมของคุณเคยสร้าง polyglot persistence architecture มาก่อนไหม? มันท้าทายที่จะใช้ data solutions ที่เหมาะสมอย่างถูกต้องโดยไม่มีประสบการณ์ออกแบบโมเดลประเภทนี้ คุณรู้ได้อย่างไรว่าคุณเริ่มกับโปรเจกต์ที่ถูกต้อง?

ประเภทการจัดเก็บข้อมูล

องค์กรมักสุดท้ายแล้วใช้แหล่งข้อมูลหลายแหล่งเพื่อขับเคลื่อนแอปพลิเคชันของพวกเขา มาทบทวนตัวเลือกการจัดเก็บทั่วไปบางอย่าง:

Transactional databases หรือที่รู้จักว่า Relational Database Management Systems (RDBMS) ให้ความสมบูรณ์ของข้อมูลโดยจัดระเบียบข้อมูลเป็นตารางแถวและคอลัมน์ คุณเรียกข้อมูลโดยใช้ syntax statements ที่เรียกว่า queries องค์กรขนาดใหญ่หลายแห่งใช้ตัวเลือกยอดนิยมอย่าง Microsoft® SQL Server® และ Oracle® ข้อเสียหนึ่งของ transactional databases คือพวกมันอาจยากที่จะ scale เมื่อความต้องการจัดเก็บเพิ่มขึ้น นอกจากนี้ การค้นหาช้าลงเมื่อข้อมูลหนาแน่นและซับซ้อนมากขึ้นในการเข้าถึง

Non-transactional databases เปลี่ยนจากการใช้ RDBMS แบบตาราง ทำให้ scalability เพิ่มขึ้นและการค้นหาเร็วขึ้น พวกมันคู่กับ search และ analytic engines เช่น Elasticsearch ได้ดี มักใช้คำว่า NoSQL เพื่ออธิบายฐานข้อมูลเหล่านี้

Non-transactional storage types:

Non-transactional storage types รวมตัวเลือกต่อไปนี้:

  • Key-value: ฐานข้อมูลเหล่านี้ใช้ key ที่ชี้ไปยังตำแหน่งจัดเก็บของชิ้นข้อมูล บางตัวใช้ hash-tables ในขณะที่อื่นๆ เช่น Redis เก็บคู่ในหน่วยความจำเพื่อการเข้าถึงเร็ว
  • Document: ประกอบด้วย key-value pairs ที่บีบอัดอยู่ในเอกสารที่อนุญาตโครงสร้างโดยใช้ encoding เช่น JSON หรือ XML เวอร์ชันโอเพนซอร์สยอดนิยมรวม MongoDB และ CouchDB®
  • Column: คุณวางข้อมูลลงในคอลัมน์ที่จัดกลุ่มแทนแถวเหมือนโครงสร้าง RDBMS Apache® Cassandra และ HBase® ใช้โมเดลนี้
  • Graph: ใช้โครงสร้างกราฟ nodes, edges และ properties เพื่อจัดระเบียบและเรียกข้อมูล Neo4j® เป็นตัวอย่างที่กำลังเพิ่มความนิยม

การทำ polyglot persistence ให้ถูกต้องหมายถึงการรู้ว่าตัวเลือกข้อมูลไหนทำงานได้ดีที่สุดสำหรับความต้องการแอปพลิเคชันของคุณ

คำถามที่ควรถาม

คำถามโครงสร้างข้อมูล
  • ข้อมูลของคุณมีโครงสร้างตามธรรมชาติไหม? เป็น unstructured ไหม?
  • มันเชื่อมต่อกับข้อมูลอื่นอย่างไร?
  • มันกระจายอย่างไร?
  • คุณจัดการกับข้อมูลเท่าไหร่?
คำถามรูปแบบการเข้าถึง
  • อัตราส่วน read/write ของคุณคือเท่าไหร่?
  • มัน uniform หรือ random?
  • การอ่านหรือการเขียนไหนสำคัญกว่าสำหรับแอปพลิเคชันของคุณ?
คำถามความต้องการองค์กร
  • เราต้องการ authentication ไหม? ประเภทไหน?
  • เราต้องการ encryption ไหม?
  • เราต้องการ backups ไหม?
  • เราต้องการ disaster site ไหม?
  • เราต้องการ plugins ไหม?
  • ระดับ monitoring ที่ต้องการคือเท่าไหร่?
  • Drivers ไหนที่จำเป็น?
  • ภาษาไหนที่ควรใช้?
  • ควรใช้ third-party tools ไหม?

นำความช่วยเหลือที่เหมาะสมเข้ามา

บริษัทหลายแห่งจะได้ประโยชน์จากการนำผู้เชี่ยวชาญด้าน polyglot architecture มาช่วยตัดสินใจเหล่านี้ เพื่อให้คุณหลีกเลี่ยงการสิ้นสุดลงกับ maintenance loads เพิ่มเติมจากสถาปัตยกรรมที่ซับซ้อนเกินไป บางผู้ขายฐานข้อมูลโอเพนซอร์สยอดนิยมเสนอบริการจัดการ แต่พวกเขาจะบอกคุณไหมถ้า data source ของพวกเขาเองไม่เหมาะกับความต้องการของคุณ?

ดีที่สุดคือติดต่อบริษัทที่เข้าใจจุดแข็งและจุดอ่อนของตัวเลือกข้อมูลต่างๆ เพื่อเริ่มต้น polyglot persistence Rackspace ObjectRocket ให้มุมมอง 360 องศาของตัวเลือกฐานข้อมูลหลากหลายที่ใช้ได้กับความต้องการทางธุรกิจของคุณ เรานำ DBA และวิศวกรที่เหมาะสมที่สุดมาช่วยนำ big data solutions ของคุณไปสู่ระดับถัดไป

เรียนรู้เพิ่มเติมเกี่ยวกับบริการ DBA ของ Rackspace

ใช้แท็บ Feedback เพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังสามารถคลิก Sales Chat เพื่อแชททันทีและเริ่มสนทนาได้

View the Rackspace Cloud Terms of Service