Apache Kafkaに対応したSQLエンジン「KSQL」リリース、ストリームデータをSQLで継続的に処理。Confluentがオープンソースで
Apache Kafkaを用いたリアルタイムデータ処理の商用サービスを提供しているConfluentは、Apache Kafkaに対応したオープンソースのSQLエンジン「KSQL」のデベロッパープレビューをリリースしました。
Apache Kafkaはスケーラビリティに優れ、大量のデータをリアルタイムに処理できるソフトウェアです。さまざまなアプリケーションから送られてくるログや大量のセンサーなどから生成されるデータなど、リアルタイムに送信されてくるストリームデータをいったんKafkaで受け止め、それをまとめてHadoopなどの分析エンジンに渡してデータの分析を行う、といった形で使われます。
KSQLは、このKafkaに対応したSQLエンジン。これによりJavaやPythonで複雑な処理を記述しなくとも、ストリームデータを柔軟に加工できるようになります。
SQLとKSQLの違いとは?
一般的なリレーショナルデータベースでは、ある時点で固定されたデータであるテーブルに対してSQLを実行すると、結果のデータが出力され、それで実行が終了しますが、Kafkaに対応したKSQLでは、ストリームデータに対して継続的にKSQLが実行され、結果データが継続的に出力されます。
「Introducing KSQL: Open Source Streaming SQL for Apache Kafka」では、KSQLの動作を次のように説明しています。
what it does do is continuous transformations— that is, stream processing. For example, imagine that I have a stream of clicks from users and a table of account information about those users being continuously updated. KSQL allows me to model this stream of clicks, and table of users, and join the two together. Even though one of those two things is infinite.
KSQLが行うのは、継続的な変換 -- それがストリーム処理だ。例えば、ユーザーからのクリックデータがストリームデータで、一方でこれらのユーザーの情報がつねに最新情報にアップデートされつづけるユーザーアカウントテーブルがあるとする。KSQLは、このクリックのストリームデータとユーザーテーブルをモデルとし、ふたつをジョインできる。たとえそのいずれかが無限に続くデータだったとしてもだ。
KSQLの利用用途として、ログデータを実際のサービスに紐づけることで、リアルタイムにモニタリングしつつサービスごとの反応速度を監視したり、アノマリーデータ(特異的なデータ)の発見や、オンラインでのデータ統合などが挙げられています。
あわせて読みたい
ビジネスマンがデータ分析をする「シチズンデータサイエンティスト」が登場。仕事のデジタル化はこの先どうなるか、ガートナーが「デジタルワークプレイスのハイプサイクル2017年版」発表
≪前の記事
米オラクルがSolaris関連の従業員をほぼ全員レイオフしたとの報道(追記あり)