Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ClickHouseアーキテクチャと活用事例

 ClickHouseアーキテクチャと活用事例

2025年1月に開催された「ClickHouse Meetup Tokyo」での発表スライドです。
本セッションでは、ClickHouseが大規模データをリアルタイムに解析できる理由を、MergeTreeエンジンの構造に焦点を当てて技術的な視点から解説しています。データがどのように蓄積・マージされ、高速なクエリ応答を実現しているのかを中心に、実際の活用事例や導入メリットに加え、ClickHouseを利用するうえで押さえておきたい重要なポイントについても説明します。

Miki Matsumoto

January 29, 2025
Tweet

More Decks by Miki Matsumoto

Other Decks in Technology

Transcript

  1. ClickHouse とは? オープンソース 列指向 分散 OLAPデータベース レプリケーション シャーディング マルチマスター クロスリージョン

    2009年から開発開始 2016年にオープンソース化 36,000 GitHubスター 1,300 コントリビューター 500 リリース 集計に最適 カラムごとのファイル管理 ソートとインデックス バックグラウンドマージ 分析ユースケース 集計処理 データの可視化 ほぼイミュータブルなデータ
  2. 2023 6月 ClickHouse Cloudが GCP上で一般提供開始 2022 12月 ClickHouse Cloudが AWS上で一般提供開始

    2021 10月 シリーズB資金調達 ラウンドで、 250Mドルを 調達 2021 9月 シリーズA資金調達ラウンドで、 50Mドルを調達 正式にサービスを公開 2021 8月 ClickHouse, Inc. をアメリカで設立 2009 ClickHouseの プロトタイプを開発 2016 6月 ClickHouseを Apache 2.0ライセンスの 下で公開 100 リリース 2024 4月 ClickHouse Cloudが AWSの東京リージョンを サポート開始 2024 6月 ClickHouse Cloudが Azure上で一般提供開 始 ClickHouse の歴史
  3. ✓ 36k以上のGitHubスター ✓ 6.4k以上のフォーク ✓ 1.3k以上のコントリビュータ ✓ 100k以上のコミット ✓ 114k

    のアクティブなコミュニティメンバー Cloud ✓ 高速、スケーラブル、そして信頼性が高い ✓ 柔軟で機能が豊富、かつ使いやすい ✓ 毎日数十億のクエリを処理 ClickHouse オープンソース ClickHouse Cloud
  4. Cloud セルフマネージド セルフマネージドにおけるアーキテクチャのサンプル ClickHouse Cloud architecture ✓ オープンソース ✓ 柔軟なアーキテクチャ

    ✓ 効率的で堅牢 ✓ サポート契約が利用可能 ✓ 使いやすい ✓ 機能が豊富 ✓ 高速 ✓ スケーラブル ✓ 信頼性が高い ✓ PAYG マネージド型サービス クラウドファースト機能とツールを提供 自動的にパフォーマンスと効率を最適化 シームレスなスケーリング 高い信頼性を保証 利用量と容量に応じた料金設定
  5. より高速な分析を実現するためのポイント • ほぼ ANSI SQL と同様の構文 ◦ SQLシンタックスはほぼ一緒 ◦ 追加でデータ型や特殊関数をサポート

    • 列指向ストレージの活用 ◦ 必要なカラムだけを SELECT して I/O を最小化 ◦ 大量データを扱う分析クエリで真価を発揮 • 従来のRDBMSOLTP とは設計思想が異なる ◦ 既存のクエリにおいても、列指向の恩恵で分析クエリは高速 ◦ さらに高速化するにはテーブル設計やクエリの最適化が重要 ◦ トランザクションについては、部分的にサポート(完全にサポートしていない)
  6. 行指向と列指向の理解 id date user product price 1 20250101 やまだ リンゴ

    200 2 20250101 さとう バナナ 80 3 20250102 すずき オレンジ 120 4 20250102 たかはし メロン 450 一般的な 行指向のテーブル
  7. 行指向と列指向の理解 一般的な 行指向のテーブル 一般的な RDBMS クエリ SELECT price FROM sales

    WHERE user=すずき id date user product price 1 20250101 やまだ リンゴ 200 2 20250101 さとう バナナ 80 3 20250102 すずき オレンジ 120 4 20250102 たかはし メロン 450
  8. 行指向と列指向の理解 列指向の テーブルの場合 product user date id 1 2 3

    4 やまだ さとう すずき たかはし リンゴ バナナ オレンジ メロン 20250101 20250101 20250102 20250102 price 200 80 120 450
  9. 行指向と列指向の理解 列指向の テーブルの場合 product user date id 1 2 3

    4 やまだ さとう すずき たかはし リンゴ バナナ オレンジ メロン 20250101 20250101 20250102 20250102 price 200 80 120 450 一般的な 分析クエリ SELECT avg(price) FROM sale
  10. sales テーブル ID date user product price date user product

    price ID 2 1 3 4 20250101 20250101 20250102 20250102 さとう やまだ すずき たかはし バナナ リンゴ オレンジ メロン 80 200 120 450 part インサート ① Sort Keyで並べ替える (date, user) 書き込み ディスク ② 列単位に分割する date user product price ID 1 20250101 やまだ リンゴ  200 2 20250101 さとう バナナ 80 3 20250102 すずき オレンジ 120 4 20250102 たかはし メロン 450 ③ 列ごとに圧縮する date user product price ID 1 20250101 やまだ リンゴ  200 2 20250101 さとう バナナ 80 3 20250102 すずき オレンジ 120 4 20250102 たかはし メロン 450
  11. マージされた part は引き続きマージされます part part part part merged part merged

    part merged part merged part ©2024 ClickHouse, Inc. All Rights Reserved part part part
  12. マージ後、未使用の部分は最終的に削除される part part part part part part merged part merged

    part merged part インサート インサート インサート インサート ©2024 ClickHouse, Inc. All Rights Reserved
  13. PRIMARY KEY のアーキテクチャ あべ あべ さとう すずき すずき たぐち いしい

    まつもと リンゴ バナナ オレンジ オレンジ メロン モモ ブドウ スイカ 100 80 120 120 450 250 1500 2000 20250101 20250101 20250101 20250102 20250102 20250104 20250109 20250110 date user product price … … … … … … … … … … … … sales テーブル ディスク Part Part Part Part Part Part …
  14. PRIMARY KEY のアーキテクチャ あべ あべ さとう すずき すずき たぐち いしい

    まつもと リンゴ バナナ オレンジ オレンジ メロン モモ ブドウ スイカ 100 80 120 120 450 250 1500 2000 20250101 20250101 20250101 20250102 20250102 20250104 20250109 20250110 date user product price … … … … … … … … … … … … 0 1 2 8,191 8,192 16,383 81,920 90,111 行数 グラニュール0 8,192レコード) グラニュール1 8,192レコード) グラニュール10 8,192レコード)
  15. PRIMARY KEY のアーキテクチャ あべ あべ さとう すずき すずき たぐち いしい

    まつもと リンゴ バナナ オレンジ オレンジ メロン モモ ブドウ スイカ 100 80 120 120 450 250 1500 2000 20250101 20250101 20250101 20250102 20250102 20250104 20250109 20250110 date user product price … … … … … … … … … … … … 0 1 2 8,191 8,192 16,383 81,920 90,111 行数 グラニュール0 8,192レコード) グラニュール1 8,192レコード) グラニュール10 8,192レコード)
  16. PRIMARY KEY のアーキテクチャ あべ あべ さとう すずき すずき たぐち いしい

    まつもと リンゴ バナナ オレンジ オレンジ メロン モモ ブドウ スイカ 100 80 120 120 450 250 1500 2000 20250101 20250101 20250101 20250102 20250102 20250104 20250109 20250110 date user product price … … … … … … … … … … … … 0 1 2 8,191 8,192 16,383 81,920 90,111 行数 グラニュール0 8,192レコード) グラニュール1 8,192レコード) グラニュール10 8,192レコード) date user 20250101 あべ 20250102 すずき 20250104 たぐち … … 20250109 いしい … … Primary Index
  17. リアルタイム分析 大規模データのリアルタイム分析・集計が可能なイ ンタラクティブなアプリケーションとダッシュボードを 実現。社内の複雑な分析処理も、分や時間単位で はなく、ミリ秒単位での実行を実現。 ビジネスインテリジェンス データを自在に分析し、分析レポートや社内アプリ ケーションの構築に活用。ユーザー行動分析、広告 ・メディア効果測定、市場動向分析など、幅広い用 途に対応。

    機械学習と生成 AI 高速かつ効率的なベクトル検索を実現。様々なプ ロバイダーの生成 AIモデルをすぐに利用可能。ペ タバイト規模のモデルトレーニングも、超高速な集 計処理で実現。 ログ、イベント、トレース ログ、イベント、トレースの確実な監視 を実現。異常検知や不正検知、ネット ワーク・インフラの問題など、様々な課 題を検出可能。 ユースケース