SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
Apache Kafka and KSQL in Action : Let’s
Build a Streaming Data Pipeline!
timv@confluent.io
confluent.io/ksql
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 2
• Systems Engineer @ Confluent
• Worked with databases since 1995
• C, ESQL/C Developer (a rather poor one!)
• Informix RDBMS
• TimesTen In-memory RDBMS
• Oracle
• DataStax, Apache Cassandra
• Confluent, Apache Kafka
$ whoami
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 3
App App App App
search
HadoopDWH
monitoring security
MQ MQ
cache
cache
A bit of a mess…
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 4
Kafka is an Event Streaming Platform
KAFKA
DWH Hadoop
App
App App App App
App
App
App
request-response
messaging
OR
stream
processing
streaming data pipelines
changelogs
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 5
Analytics - Database Offload
HDFS / S3 /
BigQuery etc
RDBMS
CDC
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 6
Stream Processing with Apache Kafka and KSQL
order events
customer
customer orders
Stream
Processing
RDBMS CDC
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 7
Real-time Event Stream Enrichment
order events
customer
Stream
Processing
customer orders
RDBMS
<y>
CDC
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 8
Transform Once, Use Many
order events
customer
Stream
Processing
customer orders
RDBMS
<y>
New App
<x>
CDC
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 9
Transform Once, Use Many
order events
customer
Stream
Processing
customer orders
RDBMS
<y>
HDFS / S3 / etc
New App
<x>
CDC
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 10
Rating
events
Join events to
users, and filter
Push notification
to Slack
Operational
Dashboard
Data
Lake
User
data
Let’s Build It!
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 11
Rating
events
Join events to
users, and filter
Push notification
to Slack
Operational
Dashboard
Data
Lake
User
data
RDBMS
S3/HDFS/
SnowflakeDB
etc
Elasticsearch
App
App
Producer API
Consumer API
Let’s Build It!
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 12
Rating
events
Join events to
users, and filter
Push notification
to Slack
Operational
Dashboard
Data
Lake
User
data
RDBMS
S3/HDFS/
SnowflakeDB
etc
Elasticsearch
App
App
Producer API
Consumer API
Kafka Connect
Kafka
Connect
Kafka
Connect
Kafka
Connect
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 13
Streaming Integration with Kafka Connect
Kafka Brokers
Kafka Connect
Tasks Workers
Sources Sinks
Amazon S3
syslog
flat file
CSV
JSON MQTT
MQTT
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 14
✓ Fault tolerant and automatically load balanced
✓ Extensible API
✓ Single Message Transforms
✓ Part of Apache Kafka, included in

Confluent Open Source
Reliable and scalable integration of Kafka with other systems – no coding required.
{
"connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",
"connection.url": "jdbc:mysql://localhost:3306/demo?user=rmoff&password=foo",
"table.whitelist": "sales,orders,customers"
}
https://docs.confluent.io/current/connect/
✓ Centralized management and configuration
✓ Support for hundreds of technologies
including RDBMS, Elasticsearch, HDFS, S3
✓ Supports CDC ingest of events from RDBMS
✓ Preserves data schema
Kafka Connect
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 15
Kafka Connect + Schema Registry = WIN
RDBMS
Avro
Message
Elasticsearch
Schema
RegistryAvro
Schema
Kafka
Connect
Kafka
Connect
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 16
Kafka Connect + Schema Registry = WIN
RDBMS
Elasticsearch
Schema
RegistryAvro
Schema
Kafka
Connect
Kafka
Connect
Avro
Message
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 17
Confluent Hub
hub.confluent.io
• One-stop place to discover and
download :
• Connectors
• Transformations
• Converters
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 18
MySQL DebeziumKafka Connect
Producer API
Demo Time!
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 19
Rating
events
Join events to
users, and filter
Push notification
to Slack
Operational
Dashboard
Data
Lake
User
data
RDBMS
S3/HDFS/
SnowflakeDB
etc
Elasticsearch
App
App
Producer API
Consumer API
Let’s Build It!
Kafka
Connect
Kafka
Connect
Kafka
Connect
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 20
Rating
events
Join events to
users, and filter
Push notification
to Slack
Operational
Dashboard
Data
Lake
User
data
RDBMS
S3/HDFS/
SnowflakeDB
etc
Elasticsearch
App
App
Producer API
Consumer API
KSQL
Kafka
Connect
Kafka
Connect
Kafka
Connect
KSQL
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql
Declarative
Stream
Language
Processing
KSQLis a
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql
KSQLis the
Streaming
SQL Enginefor
Apache Kafka
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql
KSQL in Development and Production
Interactive KSQL

for development and testing
Headless KSQL

for Production
Desired KSQL queries
have been identified
REST
“Hmm, let me try

out this idea...”
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql
KSQL for Streaming ETL
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';
Joining, filtering, and aggregating streams of event data
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql
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
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql
KSQL for Real-Time Monitoring
• 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 / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql
CREATE STREAM views_by_userid
WITH (PARTITIONS=6, REPLICAS=5,
VALUE_FORMAT='AVRO',
TIMESTAMP='view_time') AS 

SELECT * FROM clickstream
PARTITION BY user_id;
KSQL for Data Transformation
Make simple derivations of existing topics from the command line
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 28
MySQL DebeziumKafka Connect
Producer API
Elasticsearch
Kafka Connect
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 29
Producer API
{
"rating_id": 5313,
"user_id": 3,
"stars": 4,
"route_id": 6975,
"rating_time": 1519304105213,
"channel": "web",
"message": "worst. flight. ever. #neveragain"
}
POOR_RATINGS
Filter all ratings where STARS<3
CREATE STREAM POOR_RATINGS AS
SELECT * FROM ratings WHERE STARS <3
Demo Time!
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 30
Do you think that’s a table
you are querying?
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 31
The Table Stream Duality
Account ID Balance
12345 €50Account ID Amount
12345 + €50
12345 + €25
12345 -€60
Account ID Balance
12345 €75
Account ID Balance
12345 €15
Time
Stream Table
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 32
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 / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 33
Kafka Connect
Producer API
{
"rating_id": 5313,
"user_id": 3,
"stars": 4,
"route_id": 6975,
"rating_time": 1519304105213,
"channel": "web",
"message": "worst. flight. ever. #neveragain"
}
{
"id": 3,
"first_name": "Merilyn",
"last_name": "Doughartie",
"email": "mdoughartie1@dedecms.com",
"gender": "Female",
"club_status": "platinum",
"comments": "none"
}
RATINGS_WITH_CUSTOMER_DATA
Join each rating to customer data
CREATE STREAM RATINGS_WITH_CUSTOMER_DATA AS
SELECT * FROM RATINGS LEFT JOIN CUSTOMERS
ON R.ID=C.ID;
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 34
Kafka Connect
Producer API
{
"rating_id": 5313,
"user_id": 3,
"stars": 4,
"route_id": 6975,
"rating_time": 1519304105213,
"channel": "web",
"message": "worst. flight. ever. #neveragain"
}
{
"id": 3,
"first_name": "Merilyn",
"last_name": "Doughartie",
"email": "mdoughartie1@dedecms.com",
"gender": "Female",
"club_status": "platinum",
"comments": "none"
}
RATINGS_WITH_CUSTOMER_DATA
Join each rating to customer data
UNHAPPY_PLATINUM_CUSTOMERS
Filter for just PLATINUM customers
CREATE STREAM UNHAPPY_PLATINUM_CUSTOMERS AS
SELECT * FROM RATINGS_WITH_CUSTOMER_DATA
WHERE STARS < 3
Demo Time!
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 35
Kafka Connect
Producer API
{
"rating_id": 5313,
"user_id": 3,
"stars": 4,
"route_id": 6975,
"rating_time": 1519304105213,
"channel": "web",
"message": "worst. flight. ever. #neveragain"
}
{
"id": 3,
"first_name": "Merilyn",
"last_name": "Doughartie",
"email": "mdoughartie1@dedecms.com",
"gender": "Female",
"club_status": "platinum",
"comments": "none"
}
RATINGS_WITH_CUSTOMER_DATA
Join each rating to customer data
RATINGS_BY_CLUB_STATUS_1MIN
Aggregate per-minute by CLUB_STATUS
CREATE TABLE RATINGS_BY_CLUB_STATUS AS
SELECT CLUB_STATUS, COUNT(*)
FROM RATINGS_WITH_CUSTOMER_DATA
WINDOW TUMBLING (SIZE 1 MINUTES)
GROUP BY CLUB_STATUS;
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 36
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 37
Confluent Community :
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 / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 38
Free Books!
https://www.confluent.io/apache-kafka-stream-processing-book-
bundle
timv@confluent.io
https://www.confluent.io/ksql
http://cnfl.io/slack
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 40
• Embrace the Anarchy : Apache Kafka's Role in Modern Data Architectures Recording & Slides
• Look Ma, no Code! Building Streaming Data Pipelines with Apache Kafka and KSQL
• Steps to Building a Streaming ETL Pipeline with Apache Kafka and KSQL Recording & Slides
• https://www.confluent.io/blog/ksql-in-action-real-time-streaming-etl-from-oracle-transactional-data
• https://github.com/confluentinc/ksql/
Useful links
@rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 41
• CDC Spreadsheet
• Blog: No More Silos: How to Integrate your Databases with Apache Kafka and CDC
• #partner-engineering on Slack for questions
• BD team (#partners / partners@confluent.io) can help with introductions on a given sales op
Resources
#EOF

Weitere ähnliche Inhalte

Was ist angesagt?

Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache KafkaSolutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Guido Schmutz
 
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
Paul Brebner
 
The State of Stream Processing
The State of Stream ProcessingThe State of Stream Processing
The State of Stream Processing
confluent
 

Was ist angesagt? (20)

Introduction to KSQL: Streaming SQL for Apache Kafka®
Introduction to KSQL: Streaming SQL for Apache Kafka®Introduction to KSQL: Streaming SQL for Apache Kafka®
Introduction to KSQL: Streaming SQL for Apache Kafka®
 
KSQL and Kafka Streams – When to Use Which, and When to Use Both
KSQL and Kafka Streams – When to Use Which, and When to Use BothKSQL and Kafka Streams – When to Use Which, and When to Use Both
KSQL and Kafka Streams – When to Use Which, and When to Use Both
 
Data Driven Enterprise with Apache Kafka
Data Driven Enterprise with Apache KafkaData Driven Enterprise with Apache Kafka
Data Driven Enterprise with Apache Kafka
 
ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!
 
Building Stream Processing Applications with Apache Kafka Using KSQL (Robin M...
Building Stream Processing Applications with Apache Kafka Using KSQL (Robin M...Building Stream Processing Applications with Apache Kafka Using KSQL (Robin M...
Building Stream Processing Applications with Apache Kafka Using KSQL (Robin M...
 
KSQL: Streaming SQL for Kafka
KSQL: Streaming SQL for KafkaKSQL: Streaming SQL for Kafka
KSQL: Streaming SQL for Kafka
 
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache KafkaSolutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
 
Kafka streams - From pub/sub to a complete stream processing platform
Kafka streams - From pub/sub to a complete stream processing platformKafka streams - From pub/sub to a complete stream processing platform
Kafka streams - From pub/sub to a complete stream processing platform
 
UDF/UDAF: the extensibility framework for KSQL (Hojjat Jafapour, Confluent) K...
UDF/UDAF: the extensibility framework for KSQL (Hojjat Jafapour, Confluent) K...UDF/UDAF: the extensibility framework for KSQL (Hojjat Jafapour, Confluent) K...
UDF/UDAF: the extensibility framework for KSQL (Hojjat Jafapour, Confluent) K...
 
Confluent and Elastic: a Lovely Couple - Elastic Stack in a Day 2018
Confluent and Elastic: a Lovely Couple - Elastic Stack in a Day 2018Confluent and Elastic: a Lovely Couple - Elastic Stack in a Day 2018
Confluent and Elastic: a Lovely Couple - Elastic Stack in a Day 2018
 
Kafka Summit NYC 2017 Hanging Out with Your Past Self in VR
Kafka Summit NYC 2017 Hanging Out with Your Past Self in VRKafka Summit NYC 2017 Hanging Out with Your Past Self in VR
Kafka Summit NYC 2017 Hanging Out with Your Past Self in VR
 
Streaming ETL with Apache Kafka and KSQL
Streaming ETL with Apache Kafka and KSQLStreaming ETL with Apache Kafka and KSQL
Streaming ETL with Apache Kafka and KSQL
 
Richmond kafka streams intro
Richmond kafka streams introRichmond kafka streams intro
Richmond kafka streams intro
 
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
 
The State of Stream Processing
The State of Stream ProcessingThe State of Stream Processing
The State of Stream Processing
 
Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!
Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!
Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!
 
Deploying and Operating KSQL
Deploying and Operating KSQLDeploying and Operating KSQL
Deploying and Operating KSQL
 
Real-world Streaming Architectures
Real-world Streaming ArchitecturesReal-world Streaming Architectures
Real-world Streaming Architectures
 
Productizing Structured Streaming Jobs
Productizing Structured Streaming JobsProductizing Structured Streaming Jobs
Productizing Structured Streaming Jobs
 
KSQL Intro
KSQL IntroKSQL Intro
KSQL Intro
 

Ähnlich wie Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!

Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...
Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...
Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...
Michael Noll
 
MLOps with a Feature Store: Filling the Gap in ML Infrastructure
MLOps with a Feature Store: Filling the Gap in ML InfrastructureMLOps with a Feature Store: Filling the Gap in ML Infrastructure
MLOps with a Feature Store: Filling the Gap in ML Infrastructure
Data Science Milan
 

Ähnlich wie Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline! (20)

Steps to Building a Streaming ETL Pipeline with Apache Kafka® and KSQL
Steps to Building a Streaming ETL Pipeline with Apache Kafka® and KSQLSteps to Building a Streaming ETL Pipeline with Apache Kafka® and KSQL
Steps to Building a Streaming ETL Pipeline with Apache Kafka® and KSQL
 
Streaming etl in practice with postgre sql, apache kafka, and ksql mic
Streaming etl in practice with postgre sql, apache kafka, and ksql micStreaming etl in practice with postgre sql, apache kafka, and ksql mic
Streaming etl in practice with postgre sql, apache kafka, and ksql mic
 
Introduction to apache kafka, confluent and why they matter
Introduction to apache kafka, confluent and why they matterIntroduction to apache kafka, confluent and why they matter
Introduction to apache kafka, confluent and why they matter
 
Confluent Kafka and KSQL: Streaming Data Pipelines Made Easy
Confluent Kafka and KSQL: Streaming Data Pipelines Made EasyConfluent Kafka and KSQL: Streaming Data Pipelines Made Easy
Confluent Kafka and KSQL: Streaming Data Pipelines Made Easy
 
Apache Kafka - A Distributed Streaming Platform
Apache Kafka - A Distributed Streaming PlatformApache Kafka - A Distributed Streaming Platform
Apache Kafka - A Distributed Streaming Platform
 
Apache kafka-a distributed streaming platform
Apache kafka-a distributed streaming platformApache kafka-a distributed streaming platform
Apache kafka-a distributed streaming platform
 
Kai Waehner - KSQL – The Open Source SQL Streaming Engine for Apache Kafka - ...
Kai Waehner - KSQL – The Open Source SQL Streaming Engine for Apache Kafka - ...Kai Waehner - KSQL – The Open Source SQL Streaming Engine for Apache Kafka - ...
Kai Waehner - KSQL – The Open Source SQL Streaming Engine for Apache Kafka - ...
 
Kai Waehner - KSQL – The Open Source SQL Streaming Engine for Apache Kafka - ...
Kai Waehner - KSQL – The Open Source SQL Streaming Engine for Apache Kafka - ...Kai Waehner - KSQL – The Open Source SQL Streaming Engine for Apache Kafka - ...
Kai Waehner - KSQL – The Open Source SQL Streaming Engine for Apache Kafka - ...
 
Jug - ecosystem
Jug -  ecosystemJug -  ecosystem
Jug - ecosystem
 
Data pipeline with kafka
Data pipeline with kafkaData pipeline with kafka
Data pipeline with kafka
 
Chti jug - 2018-06-26
Chti jug - 2018-06-26Chti jug - 2018-06-26
Chti jug - 2018-06-26
 
Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...
Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...
Rethinking Stream Processing with Apache Kafka: Applications vs. Clusters, St...
 
Kafka Streams for Java enthusiasts
Kafka Streams for Java enthusiastsKafka Streams for Java enthusiasts
Kafka Streams for Java enthusiasts
 
Un'introduzione a Kafka Streams e KSQL... and why they matter!
Un'introduzione a Kafka Streams e KSQL... and why they matter!Un'introduzione a Kafka Streams e KSQL... and why they matter!
Un'introduzione a Kafka Streams e KSQL... and why they matter!
 
MLOps with a Feature Store: Filling the Gap in ML Infrastructure
MLOps with a Feature Store: Filling the Gap in ML InfrastructureMLOps with a Feature Store: Filling the Gap in ML Infrastructure
MLOps with a Feature Store: Filling the Gap in ML Infrastructure
 
Trivadis TechEvent 2016 Apache Kafka - Scalable Massage Processing and more! ...
Trivadis TechEvent 2016 Apache Kafka - Scalable Massage Processing and more! ...Trivadis TechEvent 2016 Apache Kafka - Scalable Massage Processing and more! ...
Trivadis TechEvent 2016 Apache Kafka - Scalable Massage Processing and more! ...
 
Build Real-Time Streaming ETL Pipelines With Akka Streams, Alpakka And Apache...
Build Real-Time Streaming ETL Pipelines With Akka Streams, Alpakka And Apache...Build Real-Time Streaming ETL Pipelines With Akka Streams, Alpakka And Apache...
Build Real-Time Streaming ETL Pipelines With Akka Streams, Alpakka And Apache...
 
Confluent and Elastic
Confluent and ElasticConfluent and Elastic
Confluent and Elastic
 
Building Scalable Data Pipelines - 2016 DataPalooza Seattle
Building Scalable Data Pipelines - 2016 DataPalooza SeattleBuilding Scalable Data Pipelines - 2016 DataPalooza Seattle
Building Scalable Data Pipelines - 2016 DataPalooza Seattle
 
Leverage Kafka to build a stream processing platform
Leverage Kafka to build a stream processing platformLeverage Kafka to build a stream processing platform
Leverage Kafka to build a stream processing platform
 

Mehr von confluent

Mehr von confluent (20)

Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flink
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insights
 
Workshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con FlinkWorkshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con Flink
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
 
AWS Immersion Day Mapfre - Confluent
AWS Immersion Day Mapfre   -   ConfluentAWS Immersion Day Mapfre   -   Confluent
AWS Immersion Day Mapfre - Confluent
 
Eventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkEventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalk
 
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent CloudQ&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
 
Citi TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Dive
 
Build real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with ConfluentBuild real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with Confluent
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Mesh
 
Citi Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka MicroservicesCiti Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka Microservices
 
Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3
 
Citi Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging ModernizationCiti Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging Modernization
 
Citi Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataCiti Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time data
 
Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesis
 
The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023
 
The Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data StreamsThe Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data Streams
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Kürzlich hochgeladen (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Apache Kafka and KSQL in Action: Let's Build a Streaming Data Pipeline!

  • 1. Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! timv@confluent.io confluent.io/ksql
  • 2. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 2 • Systems Engineer @ Confluent • Worked with databases since 1995 • C, ESQL/C Developer (a rather poor one!) • Informix RDBMS • TimesTen In-memory RDBMS • Oracle • DataStax, Apache Cassandra • Confluent, Apache Kafka $ whoami
  • 3. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 3 App App App App search HadoopDWH monitoring security MQ MQ cache cache A bit of a mess…
  • 4. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 4 Kafka is an Event Streaming Platform KAFKA DWH Hadoop App App App App App App App App request-response messaging OR stream processing streaming data pipelines changelogs
  • 5. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 5 Analytics - Database Offload HDFS / S3 / BigQuery etc RDBMS CDC
  • 6. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 6 Stream Processing with Apache Kafka and KSQL order events customer customer orders Stream Processing RDBMS CDC
  • 7. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 7 Real-time Event Stream Enrichment order events customer Stream Processing customer orders RDBMS <y> CDC
  • 8. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 8 Transform Once, Use Many order events customer Stream Processing customer orders RDBMS <y> New App <x> CDC
  • 9. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 9 Transform Once, Use Many order events customer Stream Processing customer orders RDBMS <y> HDFS / S3 / etc New App <x> CDC
  • 10. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 10 Rating events Join events to users, and filter Push notification to Slack Operational Dashboard Data Lake User data Let’s Build It!
  • 11. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 11 Rating events Join events to users, and filter Push notification to Slack Operational Dashboard Data Lake User data RDBMS S3/HDFS/ SnowflakeDB etc Elasticsearch App App Producer API Consumer API Let’s Build It!
  • 12. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 12 Rating events Join events to users, and filter Push notification to Slack Operational Dashboard Data Lake User data RDBMS S3/HDFS/ SnowflakeDB etc Elasticsearch App App Producer API Consumer API Kafka Connect Kafka Connect Kafka Connect Kafka Connect
  • 13. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 13 Streaming Integration with Kafka Connect Kafka Brokers Kafka Connect Tasks Workers Sources Sinks Amazon S3 syslog flat file CSV JSON MQTT MQTT
  • 14. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 14 ✓ Fault tolerant and automatically load balanced ✓ Extensible API ✓ Single Message Transforms ✓ Part of Apache Kafka, included in
 Confluent Open Source Reliable and scalable integration of Kafka with other systems – no coding required. { "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector", "connection.url": "jdbc:mysql://localhost:3306/demo?user=rmoff&password=foo", "table.whitelist": "sales,orders,customers" } https://docs.confluent.io/current/connect/ ✓ Centralized management and configuration ✓ Support for hundreds of technologies including RDBMS, Elasticsearch, HDFS, S3 ✓ Supports CDC ingest of events from RDBMS ✓ Preserves data schema Kafka Connect
  • 15. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 15 Kafka Connect + Schema Registry = WIN RDBMS Avro Message Elasticsearch Schema RegistryAvro Schema Kafka Connect Kafka Connect
  • 16. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 16 Kafka Connect + Schema Registry = WIN RDBMS Elasticsearch Schema RegistryAvro Schema Kafka Connect Kafka Connect Avro Message
  • 17. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 17 Confluent Hub hub.confluent.io • One-stop place to discover and download : • Connectors • Transformations • Converters
  • 18. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 18 MySQL DebeziumKafka Connect Producer API Demo Time!
  • 19. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 19 Rating events Join events to users, and filter Push notification to Slack Operational Dashboard Data Lake User data RDBMS S3/HDFS/ SnowflakeDB etc Elasticsearch App App Producer API Consumer API Let’s Build It! Kafka Connect Kafka Connect Kafka Connect
  • 20. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 20 Rating events Join events to users, and filter Push notification to Slack Operational Dashboard Data Lake User data RDBMS S3/HDFS/ SnowflakeDB etc Elasticsearch App App Producer API Consumer API KSQL Kafka Connect Kafka Connect Kafka Connect KSQL
  • 21. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql Declarative Stream Language Processing KSQLis a
  • 22. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql KSQLis the Streaming SQL Enginefor Apache Kafka
  • 23. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql KSQL in Development and Production Interactive KSQL
 for development and testing Headless KSQL
 for Production Desired KSQL queries have been identified REST “Hmm, let me try
 out this idea...”
  • 24. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql KSQL for Streaming ETL 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'; Joining, filtering, and aggregating streams of event data
  • 25. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 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
  • 26. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql KSQL for Real-Time Monitoring • 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
  • 27. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql CREATE STREAM views_by_userid WITH (PARTITIONS=6, REPLICAS=5, VALUE_FORMAT='AVRO', TIMESTAMP='view_time') AS 
 SELECT * FROM clickstream PARTITION BY user_id; KSQL for Data Transformation Make simple derivations of existing topics from the command line
  • 28. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 28 MySQL DebeziumKafka Connect Producer API Elasticsearch Kafka Connect
  • 29. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 29 Producer API { "rating_id": 5313, "user_id": 3, "stars": 4, "route_id": 6975, "rating_time": 1519304105213, "channel": "web", "message": "worst. flight. ever. #neveragain" } POOR_RATINGS Filter all ratings where STARS<3 CREATE STREAM POOR_RATINGS AS SELECT * FROM ratings WHERE STARS <3 Demo Time!
  • 30. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 30 Do you think that’s a table you are querying?
  • 31. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 31 The Table Stream Duality Account ID Balance 12345 €50Account ID Amount 12345 + €50 12345 + €25 12345 -€60 Account ID Balance 12345 €75 Account ID Balance 12345 €15 Time Stream Table
  • 32. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 32 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
  • 33. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 33 Kafka Connect Producer API { "rating_id": 5313, "user_id": 3, "stars": 4, "route_id": 6975, "rating_time": 1519304105213, "channel": "web", "message": "worst. flight. ever. #neveragain" } { "id": 3, "first_name": "Merilyn", "last_name": "Doughartie", "email": "mdoughartie1@dedecms.com", "gender": "Female", "club_status": "platinum", "comments": "none" } RATINGS_WITH_CUSTOMER_DATA Join each rating to customer data CREATE STREAM RATINGS_WITH_CUSTOMER_DATA AS SELECT * FROM RATINGS LEFT JOIN CUSTOMERS ON R.ID=C.ID;
  • 34. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 34 Kafka Connect Producer API { "rating_id": 5313, "user_id": 3, "stars": 4, "route_id": 6975, "rating_time": 1519304105213, "channel": "web", "message": "worst. flight. ever. #neveragain" } { "id": 3, "first_name": "Merilyn", "last_name": "Doughartie", "email": "mdoughartie1@dedecms.com", "gender": "Female", "club_status": "platinum", "comments": "none" } RATINGS_WITH_CUSTOMER_DATA Join each rating to customer data UNHAPPY_PLATINUM_CUSTOMERS Filter for just PLATINUM customers CREATE STREAM UNHAPPY_PLATINUM_CUSTOMERS AS SELECT * FROM RATINGS_WITH_CUSTOMER_DATA WHERE STARS < 3 Demo Time!
  • 35. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 35 Kafka Connect Producer API { "rating_id": 5313, "user_id": 3, "stars": 4, "route_id": 6975, "rating_time": 1519304105213, "channel": "web", "message": "worst. flight. ever. #neveragain" } { "id": 3, "first_name": "Merilyn", "last_name": "Doughartie", "email": "mdoughartie1@dedecms.com", "gender": "Female", "club_status": "platinum", "comments": "none" } RATINGS_WITH_CUSTOMER_DATA Join each rating to customer data RATINGS_BY_CLUB_STATUS_1MIN Aggregate per-minute by CLUB_STATUS CREATE TABLE RATINGS_BY_CLUB_STATUS AS SELECT CLUB_STATUS, COUNT(*) FROM RATINGS_WITH_CUSTOMER_DATA WINDOW TUMBLING (SIZE 1 MINUTES) GROUP BY CLUB_STATUS;
  • 36. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 36
  • 37. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 37 Confluent Community : 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
  • 38. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 38 Free Books! https://www.confluent.io/apache-kafka-stream-processing-book- bundle
  • 40. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 40 • Embrace the Anarchy : Apache Kafka's Role in Modern Data Architectures Recording & Slides • Look Ma, no Code! Building Streaming Data Pipelines with Apache Kafka and KSQL • Steps to Building a Streaming ETL Pipeline with Apache Kafka and KSQL Recording & Slides • https://www.confluent.io/blog/ksql-in-action-real-time-streaming-etl-from-oracle-transactional-data • https://github.com/confluentinc/ksql/ Useful links
  • 41. @rmoff / Apache Kafka and KSQL in Action : Let’s Build a Streaming Data Pipeline! http://cnfl.io/ksql 41 • CDC Spreadsheet • Blog: No More Silos: How to Integrate your Databases with Apache Kafka and CDC • #partner-engineering on Slack for questions • BD team (#partners / partners@confluent.io) can help with introductions on a given sales op Resources #EOF