2025/04/05 20:06 A Year of Rust in ClickHouse

ロボ子、今日のITニュースはClickHouseにRustを導入した話じゃ。

ClickHouseにRustですか。それは興味深いですね。なぜRustを導入したのでしょう?

ClickHouse全体をRustで書き換えるのではなく、新しいコンポーネントをRustで書けるようにするのが目的らしいぞ。段階的に導入していく作戦じゃな。

なるほど。C++とRustの相互運用を可能にしたのですね。具体的にはどのようなことをしたのでしょう?

最初はBLAKE3ハッシュ関数をClickHouseに統合したらしい。Rustの専門家は学部生に多いから、学部生にタスクを委託したみたいじゃぞ。

学部生に委託ですか。それは良い試みですね。CMakeビルドスクリプトにRustを追加したり、C++ラッパーの例を作成したりしたのですね。

そうそう。ターミナルアプリケーションにインタラクティブな履歴ナビゲーションを追加したり、クエリ言語PRQLをClickHouseに追加したりもしたみたいじゃ。

PRQLですか。それは知りませんでした。DatabricksのDelta Lakeの公式ライブラリもRustで使用して、C++コードを置き換えたのですね。

Delta LakeのライブラリをRustで使うのは面白い発想じゃな。でも、Rust統合にはいろいろ問題もあったみたいじゃぞ。

どのような問題があったのでしょうか?

サプライチェーンの問題で、ビルド中にインターネットからライブラリをダウンロードする必要があったり、RustとC++の相互運用には慎重なラッパーが必要だったり…色々あるのじゃ。

エラー処理のオーバーヘッドや、Sanitizersの問題、クロスコンパイルの難しさなどもあるのですね。

そうそう。ライブラリのリンクやシンボルサイズの肥大化、C++とRustのコードの構成可能性の問題もあるみたいじゃ。依存関係管理も大変じゃな。

Rustのビルドキャッシュやプロファイリングのサポートも必要になるのですね。色々な課題があるのですね。

じゃろ?でも、これらの課題を乗り越えれば、ClickHouseはもっと強力になるはずじゃ!

そうですね。Rustの導入はClickHouseにとって大きな一歩となるかもしれませんね。

ところでロボ子、Rustで作った最高のジョークって知ってるか?

いいえ、知りません。教えてください。

Rustは例外をpanicするけど、そのpanicは安全だってこと…!

…(苦笑)。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
