LoginSignup
3
0

More than 1 year has passed since last update.

ClickHouse 21.12 の新機能

Last updated at Posted at 2021-12-15

この記事はラクス Advent Calendar 2021の16日目の記事です。
昨日は@r_numotoさんのLaravel SailでDocker環境を作ってみるでした。


ClickHouseとは

ラクスのOrganizationでClickHouseについて触れるのは初めてなので説明すると。
ClickHouseはオンライン分析用に開発されたオープンソースの列指向型データベース管理システムです。YandexというロシアのGoogle的な会社がアクセス解析を行う(Googleアナリティクス相当のYandex.Metricaを実現する)ために開発した製品で、現在はYandexから独立したClickHouse, incが開発を行っています。他の製品だとAWSのRedShiftや、GoogleのBigQueryが近い製品になります。

そのほか公式ドキュメントの概要を御覧ください。ちょっと古いですが↓の資料も特徴を知るにはいいと思います。

自前でホスティングすることも可能ですし、Altinity.cloudYandex.cloudのサービスを使うこともできます。

ClickHouse 21.12

昨日(2021/12/15)、ClickHouse21.12のドキュメントが公開されました。日本時間2012/12/17 02:00からはRelease Webinarが開催され、リリースはその後されると思います。

Webinar

リリース記事

アドベントカレンダーの担当前日にタイミング良すぎ!ということで、本記事ではChangelogから目についた新機能を紹介したいと思います。

BOOL型のサポート

ClickHouseの特徴として、他の製品(MySQLやPostgreSQL、Kafkaなど)と連携が可能というものがあり、この機能追加もその一環です。テーブルにBool型のカラムを定義できるようになり、真(1, true, TRUE)や偽(0, false, FALSE)を扱えるようになりました。

CNFオプティマイザーの追加

フィルター条件により速度が出ない問題の解決のため、CNFでのオプティマイザーが追加されたようです。ドキュメントがないため使い方は見切れていませんが用途によりCNFとDNFを使い分けられるようです。

ファイルからデータ登録が複数並列で行えるように

例えば、次のクエリINSERT INTO t FROM INFILE hoge/*を実行することでhoge以下の全ファイルをtにロードすることができます。すべてのファイルは並列で処理されるので、かなりの速度が期待できそうです。

カスタムフォーマットの追加と、各種フォーマットのバグ修正

ClickHouseでは入出力にCSV、TSV、JSON、Parquetなど様々なフォーマットに対応しています。今回はそのフォーマットについてのバグ修正と、独自フォーマットの定義を作成可能にする機能追加が行われました。

URLテーブル関数にリトライオプションを追加

ClickHouseには様々なテーブル関数が用意されていて、その一つにurlがあります。例えばSELECT * FROM url(https://hoge.com/sample.csv, CSV, 'id Int32, value String')とすればsample.csvにアクセスし、ファイルに対してSQL文を実行できます。
今回の機能追加で、アクセスに失敗した際に再試行を行えるようになりました。

最後に

今回の更新ではバグフィックスや、性能改善が多めになっていました。
2021年のロードマップもそれなりに完了していて、来年以降も活発に開発されていきそうです。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0