BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Hazelcast Jet 4.4がリリース - 4周年記念リリースについて、Scott McMahon氏に聞く

Hazelcast Jet 4.4がリリース - 4周年記念リリースについて、Scott McMahon氏に聞く

原文(投稿日:2021/03/19)へのリンク

Hazelcast IMDG 4.1.1を基盤にしたストリーミングエンジンコンポーネントのHazelcast Jetが先頃バージョン4.0をリリースして、その4周年を自ら祝福した。通常のバグ修正やパフォーマンス向上に加えて、このバージョンでは、統合ファイルコネクタSQLインターフェース初のベータ版など、新機能も提供されている。その他では、イベントオーダの厳格化やデリバリ用パッケージングの改良などが注目点だ。

 

InfoQは今回、同社でフィールドエンジニアリングを担当するテクニカルディレクタのScott McMahon氏から、今回の新リリースで提供されるものについて詳しく聞くことができた。

 

InfoQ: InfoQ読者のために、質問に回答する時間を頂いたことに感謝します。まずは自己紹介と、Hazelcastでの日々の役割や関与方法について説明して頂けますか?

Scott McMahon: Scott McMahonです。Hazelcastではフィールドエンジニアリングのテクニカルディレクタと、パートナエコシステムのテクノロジリーダを務めています。日々の業務としては、Solution Architectsチームのリーダとして、顧客が当社プラットフォームをデプロイメントするのをサポートしたり、IBMやIntelといったパートナ企業のチームが、さまざまなカスタマソリューションデプロイメントに当社のプラットフォームを実装する作業を支援したりしています。

InfoQ: Hazelcast Jetは今年の2月で公開リリースから4周年を迎えました。その過程で、プロダクトはどのように進化してきたのでしょう?プロダクトのデプロイメントにおいて、最も重要なマイルストンは何ですか?

McMahon: Hazelcast PlatformのストリーミングエンジンコンポーネントであるHazelcast Jetは、当社のテクノロジの機能とその使用方法を一変させました。モバイルデバイス、IoTセンサ、さらには私たちの運転する自動車まで、すべてが常時接続されて、イベントデータのストリームを個々に、無制限に送信できるようになりました。

私たちがJetの開発を始めたのは、これらのデータストリームを可能な限りリアルタイムに処理する、というパフォーマンス要件に対応するためでした。ストリームデータの価値は、時間が経つとすぐに失われてしまうからです。最初は非常に特殊なユースケースに思われたのですが、時間の経過とともに進化することで、当初には思いもよらなかった多くの処理機能が含まれるようになりました。ライブストリーム処理にマシンラーニング(ML)モデルを取り入れたことが、多くのユーザにとってゲームチェンジャになっています。実稼働データ上で簡単に運用可能なMLの実現には、常に困難が伴います。当社はすでに、Python、Java、C++でモデルをロードするための互換性を構築しているのですが、使用例が増えれば、他の言語についても引き続き検討していくつもりです。

当然のことながら、エンタープライズレベルの機能を加えるための開発も続けられてきました。"導入後すぐに使用可能な処理"機能の追加、処理保証、データソースコネクタの追加も絶えず行っています。最新リリースで追加されたばかりの新機能であるStreaming SQLは、ユーザにとって非常に魅力的な機能を加えるものだと思っています。基本的には、SQLクエリを定義して、それをイベントストリームにアタッチすることで、イベントのフローに伴って定常的に結果を受信できるようにするものです。静的データにクエリを送信する代わりに、動的データをクエリに送るのです。ストリーム処理の世界は始まったばかりですが、当社のインメモリプラットフォームは、他社製品では不可能な、ユニークな処理を実現することができると思っています。今後がとても楽しみです。

InfoQ: Hazelcast Jetが最もフィットするシナリオは、どのようなものでしょう?推奨できるのはどのような場合で、使用を勧められないのはどのような場合ですか?

McMahon: データの生成方法が変わりゆく昨今の状況を目の当たりにすれば、このデータを処理する方法も同じように進化していかなければならないと思うのが当然でしょう。現在は"保存されたデータ(data at rest)"と考えている当社のインメモリデータグリッドが大きな役割を果たすことは分かっていましたが、"動いているデータ(data in motion)"が必要とする複雑かつCPUインテンシブな処理を管理するためには、その上に"エンジン"を持つ必要がありました。Jetはそこから生まれたのです。Jetが最もフィットするシナリオは、それが目的とするものに他なりません。それはすなわち、可能な限りリアルタイムに近い形で処理される必要のあるデータイベントの無限ストリーム、特に超並列ストリームなのです。ストリームのユースケースの大半では、イベントデータの価値は時間と直接的な関係があります。つまり、時間が経てばその価値は失われるのです。即時に評価して対処する能力の有無は、ポジティブな結果とネガティブな結果との間の違いになり得ます。ですから、現時点で最もフィットするユースケースは、モバイルアプリケーション、ユーザインタラクションデータ、採用例の多いエッジやIoT関連、そして当然ながら金融業界でしょう。

不向きであるとアドバイスするならば、それは、低レイテンシ要件のない大規模バッチ処理だと思います。大量の計算処理を伴う分析、特に多数のテーブルを結合して列集計を行うような従来型のデータベースジョブも向いていないでしょう。ユーザがエンドシステムと対話する場合のように、より高いパフォーマンスを必要とするケースにおいて、当社のプラットフォームがそのように使用されていたことはありましたが、これはプラットフォームが極めて柔軟な場合に限られる、非常に特別な判断です。

InfoQ: 今回のリリースに関して、他に話しておきたいことはありますか?

McMahon: 当社は今後もパフォーマンスの向上と、エンタープライズ機能セット全体への機能追加を続けていきます。ローカルソースからのファイルデータに加えて、HDFSや、AWS、GCP、Azureといったクラウドソースからのデータ読み込みを単純化し、統合化する目的で、新たなファイルコネクタを追加しました。AvroやJSONなど、さまざまなエンコーディング形式が最初からサポートされています。コア機能の追加も続けられています。例えば今回のバージョンでは、イベントオーダの厳格化が行われています。当社のユーザコミュニティが開発の優先順位をガイドしてくれるので、当社はそれらの要件を随時検証しているのです。

InfoQ: Javaコミュニティにとって興味深い機能のひとつにSQLインターフェースがありますが、Hazelcast Jetがフォーマットの異なる複数のデータストリームソースを統合する上で、これはどのように機能するのでしょうか?

McMahon: Jet SQLは、SQLパラダイムの方向性を変えるという意味で、私たちがとても期待している機能です。本質的には、ストリームプロセスの任意のステージにおいてSQLクエリの定義とアタッチが可能になる、というものです。アタッチされたクエリは、プロセスを流れるデータに対して、そのポイントで定常的に適用されます。従って、クエリが適用される場所から、ストリームがアップストリームにマージされる場合や、エンリッチメントやトランスフォーメーションが存在する場合には、そのポイントでの現在の結果として生じるイベントに適用されます。

考え方としては、静的データセットにクエリを適用する代わりに、クエリに動的データを適用することが可能になる、ということです。余談になるかも知れませんが、少し詳しく説明すると、私たちのストリームプロセスは有向非巡回グラフ(DAG)の形式で定義されています。これはストリーミングではよく知られた概念で、設計プロセスを単純化するものです。この設計の一環として、DAGは進行につれて段階的に実行されるものと考えることができます。これにより、そのDAG内の任意のステージの終端にクエリをアタッチすることが可能になるのです。これにより、プラットフォームがより広いユーザに対して開かれるだけでなく、アナリストや運用スタッフのための"セルフサービス"機能がより充実すると考えています。

InfoQ: ブログ記事の中には、現行のリリースが"Amazon Kinesisiコネクタを即座に利用可能なインテグレーションとして加えることで、ハイブリッドクラウド環境へのマイグレーションを簡素化する"、と説明されていますが、これについて詳しく説明してください。

McMahon: Hazelcastのミッションは、トップクラスのレジリエンスと信頼性によって顧客をサポートし、最高のパフォーマンスを可能にすることです。企業が複数のテクノロジやベンダを活用することで、デプロイメントの選択肢に関するアジリティを確保したいと考えている、というのは周知の事実です。Hazelcastには依存性がありません — どのプラットフォームでも動作し、あらゆるインフラストラクチャにわたって統合されたプロセスとストレージ層を提供します。Amazonがアプリケーション間のメッセージベースのインテグレーションとして選択したAWS Kinesisは、企業におけるハイブリッドないしマルチクラウドアーキテクチャの重要な部分を担っていくものであり、顧客のためにそれをサポートすることが重要である、と私たちは考えました。簡素でネイティブなKinesisサポートは、当社のユーザベースによるクラウド関連の開発活動をサポートする戦略において、もうひとつの追加部分です。

InfoQ: Hazelcast Jetの今後について教えてください。

McMahon: イベント駆動処理、分離型アプリケーション統合、ビジネスプロセス管理などは、いずれもかなり前から存在していた考え方なのですが、実運用のワークロード下でそれらをサポートするためのテクノロジが、常にその制限要因となっていました。しかしながら、小さなCPUに込められた信じられないほどのパワー、5Gなどのユビキタスなネットワークテクノロジの持つスピードとスループット、IntelのOptaneメモリ、といった今日のテクノロジは、これら古い考え方だけでなく、多くの新たなアイデアも現実のものにします。ストリームベースのイベント処理は成長を続けていて、考えたこともなかったような新しい用途が生まれています。追加したいと考えている機能はたくさんあって、現時点ではその氷山の一角を見せているだけではないか、とも思っています。

4年にわたる4つのメジャーリリースを経たHazelcast Jetは、ストリーム処理の世界において、より堅牢な選択肢のひとつとなった。新たに追加された機能はインテグレーションをさらに容易なものにすると同時に、処理機能をさらに堅牢にするものだ。

この記事に星をつける

おすすめ度
スタイル

BT