メインコンテンツまでスキップ
メインコンテンツまでスキップ

Hive

Not supported in ClickHouse Cloud

Hiveエンジンを使用すると、HDFS Hiveテーブルに対して SELECT クエリを実行できます。現在、以下の入力フォーマットをサポートしています:

  • Text: binary を除く単純なスカラカラム型のみをサポート

  • ORC: char を除く単純なスカラカラム型をサポート;array のような複雑な型のみをサポート

  • Parquet: すべての単純なスカラカラム型をサポート;array のような複雑な型のみをサポート

テーブルの作成

CREATE TABLE クエリの詳細な説明を参照してください。

テーブル構造は元のHiveテーブル構造とは異なる場合があります:

  • カラム名は元のHiveテーブルと同じである必要がありますが、これらのカラムの一部だけを使用したり、任意の順序で使用したり、他のカラムから計算されたエイリアスカラムを使用することもできます。
  • カラム型は元のHiveテーブルのものと同じでなければなりません。
  • パーティションによる式は元のHiveテーブルと一致し、パーティションによる式のカラムはテーブル構造に含まれている必要があります。

エンジンパラメータ

  • thrift://host:port — Hiveメタストアのアドレス

  • database — リモートデータベース名。

  • table — リモートテーブル名。

使用例

HDFSファイルシステムのためのローカルキャッシュの使用方法

リモートファイルシステムに対してローカルキャッシュを有効にすることを強くお勧めします。ベンチマークでは、キャッシュを使用するとほぼ2倍速くなります。

キャッシュを使用する前に、config.xmlに追加してください

  • enable: trueの場合、ClickHouseは起動後にリモートファイルシステム(HDFS)のためのローカルキャッシュを維持します。
  • root_dir: 必須。リモートファイルシステムのためのローカルキャッシュファイルを格納するルートディレクトリ。
  • limit_size: 必須。ローカルキャッシュファイルの最大サイズ(バイト単位)。
  • bytes_read_before_flush: リモートファイルシステムからファイルをダウンロードする際にローカルファイルシステムにフラッシュする前のバイト数を制御します。デフォルト値は1MBです。

ClickHouseがリモートファイルシステムのためのローカルキャッシュを有効にして起動されると、ユーザーはクエリ内で settings use_local_cache_for_remote_storage = 0 を使用してキャッシュを使用しないことを選択することもできます。use_local_cache_for_remote_storage はデフォルトで 1 です。

ORC入力フォーマットでHiveテーブルをクエリする

Hiveでのテーブル作成

ClickHouseでのテーブル作成

上記のHiveテーブルからデータを取得するClickHouseのテーブル:

Parquet入力フォーマットでHiveテーブルをクエリする

Hiveでのテーブル作成

ClickHouseでのテーブル作成

上記のHiveテーブルからデータを取得するClickHouseのテーブル:

Text入力フォーマットでHiveテーブルをクエリする

Hiveでのテーブル作成

ClickHouseでのテーブル作成

上記のHiveテーブルからデータを取得するClickHouseのテーブル: