ClickHouse

ฐานข้อมูล

สอบถาม ColumnStore ClickHouse ของคุณผ่านการสนทนา — Neotask ทำงานบน OpenClaw

คุณสามารถทำอะไรได้บ้าง

เรียกใช้แบบสอบถามการวิเคราะห์แบบเรียลไทม์

อธิบายคำถามเชิงวิเคราะห์ของคุณ — "แสดงอัตราการคลิกผ่านตามแคมเปญในช่วง 7 วันที่ผ่านมา โดยแบ่งออกเป็นกลุ่มรายชั่วโมง" — และ Neotask เขียน ClickHouse SQL ปรับให้เหมาะสมสำหรับการดำเนินการแบบเรียงเป็นแนว โดยใช้ฟังก์ชันการรวมกลุ่มที่ถูกต้องและนิพจน์การปัดเศษวันที่

วินิจฉัยการผสานและสุขภาพของชิ้นส่วน

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

ตรวจสอบการจำลองแบบและแบบสอบถามแบบกระจาย

สำหรับตาราง ReplicatedMergeTree และ Distributed ให้สอบถามความล่าช้าในการจำลอง ความลึกของคิว และดูว่ามีแบบจำลองอยู่ด้านหลังหรือไม่ Neotask สืบค้น system.replication_queue และ system.replicas และอธิบายว่าตัวเลขหมายถึงอะไรในภาษาอังกฤษธรรมดา

จัดการโครงสร้างตารางและ TTL

สร้างตารางตระกูล MergeTree ด้วยนิพจน์ ORDER BY, PARTITION BY และ TTL ที่ถูกต้อง — อธิบายเป็นภาษาอังกฤษธรรมดา สร้างเป็น ClickHouse DDL ที่ถูกต้อง เพิ่มหรือแก้ไขกฎ TTL สำหรับการหมดอายุข้อมูลอัตโนมัติโดยไม่ต้องเขียนไวยากรณ์ ALTER TABLE ด้วยตนเอง

ปรับแต่งประสิทธิภาพของแบบสอบถาม

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

ลองถามดู

  • "แสดงการดูหน้าเว็บต่อชั่วโมงในช่วง 24 ชั่วโมงที่ผ่านมาจากตารางกิจกรรม"
  • "ตารางใดมีมากกว่า 1,000 ส่วนและอาจจำเป็นต้อง OPTIMIZE"
  • “ตอนนี้แบบจำลองของฉันอยู่ไกลแค่ไหนแล้ว?”
  • "สร้างตาราง ReplicatedMergeTree สำหรับจัดเก็บเหตุการณ์ผู้ใช้ที่แบ่งพาร์ติชันตามเดือน"
  • "เหตุใดแบบสอบถามนี้จึงไม่ใช้คีย์หลัก" (วางคำถามของคุณ)
  • "เพิ่ม TTL ลงในตารางบันทึกเพื่อลบแถวที่เก่ากว่า 90 วัน"
  • "แสดงข้อความค้นหาที่ช้าที่สุด 10 อันดับแรกจากชั่วโมงที่แล้วโดยใช้ system.query_log"
  • "สร้างมุมมองที่เป็นรูปธรรมที่รวบรวมยอดรวมรายชั่วโมงล่วงหน้าจากตารางเหตุการณ์ดิบ"
  • เคล็ดลับมือโปร

  • ออกแบบ ORDER BY (คีย์หลัก) ของคุณสำหรับตัวกรองการสืบค้นที่ใช้บ่อยที่สุดของคุณ — ขอให้ Neotask ตรวจสอบรูปแบบการสืบค้นของคุณและแนะนำคีย์ที่เหมาะสมที่สุดก่อนที่จะสร้างตาราง
  • ใช้ LowCardinality() สำหรับคอลัมน์สตริงที่มีค่าที่แตกต่างกันน้อยกว่า 10,000 ค่า — Neotask จะแนะนำสิ่งนี้โดยอัตโนมัติเมื่อเห็นคอลัมน์สตริงในคำอธิบายสคีมาของคุณ
  • ต้องการ toStartOfHour() และ toStartOfDay() สำหรับการเก็บข้อมูลเวลาเหนือการคำนวณวันที่ด้วยตนเอง — ขอให้ Neotask ใช้ฟังก์ชันเหล่านี้เพื่อการตัดพาร์ติชันที่ดีขึ้น
  • เมื่อแทรกข้อมูล ให้แทรกเป็นชุดอย่างน้อยสองสามพันแถวต่อการแทรก — ขอให้ Neotask ตรวจสอบรูปแบบการแทรกของคุณ หากคุณเห็นว่ามีจำนวนชิ้นส่วนมากเกินไป
  • มุมมองที่เป็นรูปธรรมใน ClickHouse เริ่มทำงานเมื่อมีการแทรก ไม่ใช่เมื่ออ่าน — ขอให้ Neotask ยืนยันว่าตรรกะการรวมของคุณจัดการการอัปเดตส่วนเพิ่มอย่างถูกต้องก่อนสร้างการอัปเดต
  • Works Well With