- ClickHouse は非常に速いペースで開発されており、通常、年間に 10 件以上の安定版リリースがあります。そのため選択肢となるリリースが非常に多く、どれを選ぶかはそう簡単ではありません。
- 自分のユースケースに最適なバージョンを見極めるのに時間をかけたくなく、誰かの助言に従いたいと考えるユーザーもいます。
どの ClickHouse バージョンを推奨しますか?
- プレプロダクション環境では、本番で実行する予定のクエリにできるだけ近いものを実行できるようにする必要があります。
- 凍結したデータを置いただけの read-only 環境にしないでください。
- 典型的なレポートを作成せず、データをコピーするだけの write-only 環境にしないでください。
- スキーマ移行を適用せずに、環境をまっさらにしないでください。
- 実際の本番データとクエリのサンプルを使ってください。
SELECTクエリが妥当な結果を返せる、代表性のあるサンプルを選ぶようにしてください。データに機密性があり、社内ポリシー上本番環境の外に持ち出せない場合は、難読化を利用してください。 - プレプロダクション環境も、本番環境と同様に監視およびアラートの対象になっていることを確認してください。
- 本番環境が複数の datacenter や region にまたがっているなら、プレプロダクションも同様にしてください。
- 本番環境で、レプリケーション、分散テーブル、連鎖する materialized view のような複雑な機能を使っているなら、プレプロダクションでも同様に設定されていることを確認してください。
- プレプロダクションで、本番とほぼ同じ台数の server や VM をより小さいサイズで使うか、あるいは台数を大幅に減らして同じサイズで使うかにはトレードオフがあります。前者はより多くのネットワーク関連の問題を検出できる可能性がありますが、後者のほうが管理は容易です。
- 新しい ClickHouse releases に対して、自動テストを定期的に実行します。
testingとマークされている ClickHouse releases に対して実行することもできますが、それらを使って次の段階へ進むことは推奨されません。 - テストに合格した ClickHouse release をプレプロダクションにデプロイし、すべてのプロセスが想定どおりに動作していることを確認します。
- 発見した問題は ClickHouse GitHub Issues に報告します。
- 大きな問題がなければ、その ClickHouse release を本番環境にデプロイし始めても安全なはずです。canary releases や green-blue deployments に近いアプローチを実装した段階的リリース自動化に投資すれば、本番環境で問題が起きるリスクをさらに下げられる可能性があります。
ClickHouse リリースはどう選べばよいですか?
stablelts(長期サポート)
stableは、デフォルトで推奨しているパッケージです。おおむね毎月リリースされるため、新機能も過度に待たされることなく利用できます。また、直近 3 件の stable リリースについては、診断対応とバグ修正のバックポートがサポートされます。ltsは年 2 回リリースされ、初回リリースから 1 年間サポートされます。次のような場合は、stableよりltsのほうが適しているかもしれません。- 会社の内部ポリシーで、頻繁なアップグレードや非 LTS ソフトウェアの使用が認められていない。
- ClickHouse を補助的な製品で利用しており、高度な ClickHouse 機能を必要としない、または継続的に更新するための十分なリソースがない。
lts が適していると考えていたチームでも、製品にとって重要な新機能が必要になり、結局 stable に切り替えるケースは少なくありません。