Apache Kafkaは分散処理の基盤として開発されたオープンソースのプラットフォームです。従来からあるメッセージングサービスを元に新しい分散処理を実現します。独自のアーキテクチャで処理の流れを定義して多数のコンピュータをまとめ上げ、IoTや機械学習に求められる非常に大きなデータ処理を実現できます。
本書では、Apache Kafkaについて次のような解説を行います。
・Kafkaが生まれた背景と特徴、その機能や原理について
・Kafkaのインストールと利用のための基本
・開発のポイント
・Kafkaを適用できるさまざまなシステムをパターン別に解説
・業務での活用を前提としたインテグレーションのポイントを紹介
本書ではさまざまな分野での活用が期待されるApache Kafkaの基礎を、現場を知るエンジニアの書下ろしで紹介します。ソフトウェアとしてのKafkaとその活用方法をまとめて理解できる必読の解説書です。
第1部 導入Apache Kafka
1 Apache Kafkaの概要
1.1 本章で行うこと
1.2 Apache Kafkaとは
1.3 Kafka誕生の背景
1.4 Kafkaによる要求仕様の実現
1.5 Kafkaの広がり
1.6 本章のまとめ
2 Kafkaの基本
2.1 本章で行うこと
2.2 Message送受信の基本
2.3 システム構成
2.4 分散メッセージングのための仕組み
2.5 データの堅牢性を高めるレプリケーションの仕組み
2.6 本章のまとめ
3 Kafkaのインストール
3.1 本章で行うこと
3.2 本書で構築するKafkaクラスタの環境
3.3 Kafkaの構築
3.4 Kafkaの起動と動作確認
3.5 本章のまとめ
4 KafkaのJava APIを用いたアプリケーションの作成
4.1 本章で行うこと
4.2 アプリケーションの開発環境の用意
4.3 Producerアプリケーションの作成
4.4 作成したProducerアプリケーションのポイント
4.5 Consumerアプリケーションの作成
4.6 作成したConsumerアプリケーションのポイント
4.7 本章のまとめ
第2部 実践Apache Kafka
5 Kafkaのユースケース
5.1 本章で行うこと
5.2 Kafkaで実現するユースケース
5.3 データハブ
5.4 ログ収集
5.5 Webアクティビティ分析
5.6 IoT
5.7 イベントソーシング
5.8 Kafkaの公開事例
5.9 本章のまとめ
6 Kafkaを用いたデータパイプライン構築時の前提知識
6.1 本章で行うこと
6.2 Kafkaを用いたデータパイプラインの構成要素
6.3 データパイプラインで扱うデータ
6.4 本章のまとめ
7 KafkaとKafka Connectによるデータハブ
7.1 本章で行うこと
7.2 Kafka Connectとは
7.3 データハブアーキテクチャへの応用例
7.4 環境構成
7.5 ECサイトに実店舗の在庫情報を表示する
7.6 毎月の販売予測を行う
7.7 データ管理とスキーマエボリューション
7.8 本章のまとめ
8 ストリーム処理の基本
8.1 本章で行うこと
8.2 Kafka Streams
8.3 コンピュータシステムのメトリクス
8.4 Kafka Brokerのメトリクスを可視化する
8.5 サンプルプログラムの解説
8.6 ウィンドウ処理
8.7 Processor API
8.8 メトリクスの種類
8.9 Kafka Streamsを利用するメリット
8.10 本章のまとめ
9 Structured Streamingによるストリーム処理
9.1 本章で行うこと
9.2 Apache SparkとStructured Streaming
9.3 サンプルアプリケーション動作環境
9.4 Apache Sparkのセットアップ
9.5 Tweet Producer
9.6 KafkaとStructured Streamingの連携の基本
9.7 本章のまとめ
10 Kafkaで構成するIoTデータハブ
10.1 本章で行うこと
10.2 IoTに求められるシステム特性とKafka
10.3 センサーデータ向けデータハブの設計
10.4 センサーデータ向けデータハブの構築
10.5 実際のセンサーデータの投入とデータ活用に向けて
10.6 高度なデータ連携基盤を実現する場合の課題とアイデア
10.7 本章のまとめ
11 さらにKafkaを使いこなすために
11.1 本章で行うこと
11.2 Consumer Group
11.3 Offset Commit
11.4 Partition Reassignment
11.5 Partition数の考慮
11.6 Replication-Factorの考慮
11.7 本章のまとめ
Appendix
付録A コミュニティ版Kafkaの開発中のバージョンの利用
付録B KSQL を利用したストリーム処理
S S さん
2019-04-07
使いやすい事例が多いと思いつつ、デリバリーするにあたってのサイジングは難しそうだな、という印象だった。サイジングの観点などは記載されていてとても親切な本だと感じた。