Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Redis

อธิบายการจำลองข้อมูล:ตัวอย่าง ประเภท และกรณีการใช้งาน

การจำลองข้อมูลคืออะไร

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

ทุกวันนี้ “ทันที” ยังไม่เร็วพอ การลดเวลาในการตอบสนองลงเหลือช่วงมิลลิวินาทีย่อยเป็นวัตถุประสงค์สากล เราเคยเห็นสถานการณ์นี้มาก่อนแล้ว – กดปุ่มรีเฟรชบนเว็บไซต์ รอสิ่งที่รู้สึกเหมือนเป็นนิรันดร์ (วินาที) เพื่อดูข้อมูลของคุณอัปเดต เวลาแฝงลดประสิทธิภาพการทำงานสำหรับผู้ใช้ บรรลุแบบเกือบเรียลไทม์ คือเป้าหมาย Zero time lag คืออุดมคติใหม่สำหรับทุกกรณีการใช้งาน

การจำลองข้อมูลทำงานอย่างไร

การจำลองข้อมูลกำลังคัดลอกข้อมูลจากโฮสต์หนึ่งไปยังอีกโฮสต์หนึ่ง เช่น ระหว่างสองไฟล์ภายในองค์กร หรือจากภายในองค์กรไปยังระบบคลาวด์ เป็นต้น ประเด็นคือเพื่อให้เกิดความสอดคล้องตามเวลาจริงกับข้อมูลสำหรับผู้ใช้ทุกคน ไม่ว่าพวกเขาจะเข้าถึงข้อมูลจากที่ใด โมเดลธุรกิจที่ขับเคลื่อนด้วยข้อมูล (DDBM) เช่นเดียวกับอุตสาหกรรมเกม อาศัยการวิเคราะห์ที่ได้รับผ่านข้อมูลแบบเรียลไทม์เป็นอย่างมาก เพื่อความเข้าใจที่ชัดเจนยิ่งขึ้นว่าการเข้าถึงแบบเรียลไทม์สำหรับ DDBM จำเป็นเพียงใด โปรดดูวิดีโอด้านล่างนี้:

ประโยชน์ของการจำลองข้อมูลมีอะไรบ้าง

ปรับปรุงความน่าเชื่อถือ / การกู้คืนจากภัยพิบัติ

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

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

เพิ่มประสิทธิภาพแอป

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

ทีมไอทีที่มีประสิทธิภาพมากขึ้น

ลดแรงงานไอทีเพื่อทำซ้ำข้อมูลด้วยตนเอง

ทำความเข้าใจการจำลองข้อมูลแบบเต็มเทียบกับการจำลองแบบบางส่วน

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

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

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

ตัวอย่างการจำลองข้อมูล

การจำลองธุรกรรม

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

อธิบายการจำลองข้อมูล:ตัวอย่าง ประเภท และกรณีการใช้งาน อธิบายการจำลองข้อมูล:ตัวอย่าง ประเภท และกรณีการใช้งาน

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

การจำลองสแนปชอต

ตามชื่อของมัน การจำลองแบบสแนปชอตจะใช้ "สแนปชอต" ของข้อมูลจากข้อมูลหลักตามที่ปรากฏในช่วงเวลาหนึ่งๆ และย้ายไปยังแบบจำลอง เช่นเดียวกับภาพถ่าย การจำลองแบบสแนปชอตจะบันทึกว่าข้อมูลที่ดูเหมือนในช่วงเวลาใดเวลาหนึ่ง เนื่องจากดูเหมือนว่าข้อมูลจะย้ายจากแบบจำลองหลักไปยังแบบจำลอง แต่ไม่ได้พิจารณาถึงวิธีการอัปเดตในภายหลัง ดังนั้น อย่าใช้การจำลองแบบสแน็ปช็อตเพื่อทำการสำรองข้อมูล

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

ในทางกลับกัน วิธีนี้ค่อนข้างมีประโยชน์สำหรับการกู้คืนในกรณีที่มีการลบโดยไม่ตั้งใจ ให้คิดว่ามันเหมือนกับประวัติเวอร์ชันของคุณใน Google เอกสาร คุณต้องการทำงานในงานนำเสนอของคุณในแบบที่ดูเหมือนเมื่อสี่ชั่วโมงที่แล้วหรือไม่ หาก Google เอกสารจับภาพงานของคุณเป็นรายชั่วโมง คุณสามารถคลิกกลับไปที่เวอร์ชันนั้นหรือ "สแนปชอต" เมื่อสี่ชั่วโมงที่แล้วและดูว่าข้อมูลของคุณเป็นอย่างไรในตอนนั้น

การจำลองแบบผสาน

วิธีนี้มักจะเริ่มต้นด้วยสแนปชอตของข้อมูลและแจกจ่ายข้อมูลนั้นไปยังแบบจำลองและรักษาการซิงโครไนซ์ข้อมูลระหว่างทั้งระบบ สิ่งที่ทำให้การจำลองแบบผสานแตกต่างกันคือช่วยให้แต่ละโหนดสามารถเปลี่ยนแปลงข้อมูลได้อย่างอิสระ แต่จะรวมการอัปเดตทั้งหมดเหล่านี้เข้าเป็นหนึ่งเดียว

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

การจำลองแบบตามคีย์

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

Active-Active Geo-Distribution

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

ชนิดข้อมูลจำลองที่ปราศจากความขัดแย้ง (CRDT) กำหนดวิธีการจำลองข้อมูลนี้ ในกรณีที่เครือข่ายล้มเหลวด้วยการจำลองหรือโหนดตัวใดตัวหนึ่ง แบบจำลองอื่นจะมีข้อมูลที่จำเป็นทั้งหมดพร้อมที่จะทำซ้ำเมื่อโหนดนั้นกลับมาออนไลน์ นี่เป็นโซลูชันที่แข็งแกร่งสำหรับองค์กรที่ต้องการศูนย์ข้อมูลหลายแห่งทั่วโลก ดูวิดีโอด้านล่างสำหรับตัวอย่างกรณีการใช้งาน Active-Active Geo-Distribution

การจำลองแบบซิงโครนัส / อะซิงโครนัส

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

ความท้าทายในการปรับใช้การจำลองข้อมูลทั่วไปคืออะไร

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

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