Share
Embed
Budapest Data Forum: What is Apache Kafka, and What is a Streaming Platform?
Robin Moffatt
June 14, 2018
Transcript
70 slides
-
1 What is Apache Kafka, and What is a Streaming
Platform? Budapest Data Forum, 14 Jun 2018 Robin Moffatt @rmoff [email protected] https://speakerdeck.com/rmoff/ -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 • Developer Advocate @ Confluent • Working in data & analytics since 2001 • Oracle ACE Director & Dev Champion • Blogging : http://rmoff.net & http://cnfl.io/rmoff • Twitter: @rmoff • Geek stuff • Beer & Fried Breakfasts $ whoami https://speakerdeck.com/rmoff/ -
“ @rmoff / What is Apache Kafka, and What is
a Streaming Platform? / Budapest Data Forum, June 2018 Apache Kafka is a Streaming Platform -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Three Lenses -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 01 Messaging Done Right 02 Scalable Streaming Data Pipelines 03 Foundation for Stream Processing What is Apache Kafka? -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Scalability True Storage Real-Time Processing Lens 1: Messaging Done Right -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Lens 2: Scalable Streaming Data Pipelines -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Lens 2: Scalable Streaming Data Pipelines -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Lens 3: Foundation for Stream Processing KSQL is the Streaming SQL Engine for Apache Kafka -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 The Streaming Platform -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 The Streaming Platform Event-Driven Scalable Decoupled -
“ @rmoff / What is Apache Kafka, and What is
a Streaming Platform? / Budapest Data Forum, June 2018 Bold claim: all your data is event streams -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 A Customer Experience -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 A Sale -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 A Sensor Reading -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 An Application Log Entry -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Databases -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Do you think that’s a table you are querying? -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Account ID Balance 12345 €50 The Stream-Table Duality -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Account ID Balance 12345 €50 Account ID Amount 12345 + €50 Time The Stream-Table Duality -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Account ID Balance 12345 €50 Account ID Amount 12345 + €50 12345 + €25 Account ID Balance 12345 €75 Time The Stream-Table Duality -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Account ID Balance 12345 €50 Account ID Amount 12345 + €50 12345 + €25 12345 -€60 Account ID Balance 12345 €75 Account ID Balance 12345 €15 Time The Stream-Table Duality -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Account ID Balance 12345 €50 Account ID Amount 12345 + €50 12345 + €25 12345 -€60 Account ID Balance 12345 €75 Account ID Balance 12345 €15 Time Stream Table The Stream-Table Duality -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 The truth is the log. The database is a cache of a subset of the log. —Pat Helland Immutability Changes Everything http://cidrdb.org/cidr2015/Papers/CIDR15_Paper16.pdf Photo by Bobby Burch on Unsplash -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Event-Driven architectures in action… -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Event-Driven architectures in action… -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Event-Driven architectures in action… -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Event-Driven architectures in action… -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Event-Driven architectures in action… -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Event-Driven architectures in action… -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Event-Driven architectures in action… -
“ @rmoff / What is Apache Kafka, and What is
a Streaming Platform? / Budapest Data Forum, June 2018 A Brief Look at Kafka's Technology -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 22 Apache Kafka Reads are a single seek & scan Writes are append only Kafka A Distributed Commit Log. Publish and subscribe to streams of records. Highly scalable, high throughput. Supports transactions. Persisted data. Stream processing. Producer & Consumer APIs Open-source client libraries for numerous languages, to directly integrate with your applications. -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 23 Apache Kafka Orders Table Customers Kafka Streams API Kafka Connect API Reliable and scalable integration of Kafka with other systems – no coding required. Kafka Streams API Write standard Java applications & microservices to process your data in real-time -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 KSQL is the Streaming SQL Engine for Apache Kafka -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 KSQL for Real-Time Monitoring 25 • Log data monitoring, tracking and alerting • syslog data • Sensor / IoT data CREATE STREAM SYSLOG_INVALID_USERS AS SELECT HOST, MESSAGE FROM SYSLOG WHERE MESSAGE LIKE '%Invalid user%'; http://cnfl.io/syslogs-filtering / http://cnfl.io/syslog-alerting -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 KSQL for Streaming ETL 26 CREATE STREAM platinum_customer_ratings AS SELECT r.message, r.rating, c.customer_name, c.level FROM ratings r LEFT JOIN customers c ON r.userid = c.id WHERE c.level = 'Platinum'; Joining, filtering, and aggregating streams of event data -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 27 MySQL Debezium Kafka Connect Producer API Elasticsearch Kafka Connect Streaming ETL with Apache Kafka and KSQL -
“ @rmoff / What is Apache Kafka, and What is
a Streaming Platform? / Budapest Data Forum, June 2018 What Problems does Kafka Solve? -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Event-Centric Thinking Streaming Platform “A product was viewed” Hadoop Web app -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Event-Centric Thinking Streaming Platform “A product was viewed” Hadoop Web app mobile app APIs -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 mobile app web app APIs Streaming Platform Hadoop Security Monitoring Rec engine “A product was viewed” Event-Centric Thinking -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Producer Consumer System Availability and Event Buffering -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Producer Consumer System Availability and Event Buffering -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Consumer A Producer 24hr batch extract Varying Latency Requirements / Batch vs Stream -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Producer 24hr batch extract Consumer A Consumer B Varying Latency Requirements / Batch vs Stream -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Producer 24hr batch extract Consumer A Consumer B Varying Latency Requirements / Batch vs Stream -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Producer 24hr batch extract Realtime Consumer A Consumer B Varying Latency Requirements / Batch vs Stream -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Producer 24hr batch extract Realtime Consumer A Consumer B Varying Latency Requirements / Batch vs Stream -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Producer Consumer A 24hr batch extract Realtime Realtime Consumer B Varying Latency Requirements / Batch vs Stream -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Technology & Code/Algo Version Changes Producer Consumer (v1) -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Technology & Code/Algo Version Changes Producer Consumer (v1) Consumer (V2) -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Technology & Code/Algo Version Changes Producer Consumer (V2) -
“ @rmoff / What is Apache Kafka, and What is
a Streaming Platform? / Budapest Data Forum, June 2018 Architectural Patterns with Apache Kafka -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Photo by Christopher Burns on Unsplash Building for the Future -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 45 Tightly-coupled = Inflexible -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 46 Database offload→Hadoop/Object Storage/Cloud DW for Analytics HDFS / S3 / BigQuery etc RDBMS CDC -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 47 Streaming ETL with Apache Kafka and KSQL order items customer customer orders Stream Processing RDBMS CDC -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 48 Real-time Event Stream Enrichment with Apache Kafka and KSQL order events customer Stream Processing customer orders RDBMS <y> CDC -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 49 Transform Once, Use Many order events customer Stream Processing customer orders RDBMS <y> New App <x> CDC -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 50 Transform Once, Use Many order events customer Stream Processing customer orders RDBMS <y> HDFS / S3 / etc New App <x> CDC -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 51 Drive new realtime applications using data from existing systems Existing App New App New App New App New App -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 52 Evolve processing from old systems to new RDBMS Existing App CDC -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 52 Evolve processing from old systems to new Stream Processing RDBMS Existing App CDC New App <x> -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 53 Evolve processing from old systems to new Stream Processing RDBMS Existing App New App <x> New App <y> CDC -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Confluent Open Source : Apache Kafka with a bunch of cool stuff! For free! Database Changes Log Events loT Data Web Events … CRM Data Warehouse Database Hadoop Data Integration … Monitoring Analytics Custom Apps Transformations Real-time Applications … Apache Open Source Confluent Open Source Confluent Enterprise Confluent Platform Confluent Platform Apache Kafka® Core | Connect API | Streams API Data Compatibility Schema Registry Monitoring & Administration Confluent Control Center | Security Operations Replicator | Auto Data Balancing Development and Connectivity Clients | Connectors | REST Proxy | CLI Apache Open Source Confluent Open Source Confluent Enterprise SQL Stream Processing KSQL -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 Free Books! https://www.confluent.io/apache-kafka-stream-processing-book-bundle -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 @rmoff [email protected] https://slackpass.io/confluentcommunity https://www.confluent.io/download/ -
@rmoff / What is Apache Kafka, and What is a
Streaming Platform? / Budapest Data Forum, June 2018 #EOF