Score:0

ต้องการความช่วยเหลือในการตัดสินใจใช้เครื่องมือจัดเก็บข้อมูล MariaDB ที่ดีที่สุดสำหรับกรณีการใช้งานและข้อจำกัดด้านฮาร์ดแวร์เซิร์ฟเวอร์ของเรา

ธง cn

ฉันทำงานให้กับบริษัทเล็กๆ และเราต้องการคลังข้อมูล

ฐานข้อมูลการผลิตของเรามีข้อมูลประมาณ 50Gb (เพิ่มขึ้นประมาณ 10GB/ปี ปัจจุบัน) เซิร์ฟเวอร์ของเราทำงานเกินความจุเล็กน้อย และเราคิดว่าเราสามารถย้ายข้อมูลประวัติบางส่วนไปยังคลังข้อมูลได้ (ประมาณครึ่งหนึ่งของ 50GB เหล่านี้สามารถย้ายได้ ) เพื่อให้กลับมาทำงานได้อย่างราบรื่นอีกครั้ง

แน่นอนว่าคลังข้อมูลจะมีข้อมูล ETL ทั้งหมด ไม่ใช่แค่ข้อมูลในอดีตเท่านั้น วิธีนี้ทำให้เราสามารถนำรายงานและข้อมูลแดชบอร์ดที่มีราคาแพงเหล่านั้นจาก DW แทนเซิร์ฟเวอร์ที่ใช้งานจริงได้

ฉันตั้งใจที่จะ ETL ข้อมูลไปยัง DW และจัดเก็บโดยใช้รูปแบบเกล็ดหิมะ และหลังจากนั้นฉันวางแผนที่จะสร้าง data mart สำหรับการรายงานและ BI data mart นี้จะถูกสร้างขึ้นโดยใช้สกีมาแบบดาว เพื่อทำให้การสืบค้นง่ายขึ้น (เร็วขึ้น?)

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

จากสิ่งที่ฉันได้อ่านมา ฉันเดาว่า ColumnStore นั้นเร็วกว่าและเหมาะสมกับกรณีการใช้งานของเรามากกว่า แต่ก็ต้องการฮาร์ดแวร์ที่ดีกว่าด้วย ตอนนี้เราไม่สามารถจ่ายได้มากกว่าเซิร์ฟเวอร์เครื่องเดียวที่มี 4 คอร์ CPU และ RAM ขนาด 32Gb (ธุรกิจของเราได้รับผลกระทบอย่างรุนแรงจากโรคระบาดทั่วโลก เรากำลังกลับมายืนหยัดได้ แต่เรายังไม่ได้อยู่ที่นั่น)

ดังนั้น จากข้อมูลจำเพาะของเซิร์ฟเวอร์ด้านบนและกรณีการใช้งาน คุณยังคงแนะนำให้ใช้ ColumnStore บน innoDB หรือไม่ เรายังเปิดรับโซลูชันอื่นนอกเหนือจาก MariaDB

djdomi avatar
za flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [คุณช่วยฉันวางแผนความจุได้ไหม](https://serverfault.com/questions/384686/can-you-help-me-with-my-capacity-planning)
cn flag
ฉันคิดว่าคำถามของฉันเฉพาะเจาะจงมากกว่าแค่การกำหนดขนาดเซิร์ฟเวอร์ ฉันมีงบประมาณจำกัดและต้องการทราบว่าโซลูชันฐานข้อมูลใดทำงานได้ดีกว่า
Score:2
ธง ua

เครื่องยนต์: InnoDB ระยะเวลา. (แน่นอนว่า 1% ของกรณีการใช้งานนั้นดีกว่าด้วยสิ่งอื่น แต่ดูเหมือนว่าคุณไม่ได้ระบุว่าต้องการเครื่องมืออื่น)

เกล็ดหิมะ: แย่มาก โดยเฉพาะอย่างยิ่งหากคุณต้องการค้นหาจาก "ช่วง" โปรดระบุสคีมา (แนะนำให้ใช้ผ่าน แสดงการสร้างตาราง); ฉันจะเจาะจงมากขึ้น (ฉันอาจเห็นด้วยว่า Snowflake นั้นดี แต่ฉันสงสัย)

สตาร์สคีมา -- ดี การทำให้เป็นมาตรฐานของสตริงทั่วไป: ดี การทำให้ค่า 'ต่อเนื่อง' เป็นปกติ (วันที่, ints, ลอย): ไม่ดี แต่จุดประสงค์คือเพื่อประหยัดพื้นที่ดิสก์ ดังนั้นจึงเพิ่มความเร็วในการสืบค้น

10GB/ปี -- ซึ่งฟังดูเหมือน "ไม่กี่" แถวต่อวินาทีโดยเฉลี่ย หนัก แต่ไม่หนักหนาสาหัส นั่นคือการประมวลผล ETL ดูเหมือนไม่ต้องการความช่วยเหลือ

คลังข้อมูล -- http://mysql.rjweb.org/doc.php/datawarehouse

ล้างข้อมูลเก่า -- นี่เป็นหนึ่งในไม่กี่อย่างที่ใช้สำหรับ การแบ่งพาร์ติชัน. http://mysql.rjweb.org/doc.php/partitionmaint

การแยกออกเป็นตารางต่างๆ ที่ออนไลน์ไว้ -- น่าจะเป็นเรื่องยุ่งยากแต่มีประโยชน์น้อยมาก

รายงานค่าใช้จ่าย --> ตารางสรุป http://mysql.rjweb.org/doc.php/summarytables ตารางสรุปมีขนาดเล็กกว่าตารางข้อเท็จจริงมาก เป็นที่ยอมรับแม้กระทั่งการทำให้เป็นปกติ

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

4 คอร์ - มากมายสำหรับ InnoDB; แกนเพิ่มเติมจะเป็นประโยชน์สำหรับ CS

RAM 32GB -- มีข้อมูลเพียง 50GB และ 10GB/ปี -- หากคุณดูที่ข้อมูลของปีล่าสุด 32GB ก็เพียงพอแล้ว หากคุณสแกน 50GB บ่อยๆ ก็จะมี I/O จำนวนมาก หากคุณใช้ตารางสรุป 32GB ก็เกินความจำเป็นสำหรับกิจกรรมส่วนใหญ่ (ตารางสรุปอาจมีขนาดต่ำกว่า 10GB และย้อนกลับไปที่จุดเริ่มต้นของข้อมูล ดังนั้นจึงสามารถแคชได้มาก)

32GB + CS -- 50GB ของคุณจะกลายเป็นประมาณ 5GB (แต่ไม่รู้ว่า 32 จะ overkill รึเปล่านะ)

HDD เทียบกับSSD -- SSD เร็วกว่าอย่างเห็นได้ชัด

บรรทัดล่าง (และงบประมาณ) - เทคนิคที่กล่าวถึงข้างต้นสามารถทำให้ InnoDB บน ​​32GB ฮัมเพลงได้ดีเป็นเวลาหลายปี

cn flag
ขอบคุณสำหรับความคิดเห็นของคุณ ฉันมีความเข้าใจที่ดีขึ้นเกี่ยวกับสิ่งที่ฉันต้องทำตอนนี้ สำหรับการไม่ใช้สคีมาเกล็ดหิมะ คุณจะแนะนำอะไรแทน เป้าหมายของฉันคือให้ DW มีทุกอย่างจากฐานข้อมูลการผลิตของเรา จากนั้น ฉันจะแยกตารางข้อเท็จจริงและมิติ (รวมถึงตารางสรุป) สำหรับการรายงานและ BI
ua flag
@HenriqueMiranda - re Snowflake: แสดงตัวอย่างที่เฉพาะเจาะจงเพื่อให้ฉันสามารถแสดงความคิดเห็นที่เฉพาะเจาะจงได้ สิ่งที่อยู่ในใจคือ `Fact` -> `Address` -> `City` -> `Country`; จากนั้นการค้นหาแถว `Fact` สำหรับ `country_id` นั้นยุ่งเหยิงและช้ามาก
cn flag
ฉันเห็นด้วย แต่ข้อมูลนั้นจะไม่ถูกสอบถามบ่อยนัก ข้อความค้นหาส่วนใหญ่จะเกิดขึ้นใน data mart ที่ใช้ star schema
ua flag
@เฮนริเก้ มิรานด้า - โอเค

โพสต์คำตอบ

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