ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

ฉันขอแนะนำให้คุณอ่านสำเนารายงานปี 2017 โดย Igor Stryhar “ClickHouse - การวิเคราะห์ข้อมูลที่รวดเร็วและชัดเจนใน Tabix”

เว็บอินเตอร์เฟสสำหรับ ClickHouse ในโครงการ Tabix
คุณสมบัติหลัก:

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


ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

ฉันเป็นผู้อำนวยการด้านเทคนิคของ SMI2 เราคือผู้รวบรวมข่าวสารแลกเปลี่ยนข่าวสาร เราจัดเก็บข้อมูลจำนวนมากที่เราได้รับจากพันธมิตรของเราและลงทะเบียนไว้ใน ClickHouse - ประมาณ 30 คำขอต่อวินาที

นี่คือข้อมูลเช่น:

  • คลิกที่ข่าว
  • ข่าวจะแสดงในตัวรวบรวม
  • แบนเนอร์แสดงบนเครือข่ายของเรา
  • และเราลงทะเบียนกิจกรรมจากเคาน์เตอร์ของเราเอง ซึ่งคล้ายกับ Yandex.Metrica นี่คือการวิเคราะห์ระดับจุลภาคของเราเอง

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

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

ชีวิตก่อน ClickHouse – infiniDB

สิ่งแรกที่เรามีคือ infiniDB เธออาศัยอยู่กับเราเป็นเวลา 4 ปี เราเปิดตัวมันด้วยความยากลำบาก

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

เธอทำงานให้เราจนถึงสิ้นปี 2016 เมื่อเราเปลี่ยนมาใช้ ClickHouse โดยสมบูรณ์

ชีวิตก่อน ClickHouse – Cassandra

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

เราลองสิ่งที่น่าสนใจมากมาย จากนั้นเราตัดสินใจลองคาสซานดรา ทุกอย่างยอดเยี่ยมมากกับแคสแซนดรา 10 คำขอต่อวินาทีต่อการเสนอราคา 000 คำขอสำหรับการอ่าน

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

ชีวิตก่อน ClickHouse – ดรูอิด

จากนั้นเราก็ตระหนักว่าเราจำเป็นต้องเขียนข้อมูลเพิ่มมากขึ้น ในปี 2016 เราเริ่มดูดรูอิด

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

ดรูอิดมีเวอร์ชัน 0.9.X

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

ในการโหลดข้อมูลลงไปนั้นจำเป็นต้องใช้ชาแมนบางชนิด มีโครงการ OpenSource - Tranquility ซึ่งสูญเสียข้อมูลจากเราในสตรีม พอเราโหลดข้อมูลเข้าไปมันก็หายไป

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

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

แต่แล้วปาฏิหาริย์ก็เกิดขึ้น ฉันไปเที่ยวพักผ่อนและเพื่อนร่วมงานก็ส่งลิงก์มาให้ฉัน แฮบซึ่งบอกว่ายานเดกซ์ตัดสินใจเปิด ClickHouse ฉันบอกว่าลองดูสิ

และภายใน 2 วัน เราก็ปรับใช้คลัสเตอร์ทดสอบ ClickHouse เราเริ่มโหลดข้อมูลลงไป เมื่อเปรียบเทียบกับ infiniDB นี่เป็นระดับประถมศึกษา เมื่อเปรียบเทียบกับ Druid นี่เป็นระดับประถมศึกษา เมื่อเทียบกับคาสซานดราแล้ว มันก็ยังเป็นระดับประถมศึกษาอีกด้วย เพราะถ้าคุณโหลดข้อมูลจาก PHP ลงใน Cassandra นี่จะไม่ใช่เรื่องพื้นฐาน

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

เราได้อะไร? ประสิทธิภาพในด้านความเร็ว ประสิทธิภาพในการจัดเก็บข้อมูล นั่นคือใช้พื้นที่ดิสก์น้อยกว่ามาก ClickHouse รวดเร็ว รวดเร็วมากเมื่อเทียบกับผลิตภัณฑ์อื่นๆ

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

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

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

และใกล้กับฤดูหนาวของปีที่แล้วเครื่องมือของบุคคลที่สามสำหรับการทำงานกับ ClickHouse ก็เริ่มปรากฏขึ้น เหล่านี้เป็นเครื่องมือเช่น:

ฉันจะดูเครื่องมือเหล่านี้ซึ่งก็คือเครื่องมือที่ฉันใช้งานด้วย

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

เครื่องมือที่ดี แต่สำหรับดรูอิด เมื่อ Druid ถูกใช้งาน ฉันกำลังทดสอบ SuperSet ฉันชอบเขา. สำหรับดรูอิดมันเร็วมาก

ไม่เหมาะกับ ClickHouse นั่นคือมันพอดี มันเริ่มต้น แต่พร้อมที่จะประมวลผลเฉพาะคำสั่งพื้นฐานเช่น: เหตุการณ์ SELECT, GROUP BY เหตุการณ์ ไม่รองรับไวยากรณ์ ClickHouse ที่ซับซ้อนกว่านี้

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

เครื่องมือต่อไปคือ Apache Zeppelin นี่เป็นสิ่งที่ดีและน่าสนใจ ได้ผล รองรับโน้ตบุ๊ก แดชบอร์ด และรองรับตัวแปร ฉันรู้ว่ามีคนในชุมชน ClickHouse ใช้มัน

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

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

เครื่องมือต่อไปคือ Redash.IO Redash โฮสต์บนอินเทอร์เน็ต นั่นคือไม่เหมือนกับเครื่องมือก่อนหน้านี้ตรงที่ไม่จำเป็นต้องติดตั้ง และนี่คือแดชบอร์ดที่สามารถรวบรวมข้อมูลจากแหล่งข้อมูลต่างๆ นั่นคือคุณสามารถดาวน์โหลดได้จาก ClickHouse จาก MySQL จาก PostgreSQL และจากฐานข้อมูลอื่น ๆ

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

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

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

ฉันพบว่าการเขียนในเครื่องมือเหล่านี้หรือในคอนโซลเป็นเรื่องยากมาก และฉันตัดสินใจปรับปรุงอินเทอร์เฟซแรกของเรา และฉันได้ไอเดียมาจาก EventSQL, SeperSet, Zeppelin

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

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

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

ผ่านไป 3 เดือนนับตั้งแต่การเปิดตัวเวอร์ชันแรกของเรา ฉันทำการคอมมิตประมาณ 330 ครั้งกับสาขาส่วนตัวและกลายเป็น Tabix

ไม่เหมือนกับเวอร์ชันก่อนหน้าซึ่งเรียกว่า ClickHouse-Frontend ฉันตัดสินใจเปลี่ยนชื่อเป็นชื่อที่เรียบง่าย และปรากฎว่า Tabix

เกิดอะไรขึ้น?

วาดกราฟ รองรับไวยากรณ์ ClickHouse SQL ให้คำแนะนำฟังก์ชั่นและทำสิ่งที่น่าสนใจได้มากมาย

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

นี่คือลักษณะของโครงการ Tabix ทั่วไป ด้านซ้ายเป็นต้นไม้ ตรงกลางคือตัวแก้ไขแบบสอบถาม และด้านล่างนี้คือผลลัพธ์ของคำขอนี้

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

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

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

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

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

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

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

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

แผนผังออบเจ็กต์ มัลติคิวรี และแท็บ (วิดีโอ 13:46 https://youtu.be/w1-XsL3nbRg?t=826)

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

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

แท็บจะถูกบันทึกโดยอัตโนมัติ หากคุณรีสตาร์ทเบราว์เซอร์หรือปิดหรือเปิด Tabix ทั้งหมดนี้จะถูกบันทึกไว้

ปุ่มลัด - สะดวก (วิดีโอ 14:39 https://youtu.be/w1-XsL3nbRg?t=879)

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

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

ฉันจะแสดงวิธีการทำงานกับผลลัพธ์ เราส่งคำขอ ฉันกำลังวาด sin, cos และ tg คุณสามารถเน้นผลลัพธ์ได้ เช่น วาดแผนที่ทั่วไปสำหรับคอลัมน์ คุณสามารถเน้นค่าบวกหรือค่าลบได้ หรือเพียงแค่ใส่สีองค์ประกอบตารางเฉพาะ สะดวกเมื่อโต๊ะมีขนาดใหญ่และคุณต้องมองเห็นความผิดปกติด้วยตา เมื่อฉันมองหาความผิดปกติ ฉันเน้นเส้นบางเส้น องค์ประกอบบางอย่างเป็นสีเขียวหรือสีแดง

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

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

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

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

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

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

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

สิ่งที่น่าสนใจต่อไปคือการวางแผน สมมติว่าเรามีคำขอต่อไปนี้: สำหรับ sin, cos ตั้งแต่ 0 ถึง 299 และหากต้องการวาดมัน คุณต้องเลือกแท็บ "วาด" แล้วคุณจะได้กราฟที่มี sin และ cos ของคุณ

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

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

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

คุณสามารถวาดฮิสโตแกรมได้

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

คุณสามารถแบ่งสิ่งนี้ออกเป็นเมทริกซ์ของกราฟได้

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

คุณสามารถสร้างแผนที่ความร้อนได้

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

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

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

ถัดไปคือทรีแมป

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

Sankeys เป็นกราฟที่น่าสนใจ เขาคือ Streamgrahps หรือ River แต่ฉันเรียกมันว่าแม่น้ำ นอกจากนี้ยังช่วยให้คุณค้นหาความผิดปกติได้อีกด้วย มันสะดวกสบายมาก ฉันแนะนำให้ใช้มันในการค้นหา

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

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

แต่ปัญหาของแผนที่นี้คือมันวาดแค่แผนที่โลกเท่านั้นไม่มีรายละเอียด

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

ต่อมาฉันเพิ่ม Google map หากคุณจัดเก็บละติจูด ลองจิจูด คุณสามารถวาดผลลัพธ์บนแผนที่ Google ได้ แต่จะไม่รองรับเครื่องบิน

เราได้กล่าวถึงฟังก์ชันหลักของการทำงานกับผลลัพธ์และการสืบค้นใน Tabix แล้ว

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

ถัดไปคือการวิเคราะห์เซิร์ฟเวอร์ ClickHouse ของคุณ มีแท็บ "เมตริก" แยกต่างหาก ซึ่งคุณสามารถดูขนาดของข้อมูลที่จัดเก็บไว้สำหรับแต่ละคอลัมน์ได้ ภาพหน้าจอแสดงให้เห็นว่าช่อง "ผู้อ้างอิง" นี้กินพื้นที่ประมาณ 730 Gb หากเราละทิ้งฟิลด์นี้ เราจะบันทึกส่วนแบ่งข้อมูลไว้ 700 ส่วน ชิ้นละ 2 GB ซึ่งก็คือประมาณ XNUMX TB ที่เราไม่ต้องการ

เรายังมีฟิลด์ "request_id" ที่เราจัดเก็บไว้ในสตริงด้วย แต่ถ้าเราเริ่มเก็บเป็นตัวเลข สนามนี้จะหดตัวลงอย่างมาก

นอกจากนี้ยังแสดงการกำหนดค่าเซิร์ฟเวอร์และรายการโหนดในคลัสเตอร์ของคุณ

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

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

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

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

ClickHouse – การวิเคราะห์ข้อมูลที่รวดเร็วและใช้งานง่ายใน Tabix อิกอร์ สไตรฮาร์

ขอบคุณ! และมันอยู่ในโอเพ่นซอร์ส

ฉันเสร็จแล้ว. และอีกอย่างคือ มันเป็น OpenSource ฟรีและคุณไม่จำเป็นต้องดาวน์โหลดด้วยซ้ำ เปิดในเบราว์เซอร์และทุกอย่างจะทำงาน

คำถาม

อิกอร์ อะไรต่อไป? คุณจะพัฒนาเครื่องมือนี้ที่ไหน?

ถัดไป แดชบอร์ดจะปรากฏขึ้น เช่น บางทีแดชบอร์ดอาจปรากฏขึ้น การบูรณาการกับฐานข้อมูลอื่นๆ ฉันทำสิ่งนี้แล้ว แต่ยังไม่ได้เผยแพร่ใน OpenSource นี่คือ MySQL และอาจเป็น PostgreSQL นั่นคือจะสามารถส่งคำขอจาก Tabix ไม่เพียงแต่ไปยัง ClickHouse เท่านั้น แต่ยังรวมถึงเครื่องมืออื่น ๆ อีกด้วย

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

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

ขอบคุณมากสำหรับรายงาน! นี่เป็นเครื่องมือที่ยอดเยี่ยม กับ ฉาก เปรียบเทียบแล้วใช่ไหม?

ขอบคุณ ฉันจึงตั้งชื่อมันว่า Tabix เพราะตัวอักษรตัวแรกเหมือนกัน

เพราะคุณแข่งขันเหรอ?

จะมีเงินลงทุนมากเราจะแข่งขันกัน

คุณจะเสนอขายให้กับนักวิเคราะห์ภายในได้อย่างไรว่าเครื่องมือนี้จะเข้ามาแทนที่โดยสมบูรณ์ *ฉาก*? จะมีข้อโต้แย้งอย่างไร?

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

นั่นคือมีข้อจำกัดร้ายแรงเกี่ยวกับปริมาณข้อมูลใช่ไหม?

ใช่. ฉันจินตนาการไม่ออกว่าคุณต้องการอัปโหลด 10 แถวลงในตารางของคุณลงบนหน้าจอเบราว์เซอร์ เพื่ออะไร?

นี่หมายความว่านี่คืออินเทอร์เฟซสำหรับการดูข้อมูลอย่างรวดเร็วใช่หรือไม่ บิดนิดหน่อย บิดมั้ย?

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

และอีกคำถามหนึ่ง การวิเคราะห์ตามรุ่น?

หากมีการร้องขอใด ๆ เราจะเพิ่มมัน

คุณเพิ่งเริ่มใช้มันเมื่อไหร่? ClickHouse การใช้งานใช้เวลานานเท่าใด? คลิกเฮาส์ และนำมาซึ่ง สถานะการผลิต?

อย่างที่ผมบอกไป เราใช้คลัสเตอร์ทดสอบในเวลาอันสั้นมาก เราปรับใช้มันภายในสองวัน และเราทดสอบมันอีกสองสามสัปดาห์ และเราก็ผลิตได้ภายใน 3 เดือน แต่เรามี ETL ของเราเอง นั่นคือเครื่องมือสำหรับบันทึกข้อมูล และเขาเขียนทุกสิ่งที่เขาทำได้ เขาสามารถเขียนใน MongoDB, Cassandra, MySQL ได้ การสอนให้เขาเขียนใน ClickHouse เป็นเรื่องง่าย เรามีโครงสร้างพื้นฐานที่พร้อมสำหรับการนำไปปฏิบัติอย่างรวดเร็ว ภายใน 3 เดือน เราเริ่มทิ้งส่วนประกอบแรกออกไป ในเวลา 6 เดือน เราก็ละทิ้งทุกสิ่งทุกอย่างไปโดยสิ้นเชิง เราเหลือ ClickHouse เพียงอันเดียวเท่านั้น

อิกอร์ ขอบคุณมากสำหรับรายงาน ฉันชอบฟังก์ชั่นการสร้างเส้นทางโดยใช้แผนที่มาก มีแผนสำหรับการผสานรวมกับ Yandex.Maps และโดยเฉพาะอย่างยิ่งกับ Yandex.Maps แบบกำหนดเองหรือไม่

ฉันพยายามบูรณาการแทนแผนที่ Google แต่ฉันไม่พบธีมสีเข้มบน Yandex.Maps ฉันไม่ได้บอกคุณชิ้นเดียว ฉันจะย้อนกลับไปเพิ่ม

สไลด์ – Google map มีคำสั่ง “DRAW_GMAPS” ซึ่งใช้วาดแผนที่ มีคำสั่ง "DRAW_YMAPS" เช่น สามารถวาด Yandex.Map ได้ แต่ในความเป็นจริงภายใต้คำสั่งนี้มี Javascript นั่นคือ ข้อมูลที่คุณได้รับจาก ClickHouse สามารถถ่ายโอนไปยัง Javascript ซึ่งคุณเขียนไว้ที่นี่ และคุณมีพื้นที่เอาต์พุตที่ควรวาด คุณสามารถวาดกราฟใดก็ได้ เช่น กราฟ แผนที่ คุณสามารถวาดองค์ประกอบของคุณเองได้ ก่อนหน้านี้ฉันมีไลบรารีอีกแห่งสำหรับวาดกราฟด้วยตนเอง

นั่นคือมีเครื่องมือสำหรับปรับแต่งฟังก์ชั่นการแสดงผลหรือไม่?

ใดๆ. คุณสามารถเปลี่ยนสีจุดเหล่านี้ได้ ทำให้ไม่ใช่สีแดง แต่เป็นสีน้ำเงินและเขียว

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

มีประเด็นที่น่าสนใจตรงนี้ - ความจริงก็คือฉันเป็นผู้อำนวยการด้านเทคนิค ไม่ใช่นักวิทยาศาสตร์ข้อมูล ตอนที่เราเริ่มใช้งาน Druid แผนงานของฉันมีงานประมาณ 50% มาคำนวณกัน หรือมาคำนวณกัน หรือวิเคราะห์สิ่งนี้กัน และปรากฎว่าเราติดตั้ง ClickHouse และเขาเริ่มสร้างทุกอย่างอย่างรวดเร็ว นับ และปิดแผนงานของเขาอย่างรวดเร็ว และเมื่อถึงเวลานั้น ฉันก็ตระหนักว่าฉันขาดความรู้ในด้าน Data Science และ Data Visualization Tabix เป็นการบ้านของฉันสำหรับการเรียนรู้การสร้างภาพข้อมูล ฉันกำลังดูว่าจะเสริม Zeppelin ได้อย่างไร ฉันไม่ชอบการเขียนโปรแกรมของเขาเล็กน้อย Redash ฉันดูวิธีการเพิ่ม แต่โปรแกรมแก้ไขปกติก็เพียงพอสำหรับฉัน และ SuperSet ก็เขียนด้วยภาษาที่ฉันไม่ชอบด้วย ดังนั้นฉันจึงตัดสินใจปั่นจักรยาน และนี่คือสิ่งที่เกิดขึ้น

อิกอร์คุณยอมรับคำขอดึงหรือไม่?

ใช่

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

ดีกว่าใน Javascript เปล่า

แล้วมีกรอบอะไร?

เชิงมุม.

ก็เป็นที่ชัดเจน. และคำถามที่สอง พิจารณาแล้วหรือยัง R и *เงา**?*

พิจารณาแล้ว. เล่นแล้ว

คุณสามารถเขียนอะแดปเตอร์ก็ได้

เขาคือ. ดูเหมือนว่าชุมชนจะสร้างมันขึ้นมา แต่เมื่อฉันตอบคำถามก่อนหน้านี้ ฉันอยากจะลองด้วยตัวเอง

*ไม่ เกี่ยวกับการแสดงภาพ มันก็มีอยู่เช่นกัน

คุณบอกว่ามีสิ่งนั้นอยู่ และมันจะวาดกราฟให้คุณ ฉันเปิดหนังสือเกี่ยวกับการแสดงข้อมูลเป็นภาพ และฉันก็คิดว่า: "ให้ฉันลองนึกภาพข้อมูลนี้ดู ฉันจะเขียนถึงเขาเพื่อให้เขาสามารถสร้างข้อมูลขึ้นมาใหม่ได้” และฉันเริ่มเข้าใจเทคโนโลยีการฟีดข้อมูลดีขึ้น และถ้าฉันนำส่วนประกอบสำเร็จรูปมา โดยส่วนตัวแล้วฉันคงได้เรียนรู้แย่ลงไปอีกว่าจะใช้มันอย่างไร นั่นก็คือ การสร้างภาพข้อมูล แต่ใช่ ฉันชอบ R แต่ฉันยังไม่ได้อ่านหนังสือ “R for Dummies”

ขอบคุณ!

คำถามง่ายๆ มีวิธีใดบ้างในการอัพโหลดป้ายหรือกำหนดการอย่างรวดเร็ว?

สามารถอัพโหลดเป็น CSV หรือ Excel ได้

ไม่ใช่ข้อมูล แต่เป็นเพลทสำเร็จรูป กราฟสำเร็จรูปใช่ไหม เช่น เพื่อแสดงให้เจ้านายเห็น.

มีปุ่ม "อัปโหลด" และมีปุ่ม "อัปโหลดกราฟเป็น PNG, เป็น JPG"

ขอบคุณ!

ป.ล. คำแนะนำขนาดเล็กสำหรับการติดตั้ง tabix

  • ดาวน์โหลด รุ่นล่าสุด
  • แตกไฟล์ คัดลอกไดเร็กทอรี build ใน nginx root_path
  • กำหนดค่า nginx

ที่มา: will.com

เพิ่มความคิดเห็น