clickhouse-local
関連コンテンツ
clickhouse-local と ClickHouse の使い分け
clickhouse-local
は、ローカルおよびリモートファイルに対して SQL を使用して迅速に処理を行いたい開発者向けの使いやすい ClickHouse のバージョンです。これにより、フルデータベースサーバーをインストールすることなく、コマンドラインから ClickHouse SQL ダイアレクト を直接使用して SQL コマンドを実行する、シンプルかつ効率的な方法で ClickHouse の機能にアクセスできます。clickhouse-local
の主な利点の一つは、clickhouse-client をインストールする際に既に含まれていることです。これにより、開発者は複雑なインストールプロセスを必要とせずに、迅速に clickhouse-local
を開始できます。
clickhouse-local
は開発やテスト目的、ファイルの処理に最適なツールですが、最終ユーザーやアプリケーションに提供するためのものではありません。そうしたシナリオでは、オープンソースの ClickHouse を使用することをお勧めします。ClickHouse は、大規模な分析ワークロードを処理するように設計された強力な OLAP データベースです。大規模なデータセットに対する複雑なクエリの迅速かつ効率的な処理を提供し、高性能が重要な本番環境での使用に適しています。さらに、ClickHouse では、レプリケーション、シャーディング、高可用性といった幅広い機能を提供しており、大規模なデータセットを処理し、アプリケーションに提供するために必要なものです。より大きなデータセットを処理したり、最終ユーザーやアプリケーションにサービスを提供する必要がある場合は、clickhouse-local
の代わりにオープンソースの ClickHouse を使用することをお勧めします。
以下のドキュメントをお読みください。clickhouse-local
の使用例として、ローカルファイルのクエリ や AWS S3 での Parquet ファイルの読み取り が示されています。
clickhouse-local のダウンロード
clickhouse-local
は、ClickHouse サーバーおよび clickhouse-client
を実行するのと同じ clickhouse
バイナリを使用して実行されます。最新バージョンをダウンロードする最も簡単な方法は、次のコマンドです:
ダウンロードしたバイナリは、さまざまな ClickHouse ツールやユーティリティを実行できます。ClickHouse をデータベースサーバーとして実行したい場合は、クイックスタートを参照してください。
SQL を使ってファイル内のデータをクエリする
clickhouse-local
の一般的な用途は、ファイルに対してアドホッククエリを実行することです。データをテーブルに挿入する必要がありません。clickhouse-local
は、ファイルからデータをストリーミングして一時テーブルに移し、SQL を実行できます。
ファイルが clickhouse-local
と同じマシン上にある場合は、単に読み込むファイルを指定するだけで済みます。次の reviews.tsv
ファイルには、Amazon の商品レビューのサンプルが含まれています:
このコマンドは次のショートカットです:
ClickHouse は、ファイル名の拡張子からファイルがタブ区切り形式であることを認識します。形式を明示的に指定する必要がある場合は、多くの ClickHouse 入力形式 のいずれかを追加してください:
file
テーブル関数はテーブルを作成し、DESCRIBE
を使用して推測されたスキーマを見ることができます:
評価が最も高い商品を見つけてみましょう:
AWS S3のParquetファイル内のデータをクエリする
S3内にファイルがある場合は、clickhouse-local
と s3
テーブル関数を使用して、ClickHouse テーブルにデータを挿入することなくファイルをそのままクエリできます。イギリスで販売された物件の価格を含む house_0.parquet
という名前のファイルが公開バケットにあります。それに行数がいくつあるか見てみましょう:
ファイルには 2.7M 行があります:
ClickHouse がファイルから判断する推測されたスキーマを見るのは常に有用です:
最も高価な地区を見てみましょう:
ファイルを ClickHouse に挿入する準備ができたら、ClickHouse サーバーを起動し、file
および s3
テーブル関数の結果を MergeTree
テーブルに挿入します。詳細については、クイックスタートを参照してください。
フォーマット変換
clickhouse-local
を使用して、異なるフォーマット間でデータを変換できます。例:
フォーマットはファイル拡張子から自動検出されます:
ショートカットとして、--copy
引数を使用して書くこともできます:
使い方
デフォルトでは、clickhouse-local
は同じホスト上の ClickHouse サーバーのデータにアクセスでき、サーバーの構成には依存しません。また、--config-file
引数を使用してサーバー構成の読み込みもサポートしています。テンポラリデータの場合、デフォルトで一意のテンポラリデータディレクトリが作成されます。
基本的な使い方(Linux):
基本的な使い方(Mac):
clickhouse-local
は WSL2 を介して Windows でもサポートされています。
引数:
-S
,--structure
— 入力データ用のテーブル構造。--input-format
— 入力形式、デフォルトはTSV
。-F
,--file
— データのパス、デフォルトはstdin
。-q
,--query
—;
を区切りとして実行するクエリ。--query
は複数回指定可能で、例:--query "SELECT 1" --query "SELECT 2"
。--queries-file
と同時には使用できません。--queries-file
- 実行するクエリのファイルパス。--queries-file
は複数回指定可能で、例:--query queries1.sql --query queries2.sql
。--query
と同時には使用できません。--multiquery, -n
– 指定された場合、複数のクエリをセミコロンで区切って--query
オプションの後に列挙できます。便宜上--query
を省略し、クエリを--multiquery
の後に直接渡すことも可能です。-N
,--table
— 出力データを入れるテーブル名、デフォルトはtable
。-f
,--format
,--output-format
— 出力形式、デフォルトはTSV
。-d
,--database
— デフォルトデータベース、デフォルトは_local
。--stacktrace
— 例外が発生した場合にデバッグ出力をダンプするかどうか。--echo
— 実行前にクエリを表示する。--verbose
— クエリ実行に関する詳細情報。--logger.console
— コンソールにログを記録。--logger.log
— ログファイル名。--logger.level
— ログレベル。--ignore-error
— クエリが失敗しても処理を停止しない。-c
,--config-file
— ClickHouse サーバーと同じ形式の構成ファイルのパス、デフォルトは空の構成。--no-system-tables
— システムテーブルを接続しない。--help
—clickhouse-local
の引数リファレンス。-V
,--version
— バージョン情報を表示して終了。
また、--config-file
の代わりに一般的に使用される ClickHouse 構成変数ごとの引数もあります。
例
前の例は次のように同じです:
stdin
や --file
引数を使う必要はなく、多数のファイルを file
テーブル関数 を使って開くことができます:
各 Unix ユーザーのメモリ使用量を出力してみましょう:
クエリ:
結果: