2021.11.30

Apache Kafkaとは何ぞや ~Kafkaを支えるプラットフォーム~

文:SIOS Minami

こんにちは!これまでApache Kafkaについて、Kafkaの概要や、Kafka内部の構造について説明してきました。Kafkaはそれ自体だけでも十分に便利なプラットフォームですが、Kafkaを使いやすく、かつ便利にするために、Kafka外部と連携するツールが存在しています。今回はそんなツールについてや、それらのツールを取りまとめて提供しているConfluentについてお話していきたいと思います。

CONTENTS

この記事をシェア:

Facebook Twitter LINE

Confluentとは?

Apache KafkaはもともとLinkedIn社により作られ、その時の開発者が独立して立ち上げたのがConfluent社です。Confluent社ではApache Kafkaをさらに便利なものにするべく、Confluent Platformを提供しており、無償版の場合は以下のような機能を提供しています。

  • Producer、Consumer間のデータ整合性を確認する機能
    • schema registry
  • KafkaとProducer、Consumerの接続を容易にする機能
    • Kafka Connect
    • rest proxy
  • 条件に応じたデータを処理して整形する機能
    • ksqlDB

Kafka Connect

Kafkaでは幅広いユースケースがあるため、様々な種類の外部との連携が必要になってくることがあります。Kafka外部にあるプロダクトがkafkaに接続するのには、接続の設定を行わなければならずそれをいちいち各プロダクトが作業をするのは効率的ではありません。Kafka ConnectではKafkaとの接続をプロダクトとKafka間に置くことですぐに接続ができるようになります。具体的には図のようにプロダクトとKafkaConnectの間ではConnectorを用いて接続し、KafkaConnectとKafkaとの間ではConnectAPIを使用して接続しています。

REST proxy

Kafkaはjava,scalaで開発されたプラットフォームであり、ProduceやConsumerがjava以外の言語のものであると運用がしにくいという問題があります。サードパーティ製のものであればある程度の言語には対応していますが、マイナーな言語だとそれにも対応しきれていないのは事実です。 rest proxyではHTTPSプロトコルを用いた送受信を行うことで、様々な言語で開発されたアプリケーションからデータを受け取ることができたり、kafkaと互換性のないconsumerへのメッセージ送信などが可能となります。

Schema registry

Kafkaでは、データ送受信能力に関しては申し分ないのですが、一方でデータを送信するときにconsumer側がどのようなデータセットを求めているのかは考慮していないため、もしproducer側で送信したデータの形式がconsumer側では互換性がない場合、受け取ろうとしたときに予期しないエラーが出る可能性があります。そこで登場するのがSchema Registryです。これもrest proxyと同じくkafkaクラスターの外に存在します。動きとしては、Producerがデータ送信する際にデータ形式をSchema Registryに送信し、それらが互換性を持つかどうか判断します。

ksqlDB

ksqlDB は Kafka 用のストリーミング SQL エンジンです。kafkaでは大規模なデータが絶えずやりとりされており、ユーザー側が様々な目的で特定のデータを扱いたい場合がでてきます。ユーザー側がsqlをコーディングをしてksqlに命令をすることで、データのフィルタリング、変換、集約、結合、ウィンドウ化、セッション化など、幅広いストリーミング操作をサポートします。

要するに興味のあるデータを探す手間が省けたり、興味のあるデータ同士を比較して特徴を見出したりなどをしたい時に役に立ちます!便利ですね!

また、Java や Python などのプログラミング言語でコードを書く必要はないため、言語学習にかかるコストを下げることができます。耐障害性に関してもksqlDBは優秀であり、障害発生時にデータを失うことなく稼働するうえに、データ量によらずスケーラブルに機能し続けます。

おわりに

今回はConfluent社が提供する外部ツールについて紹介しました!次回は無償版であるこれら三つの機能を実際に動かしていきたいと思います!

文:SIOS Minami

カテゴリ

相談したい
DXの課題何ですか?

DXの知識、導入事例を知りたい DXの知識、導入事例を知りたい セミナーに参加する

DXに関連する情報についてご紹介しています。お気軽にセミナー・イベントやウェビナーにご参加ください。

何から手をつけていいか分からない 何から手をつけていいか分からない サービスソリューションをみる

お客様ごとに、DX関連の最適なサービスソリューションがあります。まずはこちらからご覧ください。

自社の具体的な導入を検討している 自社の具体的な導入を検討している 各種お問い合わせへ

「DXの話だけでも聞いてみたい」「資料が欲しい」「相談したい」など、お気軽にご相談ください。