Tencent Cloud Data Warehouse ClickHouse Evaluation: "ซูเปอร์คาร์" ในยุคของข้อมูลขนาดใหญ่ใช้งานได้ดีหรือไม่?
หากคุณเป็นนักพัฒนาส่วนหลัง DBA หรือนักวิเคราะห์ข้อมูลที่กำลังต่อสู้กับข้อมูลจำนวนมากคุณต้องเคยได้ยิน
ClickHouse
ชื่อ.
ในด้านของข้อมูลขนาดใหญ่แบบโอเพนซอร์สสิ่งนี้เป็นเพียงการดำรงอยู่ในตำนาน: ประสิทธิภาพของเครื่องเดียวบดขยี้ฐานข้อมูลแบบเดิมหลายสิบเท่าและการวิเคราะห์ข้อมูลนับหมื่นล้านระดับการตอบสนองในไม่กี่วินาทีคนที่เคยใช้มันบอกว่าการดูมันวิ่งและสอบถามก็เหมือนกับการดูซูเปอร์คาร์ระเบิดถนนเพื่อคลายความเกลียดชัง
อย่างไรก็ตาม "ความยากในการให้บริการ" ของ ClickHouse แบบโอเพนซอร์สยังเป็นที่รู้จักกันดีในอุตสาหกรรม: การดำเนินการและการบำรุงรักษามีความซับซ้อนมากพารามิเตอร์การกำหนดค่ามีมากมายและการขยายคลัสเตอร์แบบกระจายจะพังทลายลงหากคุณไม่ระมัดระวังสิ่งนี้ยังกีดกัน SMEs จำนวนมาก
เพื่อแก้ปัญหาจุดเจ็บปวดนี้ Tencent Cloud ได้เปิดตัว
คลาวด์ฐานข้อมูล ClickHouse(CDCH)
。หากต้องการพูดอย่างตรงไปตรงมาก็คือผู้เชี่ยวชาญของ Tencent ที่ช่วยเราทำงานสกปรกทั้งหมดของ ClickHouse โอเพ่นซอร์สและห่อหุ้มไว้ในบริการคลาวด์นอกกรอบ
วันนี้จากมุมมองของนักพัฒนาตัวจริงเราจะทำการประเมิน ClickHouse ของ Tencent Cloud ในเชิงลึกอย่ามีส่วนร่วมในรายการคู่มืออย่างเป็นทางการเพียงแค่พูดถึงสินค้าแห้งจุดเจ็บปวดและภาษาท้องถิ่น
1.ทำไม ClickHouse เร็วจัง? (Xiaobai วิทยาศาสตร์ยอดนิยม)
ก่อนที่จะประเมินผลิตภัณฑ์ของ Tencent Cloud เราใช้เวลาสักครู่เพื่อพูดคุยเกี่ยวกับตรรกะพื้นฐานของ ClickHouse ที่วิ่งเร็วคืออะไร?
ฐานข้อมูลเชิงสัมพันธ์แบบดั้งเดิม (เช่น MySQL) คือ
ที่เก็บแถว
。คุณต้องตรวจสอบอายุเฉลี่ยของผู้ใช้ทั้งหมด MySQL ต้องใส่ข้อมูลทั้งบรรทัด (ชื่อรหัสผ่านที่อยู่อายุ...) ของผู้ใช้แต่ละคนอ่านทั้งหมดจากฮาร์ดดิสก์จากนั้นเลือกอายุเพื่อคำนวณมันเหมือนกับการซื้อผักกาดขาวฉันต้องไปที่ตลาดผักทั้งหมดและ IO (การอ่านและเขียนฮาร์ดดิสก์) ก็ระเบิดโดยตรง
และ ClickHouse เป็นเรื่องปกติ
จัดเก็บคอลัมน์
。
แยกคอลัมน์ "ชื่อ" และ "อายุ" ออกจากกันคุณต้องการที่จะนับอายุเฉลี่ย? มันจะอ่านข้อมูลของคอลัมน์ "อายุ" โดยตรงและคอลัมน์อื่นๆจะไม่แตะต้องด้วยซ้ำ
แถมยังใส่ซีพียู
SIMD (คำสั่งเดียวหลายสตรีมข้อมูล)
ชุดคำสั่งถูกบีบให้รุนแรงโดยตระหนักถึงการคำนวณแบบขนานในระดับกายภาพสถาปัตยกรรมนี้เกิดมาเพื่อ
OLAP (การประมวลผลการวิเคราะห์ออนไลน์)
, การวิเคราะห์บันทึกจำนวนมากและรายงาน BI
2.การประเมิน Tencent Cloud ClickHouse: ช่วยเราแก้ปัญหาอะไรได้บ้าง?
เนื่องจากโอเพ่นซอร์สมีความแข็งแกร่งอยู่แล้วทำไมต้องใช้ Tencent Cloud? เราเปิดชุดคลัสเตอร์บนคอนโซลและสัมผัสประสบการณ์เชิงลึกประสิทธิภาพของมิติข้อมูลต่อไปนี้น่าประทับใจที่สุด:
1.ความยากในการดำเนินการและการบำรุงรักษา: จาก "โหมดนรก" เป็น "คนโง่ในคลิกเดียว"
ใครก็ตามที่เคยเล่น ClickHouse แบบโอเพ่นซอร์สจะรู้ดีว่าแพลตฟอร์มแบบกระจายนั้นขึ้นอยู่กับ ZooKeeper อย่างมากในการซิงโครไนซ์ข้อมูลเมตาและการทำงานร่วมกันที่สอดคล้องกันเมื่อปริมาณข้อมูล
ในช่วงเวลาที่ดี ZooKeeper มักจะสูญเสียโซ่เมื่อติดอยู่คลัสเตอร์ ClickHouse ทั้งหมดจะเป็นอัมพาต
วิธีแก้ปัญหาของ Tencent Cloud: Tencent Cloud มีสถาปัตยกรรมที่โฮสต์อย่างสมบูรณ์และ ZooKeeper ได้รับการปรับแต่งอย่างลึกซึ้งและแยกออกจากชั้นล่างสุด
ประสบการณ์จริง: ในการสร้างคลัสเตอร์บนคอนโซลคุณจะต้องเลือกการกำหนดค่าเท่านั้น (หลายคอร์และหลาย G หลายโหนด) จากนั้นคลัสเตอร์แบบกระจายทั้งหมดจะถูกสร้างขึ้นภายในไม่กี่นาทีด้วยการกำหนดค่าพื้นฐานที่ซับซ้อนเช่นการซิงโครไนซ์สำเนาและกฎการแบ่งส่วน Tencent Cloud จะช่วยให้คุณทำแนวทางปฏิบัติที่ดีที่สุดเมื่อเริ่มต้นคุณไม่จำเป็นต้องดูไฟล์คอนฟิกูเรชัน XML หลายร้อยบรรทัดอีกต่อไปซึ่งช่วยผมของนักเรียนที่ทำงานและบำรุงรักษาจำนวนนับไม่ถ้วน
2.การขยายตัวและความยืดหยุ่น: ในที่สุดก็ไม่จำเป็นต้องนอนดึกเพื่อย้ายข้อมูล
ภาระทางประวัติศาสตร์ที่ใหญ่ที่สุดของโอเพ่นซอร์ส ClickHouse คือ
ไม่สนับสนุนความยืดหยุ่นที่แท้จริง
。เนื่องจากเป็นสถาปัตยกรรม "การเชื่อมต่อการประมวลผลและการจัดเก็บข้อมูล" เมื่อฮาร์ดดิสก์เต็มและคุณต้องเพิ่มเครื่องคุณต้องเปลี่ยนไฟล์คอนฟิกูเรชันด้วยตนเองและคุณต้องเขียนสคริปต์เพื่อย้ายชิ้นส่วนข้อมูลทางกายภาพ (ชิ้นส่วน) ของเครื่องเก่าไปยังเครื่องใหม่, กระบวนการนี้เปรียบได้กับการเปลี่ยนเครื่องยนต์ในอากาศ, ข้อมูลหายไปโดยไม่ได้ตั้งใจ
วิธีแก้ปัญหาของ Tencent Cloud: Tencent Cloud ตระหนักถึงการแยกการประมวลผลแบบยืดหยุ่นและที่เก็บข้อมูลคอมพิวเตอร์ (รองรับบางเวอร์ชัน)
ประสบการณ์จริง: เมื่อปริมาณข้อมูลการทดสอบของเราเพิ่มขึ้นอย่างรวดเร็วให้คลิก "เปลี่ยนการกำหนดค่า" บนคอนโซลเพื่อเพิ่มโหนดหรือขยายดิสก์บนคลาวด์ทางออนไลน์โดยตรงในระหว่างกระบวนการทั้งหมดการปรับสมดุลข้อมูลจะถูกกำหนดโดยอัตโนมัติโดยพื้นหลังของ Tencent Cloud และการสืบค้นระดับธุรกิจแทบจะไม่ได้รับผลกระทบสิ่งนี้เพียงอย่างเดียวก็คุ้มค่ากับค่าโดยสาร
3.คอนโซลและการแสดงภาพ: ในที่สุดก็มี "แดชบอร์ด" ที่ดี
โอเพ่นซอร์ส ClickHouse มีไคลเอนต์บรรทัดคำสั่งเย็นเพียงรายเดียวโดยค่าเริ่มต้นต้องการดูว่าซีพียูของคลัสเตอร์วิ่งไปไกลแค่ไหน? แบบสอบถามใดบีบหน่วยความจำขออภัยคุณต้องตรวจสอบตารางระบบด้วยตัวเอง
System.processes
หรือสร้างชุด Prometheus Grafana ด้วยตัวเอง
วิธีแก้ปัญหาของ Tencent Cloud: Tencent Cloud มาพร้อมกับ DMC บริการตรวจสอบและจัดการข้อมูลที่สมบูรณ์แบบมาก
ประสบการณ์จริง: เข้าสู่คอนโซลปริมาณงานของคลัสเตอร์ความล่าช้าในการอ่านและการเขียนและการใช้ดิสก์จะชัดเจนในพริบตาสิ่งที่ดีที่สุดคือฟังก์ชันการวิเคราะห์แบบสอบถามช้าหาก SQL ทำงานเป็นเวลา10วินาทีโดยไม่มีผลลัพธ์คอนโซลจะจับโดยตรงและแสดงแผนการดำเนินการโดยละเอียดเพื่อบอกคุณว่า Join ใดติดอยู่นี่เป็นเพียงสิ่งประดิษฐ์สำหรับนักพัฒนาเพื่อปรับแต่ง SQL
3.ฉากต่อสู้จริง: อะไรคือสิ่งที่เหมาะสมที่สุดสำหรับ Tencent Cloud ClickHouse?
ในการประเมินธุรกิจจริงของเรา ClickHouse แสดงให้เห็นถึงข้อดีอย่างล้นหลามในสามสถานการณ์ต่อไปนี้:
สถานการณ์ที่1: บันทึกจำนวนมากและการวิเคราะห์การตรวจสอบ (ฆ่า ELK)
ทุกคนเคยทำการวิเคราะห์บันทึกมาก่อน
ใช้ ELK(Elasticsearch Logstash Kibana) แต่ Elasticsearch กินหน่วยความจำมากและมีอัตราการขยายตัวสูง (บันทึกต้นฉบับ100G อาจกลายเป็น200G เมื่อบันทึกไว้)
บันทึกของ ClickHouse: เทบันทึกพฤติกรรมผู้ใช้หลายพันล้านรายการลงใน ClickHouse ด้วยอัตราส่วนการบีบอัดข้อมูลที่สูงเป็นพิเศษที่1:5หรือ1:10ทำให้พื้นที่บนฮาร์ดดิสก์น้อยกว่าหนึ่งในสามของ ES และตรวจสอบข้อมูลการรวมที่หลากหลาย (เช่นการนับแนวโน้มข้อผิดพลาดของอินเทอร์เฟซเมื่อเดือนที่แล้ว) ClickHouse เร็วกว่า ES หลายเท่า
สถานการณ์ที่2: การโฆษณาและการดำเนินการที่ละเอียดอ่อน (การเลือกกลุ่มฝูงชน)
นักศึกษาปฏิบัติการมักจะถามเกี่ยวกับความต้องการของพวกเขา: "ช่วยฉันวนเวียนอยู่กับผู้ใช้ในปักกิ่งที่ลงชื่อเข้าใช้แอปในช่วง7วันที่ผ่านมาเติมเงินมากกว่า100หยวนและมีอายุระหว่าง18-25ปี"
ClickHouse Records: การวิเคราะห์ช่องทางหลายมิติตามฉลาก (Bitmap) นี้เป็นผลงานชิ้นเอกของ ClickHouse ด้วยการใช้ฟังก์ชันขั้นสูงในตัวเช่น bitmapAnd และ bitmapOr ฝูงชนนับหมื่นล้านจะถูกเลือกและผลลัพธ์จะออกมาในไม่กี่วินาทีและนักเรียนปฏิบัติการไม่จำเป็นต้องรอจนกว่าจะได้รับข้อมูลในวันถัดไปอีกต่อไป
4."ด้านหลังเหรียญ" ของ Tencent Cloud ClickHouse: หลุมที่มือใหม่ต้องหลีกเลี่ยง
แม้ว่า Tencent Cloud จะห่อหุ้มไว้เป็นอย่างดีแต่ ClickHouse ก็คือ ClickHouse และ "ลักษณะทางกายภาพ" ที่อยู่ด้านล่างระบุว่าไม่ใช่ยาครอบจักรวาลเมื่อมือใหม่ใช้งานอย่าใช้เป็น MySQL ต้องข้ามเขตที่วางทุ่นระเบิดต่อไปนี้:
อย่าเขียนปริมาณงานเล็กน้อยที่มีความซับซ้อนสูง: ClickHouse ชอบ "กินมากเกินไปในปริมาณมาก" และไม่ชอบ "กินน้อยลงและมากขึ้น" หากคุณเขียน1,000ครั้งต่อวินาทีและเขียนข้อมูลเพียงครั้งละ1ชิ้นพื้นหลังของ ClickHouse จะรวมชิ้นส่วนข้อมูล (Merge) อย่างบ้าคลั่งและในไม่ช้าคุณจะรายงานข้อผิดพลาดร้ายแรงของ Too many parts ที่ทำให้คลัสเตอร์หยุดทำงานคำแนะนำจากคนจริง: คุณต้องทำการแคชภายใน (บัฟเฟอร์) ที่ชั้นธุรกิจหรือรวบรวมแบทช์ผ่าน Kafka และแต่ละชุดมีอย่างน้อย10,000ชิ้นจากนั้นจึงเขียนโดยรวม
ไม่ดีในการสืบค้นจุดความละเอียดสูงพร้อมกันสูง: ClickHouse เป็นสัตว์ร้ายบางส่วนคุณปล่อยให้มันนับผลรวมของข้อมูล1พันล้านชิ้นและจะให้คุณ0.5วินาทีแต่ถ้าคุณต้องการสร้างแอปที่มีการใช้งานพร้อมกันหลายหมื่นครั้งให้ตรวจสอบข้อมูลพื้นฐานของผู้ใช้ที่เฉพาะเจาะจงตาม ID ผู้ใช้ (SELECT * FROM table WHERE id = 123) มันจะทำให้ CPU เต็มคำแนะนำที่แท้จริง: สำหรับธุรกิจการตรวจสอบจุดพร้อมกันสูงประเภทนี้ให้ใช้ Redis หรือ MySQL อย่างตรงไปตรงมา
ความสามารถในการสืบค้นพร้อมกันที่จำกัดมาก (Max
Concurrent Queries): ขีดจำกัดเริ่มต้นของ ClickHouse สำหรับจำนวนแบบสอบถามพร้อมกันคือ100เนื่องจาก SQL ที่ซับซ้อนจะระดมแกน CPU ทั้งหมดที่อยู่เบื้องหลังหาก100คนส่งแบบสอบถามรายงานที่ซับซ้อนในเวลาเดียวกันคลัสเตอร์จะติดอยู่โดยตรงเหมาะสำหรับนักวิเคราะห์ข้อมูลการดำเนินการและป้ายโฆษณาภายในและไม่เหมาะสำหรับการโทรพร้อมกันขนาดใหญ่โดยตรงไปยังผู้ใช้ที่ใช้งานอยู่หลายล้านคนในฝั่ง C
5.สรุปและข้อเสนอแนะในการเลือก
หลังจากการประเมินเชิงลึกความรู้สึกโดยรวมของ Tencent Cloud ClickHouse(CDCH) คือ:
ข้อบกพร่องไม่ได้ปกปิดข้อบกพร่องอยู่ที่ยีนโอเพ่นซอร์สและ Yu ได้รับการประมวลผลใน Tencent
มันสืบทอดประสิทธิภาพการสืบค้นขั้นสูงสุดของโอเพ่นซอร์ส ClickHouse ที่ทำให้อะดรีนาลีนพุ่งสูงขึ้นในขณะเดียวกันด้วยวิธีการโฮสติ้งแบบเนทีฟบนคลาวด์ภูเขาทั้งสามที่ถูกวิพากษ์วิจารณ์มากที่สุดของ "ความยากลำบากในการดำเนินการและการบำรุงรักษาการขยายกำลังการผลิตและการตรวจสอบ" ได้ถูกลบออกไปโดยสิ้นเชิง
สุดท้ายให้คำแนะนำในการเลือกประโยค:
หากปริมาณข้อมูลทางธุรกิจของคุณเกินหลายสิบล้านหรือหลายร้อยล้าน MySQL แบบเดิมจะใช้เวลาสองสามนาทีในการเรียกใช้รายงานและคุณไม่มีงบประมาณพิเศษในการเพิ่มทีมปฏิบัติการและบำรุงรักษาข้อมูลขนาดใหญ่โดยเฉพาะ
ไปที่ ClickHouse ของ Tencent Cloud โดยตรง
。สามารถใช้ฮาร์ดแวร์และต้นทุนแรงงานที่ต่ำมากเพื่อพาบริษัทของคุณไปสัมผัสกับ "ความรู้สึกผลักกลับ" ในยุคของข้อมูลขนาดใหญ่ล่วงหน้า
