はじめに
Azure HDInsight で Apache Kafka と Apache Spark を使用すると、クラウド上にリアルタイムのストリーミング データ分析パイプラインとアプリケーションを作成できます。
Apache Kafka とは、複数のシステムから受信ストリーミング データを受け取り、他のアプリケーションでリアルタイムに使用できるようにする分散メッセージング システムです。 Apache Kafka は、順序付けされたデータのキューを作成した後、単一障害点がないように複数のコンピューター間でデータをレプリケートして、パブリッシャーまたはコンシューマーと呼ばれるもので使用できるようにすることで機能します。 パブリッシャーは、メッセージを作成して Kafka キューに追加するクライアントです。コンシューマーは、サブスクリプションに基づいてメッセージを受信します。
Apache Spark とは、Apache Kafka などのシステムからデータを受け取り、そのデータを変換したり、そのデータに対応したりできるようにする並列処理システムです。 Apache Kafka を使用するとデータの活用や保存ができ、Apache Spark を使用するとデータの変更や処理ができます。 一緒に使用した場合、Spark では Kafka から小さなバッチや継続的なデータ ストリームを取り込み、構造化ストリーミングと呼ばれるものを使用してリアルタイムに処理することができます。 構造化ストリーミングを実装した企業では、1 つのアーキテクチャを使用してバッチ データ、リアルタイム ストリーミング データ、またはその 2 つの組み合わせを処理できます。これにより、企業ではさまざまなフレームワークの習得や実装を行わなくても、バッチ処理からリアルタイム処理を含む環境への移行に伴って自社のアプリケーションをレベルアップすることができます。
Azure HDInsight で Apache Kafka と Apache Spark を使用すると、こうしたアーキテクチャを数分で作成できるため、オンライン クラウド プロバイダーのスケーラビリティと高可用性の恩恵を受けることができます。 また、オンプレミスの Kafka および Spark アプリケーションを作成していた企業では、それらのワークロードをより簡単にクラウドに移行できるようになります。
銀行業界でデータ エンジニアとして業務に携わる場合は、超低遅延で受信ストリーミング データとバッチ データの処理を開始できる必要があります。そして、Apache Spark と Apache Kafka がその業務に適したツールであると考えられています。
学習の目的
このモジュールを完了すると、次のことができるようになります。
- HDInsight を使用する
- Apache Kafka を使用してデータをストリーム配信する
- Spark Structured Streaming について説明する
- Kafka Spark アーキテクチャを作成する
- データ変換を実行するために HDInsight をプロビジョニングする
- Kafka プロデューサーを作成する
- Kafka データを Jupyter Notebook にストリーム配信する
- データをセカンダリ クラスターにレプリケートする