SlideShare a Scribd company logo
1 of 52
Download to read offline
BASEL | BERN | BRUGG | BUCHAREST | COPENHAGEN | DƜSSELDORF | FRANKFURT A.M. | FREIBURG I.BR.
GENEVA | HAMBURG | LAUSANNE | MANNHEIM | MUNICH | STUTTGART | VIENNA | ZURICH
http://guidoschmutz@wordpress.com@gschmutz
Solutions for bi-directional integration
between Oracle RDBMS & Apache Kafka
Guido Schmutz
UKOUG Techfest 2019
Agenda
1. Introduction
2. Blueprints Oracle RDBMS => Apache Kafka
3. Blueprints Apache Kafka => Oracle RDBMS
4. Summary
BASEL | BERN | BRUGG | BUKAREST | DƜSSELDORF | FRANKFURT A.M. | FREIBURG I.BR. | GENF
HAMBURG | KOPENHAGEN | LAUSANNE | MANNHEIM | MƜNCHEN | STUTTGART | WIEN | ZƜRICH
Guido
Working at Trivadis for more than 22 years
Consultant, Trainer, Platform Architect for Java,
Oracle, SOA and Big Data / Fast Data
Oracle Groundbreaker Ambassador & Oracle ACE
Director
@gschmutz guidoschmutz.wordpress.com
175th
edition
Introduction
Microservices / Modern Applications
ā€¢ Highly decoupled
ā€¢ Independently deployable
ā€¢ Bounded Context/Aggregate (DDD)
ā€¢ Responsible for their data
ā€¢ Favour asynchronous, event-driven
interaction over synchronous
ā€¢ Smart Endpoints and Dump Pipes
ā€¢ Use Anti-Corruption Layer (ACL) if no
fit! M3M2
ACL
Event
Hub
M1
Microservices / Modern Applications
Integrate with Traditional System
M3M2
ACL
Event
Hub
M1
ACL
ā€¢ Highly decoupled
ā€¢ Independently deployable
ā€¢ Bounded Context/Aggregate (DDD)
ā€¢ Responsible for their data
ā€¢ Favour asynchronous, event-driven
interaction over synchronous
ā€¢ Smart Endpoints and Dump Pipes
ā€¢ Use Anti-Corruption Layer (ACL) if no
fit!
Traditional
App
Apache Kafka ā€“ A Streaming Platform
Kafka Cluster
Consumer 1 Consume 2r
Broker 1 Broker 2 Broker 3
Zookeeper
Ensemble
ZK 1 ZK 2ZK 3
Schema
Registry
Service 1
Management
Control Center
Kafka Manager
KAdmin
Producer 1 Producer 2
kafkacat
Data Retention:
ā€¢ Never
ā€¢ Time (TTL) or Size-based
ā€¢ Log-Compacted based
Producer3Producer3
ConsumerConsumer 3
Use Case
Customer Microservice
{ }
Customer API CustomerCustomer Logic
Order Processing System
{ }
Order API OrderOrder Logic
REST
REST
Event Hub
Customer
Mat View
Order
Customer
(compacted)
Notification Microservice
Notification Logic
ā€œModern Appsā€Traditional Apps (Legacy)
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
MessageMessageMessageMessage
MessageMessage
Properties - Message
Message Message
A1 A2 A3
Message
B1 B2 B3 B4
A1 A2 A3 B
B1 B2 B3 B4
Table A
A1
A2
A3
Table B
B1
B2
B3
B4
FlatDB Model Aggregate
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
Properties - Latency
Traditional System Event
Hub
Data
Flow
RDBMS
latency
latency
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
Properties ā€“ Anti-Corruption Layer (ACL)
Traditional System Event
Hub
Data
Flow
RDBMS
Traditional System Event
Hub
Data
Flow
RDBMS
ACL
ACL
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
Examples:
ā€¢ View Layer
ā€¢ Storage Procedure
ā€¢ JSON Support in DB
ā€¢ ā€¦
Examples:
ā€¢ StreamSets
ā€¢ Kafka Connect
ā€¢ Kafka Streams / KSQL
ā€¢ ā€¦
Database Dataflow
Properties ā€“ License
ā€¢ Cost Free
ā€¢ either part of Oracle RDMBS license
ā€¢ or part of Kafka license (if Confluent Enterprise is used)
ā€¢ or a free software (mostly open source) component
ā€¢ Commercial
ā€¢ an additional component involving license costs
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
Blueprints Oracle RDBMS =>
Apache Kafka
Blueprints Oracle RDBMS => Apache Kafka (DB-K)
Customer Microservice
{ }
Customer API CustomerCustomer Logic
Order Processing System
{ }
Order API OrderOrder Logic
REST
REST
Event Hub
Customer
Mat View
Order
(compacted)
Customer
(compacted)
Notification Microservice
Notification Logic
Schema
Registry
DB-K_1: Polling of RDBMS table/view
DB-K_2: Change Data Capture (CDC) on RDBMS
DB-K_3: Polling of RDBMS API
DB-K_4: Produce to Event Hub from RDBMS
DB-K_5: RDBMS Queue with bridge to Event Hub
DB-K_1: Polling of RDBMS table/view
Event
Hub
Stream Data
Integration
API
Applications / Data Sources
Data FlowRDBMS
Application
Logic
Stream Data
Integration & Analytics
Stream
Analytics
Data Flow
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
Event
Hub
Stream Data
Integration
API
Applications / Data Sources
Data FlowRDBMS
Application
Logic
Stream Data
Integration & Analytics
Stream
Analytics
Data Flow
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
DB-K_1: Polling of RDBMS table/view
Kafka Connect with JDBC Source Connector
JDBC Connector part of Confluent Open Source Platform
Kafka Connect & JDBC Connector
ā€¢ Many connectors available
ā€¢ Single Message Transforms (SMT)
ā€¢ declarative style, simple data flows
ā€¢ framework is part of Apache Kafka
https://www.confluent.io/hub
DB-K_1 ā€“ Configure JDBC Connector
#!/bin/bash
curl -X "POST" "http://192.168.69.138:8083/connectors" 
-H "Content-Type: application/json" 
-d $'{
"name": "jdbc-driver-source",
"config": {
"connector.class": "JdbcSourceConnector",
"connection.url":"jdbc:oracle:thin//oracle-db:1521/XEPDB1",
"mode": "timestamp",
"timestamp.column.name":ā€modified_at",
"table.whitelist":ā€order",
"validate.non.null":"false",
"topic.prefix":ā€orderprocessing_",
"key.converter":"org.apache.kafka.connect.json.JsonConverter",
"key.converter.schemas.enable": "false",
"value.converter":"org.apache.kafka.connect.json.JsonConverter",
"value.converter.schemas.enable": "false",
"name": "jdbc-driver-source",
"transforms":"createKey,extractInt",
"transforms.createKey.type":"org.apache.kafka.connect.transforms.ValueToKey",
"transforms.createKey.fields":"id",
"transforms.extractInt.type":"org.apache.kafka.connect.transforms.ExtractField$Key",
"transforms.extractInt.field":"id"
}
}'
DB-K_2: Change Data Capture (CDC) on RDBMS
Stream Data
Integration & Analytics
Stream
Analytics
Event
Hub
Stream Data
Integration
API
Data Flow
Application / Data Sources
Data Flow
Application
Logic
RDBMS
Redo Log
REST to
Event Hub
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
Stream Data
Integration & Analytics
Stream
Analytics
Event
Hub
Stream Data
Integration
API
Data Flow
Application / Data Sources
Data Flow
Application
Logic
RDBMS
Redo Log
REST to
Event Hub
Rest Proxy
DB-K_2: Change Data Capture (CDC) on RDBMS
Using Oracle GoldenGate
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
Alternatives:
StreamSets Data Collector
Attunity
Debezium
ā€¦
DB-K_3: Polling of RDBMS API
Event
Hub
Stream Data
Integration
API
Applications / Data Sources
Data Flow
RDBMS
Application
Logic
API
Stream Data
Integration & Analytics
Stream
Analytics
Data Flow
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
Event
Hub
Stream Data
Integration
API
Applications / Data Sources
Data Flow
RDBMS
Application
Logic
API
Stream Data
Integration & Analytics
Stream
Analytics
Data Flow
DB-K_3: Polling of RDBMS API
StreamSets invokes Oracle Rest Data Service
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense Oracle Rest Data Service is part of Oracle RDBMS, StreamSets is Open Source
Oracle REST Data Services (ORDS)
ā€¢ makes it easy to develop modern REST interfaces for relational data in the Oracle
Database and the Oracle Database 18c JSON Document Store
ā€¢ ORDS maps HTTP(S) verbs (GET, POST, PUT, DELETE, etc.) to database transactions and
returns any results formatted using JSON
ā€¢ Java middle tier application on WebLogic, Tomcat, Docker, Standalone (for
development)
https://www.oracle.com/database/technologies/appdev/rest.html
DB-K_3 ā€“ Setup ORDS (I)
ORDS.ENABLE_SCHEMA(
p_enabled => TRUE,
p_schema => 'ORDER_PROCESSING',
p_url_mapping_type => 'BASE_PATH',
p_url_mapping_pattern => 'order_processing',
p_auto_rest_auth => FALSE);
ORDS.DEFINE_MODULE(
p_module_name => 'order_processing',
p_base_path => '/orders/',
p_items_per_page => 25,
p_status => 'PUBLISHED',
p_comments => NULL);
ORDS.DEFINE_TEMPLATE(
p_module_name => 'order_processing',
p_pattern => 'changes/:offset',
p_priority => 0,
p_etag_type => 'HASH',
p_etag_query => NULL,
p_comments => NULL);
DB-K_3 ā€“ Setup ORDS (II)
ORDS.DEFINE_HANDLER(
p_module_name => 'order_processing',
p_pattern => 'changes/:offset',
p_method => 'GET',
p_source_type => 'resource/lob',
p_items_per_page => 25,
p_source => q'[
'SELECT 'application/json', json_object('orderId' VALUE po.id,
'orderDate' VALUE po.order_date,
'orderMode' VALUE po.order_mode,
'customer' VALUE
json_object('firstName' VALUE cu.first_name,
'lastName' VALUE cu.last_name
'emailAddress' VALUE cu.email),
'lineItems' VALUE (SELECT json_arrayagg(
json_object('ItemNumber' VALUE li.id,
'Product' VALUE
json_object('id' VALUE li.product_id,
'name' VALUE li.product_name,
'unitPrice' VALUE li.unit_price),
'quantity' VALUE li.quantity))
FROM order_item_t li WHERE po.id = li.order_id),
'offset' VALUE TO_CHAR(po.modified_at, 'YYYYMMDDHH24MISS'))
FROM order_t po LEFT JOIN customer_t cu ON (po.customer_id = cu.id)
WHERE po.modified_at > TO_DATE(:offset, 'YYYYMMDDHH24MISS')]'
StreamSets Data Collector
ā€¢ GUI-based, drag-and
drop Data Flow Pipelines
ā€¢ Both stream and batch
processing
ā€¢ custom sources, sinks,
processors
ā€¢ Monitoring and Error
Detection
https://streamsets.com/products/sdc
DB-K_4: Produce to Event Hub from RDBMS
Event
Hub
Stream Data
Integration
API
Applications / Data Sources
RDBMS
Application
Logic
API
Stream Data
Integration & Analytics
Stream
Analytics
Data Flow
REST to
Event Hub
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
Event
Hub
Stream Data
Integration
API
Applications / Data Sources
RDBMS
Application
Logic
API
Stream Data
Integration & Analytics
Stream
Analytics
Data Flow
REST to
Event Hub
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
DB-K_4: Produce to Event Hub from RDBMS
Native Kafka Producer using Java in DB
Does not feel right! Java in DB
as well as ā€œdual writeā€ problem
Event
Hub
Stream Data
Integration
API
Applications / Data Sources
RDBMS
Application
Logic
API
Stream Data
Integration & Analytics
Stream
Analytics
Data Flow
REST to
Event Hub
Rest Proxy
?
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
DB-K_4: Produce to Event Hub from RDBMS
Invoke REST Proxy from PL/SQL
Invoking a REST Service from DB not well-
supported and ā€dual writeā€ problem
Confluent REST Proxy is part of Confluent Open Source Platform
Event
Hub
Stream Data
Integration
API
Applications / Data Sources
RDBMS
Application
Logic
API
Stream Data
Integration & Analytics
Stream
Analytics
Data Flow
REST to
Event Hub
Oracle Big Data SQL
Coming soon ā€¦
DB-K_4: Produce to Event Hub from RDBMS
Oracle Big Data SQL integrates with Kafka
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
DB-K_5: RDBMS Queue with bridge to Event Hub
Stream Data
Integration & Analytics
Stream
Analytics
Event
Hub
Stream Data
Integration
API
Data Flow
Application / Data Sources
Data Flow
Application
Logic
RDBMS
Queue
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
DB-K_5: RDBMS Queue with bridge to Event Hub
Oracle Advanced Queuing & Kafka Connect JMS
Stream Data
Integration & Analytics
Stream
Analytics
Event
Hub
Stream Data
Integration
API
Data Flow
Application / Data Sources
Data Flow
Application
Logic
RDBMS
QueueAQ
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense Oracle Advanced Queuing is part of Oracle RDBMS
BEGIN
dbms_aqadm.create_queue_table (
queue_table => 'ORDER_QT',
queue_payload_type => 'SYS.AQ$_JMS_TEXT_MESSAGE',
sort_list => 'PRIORITY,ENQ_TIME',
multiple_consumers => FALSE,
message_grouping => dbms_aqadm.none
);
END;
/
DB-K_5 ā€“ Setup AQ and Kafka Connect (I)
BEGIN
dbms_aqadm.create_queue (
queue_name => 'ORDER_AQ',
queue_table => 'ORDER_QT',
max_retries => 1,
retry_delay => 2, -- seconds
retention_time => 60*60*24*7 -- 1w
);
END;
/
BEGIN
dbms_aqadm.start_queue(
queue_name => 'ORDER_AQ',
enqueue => TRUE,
dequeue => TRUE
);
END;
/
curl -X "POST" "$DOCKER_HOST_IP:8083/connectors" 
-H "Content-Type: application/json" 
--data '{
"name": "jms-source",
"config": {
"name": "jms-source",
"connector.class": "com.datamountaineer...JMSSourceConnector",
"connect.jms.initial.context.factory":
"oracle.jms.AQjmsInitialContextFactory",
"connect.jms.initial.context.extra.params":
"db_url=jdbc:oracle:thin:@//192.168.73.86:1521/XEPDB1,java.naming.security.princ
ipal=order_processing,java.naming.security.credentials=order_processing",
"tasks.max": "1",
"connect.jms.connection.factory": "ConnectionFactory",
"connect.jms.url": "jdbc:oracle:thin:@//192.168.73.86:1521/XEPDB1",
"connect.jms.kcql": "INSERT INTO order SELECT * FROM order_aq WITHTYPE QUEUE
WITHCONVERTER=`com.datamountaineer.streamreactor.connect.converters.source.JsonS
impleConverter`"
}
}'
DB-K_5 ā€“ Setup AQ and Kafka Connect (I)
DB-K_5: RDBMS Queue with bridge to Event Hub
Oracle AQ with Kafka API & MirrorMaker
Stream Data
Integration & Analytics
Stream
Analytics
Event
Hub
Stream Data
Integration
API
Data Flow
Application / Data Sources
Data Flow
Application
Logic
RDBMS
Queue
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
AQ (Kafka API)
Oracle is working on a Kafka API
for Advanced Queuing
Blueprints Apache Kafka =>
Oracle RDBMS
Blueprints Apache Kafka => Oracle RDBMS (K-DB)
Customer Microservice
{ }
Customer API CustomerCustomer Logic
Order Processing System
{ }
Order API OrderOrder Logic
REST
REST
Event Hub
Customer
Mat View
Order
(compacted)
Customer
(compacted)
Notification Microservice
Notification Logic
Schema
Registry
K-DB_1: Write to RDBMS table/view
K-DB_2: Write over RDBMS API
K-DB_3: Consume from Event Hub
K-DB_4: Event Hub with bridge to RDBMS Queue
K-DB_1: Write to RDBMS table/view
Event
Hub
Stream Data
Integration
API
Applications / Data Sources
Data FlowRDBMS
Application
Logic
Stream Data
Integration & Analytics
Stream
Analytics
Data Flow
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
Event
Hub
Stream Data
Integration
API
Applications / Data Sources
Data FlowRDBMS
Application
Logic
Stream Data
Integration & Analytics
Stream
Analytics
Data Flow
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
K-DB_1: Write to RDBMS table/view
Kafka Connect and JDBC Sink Connector
K-DB_2: Write over RDBMS API
Event
Hub
Stream Data
Integration
API
Applications / Data Sources
Data Flow
RDBMS
Application
Logic
API
Stream Data
Integration & Analytics
Stream
Analytics
Data Flow
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
Event
Hub
Stream Data
Integration
API
Applications / Data Sources
Data Flow
RDBMS
Application
Logic
API
Stream Data
Integration & Analytics
Stream
Analytics
Data Flow
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
K-DB_2: Write over RDBMS API
Kafka Connect invokes Oracle Rest Data Service
Oracle Rest Data Service is part of Oracle RDBMS, REST Connector is Open Source
DB-K_2 ā€“ Setup ORDS (I)
ORDS.DEFINE_HANDLER(
p_module_name => 'customer',
p_pattern => 'customer',
p_method => 'POST',
p_source_type => 'plsql/block',
p_items_per_page => 0,
p_source =>
'DECLARE
L_CU CLOB := :body_text;
BEGIN
INSERT INTO customer_t (id, first_name, last_name, title, notification_on, email, slack_handle,
twitter_handle)
SELECT * FROM json_table(L_CU, '$'
COLUMNS (
id NUMBER PATH '$.id',
first_name VARCHAR2 PATH '$.firstName',
last_name VARCHAR2 PATH '$.lastName',
title VARCHAR2 PATH '$.title',
notification_on VARCHAR2 PATH '$.notificationOn',
email VARCHAR2 PATH '$.email',
slack_handle VARCHAR2 PATH '$.slackHandle',
twitter_handle VARCHAR2 PATH '$.twitterHandle'
));
INSERT INTO address_t (customer_id, id, street, nr, city, postcode, country)
SELECT * FROM json_table( ... )
K-DB_3: Consume from Event Hub
Event
Hub
Stream Data
Integration
API
Applications / Data Sources
RDBMS
Application
Logic
API
Stream Data
Integration & Analytics
Stream
Analytics
Data Flow
REST to
Event Hub
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
Event
Hub
Stream Data
Integration
API
Applications / Data Sources
RDBMS
Application
Logic
API
Stream Data
Integration & Analytics
Stream
Analytics
Data Flow
REST to
Event Hub
Oracle Big Data SQL
Coming soonā€¦
K-DB_3: Consume from Event Hub
Oracle Big Data SQL exposes topic as table
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
K-DB_4: Event Hub with bridge to RDBMS queue
Stream Data
Integration & Analytics
Stream
Analytics
Event
Hub
Stream Data
Integration
API
Data Flow
Application / Data Sources
Data Flow
Application
Logic
RDBMS
Queue
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
Stream Data
Integration & Analytics
Stream
Analytics
Event
Hub
Stream Data
Integration
API
Data Flow
Application / Data Sources
Data Flow
Application
Logic
RDBMS
QueueAQ
K-DB_4: Event Hub with bridge to RDBMS queue
Oracle Advanced Queuing & Kafka Connect JMS
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense Oracle Advanced Queuing is part of Oracle RDBMS
Stream Data
Integration & Analytics
Stream
Analytics
Event
Hub
Stream Data
Integration
API
Data Flow
Application / Data Sources
Data Flow
Application
Logic
RDBMS
QueueAQ (Kafka API)
Oracle is working on a Kafka API
for Advanced Queuing
K-DB_4: Event Hub with bridge to RDBMS queue
Oracle AQ with Kafka API & MirrorMaker
Flat Aggregate
Low Latency High Latency
DB Dataflow
Message
Latency
ACL
Cost Free CommercialLicense
Summary
Summary
Customer Microservice
{ }
Customer API CustomerCustomer Logic
Order Processing System
{ }
Order API OrderOrder Logic
REST
REST
Event Hub
Customer
Mat View
Order
(compacted)
Customer
(compacted)
Notification Microservice
Notification Logic
Schema
Registry
K-DB_1: Write to RDBMS table/view
K-DB_2: Write over RDBMS API
K-DB_3: Consume from Event Hub
K-DB_4: Event Hub with bridge to RDBMS Queue
https://github.com/gschmutz/various-demos/tree/master/bidirectional-integration-oracle-kafka
DB-K_1: Polling of RDBMS table/view
DB-K_2: Change Data Capture (CDC) on RDBMS
DB-K_3: Polling of RDBMS API
DB-K_4: Produce to Event Hub from RDBMS
DB-K_5: RDBMS Queue with bridge to Event Hub
Bulk Source
Ref Architecture
Data Platform
Service
Event
Stream
Bulk
Data
Flow
Event Source
Location
DB
Extract
File
Weather
DB
IoT
Data
Mobile
Apps
Social
File Import / SQL Import
Consumer
BI Apps
Data Science
Workbench
Enterprise
App
Enterprise Data
Warehouse
SQL / Search
SQL
ā€œNativeā€ Raw
RDBMS
ā€œSQLā€ / Search
Service
Event
Hub
Hadoop ClusterdHadoop ClusterBig Data Platform
SQL
Export
Storage
Storage
Raw
Refined/
UsageOpt
Microservice Cluster
Stream Processing Cluster
Stream
Processor
Model /
State
Edge Node
Rules
Event Hub
Storage
Governance
Data Catalog
Rules
Engine
Parallel
Processing
Query
Engine
Microservice Data
{ }
API
Event
Stream
Event Stream
Modern Data Platform
Event Stream
Bulk Source
Ref Architecture
Data Platform
Service
Event
Stream
Bulk
Data
Flow
Event Source
Location
DB
Extract
File
Weather
DB
IoT
Data
Mobile
Apps
Social
File Import / SQL Import
Consumer
BI Apps
Data Science
Workbench
Enterprise
App
Enterprise Data
Warehouse
SQL / Search
SQL
ā€œNativeā€ Raw
RDBMS
ā€œSQLā€ / Search
Service
sEvent
Hub
Hadoop ClusterdHadoop ClusterBig Data Platform
SQL
Export
Storage
Storage
Raw
Refined/
UsageOpt
Microservice Cluster
Stream Processing Cluster
Stream
Processor
Model /
State
Edge Node
Rules
Event Hub
Storage
Governance
Data Catalog
Rules
Engine
Parallel
Processing
Query
Engine
Microservice Data
{ }
API
Event
Stream
Event Stream
Modern Data Platform
Event Stream
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafka

More Related Content

What's hot

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 KafkaGuido Schmutz
Ā 
ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!Guido Schmutz
Ā 
Kafka as an event store - is it good enough?
Kafka as an event store - is it good enough?Kafka as an event store - is it good enough?
Kafka as an event store - is it good enough?Guido Schmutz
Ā 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming VisualizationGuido Schmutz
Ā 
Big Data, Data Lake, Fast Data - Dataserialiation-Formats
Big Data, Data Lake, Fast Data - Dataserialiation-FormatsBig Data, Data Lake, Fast Data - Dataserialiation-Formats
Big Data, Data Lake, Fast Data - Dataserialiation-FormatsGuido Schmutz
Ā 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaGuido Schmutz
Ā 
Building event-driven (Micro)Services with Apache Kafka
Building event-driven (Micro)Services with Apache Kafka Building event-driven (Micro)Services with Apache Kafka
Building event-driven (Micro)Services with Apache Kafka Guido Schmutz
Ā 
Spark (Structured) Streaming vs. Kafka Streams - two stream processing platfo...
Spark (Structured) Streaming vs. Kafka Streams - two stream processing platfo...Spark (Structured) Streaming vs. Kafka Streams - two stream processing platfo...
Spark (Structured) Streaming vs. Kafka Streams - two stream processing platfo...Guido Schmutz
Ā 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaGuido Schmutz
Ā 
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 KafkaGuido Schmutz
Ā 
Building Event-Driven (Micro) Services with Apache Kafka
Building Event-Driven (Micro) Services with Apache KafkaBuilding Event-Driven (Micro) Services with Apache Kafka
Building Event-Driven (Micro) Services with Apache KafkaGuido Schmutz
Ā 
Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?Guido Schmutz
Ā 
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & PartitioningApache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & PartitioningGuido Schmutz
Ā 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming VisualizationGuido Schmutz
Ā 
Building event-driven (Micro)Services with Apache Kafka Ecosystem
Building event-driven (Micro)Services with Apache Kafka EcosystemBuilding event-driven (Micro)Services with Apache Kafka Ecosystem
Building event-driven (Micro)Services with Apache Kafka EcosystemGuido Schmutz
Ā 
Streaming Visualisation
Streaming VisualisationStreaming Visualisation
Streaming VisualisationGuido Schmutz
Ā 
Apache Kafka - A modern Stream Processing Platform
Apache Kafka - A modern Stream Processing PlatformApache Kafka - A modern Stream Processing Platform
Apache Kafka - A modern Stream Processing PlatformGuido Schmutz
Ā 
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streaming
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to StreamingBravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streaming
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to StreamingYaroslav Tkachenko
Ā 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming VisualizationGuido Schmutz
Ā 
Self-Service Data Ingestion Using NiFi, StreamSets & Kafka
Self-Service Data Ingestion Using NiFi, StreamSets & KafkaSelf-Service Data Ingestion Using NiFi, StreamSets & Kafka
Self-Service Data Ingestion Using NiFi, StreamSets & KafkaGuido Schmutz
Ā 

What's hot (20)

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
Ā 
ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!
Ā 
Kafka as an event store - is it good enough?
Kafka as an event store - is it good enough?Kafka as an event store - is it good enough?
Kafka as an event store - is it good enough?
Ā 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming Visualization
Ā 
Big Data, Data Lake, Fast Data - Dataserialiation-Formats
Big Data, Data Lake, Fast Data - Dataserialiation-FormatsBig Data, Data Lake, Fast Data - Dataserialiation-Formats
Big Data, Data Lake, Fast Data - Dataserialiation-Formats
Ā 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache Kafka
Ā 
Building event-driven (Micro)Services with Apache Kafka
Building event-driven (Micro)Services with Apache Kafka Building event-driven (Micro)Services with Apache Kafka
Building event-driven (Micro)Services with Apache Kafka
Ā 
Spark (Structured) Streaming vs. Kafka Streams - two stream processing platfo...
Spark (Structured) Streaming vs. Kafka Streams - two stream processing platfo...Spark (Structured) Streaming vs. Kafka Streams - two stream processing platfo...
Spark (Structured) Streaming vs. Kafka Streams - two stream processing platfo...
Ā 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache 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
Ā 
Building Event-Driven (Micro) Services with Apache Kafka
Building Event-Driven (Micro) Services with Apache KafkaBuilding Event-Driven (Micro) Services with Apache Kafka
Building Event-Driven (Micro) Services with Apache Kafka
Ā 
Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?
Ā 
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & PartitioningApache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Ā 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming Visualization
Ā 
Building event-driven (Micro)Services with Apache Kafka Ecosystem
Building event-driven (Micro)Services with Apache Kafka EcosystemBuilding event-driven (Micro)Services with Apache Kafka Ecosystem
Building event-driven (Micro)Services with Apache Kafka Ecosystem
Ā 
Streaming Visualisation
Streaming VisualisationStreaming Visualisation
Streaming Visualisation
Ā 
Apache Kafka - A modern Stream Processing Platform
Apache Kafka - A modern Stream Processing PlatformApache Kafka - A modern Stream Processing Platform
Apache Kafka - A modern Stream Processing Platform
Ā 
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streaming
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to StreamingBravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streaming
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streaming
Ā 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming Visualization
Ā 
Self-Service Data Ingestion Using NiFi, StreamSets & Kafka
Self-Service Data Ingestion Using NiFi, StreamSets & KafkaSelf-Service Data Ingestion Using NiFi, StreamSets & Kafka
Self-Service Data Ingestion Using NiFi, StreamSets & Kafka
Ā 

Similar to Solutions for bi-directional integration between Oracle RDBMS and Apache Kafka

Solutions for bi-directional integration between Oracle RDBMS and Apache Kafk...
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafk...Solutions for bi-directional integration between Oracle RDBMS and Apache Kafk...
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafk...confluent
Ā 
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...Lucas Jellema
Ā 
The Story of How an Oracle Classic Stronghold successfully embraced SOA
The Story of How an Oracle Classic Stronghold successfully embraced SOAThe Story of How an Oracle Classic Stronghold successfully embraced SOA
The Story of How an Oracle Classic Stronghold successfully embraced SOALucas Jellema
Ā 
SAP integration sample payloads for Azure Logic Apps
SAP integration sample payloads for Azure Logic AppsSAP integration sample payloads for Azure Logic Apps
SAP integration sample payloads for Azure Logic AppsDavid Burg
Ā 
What's New in Confluent Platform 5.5
What's New in Confluent Platform 5.5What's New in Confluent Platform 5.5
What's New in Confluent Platform 5.5confluent
Ā 
šŸ—ļøImprove database performance with connection pooling and load balancing tec...
šŸ—ļøImprove database performance with connection pooling and load balancing tec...šŸ—ļøImprove database performance with connection pooling and load balancing tec...
šŸ—ļøImprove database performance with connection pooling and load balancing tec...Alireza Kamrani
Ā 
Sap xi online training
Sap xi online trainingSap xi online training
Sap xi online trainingVenkat reddy
Ā 
Scalable Stream Processing with Apache Samza
Scalable Stream Processing with Apache SamzaScalable Stream Processing with Apache Samza
Scalable Stream Processing with Apache SamzaPrateek Maheshwari
Ā 
Document Databases & RavenDB
Document Databases & RavenDBDocument Databases & RavenDB
Document Databases & RavenDBBrian Ritchie
Ā 
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 platformPaolo Castagna
Ā 
Windows Azure - Uma Plataforma para o Desenvolvimento de AplicaƧƵes
Windows Azure - Uma Plataforma para o Desenvolvimento de AplicaƧƵesWindows Azure - Uma Plataforma para o Desenvolvimento de AplicaƧƵes
Windows Azure - Uma Plataforma para o Desenvolvimento de AplicaƧƵesComunidade NetPonto
Ā 
Serverless Data Platform
Serverless Data PlatformServerless Data Platform
Serverless Data PlatformShu-Jeng Hsieh
Ā 
Interoperable Web Services with JAX-WS and WSIT
Interoperable Web Services with JAX-WS and WSITInteroperable Web Services with JAX-WS and WSIT
Interoperable Web Services with JAX-WS and WSITCarol McDonald
Ā 
Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...
Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...
Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...NoSQLmatters
Ā 
Transformation Processing Smackdown; Spark vs Hive vs Pig
Transformation Processing Smackdown; Spark vs Hive vs PigTransformation Processing Smackdown; Spark vs Hive vs Pig
Transformation Processing Smackdown; Spark vs Hive vs PigLester Martin
Ā 
Cloud Native Applications on OpenShift
Cloud Native Applications on OpenShiftCloud Native Applications on OpenShift
Cloud Native Applications on OpenShiftSerhat Dirik
Ā 
Architecting Solutions Leveraging The Cloud
Architecting Solutions Leveraging The CloudArchitecting Solutions Leveraging The Cloud
Architecting Solutions Leveraging The CloudDavid Chou
Ā 
Event Broker (Kafka) in a Modern Data Architecture
Event Broker (Kafka) in a Modern Data ArchitectureEvent Broker (Kafka) in a Modern Data Architecture
Event Broker (Kafka) in a Modern Data ArchitectureGuido Schmutz
Ā 
Cowboy Dating with Big Data or DWH Evolution in Action, Š‘Š¾Ń€Šøс Š¢Ń€Š¾Ń„ŠøŠ¼Š¾Š²
Cowboy Dating with Big Data or DWH Evolution in Action, Š‘Š¾Ń€Šøс Š¢Ń€Š¾Ń„ŠøŠ¼Š¾Š²Cowboy Dating with Big Data or DWH Evolution in Action, Š‘Š¾Ń€Šøс Š¢Ń€Š¾Ń„ŠøŠ¼Š¾Š²
Cowboy Dating with Big Data or DWH Evolution in Action, Š‘Š¾Ń€Šøс Š¢Ń€Š¾Ń„ŠøŠ¼Š¾Š²Sigma Software
Ā 

Similar to Solutions for bi-directional integration between Oracle RDBMS and Apache Kafka (20)

Solutions for bi-directional integration between Oracle RDBMS and Apache Kafk...
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafk...Solutions for bi-directional integration between Oracle RDBMS and Apache Kafk...
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafk...
Ā 
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
Ā 
The Story of How an Oracle Classic Stronghold successfully embraced SOA
The Story of How an Oracle Classic Stronghold successfully embraced SOAThe Story of How an Oracle Classic Stronghold successfully embraced SOA
The Story of How an Oracle Classic Stronghold successfully embraced SOA
Ā 
SAP integration sample payloads for Azure Logic Apps
SAP integration sample payloads for Azure Logic AppsSAP integration sample payloads for Azure Logic Apps
SAP integration sample payloads for Azure Logic Apps
Ā 
What's New in Confluent Platform 5.5
What's New in Confluent Platform 5.5What's New in Confluent Platform 5.5
What's New in Confluent Platform 5.5
Ā 
šŸ—ļøImprove database performance with connection pooling and load balancing tec...
šŸ—ļøImprove database performance with connection pooling and load balancing tec...šŸ—ļøImprove database performance with connection pooling and load balancing tec...
šŸ—ļøImprove database performance with connection pooling and load balancing tec...
Ā 
Sap xi online training
Sap xi online trainingSap xi online training
Sap xi online training
Ā 
Scalable Stream Processing with Apache Samza
Scalable Stream Processing with Apache SamzaScalable Stream Processing with Apache Samza
Scalable Stream Processing with Apache Samza
Ā 
Document Databases & RavenDB
Document Databases & RavenDBDocument Databases & RavenDB
Document Databases & RavenDB
Ā 
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
Ā 
Windows Azure - Uma Plataforma para o Desenvolvimento de AplicaƧƵes
Windows Azure - Uma Plataforma para o Desenvolvimento de AplicaƧƵesWindows Azure - Uma Plataforma para o Desenvolvimento de AplicaƧƵes
Windows Azure - Uma Plataforma para o Desenvolvimento de AplicaƧƵes
Ā 
Serverless Data Platform
Serverless Data PlatformServerless Data Platform
Serverless Data Platform
Ā 
Interoperable Web Services with JAX-WS and WSIT
Interoperable Web Services with JAX-WS and WSITInteroperable Web Services with JAX-WS and WSIT
Interoperable Web Services with JAX-WS and WSIT
Ā 
Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...
Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...
Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...
Ā 
Transformation Processing Smackdown; Spark vs Hive vs Pig
Transformation Processing Smackdown; Spark vs Hive vs PigTransformation Processing Smackdown; Spark vs Hive vs Pig
Transformation Processing Smackdown; Spark vs Hive vs Pig
Ā 
Cloud Native Applications on OpenShift
Cloud Native Applications on OpenShiftCloud Native Applications on OpenShift
Cloud Native Applications on OpenShift
Ā 
Architecting Solutions Leveraging The Cloud
Architecting Solutions Leveraging The CloudArchitecting Solutions Leveraging The Cloud
Architecting Solutions Leveraging The Cloud
Ā 
Event Broker (Kafka) in a Modern Data Architecture
Event Broker (Kafka) in a Modern Data ArchitectureEvent Broker (Kafka) in a Modern Data Architecture
Event Broker (Kafka) in a Modern Data Architecture
Ā 
Cowboy Dating with Big Data or DWH Evolution in Action, Š‘Š¾Ń€Šøс Š¢Ń€Š¾Ń„ŠøŠ¼Š¾Š²
Cowboy Dating with Big Data or DWH Evolution in Action, Š‘Š¾Ń€Šøс Š¢Ń€Š¾Ń„ŠøŠ¼Š¾Š²Cowboy Dating with Big Data or DWH Evolution in Action, Š‘Š¾Ń€Šøс Š¢Ń€Š¾Ń„ŠøŠ¼Š¾Š²
Cowboy Dating with Big Data or DWH Evolution in Action, Š‘Š¾Ń€Šøс Š¢Ń€Š¾Ń„ŠøŠ¼Š¾Š²
Ā 
CouchDB
CouchDBCouchDB
CouchDB
Ā 

More from Guido Schmutz

30 Minutes to the Analytics Platform with Infrastructure as Code
30 Minutes to the Analytics Platform with Infrastructure as Code30 Minutes to the Analytics Platform with Infrastructure as Code
30 Minutes to the Analytics Platform with Infrastructure as CodeGuido Schmutz
Ā 
Event Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
Event Hub (i.e. Kafka) in Modern Data (Analytics) ArchitectureEvent Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
Event Hub (i.e. Kafka) in Modern Data (Analytics) ArchitectureGuido Schmutz
Ā 
Location Analytics - Real-Time Geofencing using Apache Kafka
Location Analytics - Real-Time Geofencing using Apache KafkaLocation Analytics - Real-Time Geofencing using Apache Kafka
Location Analytics - Real-Time Geofencing using Apache KafkaGuido Schmutz
Ā 
What is Apache Kafka? Why is it so popular? Should I use it?
What is Apache Kafka? Why is it so popular? Should I use it?What is Apache Kafka? Why is it so popular? Should I use it?
What is Apache Kafka? Why is it so popular? Should I use it?Guido Schmutz
Ā 
Location Analytics Real-Time Geofencing using Kafka
Location Analytics Real-Time Geofencing using KafkaLocation Analytics Real-Time Geofencing using Kafka
Location Analytics Real-Time Geofencing using KafkaGuido Schmutz
Ā 
Fundamentals Big Data and AI Architecture
Fundamentals Big Data and AI ArchitectureFundamentals Big Data and AI Architecture
Fundamentals Big Data and AI ArchitectureGuido Schmutz
Ā 
Location Analytics - Real Time Geofencing using Apache Kafka
Location Analytics - Real Time Geofencing using Apache KafkaLocation Analytics - Real Time Geofencing using Apache Kafka
Location Analytics - Real Time Geofencing using Apache KafkaGuido Schmutz
Ā 
Introduction to Stream Processing
Introduction to Stream ProcessingIntroduction to Stream Processing
Introduction to Stream ProcessingGuido Schmutz
Ā 
Stream Processing ā€“ Concepts and Frameworks
Stream Processing ā€“ Concepts and FrameworksStream Processing ā€“ Concepts and Frameworks
Stream Processing ā€“ Concepts and FrameworksGuido Schmutz
Ā 
Kafka as an Event Store - is it Good Enough?
Kafka as an Event Store - is it Good Enough?Kafka as an Event Store - is it Good Enough?
Kafka as an Event Store - is it Good Enough?Guido Schmutz
Ā 
Introduction to Stream Processing
Introduction to Stream ProcessingIntroduction to Stream Processing
Introduction to Stream ProcessingGuido Schmutz
Ā 

More from Guido Schmutz (11)

30 Minutes to the Analytics Platform with Infrastructure as Code
30 Minutes to the Analytics Platform with Infrastructure as Code30 Minutes to the Analytics Platform with Infrastructure as Code
30 Minutes to the Analytics Platform with Infrastructure as Code
Ā 
Event Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
Event Hub (i.e. Kafka) in Modern Data (Analytics) ArchitectureEvent Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
Event Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
Ā 
Location Analytics - Real-Time Geofencing using Apache Kafka
Location Analytics - Real-Time Geofencing using Apache KafkaLocation Analytics - Real-Time Geofencing using Apache Kafka
Location Analytics - Real-Time Geofencing using Apache Kafka
Ā 
What is Apache Kafka? Why is it so popular? Should I use it?
What is Apache Kafka? Why is it so popular? Should I use it?What is Apache Kafka? Why is it so popular? Should I use it?
What is Apache Kafka? Why is it so popular? Should I use it?
Ā 
Location Analytics Real-Time Geofencing using Kafka
Location Analytics Real-Time Geofencing using KafkaLocation Analytics Real-Time Geofencing using Kafka
Location Analytics Real-Time Geofencing using Kafka
Ā 
Fundamentals Big Data and AI Architecture
Fundamentals Big Data and AI ArchitectureFundamentals Big Data and AI Architecture
Fundamentals Big Data and AI Architecture
Ā 
Location Analytics - Real Time Geofencing using Apache Kafka
Location Analytics - Real Time Geofencing using Apache KafkaLocation Analytics - Real Time Geofencing using Apache Kafka
Location Analytics - Real Time Geofencing using Apache Kafka
Ā 
Introduction to Stream Processing
Introduction to Stream ProcessingIntroduction to Stream Processing
Introduction to Stream Processing
Ā 
Stream Processing ā€“ Concepts and Frameworks
Stream Processing ā€“ Concepts and FrameworksStream Processing ā€“ Concepts and Frameworks
Stream Processing ā€“ Concepts and Frameworks
Ā 
Kafka as an Event Store - is it Good Enough?
Kafka as an Event Store - is it Good Enough?Kafka as an Event Store - is it Good Enough?
Kafka as an Event Store - is it Good Enough?
Ā 
Introduction to Stream Processing
Introduction to Stream ProcessingIntroduction to Stream Processing
Introduction to Stream Processing
Ā 

Recently uploaded

Introduction-to-Machine-Learning (1).pptx
Introduction-to-Machine-Learning (1).pptxIntroduction-to-Machine-Learning (1).pptx
Introduction-to-Machine-Learning (1).pptxfirstjob4
Ā 
Carero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxCarero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxolyaivanovalion
Ā 
BabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxBabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxolyaivanovalion
Ā 
Junnasandra Call Girls: šŸ“ 7737669865 šŸ“ High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: šŸ“ 7737669865 šŸ“ High Profile Model Escorts | Bangalore...Junnasandra Call Girls: šŸ“ 7737669865 šŸ“ High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: šŸ“ 7737669865 šŸ“ High Profile Model Escorts | Bangalore...amitlee9823
Ā 
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% SecureCall me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% SecurePooja Nehwal
Ā 
Week-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interactionWeek-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interactionfulawalesam
Ā 
Best VIP Call Girls Noida Sector 22 Call Me: 8448380779
Best VIP Call Girls Noida Sector 22 Call Me: 8448380779Best VIP Call Girls Noida Sector 22 Call Me: 8448380779
Best VIP Call Girls Noida Sector 22 Call Me: 8448380779Delhi Call girls
Ā 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxolyaivanovalion
Ā 
Delhi Call Girls CP 9711199171 ā˜Žāœ”šŸ‘Œāœ” Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ā˜Žāœ”šŸ‘Œāœ” Whatsapp Hard And Sexy Vip CallDelhi Call Girls CP 9711199171 ā˜Žāœ”šŸ‘Œāœ” Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ā˜Žāœ”šŸ‘Œāœ” Whatsapp Hard And Sexy Vip Callshivangimorya083
Ā 
Ravak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxRavak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxolyaivanovalion
Ā 
Log Analysis using OSSEC sasoasasasas.pptx
Log Analysis using OSSEC sasoasasasas.pptxLog Analysis using OSSEC sasoasasasas.pptx
Log Analysis using OSSEC sasoasasasas.pptxJohnnyPlasten
Ā 
ź§ā¤ Greater Noida Call Girls Delhi ā¤ź§‚ 9711199171 ā˜Žļø Hard And Sexy Vip Call
ź§ā¤ Greater Noida Call Girls Delhi ā¤ź§‚ 9711199171 ā˜Žļø Hard And Sexy Vip Callź§ā¤ Greater Noida Call Girls Delhi ā¤ź§‚ 9711199171 ā˜Žļø Hard And Sexy Vip Call
ź§ā¤ Greater Noida Call Girls Delhi ā¤ź§‚ 9711199171 ā˜Žļø Hard And Sexy Vip Callshivangimorya083
Ā 
Halmar dropshipping via API with DroFx
Halmar  dropshipping  via API with DroFxHalmar  dropshipping  via API with DroFx
Halmar dropshipping via API with DroFxolyaivanovalion
Ā 
ALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxolyaivanovalion
Ā 
Call Girls šŸ«¤ Dwarka āž”ļø 9711199171 āž”ļø Delhi šŸ«¦ Two shot with one girl
Call Girls šŸ«¤ Dwarka āž”ļø 9711199171 āž”ļø Delhi šŸ«¦ Two shot with one girlCall Girls šŸ«¤ Dwarka āž”ļø 9711199171 āž”ļø Delhi šŸ«¦ Two shot with one girl
Call Girls šŸ«¤ Dwarka āž”ļø 9711199171 āž”ļø Delhi šŸ«¦ Two shot with one girlkumarajju5765
Ā 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfLars Albertsson
Ā 
Call Girls in Sarai Kale Khan Delhi šŸ’Æ Call Us šŸ”9205541914 šŸ”( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi šŸ’Æ Call Us šŸ”9205541914 šŸ”( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi šŸ’Æ Call Us šŸ”9205541914 šŸ”( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi šŸ’Æ Call Us šŸ”9205541914 šŸ”( Delhi) Escorts S...Delhi Call girls
Ā 
BigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxBigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxolyaivanovalion
Ā 

Recently uploaded (20)

Introduction-to-Machine-Learning (1).pptx
Introduction-to-Machine-Learning (1).pptxIntroduction-to-Machine-Learning (1).pptx
Introduction-to-Machine-Learning (1).pptx
Ā 
Carero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxCarero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptx
Ā 
BabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxBabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptx
Ā 
Junnasandra Call Girls: šŸ“ 7737669865 šŸ“ High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: šŸ“ 7737669865 šŸ“ High Profile Model Escorts | Bangalore...Junnasandra Call Girls: šŸ“ 7737669865 šŸ“ High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: šŸ“ 7737669865 šŸ“ High Profile Model Escorts | Bangalore...
Ā 
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% SecureCall me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Ā 
Week-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interactionWeek-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interaction
Ā 
Best VIP Call Girls Noida Sector 22 Call Me: 8448380779
Best VIP Call Girls Noida Sector 22 Call Me: 8448380779Best VIP Call Girls Noida Sector 22 Call Me: 8448380779
Best VIP Call Girls Noida Sector 22 Call Me: 8448380779
Ā 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFx
Ā 
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in Kishangarh
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in  KishangarhDelhi 99530 vip 56974 Genuine Escort Service Call Girls in  Kishangarh
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in Kishangarh
Ā 
Delhi Call Girls CP 9711199171 ā˜Žāœ”šŸ‘Œāœ” Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ā˜Žāœ”šŸ‘Œāœ” Whatsapp Hard And Sexy Vip CallDelhi Call Girls CP 9711199171 ā˜Žāœ”šŸ‘Œāœ” Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ā˜Žāœ”šŸ‘Œāœ” Whatsapp Hard And Sexy Vip Call
Ā 
Ravak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxRavak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptx
Ā 
Log Analysis using OSSEC sasoasasasas.pptx
Log Analysis using OSSEC sasoasasasas.pptxLog Analysis using OSSEC sasoasasasas.pptx
Log Analysis using OSSEC sasoasasasas.pptx
Ā 
ź§ā¤ Greater Noida Call Girls Delhi ā¤ź§‚ 9711199171 ā˜Žļø Hard And Sexy Vip Call
ź§ā¤ Greater Noida Call Girls Delhi ā¤ź§‚ 9711199171 ā˜Žļø Hard And Sexy Vip Callź§ā¤ Greater Noida Call Girls Delhi ā¤ź§‚ 9711199171 ā˜Žļø Hard And Sexy Vip Call
ź§ā¤ Greater Noida Call Girls Delhi ā¤ź§‚ 9711199171 ā˜Žļø Hard And Sexy Vip Call
Ā 
Halmar dropshipping via API with DroFx
Halmar  dropshipping  via API with DroFxHalmar  dropshipping  via API with DroFx
Halmar dropshipping via API with DroFx
Ā 
ALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptx
Ā 
Call Girls šŸ«¤ Dwarka āž”ļø 9711199171 āž”ļø Delhi šŸ«¦ Two shot with one girl
Call Girls šŸ«¤ Dwarka āž”ļø 9711199171 āž”ļø Delhi šŸ«¦ Two shot with one girlCall Girls šŸ«¤ Dwarka āž”ļø 9711199171 āž”ļø Delhi šŸ«¦ Two shot with one girl
Call Girls šŸ«¤ Dwarka āž”ļø 9711199171 āž”ļø Delhi šŸ«¦ Two shot with one girl
Ā 
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get CytotecAbortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Ā 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdf
Ā 
Call Girls in Sarai Kale Khan Delhi šŸ’Æ Call Us šŸ”9205541914 šŸ”( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi šŸ’Æ Call Us šŸ”9205541914 šŸ”( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi šŸ’Æ Call Us šŸ”9205541914 šŸ”( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi šŸ’Æ Call Us šŸ”9205541914 šŸ”( Delhi) Escorts S...
Ā 
BigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxBigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptx
Ā 

Solutions for bi-directional integration between Oracle RDBMS and Apache Kafka

  • 1. BASEL | BERN | BRUGG | BUCHAREST | COPENHAGEN | DƜSSELDORF | FRANKFURT A.M. | FREIBURG I.BR. GENEVA | HAMBURG | LAUSANNE | MANNHEIM | MUNICH | STUTTGART | VIENNA | ZURICH http://guidoschmutz@wordpress.com@gschmutz Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka Guido Schmutz UKOUG Techfest 2019
  • 2. Agenda 1. Introduction 2. Blueprints Oracle RDBMS => Apache Kafka 3. Blueprints Apache Kafka => Oracle RDBMS 4. Summary
  • 3. BASEL | BERN | BRUGG | BUKAREST | DƜSSELDORF | FRANKFURT A.M. | FREIBURG I.BR. | GENF HAMBURG | KOPENHAGEN | LAUSANNE | MANNHEIM | MƜNCHEN | STUTTGART | WIEN | ZƜRICH Guido Working at Trivadis for more than 22 years Consultant, Trainer, Platform Architect for Java, Oracle, SOA and Big Data / Fast Data Oracle Groundbreaker Ambassador & Oracle ACE Director @gschmutz guidoschmutz.wordpress.com 175th edition
  • 5. Microservices / Modern Applications ā€¢ Highly decoupled ā€¢ Independently deployable ā€¢ Bounded Context/Aggregate (DDD) ā€¢ Responsible for their data ā€¢ Favour asynchronous, event-driven interaction over synchronous ā€¢ Smart Endpoints and Dump Pipes ā€¢ Use Anti-Corruption Layer (ACL) if no fit! M3M2 ACL Event Hub M1
  • 6. Microservices / Modern Applications Integrate with Traditional System M3M2 ACL Event Hub M1 ACL ā€¢ Highly decoupled ā€¢ Independently deployable ā€¢ Bounded Context/Aggregate (DDD) ā€¢ Responsible for their data ā€¢ Favour asynchronous, event-driven interaction over synchronous ā€¢ Smart Endpoints and Dump Pipes ā€¢ Use Anti-Corruption Layer (ACL) if no fit! Traditional App
  • 7. Apache Kafka ā€“ A Streaming Platform Kafka Cluster Consumer 1 Consume 2r Broker 1 Broker 2 Broker 3 Zookeeper Ensemble ZK 1 ZK 2ZK 3 Schema Registry Service 1 Management Control Center Kafka Manager KAdmin Producer 1 Producer 2 kafkacat Data Retention: ā€¢ Never ā€¢ Time (TTL) or Size-based ā€¢ Log-Compacted based Producer3Producer3 ConsumerConsumer 3
  • 8. Use Case Customer Microservice { } Customer API CustomerCustomer Logic Order Processing System { } Order API OrderOrder Logic REST REST Event Hub Customer Mat View Order Customer (compacted) Notification Microservice Notification Logic ā€œModern Appsā€Traditional Apps (Legacy) Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense
  • 9. MessageMessageMessageMessage MessageMessage Properties - Message Message Message A1 A2 A3 Message B1 B2 B3 B4 A1 A2 A3 B B1 B2 B3 B4 Table A A1 A2 A3 Table B B1 B2 B3 B4 FlatDB Model Aggregate Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense
  • 10. Properties - Latency Traditional System Event Hub Data Flow RDBMS latency latency Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense
  • 11. Properties ā€“ Anti-Corruption Layer (ACL) Traditional System Event Hub Data Flow RDBMS Traditional System Event Hub Data Flow RDBMS ACL ACL Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense Examples: ā€¢ View Layer ā€¢ Storage Procedure ā€¢ JSON Support in DB ā€¢ ā€¦ Examples: ā€¢ StreamSets ā€¢ Kafka Connect ā€¢ Kafka Streams / KSQL ā€¢ ā€¦ Database Dataflow
  • 12. Properties ā€“ License ā€¢ Cost Free ā€¢ either part of Oracle RDMBS license ā€¢ or part of Kafka license (if Confluent Enterprise is used) ā€¢ or a free software (mostly open source) component ā€¢ Commercial ā€¢ an additional component involving license costs Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense
  • 13. Blueprints Oracle RDBMS => Apache Kafka
  • 14. Blueprints Oracle RDBMS => Apache Kafka (DB-K) Customer Microservice { } Customer API CustomerCustomer Logic Order Processing System { } Order API OrderOrder Logic REST REST Event Hub Customer Mat View Order (compacted) Customer (compacted) Notification Microservice Notification Logic Schema Registry DB-K_1: Polling of RDBMS table/view DB-K_2: Change Data Capture (CDC) on RDBMS DB-K_3: Polling of RDBMS API DB-K_4: Produce to Event Hub from RDBMS DB-K_5: RDBMS Queue with bridge to Event Hub
  • 15. DB-K_1: Polling of RDBMS table/view Event Hub Stream Data Integration API Applications / Data Sources Data FlowRDBMS Application Logic Stream Data Integration & Analytics Stream Analytics Data Flow Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense
  • 16. Event Hub Stream Data Integration API Applications / Data Sources Data FlowRDBMS Application Logic Stream Data Integration & Analytics Stream Analytics Data Flow Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense DB-K_1: Polling of RDBMS table/view Kafka Connect with JDBC Source Connector JDBC Connector part of Confluent Open Source Platform
  • 17. Kafka Connect & JDBC Connector ā€¢ Many connectors available ā€¢ Single Message Transforms (SMT) ā€¢ declarative style, simple data flows ā€¢ framework is part of Apache Kafka https://www.confluent.io/hub
  • 18. DB-K_1 ā€“ Configure JDBC Connector #!/bin/bash curl -X "POST" "http://192.168.69.138:8083/connectors" -H "Content-Type: application/json" -d $'{ "name": "jdbc-driver-source", "config": { "connector.class": "JdbcSourceConnector", "connection.url":"jdbc:oracle:thin//oracle-db:1521/XEPDB1", "mode": "timestamp", "timestamp.column.name":ā€modified_at", "table.whitelist":ā€order", "validate.non.null":"false", "topic.prefix":ā€orderprocessing_", "key.converter":"org.apache.kafka.connect.json.JsonConverter", "key.converter.schemas.enable": "false", "value.converter":"org.apache.kafka.connect.json.JsonConverter", "value.converter.schemas.enable": "false", "name": "jdbc-driver-source", "transforms":"createKey,extractInt", "transforms.createKey.type":"org.apache.kafka.connect.transforms.ValueToKey", "transforms.createKey.fields":"id", "transforms.extractInt.type":"org.apache.kafka.connect.transforms.ExtractField$Key", "transforms.extractInt.field":"id" } }'
  • 19. DB-K_2: Change Data Capture (CDC) on RDBMS Stream Data Integration & Analytics Stream Analytics Event Hub Stream Data Integration API Data Flow Application / Data Sources Data Flow Application Logic RDBMS Redo Log REST to Event Hub Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense
  • 20. Stream Data Integration & Analytics Stream Analytics Event Hub Stream Data Integration API Data Flow Application / Data Sources Data Flow Application Logic RDBMS Redo Log REST to Event Hub Rest Proxy DB-K_2: Change Data Capture (CDC) on RDBMS Using Oracle GoldenGate Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense Alternatives: StreamSets Data Collector Attunity Debezium ā€¦
  • 21. DB-K_3: Polling of RDBMS API Event Hub Stream Data Integration API Applications / Data Sources Data Flow RDBMS Application Logic API Stream Data Integration & Analytics Stream Analytics Data Flow Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense
  • 22. Event Hub Stream Data Integration API Applications / Data Sources Data Flow RDBMS Application Logic API Stream Data Integration & Analytics Stream Analytics Data Flow DB-K_3: Polling of RDBMS API StreamSets invokes Oracle Rest Data Service Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense Oracle Rest Data Service is part of Oracle RDBMS, StreamSets is Open Source
  • 23. Oracle REST Data Services (ORDS) ā€¢ makes it easy to develop modern REST interfaces for relational data in the Oracle Database and the Oracle Database 18c JSON Document Store ā€¢ ORDS maps HTTP(S) verbs (GET, POST, PUT, DELETE, etc.) to database transactions and returns any results formatted using JSON ā€¢ Java middle tier application on WebLogic, Tomcat, Docker, Standalone (for development) https://www.oracle.com/database/technologies/appdev/rest.html
  • 24. DB-K_3 ā€“ Setup ORDS (I) ORDS.ENABLE_SCHEMA( p_enabled => TRUE, p_schema => 'ORDER_PROCESSING', p_url_mapping_type => 'BASE_PATH', p_url_mapping_pattern => 'order_processing', p_auto_rest_auth => FALSE); ORDS.DEFINE_MODULE( p_module_name => 'order_processing', p_base_path => '/orders/', p_items_per_page => 25, p_status => 'PUBLISHED', p_comments => NULL); ORDS.DEFINE_TEMPLATE( p_module_name => 'order_processing', p_pattern => 'changes/:offset', p_priority => 0, p_etag_type => 'HASH', p_etag_query => NULL, p_comments => NULL);
  • 25. DB-K_3 ā€“ Setup ORDS (II) ORDS.DEFINE_HANDLER( p_module_name => 'order_processing', p_pattern => 'changes/:offset', p_method => 'GET', p_source_type => 'resource/lob', p_items_per_page => 25, p_source => q'[ 'SELECT 'application/json', json_object('orderId' VALUE po.id, 'orderDate' VALUE po.order_date, 'orderMode' VALUE po.order_mode, 'customer' VALUE json_object('firstName' VALUE cu.first_name, 'lastName' VALUE cu.last_name 'emailAddress' VALUE cu.email), 'lineItems' VALUE (SELECT json_arrayagg( json_object('ItemNumber' VALUE li.id, 'Product' VALUE json_object('id' VALUE li.product_id, 'name' VALUE li.product_name, 'unitPrice' VALUE li.unit_price), 'quantity' VALUE li.quantity)) FROM order_item_t li WHERE po.id = li.order_id), 'offset' VALUE TO_CHAR(po.modified_at, 'YYYYMMDDHH24MISS')) FROM order_t po LEFT JOIN customer_t cu ON (po.customer_id = cu.id) WHERE po.modified_at > TO_DATE(:offset, 'YYYYMMDDHH24MISS')]'
  • 26. StreamSets Data Collector ā€¢ GUI-based, drag-and drop Data Flow Pipelines ā€¢ Both stream and batch processing ā€¢ custom sources, sinks, processors ā€¢ Monitoring and Error Detection https://streamsets.com/products/sdc
  • 27. DB-K_4: Produce to Event Hub from RDBMS Event Hub Stream Data Integration API Applications / Data Sources RDBMS Application Logic API Stream Data Integration & Analytics Stream Analytics Data Flow REST to Event Hub Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense
  • 28. Event Hub Stream Data Integration API Applications / Data Sources RDBMS Application Logic API Stream Data Integration & Analytics Stream Analytics Data Flow REST to Event Hub Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense DB-K_4: Produce to Event Hub from RDBMS Native Kafka Producer using Java in DB Does not feel right! Java in DB as well as ā€œdual writeā€ problem
  • 29. Event Hub Stream Data Integration API Applications / Data Sources RDBMS Application Logic API Stream Data Integration & Analytics Stream Analytics Data Flow REST to Event Hub Rest Proxy ? Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense DB-K_4: Produce to Event Hub from RDBMS Invoke REST Proxy from PL/SQL Invoking a REST Service from DB not well- supported and ā€dual writeā€ problem Confluent REST Proxy is part of Confluent Open Source Platform
  • 30. Event Hub Stream Data Integration API Applications / Data Sources RDBMS Application Logic API Stream Data Integration & Analytics Stream Analytics Data Flow REST to Event Hub Oracle Big Data SQL Coming soon ā€¦ DB-K_4: Produce to Event Hub from RDBMS Oracle Big Data SQL integrates with Kafka Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense
  • 31. DB-K_5: RDBMS Queue with bridge to Event Hub Stream Data Integration & Analytics Stream Analytics Event Hub Stream Data Integration API Data Flow Application / Data Sources Data Flow Application Logic RDBMS Queue Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense
  • 32. DB-K_5: RDBMS Queue with bridge to Event Hub Oracle Advanced Queuing & Kafka Connect JMS Stream Data Integration & Analytics Stream Analytics Event Hub Stream Data Integration API Data Flow Application / Data Sources Data Flow Application Logic RDBMS QueueAQ Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense Oracle Advanced Queuing is part of Oracle RDBMS
  • 33. BEGIN dbms_aqadm.create_queue_table ( queue_table => 'ORDER_QT', queue_payload_type => 'SYS.AQ$_JMS_TEXT_MESSAGE', sort_list => 'PRIORITY,ENQ_TIME', multiple_consumers => FALSE, message_grouping => dbms_aqadm.none ); END; / DB-K_5 ā€“ Setup AQ and Kafka Connect (I) BEGIN dbms_aqadm.create_queue ( queue_name => 'ORDER_AQ', queue_table => 'ORDER_QT', max_retries => 1, retry_delay => 2, -- seconds retention_time => 60*60*24*7 -- 1w ); END; / BEGIN dbms_aqadm.start_queue( queue_name => 'ORDER_AQ', enqueue => TRUE, dequeue => TRUE ); END; /
  • 34. curl -X "POST" "$DOCKER_HOST_IP:8083/connectors" -H "Content-Type: application/json" --data '{ "name": "jms-source", "config": { "name": "jms-source", "connector.class": "com.datamountaineer...JMSSourceConnector", "connect.jms.initial.context.factory": "oracle.jms.AQjmsInitialContextFactory", "connect.jms.initial.context.extra.params": "db_url=jdbc:oracle:thin:@//192.168.73.86:1521/XEPDB1,java.naming.security.princ ipal=order_processing,java.naming.security.credentials=order_processing", "tasks.max": "1", "connect.jms.connection.factory": "ConnectionFactory", "connect.jms.url": "jdbc:oracle:thin:@//192.168.73.86:1521/XEPDB1", "connect.jms.kcql": "INSERT INTO order SELECT * FROM order_aq WITHTYPE QUEUE WITHCONVERTER=`com.datamountaineer.streamreactor.connect.converters.source.JsonS impleConverter`" } }' DB-K_5 ā€“ Setup AQ and Kafka Connect (I)
  • 35. DB-K_5: RDBMS Queue with bridge to Event Hub Oracle AQ with Kafka API & MirrorMaker Stream Data Integration & Analytics Stream Analytics Event Hub Stream Data Integration API Data Flow Application / Data Sources Data Flow Application Logic RDBMS Queue Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense AQ (Kafka API) Oracle is working on a Kafka API for Advanced Queuing
  • 36. Blueprints Apache Kafka => Oracle RDBMS
  • 37. Blueprints Apache Kafka => Oracle RDBMS (K-DB) Customer Microservice { } Customer API CustomerCustomer Logic Order Processing System { } Order API OrderOrder Logic REST REST Event Hub Customer Mat View Order (compacted) Customer (compacted) Notification Microservice Notification Logic Schema Registry K-DB_1: Write to RDBMS table/view K-DB_2: Write over RDBMS API K-DB_3: Consume from Event Hub K-DB_4: Event Hub with bridge to RDBMS Queue
  • 38. K-DB_1: Write to RDBMS table/view Event Hub Stream Data Integration API Applications / Data Sources Data FlowRDBMS Application Logic Stream Data Integration & Analytics Stream Analytics Data Flow Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense
  • 39. Event Hub Stream Data Integration API Applications / Data Sources Data FlowRDBMS Application Logic Stream Data Integration & Analytics Stream Analytics Data Flow Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense K-DB_1: Write to RDBMS table/view Kafka Connect and JDBC Sink Connector
  • 40. K-DB_2: Write over RDBMS API Event Hub Stream Data Integration API Applications / Data Sources Data Flow RDBMS Application Logic API Stream Data Integration & Analytics Stream Analytics Data Flow Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense
  • 41. Event Hub Stream Data Integration API Applications / Data Sources Data Flow RDBMS Application Logic API Stream Data Integration & Analytics Stream Analytics Data Flow Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense K-DB_2: Write over RDBMS API Kafka Connect invokes Oracle Rest Data Service Oracle Rest Data Service is part of Oracle RDBMS, REST Connector is Open Source
  • 42. DB-K_2 ā€“ Setup ORDS (I) ORDS.DEFINE_HANDLER( p_module_name => 'customer', p_pattern => 'customer', p_method => 'POST', p_source_type => 'plsql/block', p_items_per_page => 0, p_source => 'DECLARE L_CU CLOB := :body_text; BEGIN INSERT INTO customer_t (id, first_name, last_name, title, notification_on, email, slack_handle, twitter_handle) SELECT * FROM json_table(L_CU, '$' COLUMNS ( id NUMBER PATH '$.id', first_name VARCHAR2 PATH '$.firstName', last_name VARCHAR2 PATH '$.lastName', title VARCHAR2 PATH '$.title', notification_on VARCHAR2 PATH '$.notificationOn', email VARCHAR2 PATH '$.email', slack_handle VARCHAR2 PATH '$.slackHandle', twitter_handle VARCHAR2 PATH '$.twitterHandle' )); INSERT INTO address_t (customer_id, id, street, nr, city, postcode, country) SELECT * FROM json_table( ... )
  • 43. K-DB_3: Consume from Event Hub Event Hub Stream Data Integration API Applications / Data Sources RDBMS Application Logic API Stream Data Integration & Analytics Stream Analytics Data Flow REST to Event Hub Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense
  • 44. Event Hub Stream Data Integration API Applications / Data Sources RDBMS Application Logic API Stream Data Integration & Analytics Stream Analytics Data Flow REST to Event Hub Oracle Big Data SQL Coming soonā€¦ K-DB_3: Consume from Event Hub Oracle Big Data SQL exposes topic as table Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense
  • 45. K-DB_4: Event Hub with bridge to RDBMS queue Stream Data Integration & Analytics Stream Analytics Event Hub Stream Data Integration API Data Flow Application / Data Sources Data Flow Application Logic RDBMS Queue Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense
  • 46. Stream Data Integration & Analytics Stream Analytics Event Hub Stream Data Integration API Data Flow Application / Data Sources Data Flow Application Logic RDBMS QueueAQ K-DB_4: Event Hub with bridge to RDBMS queue Oracle Advanced Queuing & Kafka Connect JMS Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense Oracle Advanced Queuing is part of Oracle RDBMS
  • 47. Stream Data Integration & Analytics Stream Analytics Event Hub Stream Data Integration API Data Flow Application / Data Sources Data Flow Application Logic RDBMS QueueAQ (Kafka API) Oracle is working on a Kafka API for Advanced Queuing K-DB_4: Event Hub with bridge to RDBMS queue Oracle AQ with Kafka API & MirrorMaker Flat Aggregate Low Latency High Latency DB Dataflow Message Latency ACL Cost Free CommercialLicense
  • 49. Summary Customer Microservice { } Customer API CustomerCustomer Logic Order Processing System { } Order API OrderOrder Logic REST REST Event Hub Customer Mat View Order (compacted) Customer (compacted) Notification Microservice Notification Logic Schema Registry K-DB_1: Write to RDBMS table/view K-DB_2: Write over RDBMS API K-DB_3: Consume from Event Hub K-DB_4: Event Hub with bridge to RDBMS Queue https://github.com/gschmutz/various-demos/tree/master/bidirectional-integration-oracle-kafka DB-K_1: Polling of RDBMS table/view DB-K_2: Change Data Capture (CDC) on RDBMS DB-K_3: Polling of RDBMS API DB-K_4: Produce to Event Hub from RDBMS DB-K_5: RDBMS Queue with bridge to Event Hub
  • 50. Bulk Source Ref Architecture Data Platform Service Event Stream Bulk Data Flow Event Source Location DB Extract File Weather DB IoT Data Mobile Apps Social File Import / SQL Import Consumer BI Apps Data Science Workbench Enterprise App Enterprise Data Warehouse SQL / Search SQL ā€œNativeā€ Raw RDBMS ā€œSQLā€ / Search Service Event Hub Hadoop ClusterdHadoop ClusterBig Data Platform SQL Export Storage Storage Raw Refined/ UsageOpt Microservice Cluster Stream Processing Cluster Stream Processor Model / State Edge Node Rules Event Hub Storage Governance Data Catalog Rules Engine Parallel Processing Query Engine Microservice Data { } API Event Stream Event Stream Modern Data Platform Event Stream
  • 51. Bulk Source Ref Architecture Data Platform Service Event Stream Bulk Data Flow Event Source Location DB Extract File Weather DB IoT Data Mobile Apps Social File Import / SQL Import Consumer BI Apps Data Science Workbench Enterprise App Enterprise Data Warehouse SQL / Search SQL ā€œNativeā€ Raw RDBMS ā€œSQLā€ / Search Service sEvent Hub Hadoop ClusterdHadoop ClusterBig Data Platform SQL Export Storage Storage Raw Refined/ UsageOpt Microservice Cluster Stream Processing Cluster Stream Processor Model / State Edge Node Rules Event Hub Storage Governance Data Catalog Rules Engine Parallel Processing Query Engine Microservice Data { } API Event Stream Event Stream Modern Data Platform Event Stream