スタンフォード大学の博士課程で学ぶ学生であるZiheng Wang氏は、Python向け高速分散クエリ・エンジン「Quokka」の最新版となる「バージョン0.1.4」を12月30日(現地時間)に公開した。QuokkaはApache License 2.0で公開しているオープンソース・ソフトウェア。
「Quokka」は、「Apache Spark」「DuckDB」「SingleStore」「Snowflake」などの高性能データベース管理システムの影響を受けて開発が始まったソフトウェア。GitHubレポジトリに初めて登場したバージョンは0.0.8で、日付は2022年10月5日だった。
その最大の特徴は性能にある。データベース向けの業界標準ベンチマーク・プログラム「TPC-H」を使って比較したところ、Apache Spark SQLを大きく上回る処理速度を記録した。これは、Apache SparkのRDD(Resilient Distributed Dataset)によく似た「DataStreams」という機構を導入しているためだ。
Quokkaでは、処理するデータを分割する「パーティション」を連続的に生成し、生成したパーティションはそのまま処理されて消えていくが、Apache Sparkではパーティションはシャッフルが発生するまで残る。この特徴により、Quokkaは複数のシャッフルや入出力(I/O)をパイプライン化することができ、高い性能を発揮できるという。
もう1つの特徴は、Quokkaの記述にPythonのみを使用している点だ。この点は、「PyTorch」などのPython向けライブラリと組み合わせやすいという利点となる。
前述の通りQuokkaは、Apache Sparkを意識している部分が大きい。しかし、現時点ではQuokkaがSQLに完全には対応していないため、Apache Sparkの代替として使うべきではないという。とはいえQuokkaは将来のバージョンでSQLに完全に対応することを予定している。
- 関連リンク
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です