การจำลองแบบทางเดียวระหว่างศูนย์ข้อมูล Cassandra

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

การเลือกคาสซานดราขึ้นอยู่กับปัจจัยดังต่อไปนี้:

  • รองรับปริมาณงานขนาดใหญ่สำหรับการดำเนินการ 'เขียน' - การเขียนพร้อมกันหลายพันรายการต่อวินาที
  • ความเหมาะสมกับข้อมูลทางวิศวกรรม (ส่วนใหญ่เป็นข้อมูลอนุกรมเวลา)
  • ความพร้อมใช้งานสูงเพื่อรองรับการทำงานของกล้องโทรทรรศน์ต่อเนื่อง
  • รองรับเครื่องมือเช่น การวิเคราะห์ การรายงาน

การประมาณข้อมูล

  • การเติบโต 250 TB ต่อปี (อายุการใช้งานระบบ 50 ปี)

กรณีการใช้งาน

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

คำถาม

  1. เป็นไปได้หรือไม่ที่การจำลองแบบทางเดียวใน Cassandra ระหว่างศูนย์ข้อมูล ข้อมูลจาก Operations DC ย้ายไปยัง Analytics DC แต่ข้อมูลที่จัดเก็บหลังจากประมวลผลใน Analytics DC จะไม่ถูกจำลองไปยัง Operations DC
  2. Cassandra ให้การควบคุมสิ่งที่จะถูกจำลองแบบหรือไม่ เราไม่ต้องการให้ DC ทั้งสองซิงโครไนซ์กัน เราต้องการกำหนดค่าสิ่งที่ได้รับการจำลองแบบ (ย้ายจริง) ไปยัง Analytics DC เป็นไปได้ไหมกับคาสซานดรา? หากฉันต้องการระบุว่าควรจำลองเฉพาะข้อมูลของหนึ่งสัปดาห์ที่ผ่านมาจากศูนย์ข้อมูลการดำเนินงานไปยังศูนย์ข้อมูล Analytics
  3. เรากำลังวางแผนที่จะใช้ฟีเจอร์ Time-to-Live ในตัวของ Cassandra เพื่อลบข้อมูล (จากการดำเนินงาน DC เท่านั้น) ข้อมูลที่ถูกลบออกจาก Operations DC ไม่ควรถูกลบออกจาก Analytics DC จะป้องกันการจำลองข้อมูลที่ถูกลบได้อย่างไร?

  4. ฉันได้อ่านแล้วว่าโหนด Cassandra เดียวสามารถรองรับข้อมูลได้มากถึง 2-3 TB เอกสารอ้างอิงใดๆ ของการใช้งาน Cassandra ที่มีขนาดใหญ่กว่าใดๆ จะช่วยได้

  5. โหนด Cassandra จะถูกปรับใช้เพื่อรองรับการเติบโตดังกล่าวจำนวนเท่าใด และกลยุทธ์การปรับใช้ที่แนะนำคืออะไร?

  6. ข้อควรพิจารณาด้านประสิทธิภาพ: แม้ว่าพื้นที่จัดเก็บข้อมูลที่ Operations DC จะถูกจำกัด (ข้อมูล 3-7 วัน หรือประมาณ 5-10 TB) แต่พื้นที่จัดเก็บข้อมูลที่ Analytics DC จะเป็นแบบสะสมและยังคงเติบโตต่อไปตามเวลา การเติบโตของฐานข้อมูลที่ Analytics DC จะส่งผลต่อการจำลองและลดประสิทธิภาพของ Operations DC หรือไม่

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

แผนภาพสถาปัตยกรรมที่เสนอ


person Jyotin Ranpura    schedule 05.06.2018    source แหล่งที่มา
comment
การจ้างที่ปรึกษาที่มีประสบการณ์ในการจัดเก็บ PB มากกว่า 10 PB ใน Cassandra อาจเป็นแผนที่ดีกว่าการขอความช่วยเหลือแบบสุ่มในเว็บไซต์ถามตอบทางอินเทอร์เน็ต   -  person Aaron    schedule 06.06.2018
comment
ฉันเข้าใจข้อเสนอแนะของคุณแอรอน เน้นให้ฝ่ายบริหารทราบแล้ว และพวกเขาจะดำเนินการแก้ไข สำหรับตอนนี้ ความช่วยเหลือใดๆ จากผู้เชี่ยวชาญจะได้รับการชื่นชม   -  person Jyotin Ranpura    schedule 13.06.2018


คำตอบ (2)


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

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

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

person Alex Ott    schedule 05.06.2018
comment
ขอบคุณอเล็กซ์ อ่านเกี่ยวกับการจำลองแบบขั้นสูงของ DSE และดูเหมือนว่าจะเหมาะสม ฉันต้องการชี้แจงความเข้าใจของฉัน: การปรับใช้คลัสเตอร์ที่แยกจากกัน - คลัสเตอร์หนึ่ง (คลัสเตอร์ Edge) ที่รับผิดชอบในการเขียน และอีกคลัสเตอร์หนึ่งที่รับผิดชอบในการอ่าน (ศูนย์กลางกลาง) - เราสามารถควบคุมการจำลองแบบนี้ได้หรือไม่? โดยการควบคุม ฉันหมายถึงการกำหนดเวลาการจำลองแบบนี้ในเวลาดังกล่าว - หากเราล้างข้อมูลจากคลัสเตอร์ Edge ข้อมูลดังกล่าวจะถูกลบออกจาก Central Hub ด้วยหรือไม่ - คลัสเตอร์ Edge มีอำนาจเต็มของ Analytics กับข้อมูลทั้งหมดจาก Central Hub หรือไม่ - person Jyotin Ranpura; 13.06.2018
comment
คำถามเหล่านี้เป็นคำถามที่น่าสนใจ แต่เพื่อที่จะตอบคำถามเหล่านี้ จำเป็นต้องมีข้อมูลเพิ่มเติม และผู้เชี่ยวชาญ AdvRep มีส่วนร่วม จะดีกว่านี้หากคุณติดต่อ DataStax เพื่อจัดการหารือในเชิงลึกเกี่ยวกับข้อกำหนดเหล่านี้... - person Alex Ott; 15.06.2018

  1. No

  2. ใช่ การจำลองแบบได้รับการกำหนดค่าตามคีย์สเปซ

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

  4. คลัสเตอร์ Cassandra - ข้อมูล ความหนาแน่น (ขนาดข้อมูลต่อโหนด) - มองหาคำติชมและคำแนะนำ

  5. Cassandra ใช้งานได้สูงสุดประมาณ 800-1,000 อินสแตนซ์ในคลัสเตอร์ แต่มักแนะนำให้แบ่งย่อยให้เล็กกว่านั้นเพื่อความสะดวกในการใช้งานของคุณเอง

  6. DC อาจไม่สมมาตร

person Jeff Jirsa    schedule 26.06.2018