SlideShare a Scribd company logo
JUG
Florent Ramière
Technical Account Manager
florent@confluent.io
@framiere
Agenda
1.Confluent
2.Streaming
3.KSQL
4.Demo
5.Resources
6.Q&A!
Confluent
About Confluent and Apache Kafka™
70% of active Kafka Committers
Founded

September 2014
Technology developed 

while at LinkedIn
Founded by the creators of
Apache Kafka
Cheryl Dalrymple

CFO
Luanne Dauber

CMO
Simon Hayes

Head of Corporate &
Business Development
Jay Kreps

CEO
Todd Barnett

VP WW Sales
Neha Narkhede

CTO, VP Engineering
Sarah Sproehnle
VP Customer Success
Why a Streaming Platform?
All your data
Real-time
Fault tolerant
Secure
Confluent Platform: Enterprise Streaming based on Apache Kafka
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
Apache Kafka®
Core | Connect API | Streams API
Data Compatibility
Schema Registry
Confluent Platform
Monitoring & Administration
Confluent Control Center | Security
Operations
Replicator | Auto Data Balancing | JMS Client | JMS Connectors
Development and Connectivity
Clients | Connectors | REST Proxy | CLI
Apache Open Source Confluent Open Source Confluent Enterprise
SQL Stream Processing
KSQL (Streams API)
Confidential 7
Key concepts
Streaming
A Kafka story!
https://github.com/framiere/a-kafka-story
No Panic, it's a walktrough!
https://github.com/framiere/a-kafka-story/tree/master/step6
Trade-Offs
• subscribe()
• poll()
• send()
• flush()
Consumer,
Producer
Flexibility Simplicity
Trade-Offs
• subscribe()
• poll()
• send()
• flush()
Consumer,
Producer
• filter()
• join()
• aggregate()
Kafka Streams
Flexibility Simplicity
App
Streams
API
Not running
inside brokers!
Brokers?
Nope!
App
Streams
API
App
Streams
API
App
Streams
API
Same app, many instances
Before
DashboardProcessing Cluster
Your Job
Shared Database
After
Dashboard
APP
Streams
API
Things Kafka Streams Does
Runs
everywhere
Clustering
done for you
Exactly-once
processing
Event-time
processing
Integrated
database
Joins, windowing,
aggregation
S/M/L/XL/XXL/XXXL
sizes
Stream Processing in Kafka
● KStream
KStream<byte[], String> textLines = builder
.stream("textlines-topic", Consumed.with(Serdes.ByteArray(), Serdes.String()))
.mapValues(String::toUpperCase));
KTable<String, Long> wordCounts = textLines
.flatMapValues(textLine -> Arrays.asList(textLine.split("W+")))
.groupBy((key, word) -> word)
.count();
● KTable
Trade-Offs
• subscribe()
• poll()
• send()
• flush()
Consumer,
Producer
• filter()
• join()
• aggregate()
Kafka Streams
• Copy In
• Copy Out
• SMT
Kafka Connect
Flexibility Simplicity
Apache Kafka™ Connect API – Streaming Data Capture
JDBC
Mongo
MySQL
Elastic
Cassandra
HDFS

Kafka Connect API
Kafka Pipeline
Connector
Connector
Connector
Connector
Connector
Connector
Sources Sinks
Fault tolerant
Manage hundreds of data
sources and sinks
Preserves data schema
Part of Apache Kafka project
Integrated within Confluent
Platform’s Control Center
Flexible Integrated Reliable Compatible
Connect any source to any target system
Single Message Transforms
•Mask sensitive information
•Add identifiers
•Tag events
•Lineage/provenance
•Remove unnecessary
columns
•Route high priority events to
faster data stores
•Direct events to different
Elasticsearch indexes
•Cast data types to match
destination
•Remove unnecessary
columns
Modify events before storing in
Kafka:
Modify events going out of Kafka:
But…Easy to Implement
/**

* Single message transformation for Kafka Connect record types.

*

* Connectors can be configured with transformations to make lightweight
* message-at-a-time modifications.

*/

public interface Transformation<R extends ConnectRecord<R>> extends Configurable, Closeable {



/**

* Apply transformation to the {@code record} and return another record object.

*

* The implementation must be thread-safe.

*/

R apply(R record);




/** Configuration specification for this transformation. **/

ConfigDef config();




/** Signal that this transformation instance will no longer will be used. **/

@Override

void close();



}
Trade-Offs
• subscribe()
• poll()
• send()
• flush()
Consumer,
Producer
• filter()
• join()
• aggregate()
Kafka Streams
• Select…from…
• Join…where…
• Group by..
KSQL
Flexibility Simplicity
Declarative
Stream
Language
Processing
KSQLis a
KSQL for Data Exploration
SELECT status, bytes
FROM clickstream
WHERE user_agent =
'Mozilla/5.0 (compatible; MSIE 6.0)';
An easy way to inspect data in a running cluster
KSQL for Streaming ETL
• Kafka is popular for data pipelines.
• KSQL enables easy transformations of data within the pipe.
• Transforming data while moving from Kafka to another system.
CREATE STREAM vip_actions AS 

SELECT userid, page, action FROM clickstream c
LEFT JOIN users u ON c.userid = u.user_id 

WHERE u.level = 'Platinum';
KSQL for Anomaly Detection
CREATE TABLE possible_fraud AS

SELECT card_number, count(*)

FROM authorization_attempts 

WINDOW TUMBLING (SIZE 5 SECONDS)

GROUP BY card_number

HAVING count(*) > 3;
Identifying patterns or anomalies in real-time data,
surfaced in milliseconds
Once again
KSQL implements for you the Kafka Stream
application you would have implemented if you had
• ... the time
• ... the experience
• ... the KSQL as a spec
• ... the willingness to do boring code
KSQL is really Kafka Stream ? ... yes!
./confluent start
./jmc&
echo '{"something":"value"}' | ./kafka-console-producer --broker-list localhost:9092 --topic temp
./kafka-console-consumer --bootstrap-server localhost:9092 --topic temp --from-beginning
{"something":"value"}
./ksql
ksql>SET 'auto.offset.reset' = 'earliest';
ksql>CREATE STREAM TEMP (something varchar) WITH ( kafka_topic='temp',value_format='JSON');
ksql>SELECT * FROM TEMP;
1526371655810 | null | value
Where is KSQL not such a great fit?
BI reports (Tableau etc.)
• No indexes
• No JDBC (most BI tools are not
good with continuous results!)
Ad-hoc queries
• Limited span of time usually
retained in Kafka
• No indexes
Demo
Demo fun
https://www.confluent.io/blog/taking-ksql-spin-using-real-time-device-data/
Demo ... less fun
https://bit.ly/2KqPZYo
Demo ... less fun
https://bit.ly/2L5l2dj
Demo ... less fun
https://github.com/framiere/a-kafka-story/tree/master/step19
Change Data Capture
Docker
Producer
Consumer
Kafka Stream
KSQL
Event sourcing
Influxdb
Grafana
S3
docker run --rm -it --name dcv -v $(pwd):/input pmsipilot/docker-compose-viz 
render --horizontal --output-format image --force 
docker-compose.yml
Demo ... less fun
... without Confluent Control Center links
Confluent 4.2 - Nested Types
SELECT userid, address.city
FROM users
WHERE address.state = 'CA'
https://github.com/confluentinc/ksql/pull/1114
Confluent 4.2 - Remaining joins
SELECT orderid, shipmentid
FROM orders INNER JOIN shipments
ON order.id = shipmentid;
Where to go from here
● KSQL project page
○ https://www.confluent.io/product/ksql
● Confluent blog
○ http://blog.confluent.io/
● Blog Formule1 game
○ https://www.confluent.io/blog/taking-ksql-spin-using-real-time-device-data/
● KSQL github repo
○ https://github.com/confluentinc/ksql
● CP-Demo
○ https://github.com/confluentinc/cp-demo
● A-Kafka-Story
○ https://github.com/framiere/a-kafka-story
● Un tour de l'environement Kafka
○ https://www.youtube.com/watch?v=BBo-rqmhpDM
● KSQL Recipies
○ https://github.com/bluemonk3y/ksql-recipe-fraudulent-txns/
Confluent Download – 4.1 – Kafka 1.1 and KSQL GA
KSQL Capacity Planning – Sizing
https://docs.confluent.io/current/ksql/docs/capacity-planning.html
Resources - Confluent Enterprise Reference Architecture
https://www.confluent.io/whitepaper/confluent-enterprise-reference-
architecture/
Resources – Community Slack and Mailing List
https://slackpass.io/confluentcommunity
https://groups.google.com/forum/#!forum/confluent-platform
Devoxx France
https://www.youtube.com/watch?v=BBo-rqmhpDM
Q&A

More Related Content

PDF
Beyond the brokers - Un tour de l'écosystème Kafka
PDF
Paris jug ksql - 2018-06-28
PDF
Devoxx university - Kafka de haut en bas
PDF
JHipster conf 2019 - Kafka Ecosystem
PPTX
Paris Kafka Meetup - patterns anti-patterns
PDF
Chti jug - 2018-06-26
PDF
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB) - Friends, Enemies or ...
PDF
Rethinking Stream Processing with Apache Kafka, Kafka Streams and KSQL
Beyond the brokers - Un tour de l'écosystème Kafka
Paris jug ksql - 2018-06-28
Devoxx university - Kafka de haut en bas
JHipster conf 2019 - Kafka Ecosystem
Paris Kafka Meetup - patterns anti-patterns
Chti jug - 2018-06-26
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB) - Friends, Enemies or ...
Rethinking Stream Processing with Apache Kafka, Kafka Streams and KSQL

What's hot (20)

PDF
Using Location Data to Showcase Keys, Windows, and Joins in Kafka Streams DSL...
PDF
Introducing Kafka's Streams API
PDF
Using Apache Kafka to Analyze Session Windows
PDF
Event Sourcing, Stream Processing and Serverless (Benjamin Stopford, Confluen...
PDF
Secure Kafka at scale in true multi-tenant environment ( Vishnu Balusu & Asho...
PDF
New Features in Confluent Platform 6.0 / Apache Kafka 2.6
PDF
Apache Kafka + Apache Mesos + Kafka Streams - Highly Scalable Streaming Micro...
PDF
Apache kafka-a distributed streaming platform
PPTX
IoT and Event Streaming at Scale with Apache Kafka
PDF
Now You See Me, Now You Compute: Building Event-Driven Architectures with Apa...
PDF
KSQL – An Open Source Streaming Engine for Apache Kafka
PDF
ETL as a Platform: Pandora Plays Nicely Everywhere with Real-Time Data Pipelines
PDF
Stream Me Up, Scotty: Transitioning to the Cloud Using a Streaming Data Platform
PDF
Evolving from Messaging to Event Streaming
PDF
KSQL Deep Dive - The Open Source Streaming Engine for Apache Kafka
PDF
Introducing Confluent Cloud: Apache Kafka as a Service
PDF
What is Apache Kafka and What is an Event Streaming Platform?
PDF
Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...
PDF
Apache Kafka, Tiered Storage and TensorFlow for Streaming Machine Learning wi...
PPTX
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
Using Location Data to Showcase Keys, Windows, and Joins in Kafka Streams DSL...
Introducing Kafka's Streams API
Using Apache Kafka to Analyze Session Windows
Event Sourcing, Stream Processing and Serverless (Benjamin Stopford, Confluen...
Secure Kafka at scale in true multi-tenant environment ( Vishnu Balusu & Asho...
New Features in Confluent Platform 6.0 / Apache Kafka 2.6
Apache Kafka + Apache Mesos + Kafka Streams - Highly Scalable Streaming Micro...
Apache kafka-a distributed streaming platform
IoT and Event Streaming at Scale with Apache Kafka
Now You See Me, Now You Compute: Building Event-Driven Architectures with Apa...
KSQL – An Open Source Streaming Engine for Apache Kafka
ETL as a Platform: Pandora Plays Nicely Everywhere with Real-Time Data Pipelines
Stream Me Up, Scotty: Transitioning to the Cloud Using a Streaming Data Platform
Evolving from Messaging to Event Streaming
KSQL Deep Dive - The Open Source Streaming Engine for Apache Kafka
Introducing Confluent Cloud: Apache Kafka as a Service
What is Apache Kafka and What is an Event Streaming Platform?
Flexible Authentication Strategies with SASL/OAUTHBEARER (Michael Kaminski, T...
Apache Kafka, Tiered Storage and TensorFlow for Streaming Machine Learning wi...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
Ad

Similar to Jug - ecosystem (20)

PDF
Confluent and Elastic: a Lovely Couple - Elastic Stack in a Day 2018
PDF
KSQL - Stream Processing simplified!
PDF
Streaming ETL with Apache Kafka and KSQL
PDF
Introduction to Apache Kafka and Confluent... and why they matter!
PDF
Concepts and Patterns for Streaming Services with Kafka
PDF
Build a Bridge to Cloud with Apache Kafka® for Data Analytics Cloud Services
PDF
Beyond the brokers - A tour of the Kafka ecosystem
PDF
Beyond the Brokers: A Tour of the Kafka Ecosystem
PDF
Big Data LDN 2017: Look Ma, No Code! Building Streaming Data Pipelines With A...
PDF
Integrating Apache Kafka Into Your Environment
PPTX
Webinar: Unlock the Power of Streaming Data with Kinetica and Confluent
PDF
Introduction to Apache Kafka and Confluent... and why they matter
PDF
APAC ksqlDB Workshop
PDF
Real-Time Stream Processing with KSQL and Apache Kafka
PDF
Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!
ODP
KSQL- Streaming Sql for Kafka
PDF
Kafka Connect and Streams (Concepts, Architecture, Features)
PDF
ksqlDB Workshop
PPTX
Real Time Stream Processing with KSQL and Kafka
PDF
Un'introduzione a Kafka Streams e KSQL... and why they matter!
Confluent and Elastic: a Lovely Couple - Elastic Stack in a Day 2018
KSQL - Stream Processing simplified!
Streaming ETL with Apache Kafka and KSQL
Introduction to Apache Kafka and Confluent... and why they matter!
Concepts and Patterns for Streaming Services with Kafka
Build a Bridge to Cloud with Apache Kafka® for Data Analytics Cloud Services
Beyond the brokers - A tour of the Kafka ecosystem
Beyond the Brokers: A Tour of the Kafka Ecosystem
Big Data LDN 2017: Look Ma, No Code! Building Streaming Data Pipelines With A...
Integrating Apache Kafka Into Your Environment
Webinar: Unlock the Power of Streaming Data with Kinetica and Confluent
Introduction to Apache Kafka and Confluent... and why they matter
APAC ksqlDB Workshop
Real-Time Stream Processing with KSQL and Apache Kafka
Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!
KSQL- Streaming Sql for Kafka
Kafka Connect and Streams (Concepts, Architecture, Features)
ksqlDB Workshop
Real Time Stream Processing with KSQL and Kafka
Un'introduzione a Kafka Streams e KSQL... and why they matter!
Ad

More from Florent Ramiere (6)

PDF
Back to database fundamentals aka the origin of the streaming platform.
PDF
Perfug 20-11-2019 - Kafka Performances
PDF
Back to database fundamentals
PPTX
Apache Kafka - Patterns anti-patterns
PDF
Riviera Jug - 20/03/2018 - KSQL
PDF
Riviera Jug - 20/03/2018 - Kafka streams
Back to database fundamentals aka the origin of the streaming platform.
Perfug 20-11-2019 - Kafka Performances
Back to database fundamentals
Apache Kafka - Patterns anti-patterns
Riviera Jug - 20/03/2018 - KSQL
Riviera Jug - 20/03/2018 - Kafka streams

Recently uploaded (20)

PDF
top salesforce developer skills in 2025.pdf
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPT
Introduction Database Management System for Course Database
PPTX
Transform Your Business with a Software ERP System
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Complete React Javascript Course Syllabus.pdf
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPT
JAVA ppt tutorial basics to learn java programming
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
Essential Infomation Tech presentation.pptx
PDF
Design an Analysis of Algorithms II-SECS-1021-03
top salesforce developer skills in 2025.pdf
Which alternative to Crystal Reports is best for small or large businesses.pdf
Introduction Database Management System for Course Database
Transform Your Business with a Software ERP System
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Complete React Javascript Course Syllabus.pdf
How Creative Agencies Leverage Project Management Software.pdf
Upgrade and Innovation Strategies for SAP ERP Customers
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
JAVA ppt tutorial basics to learn java programming
Design an Analysis of Algorithms I-SECS-1021-03
Odoo POS Development Services by CandidRoot Solutions
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Operating system designcfffgfgggggggvggggggggg
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
How to Choose the Right IT Partner for Your Business in Malaysia
Softaken Excel to vCard Converter Software.pdf
Essential Infomation Tech presentation.pptx
Design an Analysis of Algorithms II-SECS-1021-03

Jug - ecosystem

  • 1. JUG Florent Ramière Technical Account Manager florent@confluent.io @framiere
  • 4. About Confluent and Apache Kafka™ 70% of active Kafka Committers Founded
 September 2014 Technology developed 
 while at LinkedIn Founded by the creators of Apache Kafka Cheryl Dalrymple
 CFO Luanne Dauber
 CMO Simon Hayes
 Head of Corporate & Business Development Jay Kreps
 CEO Todd Barnett
 VP WW Sales Neha Narkhede
 CTO, VP Engineering Sarah Sproehnle VP Customer Success
  • 5. Why a Streaming Platform? All your data Real-time Fault tolerant Secure
  • 6. Confluent Platform: Enterprise Streaming based on Apache Kafka 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 Apache Kafka® Core | Connect API | Streams API Data Compatibility Schema Registry Confluent Platform Monitoring & Administration Confluent Control Center | Security Operations Replicator | Auto Data Balancing | JMS Client | JMS Connectors Development and Connectivity Clients | Connectors | REST Proxy | CLI Apache Open Source Confluent Open Source Confluent Enterprise SQL Stream Processing KSQL (Streams API)
  • 10. No Panic, it's a walktrough! https://github.com/framiere/a-kafka-story/tree/master/step6
  • 11. Trade-Offs • subscribe() • poll() • send() • flush() Consumer, Producer Flexibility Simplicity
  • 12. Trade-Offs • subscribe() • poll() • send() • flush() Consumer, Producer • filter() • join() • aggregate() Kafka Streams Flexibility Simplicity
  • 17. Things Kafka Streams Does Runs everywhere Clustering done for you Exactly-once processing Event-time processing Integrated database Joins, windowing, aggregation S/M/L/XL/XXL/XXXL sizes
  • 18. Stream Processing in Kafka ● KStream KStream<byte[], String> textLines = builder .stream("textlines-topic", Consumed.with(Serdes.ByteArray(), Serdes.String())) .mapValues(String::toUpperCase)); KTable<String, Long> wordCounts = textLines .flatMapValues(textLine -> Arrays.asList(textLine.split("W+"))) .groupBy((key, word) -> word) .count(); ● KTable
  • 19. Trade-Offs • subscribe() • poll() • send() • flush() Consumer, Producer • filter() • join() • aggregate() Kafka Streams • Copy In • Copy Out • SMT Kafka Connect Flexibility Simplicity
  • 20. Apache Kafka™ Connect API – Streaming Data Capture JDBC Mongo MySQL Elastic Cassandra HDFS
 Kafka Connect API Kafka Pipeline Connector Connector Connector Connector Connector Connector Sources Sinks Fault tolerant Manage hundreds of data sources and sinks Preserves data schema Part of Apache Kafka project Integrated within Confluent Platform’s Control Center Flexible Integrated Reliable Compatible Connect any source to any target system
  • 21. Single Message Transforms •Mask sensitive information •Add identifiers •Tag events •Lineage/provenance •Remove unnecessary columns •Route high priority events to faster data stores •Direct events to different Elasticsearch indexes •Cast data types to match destination •Remove unnecessary columns Modify events before storing in Kafka: Modify events going out of Kafka:
  • 22. But…Easy to Implement /**
 * Single message transformation for Kafka Connect record types.
 *
 * Connectors can be configured with transformations to make lightweight * message-at-a-time modifications.
 */
 public interface Transformation<R extends ConnectRecord<R>> extends Configurable, Closeable {
 
 /**
 * Apply transformation to the {@code record} and return another record object.
 *
 * The implementation must be thread-safe.
 */
 R apply(R record); 
 
 /** Configuration specification for this transformation. **/
 ConfigDef config(); 
 
 /** Signal that this transformation instance will no longer will be used. **/
 @Override
 void close();
 
 }
  • 23. Trade-Offs • subscribe() • poll() • send() • flush() Consumer, Producer • filter() • join() • aggregate() Kafka Streams • Select…from… • Join…where… • Group by.. KSQL Flexibility Simplicity
  • 25. KSQL for Data Exploration SELECT status, bytes FROM clickstream WHERE user_agent = 'Mozilla/5.0 (compatible; MSIE 6.0)'; An easy way to inspect data in a running cluster
  • 26. KSQL for Streaming ETL • Kafka is popular for data pipelines. • KSQL enables easy transformations of data within the pipe. • Transforming data while moving from Kafka to another system. CREATE STREAM vip_actions AS 
 SELECT userid, page, action FROM clickstream c LEFT JOIN users u ON c.userid = u.user_id 
 WHERE u.level = 'Platinum';
  • 27. KSQL for Anomaly Detection CREATE TABLE possible_fraud AS
 SELECT card_number, count(*)
 FROM authorization_attempts 
 WINDOW TUMBLING (SIZE 5 SECONDS)
 GROUP BY card_number
 HAVING count(*) > 3; Identifying patterns or anomalies in real-time data, surfaced in milliseconds
  • 28. Once again KSQL implements for you the Kafka Stream application you would have implemented if you had • ... the time • ... the experience • ... the KSQL as a spec • ... the willingness to do boring code
  • 29. KSQL is really Kafka Stream ? ... yes! ./confluent start ./jmc& echo '{"something":"value"}' | ./kafka-console-producer --broker-list localhost:9092 --topic temp ./kafka-console-consumer --bootstrap-server localhost:9092 --topic temp --from-beginning {"something":"value"} ./ksql ksql>SET 'auto.offset.reset' = 'earliest'; ksql>CREATE STREAM TEMP (something varchar) WITH ( kafka_topic='temp',value_format='JSON'); ksql>SELECT * FROM TEMP; 1526371655810 | null | value
  • 30. Where is KSQL not such a great fit? BI reports (Tableau etc.) • No indexes • No JDBC (most BI tools are not good with continuous results!) Ad-hoc queries • Limited span of time usually retained in Kafka • No indexes
  • 31. Demo
  • 33. Demo ... less fun https://bit.ly/2KqPZYo
  • 34. Demo ... less fun https://bit.ly/2L5l2dj
  • 35. Demo ... less fun https://github.com/framiere/a-kafka-story/tree/master/step19 Change Data Capture Docker Producer Consumer Kafka Stream KSQL Event sourcing Influxdb Grafana S3 docker run --rm -it --name dcv -v $(pwd):/input pmsipilot/docker-compose-viz render --horizontal --output-format image --force docker-compose.yml
  • 36. Demo ... less fun ... without Confluent Control Center links
  • 37. Confluent 4.2 - Nested Types SELECT userid, address.city FROM users WHERE address.state = 'CA' https://github.com/confluentinc/ksql/pull/1114
  • 38. Confluent 4.2 - Remaining joins SELECT orderid, shipmentid FROM orders INNER JOIN shipments ON order.id = shipmentid;
  • 39. Where to go from here ● KSQL project page ○ https://www.confluent.io/product/ksql ● Confluent blog ○ http://blog.confluent.io/ ● Blog Formule1 game ○ https://www.confluent.io/blog/taking-ksql-spin-using-real-time-device-data/ ● KSQL github repo ○ https://github.com/confluentinc/ksql ● CP-Demo ○ https://github.com/confluentinc/cp-demo ● A-Kafka-Story ○ https://github.com/framiere/a-kafka-story ● Un tour de l'environement Kafka ○ https://www.youtube.com/watch?v=BBo-rqmhpDM ● KSQL Recipies ○ https://github.com/bluemonk3y/ksql-recipe-fraudulent-txns/
  • 40. Confluent Download – 4.1 – Kafka 1.1 and KSQL GA
  • 41. KSQL Capacity Planning – Sizing https://docs.confluent.io/current/ksql/docs/capacity-planning.html
  • 42. Resources - Confluent Enterprise Reference Architecture https://www.confluent.io/whitepaper/confluent-enterprise-reference- architecture/
  • 43. Resources – Community Slack and Mailing List https://slackpass.io/confluentcommunity https://groups.google.com/forum/#!forum/confluent-platform
  • 45. Q&A