เมื่อวันอังคารที่ผ่านมา มีโอกาสได้ไปร่วมงาน Clickhouse Thailand Meetup ครั้งที่ 1 เลยมาลองเขียนสรุปแบบสั้นๆไว้ โดยในงานจะแบ่งเป็น 2 Sessions ด้วยกัน

Picture from: https://www.meetup.com/th-TH/clickhouse-thailand-meetup-group/events/310647332

Session #1: Clickhouse คือใคร ทำอะไร

Clickhouse เป็น OLAP database product โดย design มาจาก 4 purposes นี้

  1. Speak SQL fluently
  2. Processes data very fast
  3. Highly efficient storage
  4. Easily scale to any size

Clickhouse มีที่เป็นแบบ on Cloud และเราสามารถ self host เองก็ได้
แล้วตัว Clickhouse เหมาะกับงานแบบไหน?

  • งาน analytics
  • ทำเป็น Data Warehouse
  • งาน Observability

ถัดมาแล้วอะไรที่ทำให้ Clickhouse ถึงสามารถทำงานได้เร็ว

  • ในมุม Writing – มีการ Design ที่เรียกว่า Part merges จะเป็น Behind process ภายใน Clickhouse ที่ตอนโหลดข้อมูลเข้าไปจะ paralle ก่อนเพื่อให้เร็ว แล้วจะค่อยๆ merge data เข้าด้วยกันเป็นลำดับหลาย layer หลังจากนั้น
  • ในมุม Reading – มีหลายๆ feature แต่ที่ผมจำได้คือ การทำ Granules เหมือนเป็นลักษณะการทำ Chunk of rows ไว้ ก็จะทำให้เวลา Scan หาได้ไวขึ้น และยังมี feature อื่นๆอีก ตรงนี้ผมเก็บมาได้ไม่ครบ

ส่วนสุดท้ายของ Session #1 เป็นอะไรไปไม่ได้ เพราะว่าตอนนี้กำลังฮิตเลยก็คือ LLM
ทาง Clickhouse ก็มีการพัฒนา Feature MCP ของตัวเอง ซึ่งตัว MCP นี้สามารถต่อไปที่ data ภายใน Clickhouse
หลังจากนั้นเราสามารถ Prompt ที่เกี่ยวกับข้อมูลที่เราเชื่อมต่อได้ แล้วตัว Agent จะเข้าไปทำการ query เพื่อหาคำตอบจากข้อมูล

ส่วนด้านล่างนี้ จะเป็น link ต่างๆที่ทาง Clickhouse แชร์ไว้ให้ไปลองเล่นดูครับ

Session #2: Use case ของ เต่าบิน

ทางเต่าบินเล่า use case โดยลำดับสามารถแบ่งออกเป็น 3 ช่วงหลักๆ คือ

  • ช่วงที่ 1: ใช้ Postgres ทั้งการเก็บข้อมูล และ query ข้อมูลเพื่อเอาไปใช้ แต่เริ่มมีปัญหาในการ query ข้อมูลใช้เวลานาน และการ query ที่นานเริ่มกระทบ operation process
  • ช่วงที่ 2: มีการแยก Database สำหรับ Operation โดยใช้ Postgres เหมือนเดิม และก็มีการใช้ Tiger Data เป็น database สำหรับ query เท่าที่ฟัง Tiger Data คือ database ในลักษณะ time series (อันนี้ผมไม่รู้จักมาก่อน ไว้มีโอกาสจะลองไปดูว่าเป็นยังไง)
  • ช่วงที่ 3: เหมือนช่วงที่ 2 แต่เปลี่ยนจาก Tiger Data ไปใช้ Clickhouse แทน ปัจจุบันทางเต่าบินจะมี process insert ข้อมูลไปที่ Clickhouse โดยใช้เป็น Batch ETL โหลดข้อมูลจาก Postgres ไปเข้าไปที่ Clickhouse

ส่วนสุดท้าย ที่ทางเต่าบินแนะนำ ก็จะเป็น keyword ต่างๆ ที่เอาไว้ศึกษาต่อ ถ้าจะใช้งาน Clickhouse:

  1. MergeTree engine family
  2. Batch insert
  3. Part merges
  4. It “looks” like normal SQL
  5. Partition
  6. Deduplication strategies

ผมก็ขอสรุปสั้นๆไว้ประมาณนี้ครับ

หากสรุปนี้มีข้อผิดพลาดประการใด ก็ขออภัยไว้ด้วยนะครับ

By admin

Leave a Reply

Your email address will not be published. Required fields are marked *