quick-start
概要
ClickHouseのセットアップを迅速に行います。オペレーティングシステムに適したバイナリをダウンロードし、ClickHouseサーバーを起動し、テーブルを作成してデータを挿入し、ClickHouseクライアントを使用してテーブルをクエリします。
前提条件
ClickHouseバイナリを取得するために、curlまたは他のコマンドラインHTTPクライアントが必要です。
バイナリのダウンロード
ClickHouseは、Linux、FreeBSD、macOS上でネイティブに動作し、WindowsではWSLを介して動作します。ClickHouseをローカルにダウンロードする最も簡単な方法は、以下のcurl
コマンドを実行することです。このコマンドは、使用しているオペレーティングシステムがサポートされているかどうかを判断し、適切なClickHouseバイナリをダウンロードします。
以下のコマンドは、新しく空のサブディレクトリで実行することをお勧めします。なぜなら、ClickHouseサーバーが初めて実行されるときに、そのバイナリが存在するディレクトリにいくつかの構成ファイルが作成されるからです。
次のような表示がされます:
この段階では、install
コマンドを実行するように促されても無視してかまいません。
Macユーザーへ: バイナリの開発者が確認できないというエラーが表示される場合は、"macOSでの開発者確認エラーを修正する方法"を参照してください。
サーバーを起動する
以下のコマンドを実行して、ClickHouseサーバーを起動します:
ターミナルにログが表示され始めるはずです。これは期待される動作です。ClickHouseでは、デフォルトのログレベルがtrace
に設定されています。
クライアントを起動する
clickhouse-client
を使用してClickHouseサービスに接続します。新しいターミナルを開き、clickhouse
バイナリが保存されているディレクトリに移動し、次のコマンドを実行します:
サービスに接続すると、以下のように笑顔の絵文字が表示されるはずです:
テーブルを作成する
CREATE TABLE
を使用して新しいテーブルを定義します。典型的なSQL DDLコマンドはClickHouseでも動作しますが、一つだけ追加があります - ClickHouseのテーブルにはENGINE
句が必要です。MergeTree
を使用して、ClickHouseのパフォーマンスの利点を活用します:
データを挿入する
ClickHouseでは、既知のINSERT INTO TABLE
コマンドを使用できますが、MergeTree
テーブルへの各挿入が、ClickHouse内でパーツが作成されることを理解することが重要です。これらのパーツは、後でClickHouseによってバックグラウンドでマージされます。
ClickHouseでは、一度に大量の行(数万行または数百万行)をバルク挿入して、バックグラウンドプロセスでマージされる必要があるパーツの数を最小限に抑えようとしています。
このガイドでは、それを心配する必要はありません。以下のコマンドを実行して、テーブルに数行のデータを挿入します:
新しいテーブルをクエリする
他のSQLデータベースと同様に、SELECT
クエリを書くことができます:
結果が美しいテーブル形式で返されることに気付くでしょう:
自分のデータを挿入する
次のステップは、自分のデータをClickHouseに入れることです。我々はデータを取り込むためにたくさんのテーブル関数や統合を持っています。下のタブにはいくつかの例がありますが、ClickHouseと統合する技術の長いリストをチェックするために、統合のページを確認することもできます。
- S3
- GCS
- Web
- ローカル
- PostgreSQL
- MySQL
- ODBC/JDBC
- メッセージキュー
- データレイク
- その他
s3
テーブル関数を使用して、S3からファイルを読み取ります。これはテーブル関数であり、結果は次のように使うことができます:
SELECT
クエリのソースとして使用する(データをS3に保ちながら即席のクエリを実行可能)、または...- 結果のテーブルを
MergeTree
テーブルに挿入する(ClickHouseにデータを移動する準備ができたとき)
即席のクエリの例は次のようになります:
データをClickHouseテーブルに移動する場合は、次のようになります。ここで、nyc_taxi
はMergeTree
テーブルです:
ClickHouseとS3を使用するための詳細および例については、AWS S3ドキュメントページのコレクションを参照してください。
file
テーブルエンジンを使用してローカルファイルを読み取ります。簡単にするために、ファイルをClickHouseバイナリをダウンロードしたディレクトリにあるuser_files
ディレクトリにコピーします。
ClickHouseは大量の行を分析することによって、カラムの名前やデータ型を推測します。ClickHouseがファイル名からストレージタイプを特定できない場合は、2番目の引数としてそれを指定することができます:
さらに詳細については、file
テーブル関数のドキュメントページを参照してください。
ClickHouseは、任意のODBCまたはJDBCデータソースからデータを読み取ることができます:
さらに詳細については、odbc
テーブル関数およびjdbc
テーブル関数のドキュメントページを参照してください。
メッセージキューは、対応するテーブルエンジンを使用して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接続のユーザーガイドを確認してください。
- 主キーに関するユーザーガイドでは、主キーに関するすべてと、それを定義する方法を知ることができます。