ClickHouse OSS クイックスタート
このクイックスタートチュートリアルでは、8 つの簡単なステップで OSS 版 ClickHouse をセットアップします。お使いの OS に適したバイナリをダウンロードし、 ClickHouse サーバーの起動方法を学び、ClickHouse クライアントを使ってテーブルを作成し、 そのテーブルにデータを挿入して、そのデータを取得するクエリを実行します。
ClickHouseのダウンロード
ClickHouseはLinux、FreeBSD、macOS上でネイティブに動作し、WindowsではWSL経由で動作します。 ClickHouseをローカルにダウンロードする最も簡単な方法は、以下のcurlコマンドを実行することです。 このコマンドは使用中のオペレーティングシステムがサポートされているかを判定し、masterブランチからビルドされた適切なClickHouseバイナリをダウンロードします。
以下のコマンドは新規の空のサブディレクトリから実行することを推奨します。ClickHouseサーバーの初回起動時に、バイナリが配置されているディレクトリ内に設定ファイルが作成されるためです。
以下のスクリプトは、本番環境へのClickHouseインストールには推奨されません。 本番環境用のClickHouseインスタンスをインストールする場合は、インストールページを参照してください。
次のように表示されます:
この段階では、install コマンドを実行するよう促すプロンプトは無視してください。
Macユーザーの方へ:バイナリの開発者を検証できないというエラーが表示される場合は、"MacOSにおける開発者検証エラーの修正方法"を参照してください。
サーバーを起動する
以下のコマンドを実行してClickHouseサーバーを起動します:
ターミナルに大量のログが表示されます。これは想定された動作です。ClickHouseでは
デフォルトのログレベル
がwarningではなくtraceに設定されています。
クライアントを起動する
clickhouse-clientを使用してClickHouseサービスに接続します。新しいターミナルを開き、clickhouseバイナリが保存されているディレクトリに移動して、以下のコマンドを実行します:
localhost上で実行されているサービスに接続すると、スマイリーフェイスが表示されます:
データの挿入
ClickHouseでは一般的なINSERT INTO TABLEコマンドを使用できますが、MergeTreeテーブルへの各挿入によって、ストレージ内にClickHouseでパートと呼ばれるものが作成されることを理解しておく必要があります。これらの^^パート^^は後でClickHouseによってバックグラウンドでマージされます。
ClickHouseでは、バックグラウンドプロセスでマージが必要となるパートの数を最小限に抑えるため、一度に大量の行(数万行から数百万行)をバルク挿入します。
このガイドでは、その点についてはひとまず考慮しません。以下のコマンドを実行して、テーブルに数行のデータを挿入してください:
独自データの挿入
次のステップは、お客様のデータをClickHouseに取り込むことです。データ取り込み用のテーブル関数とインテグレーションを多数ご用意しています。以下のタブにいくつかの例を掲載していますが、ClickHouseと統合可能な技術の詳細なリストについてはインテグレーションページをご確認ください。
- S3
- GCS
- Web
- ローカル
- PostgreSQL
- MySQL
- ODBC/JDBC
- メッセージキュー
- データレイク
- その他
s3 table function を使用して
S3 からファイルを読み込みます。これはテーブル関数であり、結果として得られるテーブルは
次のように利用できます:
SELECTクエリのソースとして使用する(アドホッククエリを実行しつつ、 データは S3 に残しておく)、または…- 得られたテーブルを
MergeTreeテーブルに挿入する(データを ClickHouse に 取り込む準備ができたとき)
アドホッククエリは次のようになります:
nyc_taxi が MergeTree テーブルである場合、データを ClickHouse テーブルに移動する処理は次のようになります。
ClickHouse と S3 の連携方法に関する詳しい説明や多数の利用例については、AWS S3 に関するドキュメント集 を参照してください。
AWS S3 のデータを読み取るために使用される s3 table function は、
Google Cloud Storage 上のファイルにも同様に利用できます。
例えば、次のように使用します。
詳細については、s3 テーブル関数のページを参照してください。
ローカルファイルを読み取るには、file テーブルエンジン を使用します。簡単のため、ファイルを user_files ディレクトリにコピーしてください
(user_files ディレクトリは、ClickHouse バイナリをダウンロードしたディレクトリ内にあります)。
ClickHouse は、多数の行を含むバッチを解析することで、カラム名とデータ型を推論します。ClickHouse がファイル名からファイルフォーマットを判別できない場合は、2 番目の引数として明示的に指定できます。
詳細については、file テーブル関数
のドキュメントページを参照してください。
ClickHouse は、あらゆる ODBC または JDBC データソースからデータを読み込むことができます。
詳細については、odbc テーブル関数
および jdbc テーブル関数 のドキュメントページを参照してください。
メッセージキューは、対応するテーブルエンジンを使用して ClickHouse にデータをストリーミングできます。例:
- Kafka:
Kafkatable engine を使用して Kafka と連携します - Amazon MSK: Amazon Managed Streaming for Apache Kafka (MSK) と連携します
- RabbitMQ:
RabbitMQtable engine を使用して RabbitMQ と連携します
ClickHouse には、次のデータソースからデータを読み取るためのテーブル関数があります。
- Hadoop:
hdfstable function を使用して Apache Hadoop と連携します - Hudi:
huditable function を使用して、S3 上の既存の Apache Hudi テーブルからデータを読み取ります - Iceberg:
icebergtable function を使用して、S3 上の既存の Apache Iceberg テーブルからデータを読み取ります - DeltaLake:
deltaLaketable function を使用して、S3 上の既存の Delta Lake テーブルからデータを読み取ります
既存のフレームワークやデータソースを ClickHouse に接続する方法を知るには、豊富な ClickHouse 連携一覧 をご覧ください。
探索
- ClickHouse の仕組みの基本を学ぶには、Core Concepts セクションを参照してください。
- ClickHouse の主要なコンセプトや機能を、より踏み込んで解説している Advanced Tutorial もご覧ください。
- 学習をさらに進めるには、ClickHouse Academy が提供する無料のオンデマンドトレーニングコースをご受講ください。
- サンプルデータセット と、それらの挿入手順の一覧を用意しています。
- データが外部ソースから取り込まれる場合は、メッセージキュー、データベース、パイプラインなどへの接続方法について、インテグレーションガイド一覧 を参照してください。
- UI / BI の可視化ツールを使用している場合は、UI を ClickHouse に接続するためのユーザーガイド を参照してください。
- primary keys に関するユーザーガイドには、プライマリキーの基礎知識と定義方法がすべて網羅されています。