ClickHouse OSS クイックスタート
このクイックスタートチュートリアルでは、いくつかの簡単なステップで OSS ClickHouse をセットアップします。ClickHouse CLI
clickhousectlを使用して ClickHouse をインストールし、 ClickHouse サーバーを起動してサーバーに接続し、テーブルを作成して、 そのテーブルにデータを挿入し、SELECT クエリを実行します。
ClickHouse CLIのインストール \
ClickHouse CLI (clickhousectl) は、ローカルの ClickHouse バージョンのインストールと管理、サーバーの起動、クエリの実行に使用するツールです。次のコマンドでインストールします。
便宜上、chctl エイリアスも自動的に作成されます。
データの挿入
ClickHouseでは使い慣れた INSERT INTO TABLE コマンドを使用できますが、MergeTree テーブルへの挿入ごとに、ClickHouseがストレージ上にパーツと呼ばれるものを作成する点を理解しておくことが重要です。これらのパーツは後でClickHouseによってバックグラウンドでマージされます。
ClickHouse では、バックグラウンドでマージが必要となるパーツの数を最小限に抑えるため、一度に大量の行 (数万〜数百万件) をバルク挿入することを推奨しています。
このガイドでは、その点についてはまだ気にしなくて構いません。以下のコマンドを実行して、テーブルにいくつかの行のデータを挿入してください。
独自のデータを挿入する [#insert-own-data}
次のステップは、独自のデータを ClickHouse に取り込むことです。データの取り込みには、多数のテーブル関数およびインテグレーションを利用できます。以下のタブにいくつかの例を示しています。ClickHouse と連携するテクノロジーの一覧については、インテグレーションページをご覧ください。
- S3
- GCS
- Web
- ローカル
- PostgreSQL
- MySQL
- ODBC/JDBC
- メッセージキュー
- データレイク
- その他
s3 テーブル関数を使用して、
S3 からファイルを読み取ります。これはテーブル関数です。つまり、結果はテーブルとして返され、
次のように利用できます。
SELECTクエリのソースとして使用する (アドホッククエリを実行しつつ、 データは S3 に置いたままにできます) 。または...- 結果のテーブルを
MergeTreeテーブルに挿入する (データを ClickHouse に移す準備ができたら)
アドホッククエリは次のようになります。
データを ClickHouse テーブルに移すには、次のようにします。ここで、
nyc_taxi は MergeTree テーブルです。
ClickHouse で S3 を使用する方法の詳細や、さらに多くの例については、AWS S3 に関するドキュメントページ集を参照してください。
AWS S3 内のデータの
読み込みに使用するs3 テーブル関数は、Google Cloud Storage 内のファイルにも対応しています。
例えば:
詳細については、s3 テーブル関数のページを参照してください。
file テーブルエンジンを使用して、
ローカルファイルを読み込みます。簡単にするため、ファイルを user_files ディレクトリにコピーしてください
(このディレクトリは、ClickHouse バイナリをダウンロードしたディレクトリ内にあります) 。
なお、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可視化ツールを使用している場合は、UI を ClickHouse に接続するためのユーザーガイドを参照してください。
- 主キー に関するユーザーガイドには、主キーについて知っておくべきことと、その定義方法が一通りまとめられています。