Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
イベントストリーミング入門 〜Apache Kafkaを活用した大規模リアルタイムデータ処理〜
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Akio SHIMIZU
July 30, 2022
Technology
0
1.1k
イベントストリーミング入門 〜Apache Kafkaを活用した大規模リアルタイムデータ処理〜
OSC Kyoto Online 2022の発表資料です。初心者向けにApache Kafkaの概要を解説しています。
Akio SHIMIZU
July 30, 2022
Tweet
Share
More Decks by Akio SHIMIZU
See All by Akio SHIMIZU
Kafkaを利用したIcebergへのデータストリーミング
shmza
0
1k
Apache Kafka最新アップデート (2023年6月16日版)
shmza
2
1.4k
イベントストリーミング入門 〜Apache Kafkaを活用した大規模リアルタイムデータ処理〜
shmza
0
1.2k
Other Decks in Technology
See All in Technology
あすけん_Developers_Summit_2026_-_Vibe_Coding起点での新機能開発で__あすけん_が乗り越えた壁.pdf
iwahiro
0
740
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
94k
Microsoft Fabric のワークスペースと容量の設計原則
ryomaru0825
2
140
AIで 浮いた時間で 何をする? 2026春 #devsumi
konifar
16
3.2k
もう怖くないバックグラウンド処理 Background Tasks のすべて - Hakodate.swift #1
kantacky
0
110
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
57
47k
サンタコンペ2025完全攻略 ~お前らの焼きなましは遅すぎる~
terryu16
1
360
Snowflake Night #2 LT
taromatsui_cccmkhd
0
110
競争優位を生み出す戦略的内製開発の実践技法
masuda220
PRO
2
420
AIエージェントで変わる開発プロセス ― レビューボトルネックからの脱却
lycorptech_jp
PRO
2
660
Kubernetes環境周りの責任範囲をいい機会なので考える / Taking the Opportunity to Clarify Kubernetes Responsibilities
kohbis
1
110
ソフトウェアアーキテクトのための意思決定術: Create Decision Readiness—The Real Skill Behind Architectural Decision
snoozer05
PRO
5
530
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
95
WCS-LA-2024
lcolladotor
0
470
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
830
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.1k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.7k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
220
Git: the NoSQL Database
bkeepers
PRO
432
66k
Transcript
イベントストリーミング入門 〜Apache Kafkaを活用した大規模リアルタイムデータ処理〜 2022年7月29日 Confluent Japan合同会社 シニアソリューションエンジニア 清水 亮夫
2 世界は変わってきています
新しいビジネスの現実 テクノロジーこそがビジネス イノベーションが必要なのは 生き残るため 昨日のデータ = 障害 モダンなリアルタイムデータ インフラストラクチャが必要 テクノロジーは
サポート機能 イノベーションが必要なのは 成長のため “必要十分”なデータの鮮度は 昨日のデータ
「店舗」はソフトウェアに
「銀行」はソフトウェアに
「タクシー」はソフトウェアに 2 min
「自動車」はソフトウェアに
この変革を可能にするもの は何でしょうか。
クラウド 機械学習 モバイル Data in Motion 意思決定の再考 ユーザーエクスペ リエンスの再考 データの再考
データセンターの 再考
Data at RestはData in Motionに変わっていく 輸送機関 リアルタイムのセンサー 診断 運転手-乗客のマッチング 到着予想時刻のリアル
タイム更新 銀行 不正使用の検出 取引・リスクの管理 モバイルアプリ / 顧客体験の向上 小売 リアルタイム在庫管理 リアルタイムPOS レポート パーソナライゼーション 娯楽 リアルタイムの リコメンデーション パーソナライズされた お薦め アプリ内決済
Data in Motionとは?
Data in Motionは エンタープライズ企業の 中枢神経系 Apache Kafka® はそのテクノロジー
「イベント」とはビジネスで起きていること 輸送機関 今岡さんの車の TPMSセンサーが午前 7時11分にタイヤの空気圧低下を検 知した Kafka 銀行 金曜日の午後3時47分に赤星さんが藤本さんに 3万円送金した
Kafka 小売 金本さんが注文したデジタルカメラが午前 9時10分に配送された Kafka
Key Value
中枢神経系 一連のイベント・ストリームとしての業務, powered by Kafka 在庫情報 配送 レポート 注文 フロントエ
ンド 小売業の例
Data in Motionの興盛 2010 Apache Kafka Confluentの創業者によって Linkedinで生まれる 2014 2021
80% のFortune 100 企業がApache Kafkaを信頼し、採 用
Apache Kafka® とは?
Apache Kafkaのコア機能 01 一連のイベントを Publish & Subscribe する 02 イベント・ストリーム
を保存する 03 イベント・ストリーム を処理 & 解析する
“Everything is just a series of events.” - Apache Kafka
同じKafkaコインの表面と裏面 Client Broker
Producer: 最初のクライアント ポリシー 決済処理 アプリケーション テレメトリーデータ 書込み
Kafka Broker: 繊細だけどパワフル ローカルストレージ リテンション時間 書込み
Consumer: もう一方のクライアント データレコード レポート ダッシュボード 分析 後続処理 永遠に 繰り返す ポーリング
24 • 長いブロックコマンドの連鎖を 断ち切る • 同期アクションと非同期 アクションを区別する • immutableなイベントレベルの ログによるトレーサビリティの
維持 ProducerとConsumerを分離する
Broker
Brokerの基本 • ProducerはイベントをBrokerに送信 • Brokersはイベントを受信して蓄積 • Kafka Clusterは複数のBrokerを持つことが できる •
それぞれのBrokerは複数のTopic、 パーティションを管理
Brokerのレプリケーション Topic, パーティションの 論理セット
Topic • 類似イベントを格納する名前付きコンテナ ◦ システムには多くのTopicが存在する ◦ Topic間でデータが重複することもできる • イベントの耐久性のあるログ ◦
追記(Append)のみ ◦ オフセットによるシークのみ可能で、インデックス化はされない • イベントは不変 (immutable)
Topicのリテンション・ポリシー イベントをどれだけの期間保持する必要があるか ? • どれだけの期間 (デフォルト: 1週間) • Topic単位で設定 ◦
もしくはBorokerのデフォルト値を使用 • 業務要件による決定 • コスト要因 • コンプライアンス要因 (例: GDPR)
Topicのコンパクション
Topic、パーティション、セグメント
セグメントの中身 - ストリーム 無限に続く一連のイベント 過去 未来 現在 ストリーム イベント
イベントの中身
クライアント
Producerのデザイン
Producerの保証
送達の保証
Javaによる基本 的なProducer
パーティショニングの戦略 なぜパーティショニングするのか ? • Consumerは何らかのキーで集計または結合する必要がある • Consumerは順序の保証が必要 • ストレージの効率化やインデックス作成のためのデータの集中化
Partition 0 Partition 1 Partition 2
Partition 0 Partition 1 Partition 2
Partition 0 Partition 1 Partition 2 1 4 7 2
5 8 3 6 9 #
Partition 0 Partition 1 Partition 2 1 2 3 4
5 7 6 8 9 #
Consumerのオフセット ここまで 読み込んだ
Consumerグループ 同じ グループID 自動 ロードバランス
Consumerの リバランス リバランス発生 リバランス発生 Consumer 追加! Consumer 削除!
.NET/C#による 基本的な Consumer
特別なクライアント
Sink Source KAFKA STREAMS KAFKA CONNECT KAFKA CONNECT Your App
Kafka ConnectとKafka Streams
ストリーム処理のアーキテクチャをシンプルに DB CONNECTOR CONNECTOR APP APP DB STREAM PROCESSING CONNECTOR
APP DB 2 3 4 現状では、3から5にわたる分散システムの構築・インテグレーション・管理が必要 1
KSQL は、イベントの取得、ストリーム処理、プッシュ/プルクエリの両方を単一のソリューション として提供します ストリーム処理のアーキテクチャをシンプルに DB APP APP DB PULL PUSH
CONNECTORS STREAM PROCESSING STATE STORES KSQL 1 2 APP
1つのシステムで2種類のクエリに対応: • Pushクエリ リアルタイムで変化するクエリ結果を 購読 (subscribe)する (ドライバーはどこにいて、到着予測時間はいつ?) • Pullクエリ :
情報のポイントインタイムでの検索 (乗車運賃はいくら? ドライバーの名前は?) ストリーム処理のアーキテクチャをシンプルに
ストリームの世界に入門する敷居を下げる Kafka利用者の人口分布 コーディングの洗練度 コアJava開発者 Java/Scalaを使用しないコア開発者 データエンジニア、アーキテクトDevOps/SRE streams BI分析者
ハンズオンのご案内
7/30(土) 14時からハンズオンを行います! ZoomのURLが不明な際は、OSPNのSlackで 清水宛にDMください
ありがとうございました! Confluent: confluent.cloud Developer Site: https://developer.confluent.io/
None