クイックスタート
ClickHouseへようこそ!
このクイックスタートチュートリアルでは、8つの簡単なステップでセットアップを行います。適切なバイナリをOSにダウンロードし、ClickHouseサーバーを実行する方法を学び、ClickHouseクライアントを使用してテーブルを作成し、データを挿入し、そのデータを選択するクエリを実行します。
さあ、始めましょう?
ClickHouseをダウンロードする
ClickHouseは、Linux、FreeBSD、macOS上でネイティブに動作し、WindowsではWSLを介して実行されます。ClickHouseをローカルにダウンロードする最も簡単な方法は、以下のcurl
コマンドを実行することです。このコマンドは、オペレーティングシステムがサポートされているかどうかを判定し、適切なClickHouseバイナリをダウンロードします。
以下のコマンドは、新しく空のサブディレクトリから実行することをお勧めします。なぜなら、ClickHouseサーバーが初めて実行されると、バイナリが保存されているディレクトリにいくつかの設定ファイルが作成されるからです。
あなたは次のようなメッセージを見るべきです:
この段階では、install
コマンドを実行するように求められても無視して構いません。
Macユーザーの皆さんへ:バイナリの開発者を確認できないとのエラーが表示される場合は、"MacOSの開発者認証エラーの修正"をご覧ください。
サーバーを起動する
以下のコマンドを実行してClickHouseサーバーを起動します:
ターミナルがログで埋まるのを見るはずです。これは予想されることです。ClickHouseでは、デフォルトのログレベルがtrace
に設定されています。
クライアントを起動する
clickhouse-client
を使用してClickHouseサービスに接続します。新しいターミナルを開き、clickhouse
バイナリが保存されているディレクトリに移動して、以下のコマンドを実行します:
あなたは、ローカルホストで実行されているサービスに接続する際に、笑顔の顔を見るはずです:
データを挿入する
ClickHouseでは、慣れ親しんだINSERT INTO TABLE
コマンドを使用できますが、MergeTree
テーブルへの各挿入が、ClickHouse内でpartを作成することを理解することが重要です。これらのパーツは後でClickHouseによってバックグラウンドでマージされます。
ClickHouseでは、バックグラウンドプロセスでマージする必要のあるpartsの数を最小化するために、一度に多くの行(数万または場合によっては数百万)を一括挿入しようとしています。
このガイドでは、そのことについてはまだ心配しません。以下のコマンドを実行して、テーブルに数行のデータを挿入します:
自分のデータを挿入する
次のステップは、自分のデータをClickHouseに入れることです。データを取り込むためのたくさんのテーブル関数と統合があります。以下のタブにいくつかの例がありますが、ClickHouseと統合するテクノロジーの長いリストについては統合ページをご覧ください。
- S3
- GCS
- Web
- Local
- PostgreSQL
- MySQL
- ODBC/JDBC
- Message Queues
- Data Lakes
- Other
s3
テーブル関数を使用してS3からファイルを読み取ります。これはテーブル関数であり、結果は次のように使用できます:
SELECT
クエリのソースとして使用する(これにより、アドホッククエリを実行し、データをS3に保持できます)、または…- 結果のテーブルを
MergeTree
テーブルに挿入します(ClickHouseにデータを移動する準備ができたら)
アドホッククエリは次のようになります:
データをClickHouseのテーブルに移動する場合は、次のようになり、nyc_taxi
はMergeTree
テーブルです:
S3でClickHouseを使用する際の詳細と例については、AWS S3ドキュメントページのコレクションをご覧ください。
file
テーブルエンジンを使用してローカルファイルを読み取ります。簡単にするために、ファイルをuser_files
ディレクトリにコピーします(このディレクトリはClickHouseバイナリをダウンロードしたディレクトリにあります)。
ClickHouseは、大きなバッチの行を分析することによって、カラムの名前とデータ型を推測することに注意してください。ファイル名からファイルフォーマットを特定できない場合は、第2引数として指定できます:
詳細については、file
テーブル関数のドキュメントページをご覧ください。
メッセージキューは、対応するテーブルエンジンを使用してClickHouseにデータをストリーミングできます。これには、次のものが含まれます:
- Kafka:
Kafka
テーブルエンジンを使用してKafkaと統合 - Amazon MSK:Amazon Managed Streaming for Apache Kafka (MSK)と統合
- RabbitMQ:
RabbitMQ
テーブルエンジンを使用してRabbitMQと統合
ClickHouseは、次のソースからデータを読み取るためのテーブル関数を提供しています:
- Hadoop:
hdfs
テーブル関数を使用してApache Hadoopと統合 - Hudi:
hudi
テーブル関数を使用してS3内の既存のApache Hudiテーブルから読み取る - Iceberg:
iceberg
テーブル関数を使用してS3内の既存のApache Icebergテーブルから読み取る - DeltaLake:
deltaLake
テーブル関数を使用してS3内の既存のDelta Lakeテーブルから読み取る
既存のフレームワークやデータソースをClickHouseに接続する方法を見つけるために、ClickHouse統合の長いリストをご覧ください。
探索する
- ClickHouseの仕組みの基礎を学ぶには、コアコンセプトセクションをご覧ください。
- ClickHouseの主要な概念や機能について深く掘り下げた高度なチュートリアルをご覧ください。
- ClickHouse Academyで、無料のオンデマンドトレーニングコースを受講し、学習を続けてください。
- 挿入方法に関する指示を含む例のデータセットのリストがあります。
- 外部ソースからデータが来ている場合は、メッセージキュー、データベース、パイプラインなどへの接続に関する統合ガイドのコレクションをご覧ください。
- UI/BI可視化ツールを使用している場合は、ClickHouseにUIを接続するためのユーザーガイドを確認してください。
- 主キーに関するユーザーガイドは、主キーの定義方法と必要なすべての情報を提供しています。