SlideShare a Scribd company logo
1 of 48
Download to read offline
gschmutz
Solutions for bi-directional integration
between Oracle RDBMS & Apache Kafka
Analytics & Data Summit 2019
Guido Schmutz (guido.schmutz@Trivadis.com)
gschmutz guidoschmutz.wordpress.com
gschmutz
Agenda
Bi-directional integration between Oracle RDBMS & Apache Kafka
1. Introduction
2. Blueprints Oracle RDBMS => Apache Kafka
3. Blueprints Apache Kafka => Oracle RDBMS
4. Demo
gschmutz
Guido Schmutz
Bi-directional integration between Oracle RDBMS & Apache Kafka
Working at Trivadis for more than 22 years
Oracle GroundbreakerAmbassador& Oracle ACE Director
Consultant, Trainer Software Architect forJava, Oracle, SOA and
Big Data / Fast Data
Head of Trivadis Architecture Board
TechnologyManager @ Trivadis
More than 30 years of software developmentexperience
Contact: guido.schmutz@trivadis.com
Blog: http://guidoschmutz.wordpress.com
Slideshare:http://www.slideshare.net/gschmutz
Twitter: gschmutz
145th edition
gschmutzBi-directional integration between Oracle RDBMS & Apache Kafka
Introduction
gschmutz
Timely decisions require new data in minutes
Bi-directional integration between Oracle RDBMS & Apache Kafka
gschmutz
Hadoop Clusterd
Hadoop Cluster
Big Data
Unified Architecture for Modern Data Analytics Solutions
Bi-directional integration between Oracle RDBMS & Apache Kafka
SQL
Search
BI Tools
Enterprise Data
Warehouse
Search / Explore
File Import / SQL Import
Event
Hub
Parallel
Processing
Storage
Storage
RawRefined
Results
Microservice State
{ }
API
Stream
Processor
State
{ }
API
Event
Stream
Event
Stream
Service
Stream Analytics
Microservices
Enterprise Apps
Logic
{ }
API
Edge Node
Rules
Event Hub
Storage
Bulk Source
Event Source
Location
DB
Extract
File
DB
IoT
Data
Mobile
Apps
Social
Telemetry
Event Stream
gschmutz
Hadoop Clusterd
Hadoop Cluster
Big Data
Unified Architecture for Modern Data Analytics Solutions
Bi-directional integration between Oracle RDBMS & Apache Kafka
SQL
Search
BI Tools
Enterprise Data
Warehouse
Search / Explore
File Import / SQL Import
Event
Hub
Parallel
Processing
Storage
Storage
RawRefined
Results
Microservice State
{ }
API
Stream
Processor
State
{ }
API
Event
Stream
Event
Stream
Service
Stream Analytics
Microservices
Enterprise Apps
Logic
{ }
API
Edge Node
Rules
Event Hub
Storage
Bulk Source
Event Source
Location
DB
Extract
File
DB
IoT
Data
Mobile
Apps
Social
Telemetry
Event Stream
gschmutz
Highly available, Pub/Sub infrastructure
Highly Scalable
Event Hub: Apache Kafka
Distributed Log at the Core
Logs do not (necessarily) forget
• Never
• Time (TTL) or Size-based
• Log-Compacted based
Bi-directional integration between Oracle RDBMS & Apache Kafka
gschmutz
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
Schema
Registry
Bi-directional integration between Oracle RDBMS & Apache Kafka
gschmutz
Blueprints Oracle RDBMS =>
Apache Kafka
Bi-directional integration between Oracle RDBMS & Apache Kafka
gschmutz
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
DB-K_1: Regular Polling ofRDBMS table/view
DB-K_2: Regular Polling ofRDBMS API
DB-K_3: Change Data Capture (CDC) on RDBMS
DB-K_4: Produce Messages to Event Hub from RDBMS
DB-K_5: Queuing on RDBMS to bridge to Event Hub
DB_K-1
DB_K-2
DB_K-3
DB_K-4
DB_K-5
Bi-directional integration between Oracle RDBMS & Apache Kafka
gschmutz
DB-K_1: Regular Polling of RDBMS table/view
Bi-directional integration between Oracle RDBMS & Apache Kafka
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
Tight coupling Loose Coupling
Message
Latency
Coupling
gschmutz
DB-K_1: Kafka Connect with JDBC Polling
Bi-directional integration between Oracle RDBMS & Apache Kafka
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
Tight coupling Loose Coupling
Message
Latency
Coupling
gschmutz
Stream Data Integration: Kafka Connect
Bi-directional integration between Oracle RDBMS & Apache Kafka
• Single Message Transforms (SMT)
allow simple transformations
• Connectors available from Confluent
as well as the community,
check hub.confluent.io for the list
curl -X "POST"
"http://192.168.69.138:8083/connectors" 
-H "Content-Type: application/json" 
-d $'{
"name": "mqtt-source",
"config": {
"connector.class": ”...MqttSourceConnector",
"tasks.max": "1",
"name": "mqtt-source",
"mqtt.server.uri": "tcp://mosquitto:1883",
"mqtt.topics": "truck/+/position",
"kafka.topic":"truck_position",
}
}'
• declarative style data flows
• simplicity - “simple things done simple”
• very well integrated with Kafka –
Kafka Connect Framework is part of
Apache Kafka
gschmutz
DB-K_1 – Configure JDBC Connector
Bi-directional integration between Oracle RDBMS & Apache Kafka
#!/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"
}
}'
gschmutz
DB-K_2: Regular Polling of RDBMS API
Bi-directional integration between Oracle RDBMS & Apache Kafka
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
Tight coupling Loose Coupling
Message
Latency
Coupling
gschmutz
DB-K_2: Kafka Connect & Oracle Rest Data Service
Bi-directional integration between Oracle RDBMS & Apache Kafka
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
Tight coupling Loose Coupling
Message
Latency
Coupling
gschmutz
Oracle REST Data Services (ORDS)
Bi-directional integration between Oracle RDBMS & Apache Kafka
• 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)
gschmutz
DB-K_2 – Setup ORDS (I)
Bi-directional integration between Oracle RDBMS & Apache Kafka
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);
gschmutz
DB-K_2 – Setup ORDS (II)
Bi-directional integration between Oracle RDBMS & Apache Kafka
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_comments => NULL,
p_source =>
'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),
''lineItems'' VALUE (SELECT json_arrayagg(
json_object(''ItemNumber'' VALUE li.id,
''Product'' VALUE
json_object(''productId'' VALUE li.product_id,
''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'')'
gschmutz
Stream Data Integration: StreamSets
Continuous open source, intent-driven,
big data ingest
Visible, record-oriented approach fixes
combinatorial explosion
Both stream and batch processing
• Standalone, Spark cluster, MapReduce
cluster
IDE for pipeline development by ‘civilians’
special option for Edge computing
custom sources, sinks, processors
Supported by StreamSets
gschmutz
DB-K_2 – StreamSets Data Flow
Bi-directional integration between Oracle RDBMS & Apache Kafka
gschmutz
DB-K_3: Change Data Capture (CDC) on RDBMS
Bi-directional integration between Oracle RDBMS & Apache Kafka
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
Tight coupling Loose Coupling
Message
Latency
Coupling
gschmutz
DB-K_3: Oracle GoldenGate and Kafka Connect / Rest
Bi-directional integration between Oracle RDBMS & Apache Kafka
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
Flat Aggregate
Low Latency High Latency
Tight coupling Loose Coupling
Message
Latency
Coupling
gschmutz
DB-K_3: Debezium and Kafka Connect
Bi-directional integration between Oracle RDBMS & Apache Kafka
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
Alternatives:
StreamSets Data Collector
Attunity
…
Flat Aggregate
Low Latency High Latency
Tight coupling Loose Coupling
Message
Latency
Coupling
gschmutz
DB-K_4: Produce Messages to Event Hub from RDBMS
Bi-directional integration between Oracle RDBMS & Apache Kafka
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
Tight coupling Loose Coupling
Message
Latency
Coupling
gschmutz
DB-K_4: Produce Messages to REST Proxy
Bi-directional integration between Oracle RDBMS & Apache Kafka
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
Tight coupling Loose Coupling
Message
Latency
Coupling
gschmutz
DB-K_4: Oracle Big Data SQL writes to Kafka topic
Bi-directional integration between Oracle RDBMS & Apache Kafka
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
Flat Aggregate
Low Latency High Latency
Tight coupling Loose Coupling
Message
Latency
Coupling
gschmutz
DB-K_5: Queuing on RDBMS to bridge to Event Hub
Bi-directional integration between Oracle RDBMS & Apache Kafka
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
Tight coupling Loose Coupling
Message
Latency
Coupling
gschmutz
DB-K_5: Oracle Advanced Queuing & Kafka Connect JMS
Bi-directional integration between Oracle RDBMS & Apache Kafka
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
Tight coupling Loose Coupling
Message
Latency
Coupling
gschmutz
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)
Bi-directional integration between Oracle RDBMS & Apache Kafka
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;
/
gschmutz
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.principal=order_p
rocessing,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.JsonSimpleConvert
er`"
}
}'
DB-K_5 – Setup AQ and Kafka Connect (I)
Bi-directional integration between Oracle RDBMS & Apache Kafka
gschmutz
DB-K_5: Oracle Advanced Queuing & MirrorMaker
Bi-directional integration between Oracle RDBMS & Apache Kafka
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)
MirrorMaker
Flat Aggregate
Low Latency High Latency
Tight coupling Loose Coupling
Message
Latency
Coupling
gschmutzBi-directional integration between Oracle RDBMS & Apache Kafka
Blueprints Apache Kafka => Oracle
RDBMS
gschmutz
Blueprints Apache Kafka => Oracle RDBMS (K-DB)
Bi-directional integration between Oracle RDBMS & Apache Kafka
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: Regular Polling ofRDBMS table/view
DB-K_2: Regular Polling ofRDBMS API
DB-K_3: Change Data Capture (CDC) on RDBMS
DB-K_4: Produce Messages to Event Hub from RDBMS
DB-K_5: Queuing on RDBMS to bridge to Event Hub
DB_K-1
DB_K-2
DB_K-3
DB_K-4
DB_K-5
K-DB_1: Write directly to RDBMS table/view
K-DB_2: Write over RDBMS API
K-DB_3: Consume from Event Hub
K-DB_4: Queuing on RDBMS to bridge with Event Hub
K_DB-1
K_DB-2
K_DB-3
K_DB-4
gschmutz
K-DB_1: Write directly to RDBMS table/view
Bi-directional integration between Oracle RDBMS & Apache Kafka
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
Tight coupling Loose Coupling
Message
Latency
Coupling
gschmutz
K-DB_1: Write to RDBMS table/view
Bi-directional integration between Oracle RDBMS & Apache Kafka
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
Tight coupling Loose Coupling
Message
Latency
Coupling
gschmutz
K-DB_2: Write over RDBMS API
Bi-directional integration between Oracle RDBMS & Apache Kafka
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
Tight coupling Loose Coupling
Message
Latency
Coupling
gschmutz
K-DB_2: Write over Oracle REST Database service
Bi-directional integration between Oracle RDBMS & Apache Kafka
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
Tight coupling Loose Coupling
Message
Latency
Coupling
gschmutz
DB-K_2 – Setup ORDS (I)
Bi-directional integration between Oracle RDBMS & Apache Kafka
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( ... )
gschmutz
K-DB_3: Consume from Event Hub
Bi-directional integration between Oracle RDBMS & Apache Kafka
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
Tight coupling Loose Coupling
Message
Latency
Coupling
gschmutz
K-DB_3: Oracle Big Data SQL exposes topic as table
Bi-directional integration between Oracle RDBMS & Apache Kafka
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
Flat Aggregate
Low Latency High Latency
Tight coupling Loose Coupling
Message
Latency
Coupling
gschmutz
K-DB_4: Queuing on RDBMS to bridge with Event Hub
Bi-directional integration between Oracle RDBMS & Apache Kafka
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
Tight coupling Loose Coupling
Message
Latency
Coupling
gschmutz
K-DB_4: Use AQ on RDBMS to bridge with Event Hub
Bi-directional integration between Oracle RDBMS & Apache Kafka
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
Tight coupling Loose Coupling
Message
Latency
Coupling
gschmutz
K-DB_4: Use AQ on RDBMS to bridge with Event Hub
Bi-directional integration between Oracle RDBMS & Apache Kafka
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
Tight coupling Loose Coupling
Message
Latency
Coupling
MirrorMaker
AQ (Kafka API)
gschmutzBi-directional integration between Oracle RDBMS & Apache Kafka
Demo
gschmutz
Demo
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 directly to RDBMS table/view
K-DB_2: Write over RDBMS API
K-DB_3: Consume from Event Hub
K-DB_4: Queuing on RDBMS to bridge with Event Hub
K_DB-1
K_DB-2
K_DB-3
K_DB-4
DB-K_1: Regular Polling ofRDBMS table/view
DB-K_2: Regular Polling ofRDBMS API
DB-K_3: Change Data Capture (CDC) on RDBMS
DB-K_4: Produce Messages to Event Hub from RDBMS
DB-K_5: Queuing on RDBMS to bridge to Event Hub
DB_K-1
DB_K-2
DB_K-3
DB_K-4
DB_K-5
Bi-directional integration between Oracle RDBMS & Apache Kafka
gschmutzBi-directional integration between Oracle RDBMS & Apache Kafka
Technology on its own won't help you.
You need to know how to use it properly.

More Related Content

What's hot

Apache Kafka - Scalable Message Processing and more!
Apache Kafka - Scalable Message Processing and more!Apache Kafka - Scalable Message Processing and more!
Apache Kafka - Scalable Message Processing and more!
Guido 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 Platform
Guido Schmutz
 
Kafka Connect & Kafka Streams/KSQL - powerful ecosystem around Kafka core
Kafka Connect & Kafka Streams/KSQL - powerful ecosystem around Kafka coreKafka Connect & Kafka Streams/KSQL - powerful ecosystem around Kafka core
Kafka Connect & Kafka Streams/KSQL - powerful ecosystem around Kafka core
Guido Schmutz
 
Introduction to Stream Processing
Introduction to Stream ProcessingIntroduction to Stream Processing
Introduction to Stream Processing
Guido Schmutz
 
Ingesting and Processing IoT Data - using MQTT, Kafka Connect and KSQL
Ingesting and Processing IoT Data - using MQTT, Kafka Connect and KSQLIngesting and Processing IoT Data - using MQTT, Kafka Connect and KSQL
Ingesting and Processing IoT Data - using MQTT, Kafka Connect and KSQL
Guido Schmutz
 
Kafka Connect & Kafka Streams/KSQL - the ecosystem around Kafka
Kafka Connect & Kafka Streams/KSQL - the ecosystem around KafkaKafka Connect & Kafka Streams/KSQL - the ecosystem around Kafka
Kafka Connect & Kafka Streams/KSQL - the ecosystem around Kafka
Guido Schmutz
 

What's hot (20)

Apache Kafka - Scalable Message Processing and more!
Apache Kafka - Scalable Message Processing and more!Apache Kafka - Scalable Message Processing and more!
Apache Kafka - Scalable Message Processing and more!
 
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
 
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
 
KSQL - Stream Processing simplified!
KSQL - Stream Processing simplified!KSQL - Stream Processing simplified!
KSQL - Stream Processing simplified!
 
Kafka Connect & Kafka Streams/KSQL - powerful ecosystem around Kafka core
Kafka Connect & Kafka Streams/KSQL - powerful ecosystem around Kafka coreKafka Connect & Kafka Streams/KSQL - powerful ecosystem around Kafka core
Kafka Connect & Kafka Streams/KSQL - powerful ecosystem around Kafka core
 
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS and Apache KafkaSolutions for bi-directional integration between Oracle RDBMS and Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafka
 
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
 
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaSolutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
 
Ingesting streaming data into Graph Database
Ingesting streaming data into Graph DatabaseIngesting streaming data into Graph Database
Ingesting streaming data into Graph Database
 
Event Hub (i.e. Kafka) in Modern Data Architecture
Event Hub (i.e. Kafka) in Modern Data ArchitectureEvent Hub (i.e. Kafka) in Modern Data Architecture
Event Hub (i.e. Kafka) in Modern Data Architecture
 
Introduction to Stream Processing
Introduction to Stream ProcessingIntroduction to Stream Processing
Introduction to Stream Processing
 
Architecting Microservices Applications with Instant Analytics
Architecting Microservices Applications with Instant AnalyticsArchitecting Microservices Applications with Instant Analytics
Architecting Microservices Applications with Instant Analytics
 
Apache Kafka - Scalable Message Processing and more!
Apache Kafka - Scalable Message Processing and more!Apache Kafka - Scalable Message Processing and more!
Apache Kafka - Scalable Message Processing and more!
 
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
 
Apache Kafka - Scalable Message-Processing and more !
Apache Kafka - Scalable Message-Processing and more !Apache Kafka - Scalable Message-Processing and more !
Apache Kafka - Scalable Message-Processing and more !
 
Apache Kafka Scalable Message Processing and more!
Apache Kafka Scalable Message Processing and more! Apache Kafka Scalable Message Processing and more!
Apache Kafka Scalable Message Processing and more!
 
Ingesting and Processing IoT Data - using MQTT, Kafka Connect and KSQL
Ingesting and Processing IoT Data - using MQTT, Kafka Connect and KSQLIngesting and Processing IoT Data - using MQTT, Kafka Connect and KSQL
Ingesting and Processing IoT Data - using MQTT, Kafka Connect and KSQL
 
Kafka Connect & Kafka Streams/KSQL - the ecosystem around Kafka
Kafka Connect & Kafka Streams/KSQL - the ecosystem around KafkaKafka Connect & Kafka Streams/KSQL - the ecosystem around Kafka
Kafka Connect & Kafka Streams/KSQL - the ecosystem around Kafka
 
Apache Kafka - Scalable Message-Processing and more !
Apache Kafka - Scalable Message-Processing and more !Apache Kafka - Scalable Message-Processing and more !
Apache Kafka - Scalable Message-Processing and more !
 

Similar to Solutions for bi-directional Integration between Oracle RDMBS & 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
 
Asko Oja Moskva Architecture Highload
Asko Oja Moskva Architecture HighloadAsko Oja Moskva Architecture Highload
Asko Oja Moskva Architecture Highload
Ontico
 

Similar to Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka (20)

Austin Data Meetup 092014 - Spark
Austin Data Meetup 092014 - SparkAustin Data Meetup 092014 - Spark
Austin Data Meetup 092014 - Spark
 
Spark to DocumentDB connector
Spark to DocumentDB connectorSpark to DocumentDB connector
Spark to DocumentDB connector
 
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...
 
Spark Saturday: Spark SQL & DataFrame Workshop with Apache Spark 2.3
Spark Saturday: Spark SQL & DataFrame Workshop with Apache Spark 2.3Spark Saturday: Spark SQL & DataFrame Workshop with Apache Spark 2.3
Spark Saturday: Spark SQL & DataFrame Workshop with Apache Spark 2.3
 
TDWI Accelerate, Seattle, Oct 16, 2017: Distributed and In-Database Analytics...
TDWI Accelerate, Seattle, Oct 16, 2017: Distributed and In-Database Analytics...TDWI Accelerate, Seattle, Oct 16, 2017: Distributed and In-Database Analytics...
TDWI Accelerate, Seattle, Oct 16, 2017: Distributed and In-Database Analytics...
 
TWDI Accelerate Seattle, Oct 16, 2017: Distributed and In-Database Analytics ...
TWDI Accelerate Seattle, Oct 16, 2017: Distributed and In-Database Analytics ...TWDI Accelerate Seattle, Oct 16, 2017: Distributed and In-Database Analytics ...
TWDI Accelerate Seattle, Oct 16, 2017: Distributed and In-Database Analytics ...
 
Jump Start on Apache Spark 2.2 with Databricks
Jump Start on Apache Spark 2.2 with DatabricksJump Start on Apache Spark 2.2 with Databricks
Jump Start on Apache Spark 2.2 with Databricks
 
Spark Cassandra Connector: Past, Present and Furure
Spark Cassandra Connector: Past, Present and FurureSpark Cassandra Connector: Past, Present and Furure
Spark Cassandra Connector: Past, Present and Furure
 
Azure Databricks is Easier Than You Think
Azure Databricks is Easier Than You ThinkAzure Databricks is Easier Than You Think
Azure Databricks is Easier Than You Think
 
Reactive dashboard’s using apache spark
Reactive dashboard’s using apache sparkReactive dashboard’s using apache spark
Reactive dashboard’s using apache spark
 
Data Engineer's Lunch #82: Automating Apache Cassandra Operations with Apache...
Data Engineer's Lunch #82: Automating Apache Cassandra Operations with Apache...Data Engineer's Lunch #82: Automating Apache Cassandra Operations with Apache...
Data Engineer's Lunch #82: Automating Apache Cassandra Operations with Apache...
 
r4
r4r4
r4
 
🏗️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...
 
5 Ways to Use Spark to Enrich your Cassandra Environment
5 Ways to Use Spark to Enrich your Cassandra Environment5 Ways to Use Spark to Enrich your Cassandra Environment
5 Ways to Use Spark to Enrich your Cassandra Environment
 
Witsml data processing with kafka and spark streaming
Witsml data processing with kafka and spark streamingWitsml data processing with kafka and spark streaming
Witsml data processing with kafka and spark streaming
 
Big data vahidamiri-tabriz-13960226-datastack.ir
Big data vahidamiri-tabriz-13960226-datastack.irBig data vahidamiri-tabriz-13960226-datastack.ir
Big data vahidamiri-tabriz-13960226-datastack.ir
 
Asko Oja Moskva Architecture Highload
Asko Oja Moskva Architecture HighloadAsko Oja Moskva Architecture Highload
Asko Oja Moskva Architecture Highload
 
Fast and Simplified Streaming, Ad-Hoc and Batch Analytics with FiloDB and Spa...
Fast and Simplified Streaming, Ad-Hoc and Batch Analytics with FiloDB and Spa...Fast and Simplified Streaming, Ad-Hoc and Batch Analytics with FiloDB and Spa...
Fast and Simplified Streaming, Ad-Hoc and Batch Analytics with FiloDB and Spa...
 
HKOSCon18 - Chetan Khatri - Scaling TB's of Data with Apache Spark and Scala ...
HKOSCon18 - Chetan Khatri - Scaling TB's of Data with Apache Spark and Scala ...HKOSCon18 - Chetan Khatri - Scaling TB's of Data with Apache Spark and Scala ...
HKOSCon18 - Chetan Khatri - Scaling TB's of Data with Apache Spark and Scala ...
 
Spark Study Notes
Spark Study NotesSpark Study Notes
Spark Study Notes
 

More from Guido 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
 
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
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 Kafka
Guido Schmutz
 
Streaming Visualisation
Streaming VisualisationStreaming Visualisation
Streaming Visualisation
Guido Schmutz
 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming Visualization
Guido 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 Kafka
Guido Schmutz
 

More from Guido Schmutz (20)

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 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
 
ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!
 
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?
 
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
 
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
 
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
 
Streaming Visualisation
Streaming VisualisationStreaming Visualisation
Streaming Visualisation
 
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?
 
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 Kafka
Location Analytics - Real-Time Geofencing using Kafka Location Analytics - Real-Time Geofencing using Kafka
Location Analytics - Real-Time Geofencing using Kafka
 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming Visualization
 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming Visualization
 
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
 
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
 
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?
 

Recently uploaded

Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
amitlee9823
 
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
amitlee9823
 
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
amitlee9823
 
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAl Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
AroojKhan71
 
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
amitlee9823
 
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
amitlee9823
 
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
amitlee9823
 

Recently uploaded (20)

ELKO dropshipping via API with DroFx.pptx
ELKO dropshipping via API with DroFx.pptxELKO dropshipping via API with DroFx.pptx
ELKO dropshipping via API with DroFx.pptx
 
Midocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxMidocean dropshipping via API with DroFx
Midocean 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
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
 
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
 
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
 
CebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxCebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptx
 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFx
 
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
 
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
 
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAl Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
 
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort ServiceBDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
 
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
 
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
 
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
 
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
 
Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptx
 
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
 
VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptx
 

Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka

  • 1. gschmutz Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka Analytics & Data Summit 2019 Guido Schmutz (guido.schmutz@Trivadis.com) gschmutz guidoschmutz.wordpress.com
  • 2. gschmutz Agenda Bi-directional integration between Oracle RDBMS & Apache Kafka 1. Introduction 2. Blueprints Oracle RDBMS => Apache Kafka 3. Blueprints Apache Kafka => Oracle RDBMS 4. Demo
  • 3. gschmutz Guido Schmutz Bi-directional integration between Oracle RDBMS & Apache Kafka Working at Trivadis for more than 22 years Oracle GroundbreakerAmbassador& Oracle ACE Director Consultant, Trainer Software Architect forJava, Oracle, SOA and Big Data / Fast Data Head of Trivadis Architecture Board TechnologyManager @ Trivadis More than 30 years of software developmentexperience Contact: guido.schmutz@trivadis.com Blog: http://guidoschmutz.wordpress.com Slideshare:http://www.slideshare.net/gschmutz Twitter: gschmutz 145th edition
  • 4. gschmutzBi-directional integration between Oracle RDBMS & Apache Kafka Introduction
  • 5. gschmutz Timely decisions require new data in minutes Bi-directional integration between Oracle RDBMS & Apache Kafka
  • 6. gschmutz Hadoop Clusterd Hadoop Cluster Big Data Unified Architecture for Modern Data Analytics Solutions Bi-directional integration between Oracle RDBMS & Apache Kafka SQL Search BI Tools Enterprise Data Warehouse Search / Explore File Import / SQL Import Event Hub Parallel Processing Storage Storage RawRefined Results Microservice State { } API Stream Processor State { } API Event Stream Event Stream Service Stream Analytics Microservices Enterprise Apps Logic { } API Edge Node Rules Event Hub Storage Bulk Source Event Source Location DB Extract File DB IoT Data Mobile Apps Social Telemetry Event Stream
  • 7. gschmutz Hadoop Clusterd Hadoop Cluster Big Data Unified Architecture for Modern Data Analytics Solutions Bi-directional integration between Oracle RDBMS & Apache Kafka SQL Search BI Tools Enterprise Data Warehouse Search / Explore File Import / SQL Import Event Hub Parallel Processing Storage Storage RawRefined Results Microservice State { } API Stream Processor State { } API Event Stream Event Stream Service Stream Analytics Microservices Enterprise Apps Logic { } API Edge Node Rules Event Hub Storage Bulk Source Event Source Location DB Extract File DB IoT Data Mobile Apps Social Telemetry Event Stream
  • 8. gschmutz Highly available, Pub/Sub infrastructure Highly Scalable Event Hub: Apache Kafka Distributed Log at the Core Logs do not (necessarily) forget • Never • Time (TTL) or Size-based • Log-Compacted based Bi-directional integration between Oracle RDBMS & Apache Kafka
  • 9. gschmutz 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 Schema Registry Bi-directional integration between Oracle RDBMS & Apache Kafka
  • 10. gschmutz Blueprints Oracle RDBMS => Apache Kafka Bi-directional integration between Oracle RDBMS & Apache Kafka
  • 11. gschmutz 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 DB-K_1: Regular Polling ofRDBMS table/view DB-K_2: Regular Polling ofRDBMS API DB-K_3: Change Data Capture (CDC) on RDBMS DB-K_4: Produce Messages to Event Hub from RDBMS DB-K_5: Queuing on RDBMS to bridge to Event Hub DB_K-1 DB_K-2 DB_K-3 DB_K-4 DB_K-5 Bi-directional integration between Oracle RDBMS & Apache Kafka
  • 12. gschmutz DB-K_1: Regular Polling of RDBMS table/view Bi-directional integration between Oracle RDBMS & Apache Kafka 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 Tight coupling Loose Coupling Message Latency Coupling
  • 13. gschmutz DB-K_1: Kafka Connect with JDBC Polling Bi-directional integration between Oracle RDBMS & Apache Kafka 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 Tight coupling Loose Coupling Message Latency Coupling
  • 14. gschmutz Stream Data Integration: Kafka Connect Bi-directional integration between Oracle RDBMS & Apache Kafka • Single Message Transforms (SMT) allow simple transformations • Connectors available from Confluent as well as the community, check hub.confluent.io for the list curl -X "POST" "http://192.168.69.138:8083/connectors" -H "Content-Type: application/json" -d $'{ "name": "mqtt-source", "config": { "connector.class": ”...MqttSourceConnector", "tasks.max": "1", "name": "mqtt-source", "mqtt.server.uri": "tcp://mosquitto:1883", "mqtt.topics": "truck/+/position", "kafka.topic":"truck_position", } }' • declarative style data flows • simplicity - “simple things done simple” • very well integrated with Kafka – Kafka Connect Framework is part of Apache Kafka
  • 15. gschmutz DB-K_1 – Configure JDBC Connector Bi-directional integration between Oracle RDBMS & Apache Kafka #!/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" } }'
  • 16. gschmutz DB-K_2: Regular Polling of RDBMS API Bi-directional integration between Oracle RDBMS & Apache Kafka 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 Tight coupling Loose Coupling Message Latency Coupling
  • 17. gschmutz DB-K_2: Kafka Connect & Oracle Rest Data Service Bi-directional integration between Oracle RDBMS & Apache Kafka 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 Tight coupling Loose Coupling Message Latency Coupling
  • 18. gschmutz Oracle REST Data Services (ORDS) Bi-directional integration between Oracle RDBMS & Apache Kafka • 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)
  • 19. gschmutz DB-K_2 – Setup ORDS (I) Bi-directional integration between Oracle RDBMS & Apache Kafka 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);
  • 20. gschmutz DB-K_2 – Setup ORDS (II) Bi-directional integration between Oracle RDBMS & Apache Kafka 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_comments => NULL, p_source => '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), ''lineItems'' VALUE (SELECT json_arrayagg( json_object(''ItemNumber'' VALUE li.id, ''Product'' VALUE json_object(''productId'' VALUE li.product_id, ''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'')'
  • 21. gschmutz Stream Data Integration: StreamSets Continuous open source, intent-driven, big data ingest Visible, record-oriented approach fixes combinatorial explosion Both stream and batch processing • Standalone, Spark cluster, MapReduce cluster IDE for pipeline development by ‘civilians’ special option for Edge computing custom sources, sinks, processors Supported by StreamSets
  • 22. gschmutz DB-K_2 – StreamSets Data Flow Bi-directional integration between Oracle RDBMS & Apache Kafka
  • 23. gschmutz DB-K_3: Change Data Capture (CDC) on RDBMS Bi-directional integration between Oracle RDBMS & Apache Kafka 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 Tight coupling Loose Coupling Message Latency Coupling
  • 24. gschmutz DB-K_3: Oracle GoldenGate and Kafka Connect / Rest Bi-directional integration between Oracle RDBMS & Apache Kafka 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 Flat Aggregate Low Latency High Latency Tight coupling Loose Coupling Message Latency Coupling
  • 25. gschmutz DB-K_3: Debezium and Kafka Connect Bi-directional integration between Oracle RDBMS & Apache Kafka 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 Alternatives: StreamSets Data Collector Attunity … Flat Aggregate Low Latency High Latency Tight coupling Loose Coupling Message Latency Coupling
  • 26. gschmutz DB-K_4: Produce Messages to Event Hub from RDBMS Bi-directional integration between Oracle RDBMS & Apache Kafka 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 Tight coupling Loose Coupling Message Latency Coupling
  • 27. gschmutz DB-K_4: Produce Messages to REST Proxy Bi-directional integration between Oracle RDBMS & Apache Kafka 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 Tight coupling Loose Coupling Message Latency Coupling
  • 28. gschmutz DB-K_4: Oracle Big Data SQL writes to Kafka topic Bi-directional integration between Oracle RDBMS & Apache Kafka 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 Flat Aggregate Low Latency High Latency Tight coupling Loose Coupling Message Latency Coupling
  • 29. gschmutz DB-K_5: Queuing on RDBMS to bridge to Event Hub Bi-directional integration between Oracle RDBMS & Apache Kafka 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 Tight coupling Loose Coupling Message Latency Coupling
  • 30. gschmutz DB-K_5: Oracle Advanced Queuing & Kafka Connect JMS Bi-directional integration between Oracle RDBMS & Apache Kafka 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 Tight coupling Loose Coupling Message Latency Coupling
  • 31. gschmutz 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) Bi-directional integration between Oracle RDBMS & Apache Kafka 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; /
  • 32. gschmutz 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.principal=order_p rocessing,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.JsonSimpleConvert er`" } }' DB-K_5 – Setup AQ and Kafka Connect (I) Bi-directional integration between Oracle RDBMS & Apache Kafka
  • 33. gschmutz DB-K_5: Oracle Advanced Queuing & MirrorMaker Bi-directional integration between Oracle RDBMS & Apache Kafka 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) MirrorMaker Flat Aggregate Low Latency High Latency Tight coupling Loose Coupling Message Latency Coupling
  • 34. gschmutzBi-directional integration between Oracle RDBMS & Apache Kafka Blueprints Apache Kafka => Oracle RDBMS
  • 35. gschmutz Blueprints Apache Kafka => Oracle RDBMS (K-DB) Bi-directional integration between Oracle RDBMS & Apache Kafka 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: Regular Polling ofRDBMS table/view DB-K_2: Regular Polling ofRDBMS API DB-K_3: Change Data Capture (CDC) on RDBMS DB-K_4: Produce Messages to Event Hub from RDBMS DB-K_5: Queuing on RDBMS to bridge to Event Hub DB_K-1 DB_K-2 DB_K-3 DB_K-4 DB_K-5 K-DB_1: Write directly to RDBMS table/view K-DB_2: Write over RDBMS API K-DB_3: Consume from Event Hub K-DB_4: Queuing on RDBMS to bridge with Event Hub K_DB-1 K_DB-2 K_DB-3 K_DB-4
  • 36. gschmutz K-DB_1: Write directly to RDBMS table/view Bi-directional integration between Oracle RDBMS & Apache Kafka 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 Tight coupling Loose Coupling Message Latency Coupling
  • 37. gschmutz K-DB_1: Write to RDBMS table/view Bi-directional integration between Oracle RDBMS & Apache Kafka 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 Tight coupling Loose Coupling Message Latency Coupling
  • 38. gschmutz K-DB_2: Write over RDBMS API Bi-directional integration between Oracle RDBMS & Apache Kafka 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 Tight coupling Loose Coupling Message Latency Coupling
  • 39. gschmutz K-DB_2: Write over Oracle REST Database service Bi-directional integration between Oracle RDBMS & Apache Kafka 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 Tight coupling Loose Coupling Message Latency Coupling
  • 40. gschmutz DB-K_2 – Setup ORDS (I) Bi-directional integration between Oracle RDBMS & Apache Kafka 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( ... )
  • 41. gschmutz K-DB_3: Consume from Event Hub Bi-directional integration between Oracle RDBMS & Apache Kafka 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 Tight coupling Loose Coupling Message Latency Coupling
  • 42. gschmutz K-DB_3: Oracle Big Data SQL exposes topic as table Bi-directional integration between Oracle RDBMS & Apache Kafka 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 Flat Aggregate Low Latency High Latency Tight coupling Loose Coupling Message Latency Coupling
  • 43. gschmutz K-DB_4: Queuing on RDBMS to bridge with Event Hub Bi-directional integration between Oracle RDBMS & Apache Kafka 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 Tight coupling Loose Coupling Message Latency Coupling
  • 44. gschmutz K-DB_4: Use AQ on RDBMS to bridge with Event Hub Bi-directional integration between Oracle RDBMS & Apache Kafka 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 Tight coupling Loose Coupling Message Latency Coupling
  • 45. gschmutz K-DB_4: Use AQ on RDBMS to bridge with Event Hub Bi-directional integration between Oracle RDBMS & Apache Kafka 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 Tight coupling Loose Coupling Message Latency Coupling MirrorMaker AQ (Kafka API)
  • 46. gschmutzBi-directional integration between Oracle RDBMS & Apache Kafka Demo
  • 47. gschmutz Demo 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 directly to RDBMS table/view K-DB_2: Write over RDBMS API K-DB_3: Consume from Event Hub K-DB_4: Queuing on RDBMS to bridge with Event Hub K_DB-1 K_DB-2 K_DB-3 K_DB-4 DB-K_1: Regular Polling ofRDBMS table/view DB-K_2: Regular Polling ofRDBMS API DB-K_3: Change Data Capture (CDC) on RDBMS DB-K_4: Produce Messages to Event Hub from RDBMS DB-K_5: Queuing on RDBMS to bridge to Event Hub DB_K-1 DB_K-2 DB_K-3 DB_K-4 DB_K-5 Bi-directional integration between Oracle RDBMS & Apache Kafka
  • 48. gschmutzBi-directional integration between Oracle RDBMS & Apache Kafka Technology on its own won't help you. You need to know how to use it properly.