SlideShare ist ein Scribd-Unternehmen logo
1 von 60
Downloaden Sie, um offline zu lesen
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Is Oracle GoldenGate a
Replacement for Oracle Change
Data Capture?
1
Stewart Bryson
medium.com/@stewartbryson @stewartbryson linkedin.com/in/stewartbryson
© 2014 RED PILL Analytics
Who is Red Pill Analytics?
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Red Pill Analytics: Leadership
3
Stewart Bryson
Oracle ACE Director
Previously From:
Rittman Mead
Informix Software
Data Warehousing &
Business Intelligence
since 1996
Kevin McGinley
Oracle ACE Director
Previously From:
Accenture
BI Consulting Group
Data Warehousing &
Business Intelligence
since 1997
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
About Red Pill Analytics
Other Services
• Expert Retainer
• Support
• Training
4
• DevOps for BI and
DI
• Hosted or On-
premise
• Used in Capacity
Analytics
Capacity Analytics
• Development-as-a-
service
• Agile methodology
• Faster/cheaper
than traditional
consulting
• Subscription billing
© 2014 RED PILL Analytics
“Change” Has Different Meanings
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
ODI Journalization
Framework
A B
Oracle GoldenGate
(Traditionally)
A B
Oracle CDC
(Deprecated)
A B
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
A B
ODI Journalization
Framework
A B
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
A B
ODI Journalization
Framework
A B
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Oracle CDC
(Deprecated)
A B
A
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
A
ODI Journalization
Framework
A B
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Is the A-Team Right About This?
13
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
© 2014 RED PILL Analytics
Online Retailing Example
© 2014 RED PILL Analytics
Publishing
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Oracle CDC: Publish and Subscribe
17
EDW
R Sandbox
Partner
Feed
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Oracle CDC: Publishing
18
-- prepare source table
alter table sugarcrm.accounts ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
BEGIN
DBMS_CAPTURE_ADM.PREPARE_TABLE_INSTANTIATION(TABLE_NAME => 'sugarcrm.accounts');
END;
/
-- create change set
BEGIN
DBMS_CDC_PUBLISH.CREATE_CHANGE_SET
(
change_set_name => 'CRM_ACCOUNTS',
description => 'Change set for the CRM Accounts Data',
change_source_name => 'HOTLOG_SOURCE',
stop_on_ddl => 'y',
begin_date => sysdate
);
END;
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Oracle CDC: Publishing
19
-- prepare source table
alter table sugarcrm.accounts ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
BEGIN
DBMS_CAPTURE_ADM.PREPARE_TABLE_INSTANTIATION(TABLE_NAME => 'sugarcrm.accounts');
END;
/
-- create change set
BEGIN
DBMS_CDC_PUBLISH.CREATE_CHANGE_SET
(
change_set_name => 'CRM_ACCOUNTS',
description => 'Change set for the CRM Accounts Data',
change_source_name => 'HOTLOG_SOURCE',
stop_on_ddl => 'y',
begin_date => sysdate
);
END;
-- create change table
BEGIN
DBMS_CDC_PUBLISH.CREATE_CHANGE_TABLE
( owner => 'cdcpub',
change_table_name => 'accounts_ct',
change_set_name => 'CRM_ACCOUNTS',
source_schema => 'SUGARCRM',
source_table => 'ACCOUNTS',
column_type_list => 'ID CHAR(36), NAME VARCHAR2(150), DATE_ENTERED DATE,DATE_MODIFIED DATE,
ACCOUNT_TYPE VARCHAR2(50), INDUSTRY VARCHAR2(50), PARENT_ID CHAR(36),
ANNUAL_REVENUE VARCHAR2(100), BILLING_ADDRESS_STREET VARCHAR2(150),
BILLING_ADDRESS_CITY VARCHAR2(100), BILLING_ADDRESS_STATE VARCHAR2(100),
BILLING_ADDRESS_POSTALCODE VARCHAR2(20), OWNERSHIP VARCHAR2(100),
BILLING_ADDRESS_COUNTRY VARCHAR2(255), RATING VARCHAR2(100),
WEBSITE VARCHAR2(255),TICKER_SYMBOL VARCHAR2(10), SIC_CODE VARCHAR2(10),
CAMPAIGN_ID CHAR(36)',
capture_values => 'new',
rs_id => 'y',
row_id => 'n',
user_id => 'n',
timestamp => 'n',
object_id => 'n',
source_colmap => 'n',
target_colmap => 'y',
options_string => 'TABLESPACE UTILS');
END;
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
-- create change table
BEGIN
DBMS_CDC_PUBLISH.CREATE_CHANGE_TABLE
( owner => 'cdcpub',
change_table_name => 'accounts_ct',
change_set_name => 'CRM_ACCOUNTS',
source_schema => 'SUGARCRM',
source_table => 'ACCOUNTS',
column_type_list => 'ID CHAR(36), NAME VARCHAR2(150), DATE_ENTERED DATE,DATE_MODIFIED DATE,
ACCOUNT_TYPE VARCHAR2(50), INDUSTRY VARCHAR2(50), PARENT_ID CHAR(36),
ANNUAL_REVENUE VARCHAR2(100), BILLING_ADDRESS_STREET VARCHAR2(150),
BILLING_ADDRESS_CITY VARCHAR2(100), BILLING_ADDRESS_STATE VARCHAR2(100),
BILLING_ADDRESS_POSTALCODE VARCHAR2(20), OWNERSHIP VARCHAR2(100),
BILLING_ADDRESS_COUNTRY VARCHAR2(255), RATING VARCHAR2(100),
WEBSITE VARCHAR2(255),TICKER_SYMBOL VARCHAR2(10), SIC_CODE VARCHAR2(10),
CAMPAIGN_ID CHAR(36)',
capture_values => 'new',
rs_id => 'y',
row_id => 'n',
user_id => 'n',
timestamp => 'n',
object_id => 'n',
source_colmap => 'n',
target_colmap => 'y',
options_string => 'TABLESPACE UTILS');
END;
Oracle CDC: Publishing
20
-- prepare source table
alter table sugarcrm.accounts ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
BEGIN
DBMS_CAPTURE_ADM.PREPARE_TABLE_INSTANTIATION(TABLE_NAME => 'sugarcrm.accounts');
END;
/
-- create change set
BEGIN
DBMS_CDC_PUBLISH.CREATE_CHANGE_SET
(
change_set_name => 'CRM_ACCOUNTS',
description => 'Change set for the CRM Accounts Data',
change_source_name => 'HOTLOG_SOURCE',
stop_on_ddl => 'y',
begin_date => sysdate
);
END;
-- enable change set
BEGIN
DBMS_CDC_PUBLISH.ALTER_CHANGE_SET(
change_set_name => 'CRM_ACCOUNTS',
enable_capture => 'y');
END;
Oracle CDC Subscription Views
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Oracle CDC Subscription View
22
NAME TICKER_SYMBOL OWNERSHIP CSCN$ COMMIT_TIMESTAMP
$
OPERATION$
Red Pill Analytics 2992758 06/01/2014 12:00 AM INSERT
NAME TICKER_SYMBOL OWNERSHIP
Red Pill Analytics, LLC Private
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Oracle CDC Subscription View
23
NAME TICKER_SYMBOL OWNERSHIP CSCN$ COMMIT_TIMESTAMP
$
OPERATION$
Red Pill Analytics 2992758 06/01/2014 12:00 AM INSERT
Red Pill Analytics, LLC Private 2992760 07/14/2014 12:00 AM UPDATE
NAME TICKER_SYMBOL OWNERSHIP
Red Pill Analytics, LLC Private
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Oracle CDC Subscription View
24
NAME TICKER_SYMBOL OWNERSHIP CSCN$ COMMIT_TIMESTAMP
$
OPERATION$
Red Pill Analytics 2992758 06/01/2014 12:00 AM INSERT
Red Pill Analytics, LLC Private 2992760 07/14/2014 12:00 AM UPDATE
Red Pill Analytics, Inc. RPAI Public 2992762 01/20/2015 12:00 AM UPDATE
NAME TICKER_SYMBOL OWNERSHIP
Red Pill Analytics, Inc. RPAI Public
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Oracle CDC Subscription View
25
NVL (
LEAD ( fnd_commit_date ) over
( PARTITION BY id
ORDER BY fnd_commit_date ),
to_date( '12/31/9999','mm/dd/yyyy' )
)
NAME CSCN$ COMMIT_TIMESTAMP$ EXPIRE_TIMESTAMP$ OPERATION$ CURRENT_IND
Red Pill Analytics 2992758 06/01/2014 12:00 AM 07/14/2014 12:00 AM INSERT N
Red Pill Analytics, LLC 2992760 07/14/2014 12:00 AM 01/20/2015 12:00 AM UPDATE N
Red Pill Analytics, Inc. 2992762 01/20/2015 12:00 AM 12/31/9999 12:00 AM UPDATE Y
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Oracle CDC Subscription View
26
NAME CSCN$ COMMIT_TIMESTAMP$ EXPIRE_TIMESTAMP$ OPERATION$ CURRENT_IND
Red Pill Analytics 2992758 06/01/2014 12:00 AM 07/14/2014 12:00 AM INSERT N
Red Pill Analytics, LLC 2992760 07/14/2014 12:00 AM 01/20/2015 12:00 AM UPDATE N
Red Pill Analytics, Inc. 2992762 01/20/2015 12:00 AM 12/31/9999 12:00 AM UPDATE Y
CASE
WHEN ( RANK() over (PARTITION BY id
ORDER BY fnd_commit_date desc )) = 1
THEN 'Y'
ELSE 'N'
END
DEMO:
Viewing Change Data with GoldenGate
© 2014 RED PILL Analytics
Am I in Love With a Deprecated Product?
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
What’s the Problem with Oracle CDC?
29
11g
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
11g
What’s the Problem with Oracle CDC?
30
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
What’s the Problem with Oracle CDC?
31
11g
12c
11g
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
What’s the Problem with Oracle CDC?
32
11g
12c
11g
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
What’s the Problem with Oracle CDC?
33
11g
12c
11g
© 2014 RED PILL Analytics
Pragmatism
© 2014 RED PILL Analytics
Text Here
© 2014 RED PILL Analytics
Werner Heisenberg
© 2014 RED PILL Analytics
Text Here
© 2014 RED PILL Analytics
Text Here
© 2014 RED PILL Analytics
Don’t Use Particles to Measure Particles
© 2014 RED PILL Analytics
Don’t Use Streams to Capture Change
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
CDC Uses Streams (Capture and Queue)
41
Oracle CDC
(Deprecated)
A B
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
CDC Uses Streams (Capture and Queue)
42
Oracle CDC
(Deprecated)
A B
Oracle Streams
(Deprecated)
A B
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Oracle GoldenGate Architecture
43
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Installing GoldenGate
44
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Installing GoldenGate
45
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Installing GoldenGate
46
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Configuring GoldenGate EXTRACT
47
EXTRACT EXT
USERID oggcore_1, PASSWORD ogg
SETENV (ORACLE_HOME="/app/oracle/product/11.2.0/dbhome_1")
SETENV (ORACLE_SID="orcl")
WARNLONGTRANS 1h, CHECKINTERVAL 30m
EXTTRAIL ./dirdat/lt
WILDCARDRESOLVE IMMEDIATE
TABLE SUGARCRM.ACCOUNTS,
TOKENS
(
FND_SCN = @GETENV('TRANSACTION','CSN'),
FND_ROW_RANK = @GETENV('RECORD','RSN'),
FND_COMMIT_DATE=@GETENV('GGHEADER','COMMITTIMESTAMP'),
FND_DML_TYPE=@GETENV('GGHEADER','OPTYPE')
);
System change number
(SCN) for the transaction
USEDEFAULTS defines
column for column mapping
Transaction Commit Date
(with Time)
Operation Type: Delete, Update,
Insert, PK Update, and others
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Configuring GoldenGate EXTRACT
48
EXTRACT EXT
USERID oggcore_1, PASSWORD ogg
SETENV (ORACLE_HOME="/app/oracle/product/11.2.0/dbhome_1")
SETENV (ORACLE_SID="orcl")
WARNLONGTRANS 1h, CHECKINTERVAL 30m
EXTTRAIL ./dirdat/lt
WILDCARDRESOLVE IMMEDIATE
TABLE SUGARCRM.ACCOUNTS,
TOKENS
(
FND_SCN = @GETENV('TRANSACTION','CSN'),
FND_ROW_RANK = @GETENV('RECORD','RSN'),
FND_COMMIT_DATE=@GETENV('GGHEADER','COMMITTIMESTAMP'),
FND_DML_TYPE=@GETENV('GGHEADER','OPTYPE')
);
GGSCI (oracle.localdomain) 1> add extract ext, integrated tranlog, begin now
EXTRACT added.
GGSCI (oracle.localdomain) 2> add exttrail ./dirdat/lt, extract EXT, megabytes 200
EXTTRAIL added.
GGSCI (oracle.localdomain) 3> dblogin userid oggcore_1, password ogg
Successfully logged into database.
GGSCI (oracle.localdomain as oggcore_1@orcl) 4> register extract ext database
Extract EXT successfully registered with database at SCN 2239208.
GGSCI (oracle.localdomain as oggcore_1@orcl) 5> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT 00:00:10 00:00:04
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Configuring GoldenGate DATA PUMP
49
EXTRACT PMP
PASSTHRU
RMTHOST oracle.localdomain MGRPORT 7810, COMPRESS
RMTTRAIL ./dirdat/rt
TABLE SUGARCRM.*;
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Configuring GoldenGate DATA PUMP
50
EXTRACT PMP
PASSTHRU
RMTHOST linux-db MGRPORT 15000, COMPRESS
RMTTRAIL ./dirdat/rt
TABLE SUGARCRM.*;
GGSCI (oracle.localdomain) 1> add extract PMP, exttrailsource ./dirdat/lt
EXTRACT added.
GGSCI (oracle.localdomain) 2> add rmttrail ./dirdat/rt, extract PMP, megabytes 200
RMTTRAIL added.
GGSCI (oracle.localdomain) 3> start extract PMP
Sending START request to MANAGER ...
EXTRACT PMP starting
GGSCI (oracle.localdomain) 4> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT 00:00:02 00:00:07
EXTRACT RUNNING PMP 00:00:00 00:04:15
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Configuring GoldenGate REPLICAT
51
REPLICAT REP
SETENV (ORACLE_HOME="/app/oracle/product/11.2.0/dbhome_1")
SETENV (ORACLE_SID="orcl")
USERID oggcore_2, PASSWORD ogg
DISCARDFILE ./dirrpt/rep.dsc, append, megabytes 500
SOURCEDEFS ./dirdef/sugarcrm.def
MAP SUGARCRM.ACCOUNTS,
TARGET SUGARSTG.ACCOUNTS,
KEYCOLS(ID, FND_SCN, FND_ROW_RANK),
INSERTALLRECORDS,
COLMAP
(
USEDEFAULTS,
FND_SCN=@token('FND_SCN'),
FND_ROW_RANK=@token('FND_ROW_RANK'),
FND_COMMIT_DATE=@token('FND_COMMIT_DATE'),
FND_DML_TYPE=@token('FND_DML_TYPE')
);
Map SOURCE and
TARGET
KEYCOLS defines
matching criteria
USEDEFAULTS defines
column for column mapping
Our “Tokens” mapped to
columns
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Configuring GoldenGate REPLICAT
52
REPLICAT REP
SETENV (ORACLE_HOME="/app/oracle/product/11.2.0/dbhome_1")
SETENV (ORACLE_SID="orcl")
USERID oggcore_2, PASSWORD ogg
DISCARDFILE ./dirrpt/rep.dsc, append, megabytes 500
SOURCEDEFS ./dirdef/sugarcrm.def
MAP SUGARCRM.ACCOUNTS,
TARGET SUGARSTG.ACCOUNTS,
KEYCOLS(ID, FND_SCN, FND_ROW_RANK),
INSERTALLRECORDS,
COLMAP
(
USEDEFAULTS,
FND_SCN=@token('FND_SCN'),
FND_ROW_RANK=@token('FND_ROW_RANK'),
FND_COMMIT_DATE=@token('FND_COMMIT_DATE'),
FND_DML_TYPE=@token('FND_DML_TYPE')
);
Map SOURCE and
TARGET
KEYCOLS defines
matching criteria
USEDEFAULTS defines
column for column mapping
Our “Tokens” mapped to
columns
INSERTALLRECORDS is the
secret sauce for CDC
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Configuring GoldenGate REPLICAT
53
REPLICAT REP
SETENV (ORACLE_HOME="/app/oracle/product/11.2.0/dbhome_1")
SETENV (ORACLE_SID="orcl")
USERID oggcore_2, PASSWORD ogg
DISCARDFILE ./dirrpt/rep.dsc, append, megabytes 500
MAP SUGARCRM.ACCOUNTS,
TARGET SUGARFND.ACCOUNTS,
KEYCOLS(ID, FND_SCN),
INSERTALLRECORDS,
COLMAP(
USEDEFAULTS,
FND_SCN=@GETENV("TRANSACTION" , "CSN"),
FND_ROW_RANK=@TOKEN("TK_ROW_RANK"),
FND_COMMIT_DATE=@GETENV("GGHEADER" , "COMMITTIMESTAMP"),
FND_DML_TYPE=@GETENV("GGHEADER" , "OPTYPE")
);
GGSCI (oracle.localdomain) 1> dblogin userid oggcore_2, password ogg
Successfully logged into database.
GGSCI (oracle.localdomain as oggcore_2@orcl) 2> add checkpointtable oggcore_2.checkpoint
Successfully created checkpoint table oggcore_2.checkpoint.
GGSCI (oracle.localdomain as oggcore_2@orcl) 3> add replicat REP integrated, exttrail ./dirdat/rt
REPLICAT (Integrated) added.
GGSCI (oracle.localdomain as oggcore_2@orcl) 4> start replicat REP
Sending START request to MANAGER ...
REPLICAT REP starting
GGSCI (oracle.localdomain as oggcore_2@orcl) 5> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REP 00:00:00 00:20:54
DEMO:
Change Data in GoldenGate
What Are We Missing?
What Are We Missing?
Subscriptions
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Publish and Subscribe
57
EDW
R Sandbox
Partner
Feed
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
create table ogg_subscription
(
sub_name varchar2(30) not null enable,
sub_type varchar2(6),
server_name varchar2(30),
effective_scn number,
expiration_scn number
);
Create the
Subscription
Purge the
Window
Extend the
Window
SCN Window
Subscription Name
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
create table ogg_subscription
(
sub_name varchar2(30) not null enable,
sub_type varchar2(6),
server_name varchar2(30),
effective_scn number,
expiration_scn number
);
Create the
Subscription
create or replace view ogg_accounts_view
as select id,
name,
ticker_symbol,
ownership,
fnd_scn,
fnd_dml_type,
fnd_commit_date,
NVL ( LEAD ( fnd_commit_date ) over
( PARTITION BY id
ORDER BY fnd_commit_date ),
to_date( '12/31/9999','mm/dd/yyyy' )) fnd_expire_dt,
CASE
WHEN ( RANK() over (PARTITION BY id
ORDER BY fnd_commit_date desc )) = 1
THEN 'Y'
ELSE 'N'
END current_ind
from sugarstg.accounts
join ogg_subscription
on sub_name='FND_ACCOUNTS'
and fnd_scn >=effective_scn
and fnd_scn < expiration_scn
order by fnd_commit_date;
SCN Window
Subscription Name
Purge the
Window
Extend the
Window
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Create the
Subscription
MERGE INTO ogg_subscription t
USING ( SELECT to_number( applied_low_position ) complete_scn,
server_name
FROM all_gg_inbound_progress
) s
ON ( s.server_name = t.server_name )
WHEN MATCHED
THEN UPDATE
SET t.expiration_scn = s.complete_scn,
t.effective_scn = t.expiration_scn
WHEN NOT MATCHED
THEN INSERT
( t.effective_scn,
t.expiration_scn,
t.sub_name,
t.server_name )
values
( '0',
s.complete_scn,
'FND_ACCOUNTS',
s.server_name );
Slide our window over if
the subscription exists
Last SCN applied by
GoldenGate
Purge the
Window
Extend the
Window
Create our subscription if it
doesn’t already exist
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Create the
Subscription
delete sugarstg.accounts
where fnd_scn < ( select min(expiration_scn)
from ogg_subscription );
Delete all the records that have
been read by all subscriptions
Purge the
Window
Extend the
Window
www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics
Is Oracle GoldenGate a
Replacement for Oracle Change
Data Capture?
62
Stewart Bryson
medium.com/@stewartbryson @stewartbryson linkedin.com/in/stewartbryson

Weitere ähnliche Inhalte

Was ist angesagt?

Oracle GoldenGate Architecture Performance
Oracle GoldenGate Architecture PerformanceOracle GoldenGate Architecture Performance
Oracle GoldenGate Architecture Performance
Enkitec
 
Active dataguard
Active dataguardActive dataguard
Active dataguard
Manoj Kumar
 

Was ist angesagt? (20)

Oracle Real Application Clusters (RAC) 12c Rel. 2 - Operational Best Practices
Oracle Real Application Clusters (RAC) 12c Rel. 2 - Operational Best PracticesOracle Real Application Clusters (RAC) 12c Rel. 2 - Operational Best Practices
Oracle Real Application Clusters (RAC) 12c Rel. 2 - Operational Best Practices
 
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAs
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAsOracle Database Performance Tuning Advanced Features and Best Practices for DBAs
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAs
 
Oracle GoldenGate Architecture Performance
Oracle GoldenGate Architecture PerformanceOracle GoldenGate Architecture Performance
Oracle GoldenGate Architecture Performance
 
Oracle 12c Information Lifecycle Management
Oracle 12c Information Lifecycle ManagementOracle 12c Information Lifecycle Management
Oracle 12c Information Lifecycle Management
 
Oracle 12c PDB insights
Oracle 12c PDB insightsOracle 12c PDB insights
Oracle 12c PDB insights
 
Oracle_Multitenant_19c_-_All_About_Pluggable_D.pdf
Oracle_Multitenant_19c_-_All_About_Pluggable_D.pdfOracle_Multitenant_19c_-_All_About_Pluggable_D.pdf
Oracle_Multitenant_19c_-_All_About_Pluggable_D.pdf
 
Deep review of LMS process
Deep review of LMS processDeep review of LMS process
Deep review of LMS process
 
Oracle data guard for beginners
Oracle data guard for beginnersOracle data guard for beginners
Oracle data guard for beginners
 
Backup and recovery in oracle
Backup and recovery in oracleBackup and recovery in oracle
Backup and recovery in oracle
 
What to Expect From Oracle database 19c
What to Expect From Oracle database 19cWhat to Expect From Oracle database 19c
What to Expect From Oracle database 19c
 
Oracle Database 12c : Multitenant
Oracle Database 12c : MultitenantOracle Database 12c : Multitenant
Oracle Database 12c : Multitenant
 
Oracle Extended Clusters for Oracle RAC
Oracle Extended Clusters for Oracle RACOracle Extended Clusters for Oracle RAC
Oracle Extended Clusters for Oracle RAC
 
Your tuning arsenal: AWR, ADDM, ASH, Metrics and Advisors
Your tuning arsenal: AWR, ADDM, ASH, Metrics and AdvisorsYour tuning arsenal: AWR, ADDM, ASH, Metrics and Advisors
Your tuning arsenal: AWR, ADDM, ASH, Metrics and Advisors
 
Oracle GoldenGate Presentation from OTN Virtual Technology Summit - 7/9/14 (PDF)
Oracle GoldenGate Presentation from OTN Virtual Technology Summit - 7/9/14 (PDF)Oracle GoldenGate Presentation from OTN Virtual Technology Summit - 7/9/14 (PDF)
Oracle GoldenGate Presentation from OTN Virtual Technology Summit - 7/9/14 (PDF)
 
Understanding oracle rac internals part 1 - slides
Understanding oracle rac internals   part 1 - slidesUnderstanding oracle rac internals   part 1 - slides
Understanding oracle rac internals part 1 - slides
 
Active dataguard
Active dataguardActive dataguard
Active dataguard
 
9 DevOps Tips for Going in Production with Galera Cluster for MySQL - Slides
9 DevOps Tips for Going in Production with Galera Cluster for MySQL - Slides9 DevOps Tips for Going in Production with Galera Cluster for MySQL - Slides
9 DevOps Tips for Going in Production with Galera Cluster for MySQL - Slides
 
Migration to Oracle Multitenant
Migration to Oracle MultitenantMigration to Oracle Multitenant
Migration to Oracle Multitenant
 
One PDB to go, please!
One PDB to go, please!One PDB to go, please!
One PDB to go, please!
 
Building and running cloud native cassandra
Building and running cloud native cassandraBuilding and running cloud native cassandra
Building and running cloud native cassandra
 

Andere mochten auch

Oracle GoldenGate Demo and Data Integration Concepts
Oracle GoldenGate Demo and Data Integration ConceptsOracle GoldenGate Demo and Data Integration Concepts
Oracle GoldenGate Demo and Data Integration Concepts
Fumiko Yamashita
 
Oracle GoldenGate, Streams, and Data Integrator
Oracle GoldenGate, Streams, and Data IntegratorOracle GoldenGate, Streams, and Data Integrator
Oracle GoldenGate, Streams, and Data Integrator
Fumiko Yamashita
 
Dealing with Changed Data in Hadoop
Dealing with Changed Data in HadoopDealing with Changed Data in Hadoop
Dealing with Changed Data in Hadoop
DataWorks Summit
 
Hive + Tez: A Performance Deep Dive
Hive + Tez: A Performance Deep DiveHive + Tez: A Performance Deep Dive
Hive + Tez: A Performance Deep Dive
DataWorks Summit
 

Andere mochten auch (20)

Oracle GoldenGate Demo and Data Integration Concepts
Oracle GoldenGate Demo and Data Integration ConceptsOracle GoldenGate Demo and Data Integration Concepts
Oracle GoldenGate Demo and Data Integration Concepts
 
Oracle GoldenGate, Streams, and Data Integrator
Oracle GoldenGate, Streams, and Data IntegratorOracle GoldenGate, Streams, and Data Integrator
Oracle GoldenGate, Streams, and Data Integrator
 
Real-Time Data Replication to Hadoop using GoldenGate 12c Adaptors
Real-Time Data Replication to Hadoop using GoldenGate 12c AdaptorsReal-Time Data Replication to Hadoop using GoldenGate 12c Adaptors
Real-Time Data Replication to Hadoop using GoldenGate 12c Adaptors
 
Oracle Goldengate training by Vipin Mishra
Oracle Goldengate training by Vipin Mishra Oracle Goldengate training by Vipin Mishra
Oracle Goldengate training by Vipin Mishra
 
Oracle GoldenGate for Disaster Recovery
Oracle GoldenGate for Disaster RecoveryOracle GoldenGate for Disaster Recovery
Oracle GoldenGate for Disaster Recovery
 
5 Keys to Oracle GoldenGate Implemenations
5 Keys to Oracle GoldenGate Implemenations5 Keys to Oracle GoldenGate Implemenations
5 Keys to Oracle GoldenGate Implemenations
 
Oracle GoldenGate for Big Data
Oracle GoldenGate for Big DataOracle GoldenGate for Big Data
Oracle GoldenGate for Big Data
 
Oracle GoldenGate for MySQL Overview
Oracle GoldenGate for MySQL OverviewOracle GoldenGate for MySQL Overview
Oracle GoldenGate for MySQL Overview
 
Go Faster - Remove Inhibitors to Rapid Innovation
Go Faster - Remove Inhibitors to Rapid InnovationGo Faster - Remove Inhibitors to Rapid Innovation
Go Faster - Remove Inhibitors to Rapid Innovation
 
Examining Oracle GoldenGate Trail Files
Examining Oracle GoldenGate Trail FilesExamining Oracle GoldenGate Trail Files
Examining Oracle GoldenGate Trail Files
 
Real-Time Data Loading from MySQL to Hadoop with New Tungsten Replicator 3.0
Real-Time Data Loading from MySQL to Hadoop with New Tungsten Replicator 3.0Real-Time Data Loading from MySQL to Hadoop with New Tungsten Replicator 3.0
Real-Time Data Loading from MySQL to Hadoop with New Tungsten Replicator 3.0
 
Oracle GoldenGate and Apache Kafka A Deep Dive Into Real-Time Data Streaming
Oracle GoldenGate and Apache Kafka A Deep Dive Into Real-Time Data StreamingOracle GoldenGate and Apache Kafka A Deep Dive Into Real-Time Data Streaming
Oracle GoldenGate and Apache Kafka A Deep Dive Into Real-Time Data Streaming
 
How many ways to monitor oracle golden gate-Collaborate 14
How many ways to monitor oracle golden gate-Collaborate 14How many ways to monitor oracle golden gate-Collaborate 14
How many ways to monitor oracle golden gate-Collaborate 14
 
Dealing with Changed Data in Hadoop
Dealing with Changed Data in HadoopDealing with Changed Data in Hadoop
Dealing with Changed Data in Hadoop
 
Advanced goldengate training ⅰ
Advanced goldengate training ⅰAdvanced goldengate training ⅰ
Advanced goldengate training ⅰ
 
Integrating Oracle Data Integrator with Oracle GoldenGate 12c
Integrating Oracle Data Integrator with Oracle GoldenGate 12cIntegrating Oracle Data Integrator with Oracle GoldenGate 12c
Integrating Oracle Data Integrator with Oracle GoldenGate 12c
 
Hive + Tez: A Performance Deep Dive
Hive + Tez: A Performance Deep DiveHive + Tez: A Performance Deep Dive
Hive + Tez: A Performance Deep Dive
 
Hortonworks Oracle Big Data Integration
Hortonworks Oracle Big Data Integration Hortonworks Oracle Big Data Integration
Hortonworks Oracle Big Data Integration
 
Data Integration for Big Data (OOW 2016, Co-Presented With Oracle)
Data Integration for Big Data (OOW 2016, Co-Presented With Oracle)Data Integration for Big Data (OOW 2016, Co-Presented With Oracle)
Data Integration for Big Data (OOW 2016, Co-Presented With Oracle)
 
Oracle SQL Developer Top 10 Tips & Tricks
Oracle SQL Developer Top 10 Tips & TricksOracle SQL Developer Top 10 Tips & Tricks
Oracle SQL Developer Top 10 Tips & Tricks
 

Ähnlich wie Replacing Oracle CDC with Oracle GoldenGate

3 reach new heights of operational effectiveness while simplifying it with or...
3 reach new heights of operational effectiveness while simplifying it with or...3 reach new heights of operational effectiveness while simplifying it with or...
3 reach new heights of operational effectiveness while simplifying it with or...
Dr. Wilfred Lin (Ph.D.)
 
Slides pentaho-hadoop-weka
Slides pentaho-hadoop-wekaSlides pentaho-hadoop-weka
Slides pentaho-hadoop-weka
lucboudreau
 
8 from zero to insight with real time big data
8 from zero to insight with real time big data8 from zero to insight with real time big data
8 from zero to insight with real time big data
Dr. Wilfred Lin (Ph.D.)
 

Ähnlich wie Replacing Oracle CDC with Oracle GoldenGate (20)

AgileAnalytics: Agile Real-Time BI with Oracle Business Intelligence, Oracle ...
AgileAnalytics: Agile Real-Time BI with Oracle Business Intelligence, Oracle ...AgileAnalytics: Agile Real-Time BI with Oracle Business Intelligence, Oracle ...
AgileAnalytics: Agile Real-Time BI with Oracle Business Intelligence, Oracle ...
 
An Introduction to Oracle Enterprise Metadata Manager
An Introduction to Oracle Enterprise Metadata ManagerAn Introduction to Oracle Enterprise Metadata Manager
An Introduction to Oracle Enterprise Metadata Manager
 
How To Leverage OBIEE Within A Big Data Architecture
How To Leverage OBIEE Within A Big Data ArchitectureHow To Leverage OBIEE Within A Big Data Architecture
How To Leverage OBIEE Within A Big Data Architecture
 
The Time is Now: Migrating from Oracle Warehouse Builder to Oracle Data Integ...
The Time is Now: Migrating from Oracle Warehouse Builder to Oracle Data Integ...The Time is Now: Migrating from Oracle Warehouse Builder to Oracle Data Integ...
The Time is Now: Migrating from Oracle Warehouse Builder to Oracle Data Integ...
 
The Time is Now! Migrating from OWB to ODI 12c
The Time is Now! Migrating from OWB to ODI 12cThe Time is Now! Migrating from OWB to ODI 12c
The Time is Now! Migrating from OWB to ODI 12c
 
3 reach new heights of operational effectiveness while simplifying it with or...
3 reach new heights of operational effectiveness while simplifying it with or...3 reach new heights of operational effectiveness while simplifying it with or...
3 reach new heights of operational effectiveness while simplifying it with or...
 
Obiee 12C and the Leap Forward in Lifecycle Management
Obiee 12C and the Leap Forward in Lifecycle ManagementObiee 12C and the Leap Forward in Lifecycle Management
Obiee 12C and the Leap Forward in Lifecycle Management
 
Obiee 12c and the leap forward in lifecycle management
Obiee 12c and the leap forward in lifecycle managementObiee 12c and the leap forward in lifecycle management
Obiee 12c and the leap forward in lifecycle management
 
con9578-2088758.pdf
con9578-2088758.pdfcon9578-2088758.pdf
con9578-2088758.pdf
 
Slides pentaho-hadoop-weka
Slides pentaho-hadoop-wekaSlides pentaho-hadoop-weka
Slides pentaho-hadoop-weka
 
Conociendo y entendiendo a tu cliente mediante monitoreo, analíticos y big data
Conociendo y entendiendo a tu cliente mediante monitoreo, analíticos y big dataConociendo y entendiendo a tu cliente mediante monitoreo, analíticos y big data
Conociendo y entendiendo a tu cliente mediante monitoreo, analíticos y big data
 
Extending Hortonworks with Oracle's Big Data Platform
Extending Hortonworks with Oracle's Big Data PlatformExtending Hortonworks with Oracle's Big Data Platform
Extending Hortonworks with Oracle's Big Data Platform
 
Milomir Vojvodic - Business Analytics And Big Data Partner Forum Dubai 15.11.
Milomir Vojvodic - Business Analytics And Big Data Partner Forum Dubai 15.11.Milomir Vojvodic - Business Analytics And Big Data Partner Forum Dubai 15.11.
Milomir Vojvodic - Business Analytics And Big Data Partner Forum Dubai 15.11.
 
How Can Test Data Management Overcome Mainframe Testing Challenges?
How Can Test Data Management Overcome Mainframe Testing Challenges?How Can Test Data Management Overcome Mainframe Testing Challenges?
How Can Test Data Management Overcome Mainframe Testing Challenges?
 
Hadoop as an Analytic Platform: Why Not?
Hadoop as an Analytic Platform: Why Not?Hadoop as an Analytic Platform: Why Not?
Hadoop as an Analytic Platform: Why Not?
 
8 from zero to insight with real time big data
8 from zero to insight with real time big data8 from zero to insight with real time big data
8 from zero to insight with real time big data
 
Big data oracle_introduccion
Big data oracle_introduccionBig data oracle_introduccion
Big data oracle_introduccion
 
Sqrrl Overview for Stac Research
Sqrrl Overview for Stac ResearchSqrrl Overview for Stac Research
Sqrrl Overview for Stac Research
 
MongoDB IoT City Tour EINDHOVEN: Analysing the Internet of Things: Davy Nys, ...
MongoDB IoT City Tour EINDHOVEN: Analysing the Internet of Things: Davy Nys, ...MongoDB IoT City Tour EINDHOVEN: Analysing the Internet of Things: Davy Nys, ...
MongoDB IoT City Tour EINDHOVEN: Analysing the Internet of Things: Davy Nys, ...
 
Oracle Big Data Governance Webcast Charts
Oracle Big Data Governance Webcast ChartsOracle Big Data Governance Webcast Charts
Oracle Big Data Governance Webcast Charts
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

Replacing Oracle CDC with Oracle GoldenGate

  • 1. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Is Oracle GoldenGate a Replacement for Oracle Change Data Capture? 1 Stewart Bryson medium.com/@stewartbryson @stewartbryson linkedin.com/in/stewartbryson
  • 2. © 2014 RED PILL Analytics Who is Red Pill Analytics?
  • 3. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Red Pill Analytics: Leadership 3 Stewart Bryson Oracle ACE Director Previously From: Rittman Mead Informix Software Data Warehousing & Business Intelligence since 1996 Kevin McGinley Oracle ACE Director Previously From: Accenture BI Consulting Group Data Warehousing & Business Intelligence since 1997
  • 4. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics About Red Pill Analytics Other Services • Expert Retainer • Support • Training 4 • DevOps for BI and DI • Hosted or On- premise • Used in Capacity Analytics Capacity Analytics • Development-as-a- service • Agile methodology • Faster/cheaper than traditional consulting • Subscription billing
  • 5. © 2014 RED PILL Analytics “Change” Has Different Meanings
  • 6. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics ODI Journalization Framework A B Oracle GoldenGate (Traditionally) A B Oracle CDC (Deprecated) A B
  • 7. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics A B ODI Journalization Framework A B
  • 8. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics A B ODI Journalization Framework A B
  • 9. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Oracle CDC (Deprecated) A B A
  • 10. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics A ODI Journalization Framework A B
  • 11. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Is the A-Team Right About This? 13
  • 13. © 2014 RED PILL Analytics Online Retailing Example
  • 14. © 2014 RED PILL Analytics Publishing
  • 15. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Oracle CDC: Publish and Subscribe 17 EDW R Sandbox Partner Feed
  • 16. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Oracle CDC: Publishing 18 -- prepare source table alter table sugarcrm.accounts ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS; BEGIN DBMS_CAPTURE_ADM.PREPARE_TABLE_INSTANTIATION(TABLE_NAME => 'sugarcrm.accounts'); END; / -- create change set BEGIN DBMS_CDC_PUBLISH.CREATE_CHANGE_SET ( change_set_name => 'CRM_ACCOUNTS', description => 'Change set for the CRM Accounts Data', change_source_name => 'HOTLOG_SOURCE', stop_on_ddl => 'y', begin_date => sysdate ); END;
  • 17. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Oracle CDC: Publishing 19 -- prepare source table alter table sugarcrm.accounts ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS; BEGIN DBMS_CAPTURE_ADM.PREPARE_TABLE_INSTANTIATION(TABLE_NAME => 'sugarcrm.accounts'); END; / -- create change set BEGIN DBMS_CDC_PUBLISH.CREATE_CHANGE_SET ( change_set_name => 'CRM_ACCOUNTS', description => 'Change set for the CRM Accounts Data', change_source_name => 'HOTLOG_SOURCE', stop_on_ddl => 'y', begin_date => sysdate ); END; -- create change table BEGIN DBMS_CDC_PUBLISH.CREATE_CHANGE_TABLE ( owner => 'cdcpub', change_table_name => 'accounts_ct', change_set_name => 'CRM_ACCOUNTS', source_schema => 'SUGARCRM', source_table => 'ACCOUNTS', column_type_list => 'ID CHAR(36), NAME VARCHAR2(150), DATE_ENTERED DATE,DATE_MODIFIED DATE, ACCOUNT_TYPE VARCHAR2(50), INDUSTRY VARCHAR2(50), PARENT_ID CHAR(36), ANNUAL_REVENUE VARCHAR2(100), BILLING_ADDRESS_STREET VARCHAR2(150), BILLING_ADDRESS_CITY VARCHAR2(100), BILLING_ADDRESS_STATE VARCHAR2(100), BILLING_ADDRESS_POSTALCODE VARCHAR2(20), OWNERSHIP VARCHAR2(100), BILLING_ADDRESS_COUNTRY VARCHAR2(255), RATING VARCHAR2(100), WEBSITE VARCHAR2(255),TICKER_SYMBOL VARCHAR2(10), SIC_CODE VARCHAR2(10), CAMPAIGN_ID CHAR(36)', capture_values => 'new', rs_id => 'y', row_id => 'n', user_id => 'n', timestamp => 'n', object_id => 'n', source_colmap => 'n', target_colmap => 'y', options_string => 'TABLESPACE UTILS'); END;
  • 18. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics -- create change table BEGIN DBMS_CDC_PUBLISH.CREATE_CHANGE_TABLE ( owner => 'cdcpub', change_table_name => 'accounts_ct', change_set_name => 'CRM_ACCOUNTS', source_schema => 'SUGARCRM', source_table => 'ACCOUNTS', column_type_list => 'ID CHAR(36), NAME VARCHAR2(150), DATE_ENTERED DATE,DATE_MODIFIED DATE, ACCOUNT_TYPE VARCHAR2(50), INDUSTRY VARCHAR2(50), PARENT_ID CHAR(36), ANNUAL_REVENUE VARCHAR2(100), BILLING_ADDRESS_STREET VARCHAR2(150), BILLING_ADDRESS_CITY VARCHAR2(100), BILLING_ADDRESS_STATE VARCHAR2(100), BILLING_ADDRESS_POSTALCODE VARCHAR2(20), OWNERSHIP VARCHAR2(100), BILLING_ADDRESS_COUNTRY VARCHAR2(255), RATING VARCHAR2(100), WEBSITE VARCHAR2(255),TICKER_SYMBOL VARCHAR2(10), SIC_CODE VARCHAR2(10), CAMPAIGN_ID CHAR(36)', capture_values => 'new', rs_id => 'y', row_id => 'n', user_id => 'n', timestamp => 'n', object_id => 'n', source_colmap => 'n', target_colmap => 'y', options_string => 'TABLESPACE UTILS'); END; Oracle CDC: Publishing 20 -- prepare source table alter table sugarcrm.accounts ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS; BEGIN DBMS_CAPTURE_ADM.PREPARE_TABLE_INSTANTIATION(TABLE_NAME => 'sugarcrm.accounts'); END; / -- create change set BEGIN DBMS_CDC_PUBLISH.CREATE_CHANGE_SET ( change_set_name => 'CRM_ACCOUNTS', description => 'Change set for the CRM Accounts Data', change_source_name => 'HOTLOG_SOURCE', stop_on_ddl => 'y', begin_date => sysdate ); END; -- enable change set BEGIN DBMS_CDC_PUBLISH.ALTER_CHANGE_SET( change_set_name => 'CRM_ACCOUNTS', enable_capture => 'y'); END;
  • 20. www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics Oracle CDC Subscription View 22 NAME TICKER_SYMBOL OWNERSHIP CSCN$ COMMIT_TIMESTAMP $ OPERATION$ Red Pill Analytics 2992758 06/01/2014 12:00 AM INSERT NAME TICKER_SYMBOL OWNERSHIP Red Pill Analytics, LLC Private
  • 21. www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics Oracle CDC Subscription View 23 NAME TICKER_SYMBOL OWNERSHIP CSCN$ COMMIT_TIMESTAMP $ OPERATION$ Red Pill Analytics 2992758 06/01/2014 12:00 AM INSERT Red Pill Analytics, LLC Private 2992760 07/14/2014 12:00 AM UPDATE NAME TICKER_SYMBOL OWNERSHIP Red Pill Analytics, LLC Private
  • 22. www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics Oracle CDC Subscription View 24 NAME TICKER_SYMBOL OWNERSHIP CSCN$ COMMIT_TIMESTAMP $ OPERATION$ Red Pill Analytics 2992758 06/01/2014 12:00 AM INSERT Red Pill Analytics, LLC Private 2992760 07/14/2014 12:00 AM UPDATE Red Pill Analytics, Inc. RPAI Public 2992762 01/20/2015 12:00 AM UPDATE NAME TICKER_SYMBOL OWNERSHIP Red Pill Analytics, Inc. RPAI Public
  • 23. www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics Oracle CDC Subscription View 25 NVL ( LEAD ( fnd_commit_date ) over ( PARTITION BY id ORDER BY fnd_commit_date ), to_date( '12/31/9999','mm/dd/yyyy' ) ) NAME CSCN$ COMMIT_TIMESTAMP$ EXPIRE_TIMESTAMP$ OPERATION$ CURRENT_IND Red Pill Analytics 2992758 06/01/2014 12:00 AM 07/14/2014 12:00 AM INSERT N Red Pill Analytics, LLC 2992760 07/14/2014 12:00 AM 01/20/2015 12:00 AM UPDATE N Red Pill Analytics, Inc. 2992762 01/20/2015 12:00 AM 12/31/9999 12:00 AM UPDATE Y
  • 24. www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics Oracle CDC Subscription View 26 NAME CSCN$ COMMIT_TIMESTAMP$ EXPIRE_TIMESTAMP$ OPERATION$ CURRENT_IND Red Pill Analytics 2992758 06/01/2014 12:00 AM 07/14/2014 12:00 AM INSERT N Red Pill Analytics, LLC 2992760 07/14/2014 12:00 AM 01/20/2015 12:00 AM UPDATE N Red Pill Analytics, Inc. 2992762 01/20/2015 12:00 AM 12/31/9999 12:00 AM UPDATE Y CASE WHEN ( RANK() over (PARTITION BY id ORDER BY fnd_commit_date desc )) = 1 THEN 'Y' ELSE 'N' END
  • 25. DEMO: Viewing Change Data with GoldenGate
  • 26. © 2014 RED PILL Analytics Am I in Love With a Deprecated Product?
  • 27. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics What’s the Problem with Oracle CDC? 29 11g
  • 28. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics 11g What’s the Problem with Oracle CDC? 30
  • 29. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics What’s the Problem with Oracle CDC? 31 11g 12c 11g
  • 30. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics What’s the Problem with Oracle CDC? 32 11g 12c 11g
  • 31. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics What’s the Problem with Oracle CDC? 33 11g 12c 11g
  • 32. © 2014 RED PILL Analytics Pragmatism
  • 33. © 2014 RED PILL Analytics Text Here
  • 34. © 2014 RED PILL Analytics Werner Heisenberg
  • 35. © 2014 RED PILL Analytics Text Here
  • 36. © 2014 RED PILL Analytics Text Here
  • 37. © 2014 RED PILL Analytics Don’t Use Particles to Measure Particles
  • 38. © 2014 RED PILL Analytics Don’t Use Streams to Capture Change
  • 39. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics CDC Uses Streams (Capture and Queue) 41 Oracle CDC (Deprecated) A B
  • 40. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics CDC Uses Streams (Capture and Queue) 42 Oracle CDC (Deprecated) A B Oracle Streams (Deprecated) A B
  • 41. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Oracle GoldenGate Architecture 43
  • 42. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Installing GoldenGate 44
  • 43. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Installing GoldenGate 45
  • 44. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Installing GoldenGate 46
  • 45. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Configuring GoldenGate EXTRACT 47 EXTRACT EXT USERID oggcore_1, PASSWORD ogg SETENV (ORACLE_HOME="/app/oracle/product/11.2.0/dbhome_1") SETENV (ORACLE_SID="orcl") WARNLONGTRANS 1h, CHECKINTERVAL 30m EXTTRAIL ./dirdat/lt WILDCARDRESOLVE IMMEDIATE TABLE SUGARCRM.ACCOUNTS, TOKENS ( FND_SCN = @GETENV('TRANSACTION','CSN'), FND_ROW_RANK = @GETENV('RECORD','RSN'), FND_COMMIT_DATE=@GETENV('GGHEADER','COMMITTIMESTAMP'), FND_DML_TYPE=@GETENV('GGHEADER','OPTYPE') ); System change number (SCN) for the transaction USEDEFAULTS defines column for column mapping Transaction Commit Date (with Time) Operation Type: Delete, Update, Insert, PK Update, and others
  • 46. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Configuring GoldenGate EXTRACT 48 EXTRACT EXT USERID oggcore_1, PASSWORD ogg SETENV (ORACLE_HOME="/app/oracle/product/11.2.0/dbhome_1") SETENV (ORACLE_SID="orcl") WARNLONGTRANS 1h, CHECKINTERVAL 30m EXTTRAIL ./dirdat/lt WILDCARDRESOLVE IMMEDIATE TABLE SUGARCRM.ACCOUNTS, TOKENS ( FND_SCN = @GETENV('TRANSACTION','CSN'), FND_ROW_RANK = @GETENV('RECORD','RSN'), FND_COMMIT_DATE=@GETENV('GGHEADER','COMMITTIMESTAMP'), FND_DML_TYPE=@GETENV('GGHEADER','OPTYPE') ); GGSCI (oracle.localdomain) 1> add extract ext, integrated tranlog, begin now EXTRACT added. GGSCI (oracle.localdomain) 2> add exttrail ./dirdat/lt, extract EXT, megabytes 200 EXTTRAIL added. GGSCI (oracle.localdomain) 3> dblogin userid oggcore_1, password ogg Successfully logged into database. GGSCI (oracle.localdomain as oggcore_1@orcl) 4> register extract ext database Extract EXT successfully registered with database at SCN 2239208. GGSCI (oracle.localdomain as oggcore_1@orcl) 5> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING EXT 00:00:10 00:00:04
  • 47. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Configuring GoldenGate DATA PUMP 49 EXTRACT PMP PASSTHRU RMTHOST oracle.localdomain MGRPORT 7810, COMPRESS RMTTRAIL ./dirdat/rt TABLE SUGARCRM.*;
  • 48. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Configuring GoldenGate DATA PUMP 50 EXTRACT PMP PASSTHRU RMTHOST linux-db MGRPORT 15000, COMPRESS RMTTRAIL ./dirdat/rt TABLE SUGARCRM.*; GGSCI (oracle.localdomain) 1> add extract PMP, exttrailsource ./dirdat/lt EXTRACT added. GGSCI (oracle.localdomain) 2> add rmttrail ./dirdat/rt, extract PMP, megabytes 200 RMTTRAIL added. GGSCI (oracle.localdomain) 3> start extract PMP Sending START request to MANAGER ... EXTRACT PMP starting GGSCI (oracle.localdomain) 4> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING EXT 00:00:02 00:00:07 EXTRACT RUNNING PMP 00:00:00 00:04:15
  • 49. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Configuring GoldenGate REPLICAT 51 REPLICAT REP SETENV (ORACLE_HOME="/app/oracle/product/11.2.0/dbhome_1") SETENV (ORACLE_SID="orcl") USERID oggcore_2, PASSWORD ogg DISCARDFILE ./dirrpt/rep.dsc, append, megabytes 500 SOURCEDEFS ./dirdef/sugarcrm.def MAP SUGARCRM.ACCOUNTS, TARGET SUGARSTG.ACCOUNTS, KEYCOLS(ID, FND_SCN, FND_ROW_RANK), INSERTALLRECORDS, COLMAP ( USEDEFAULTS, FND_SCN=@token('FND_SCN'), FND_ROW_RANK=@token('FND_ROW_RANK'), FND_COMMIT_DATE=@token('FND_COMMIT_DATE'), FND_DML_TYPE=@token('FND_DML_TYPE') ); Map SOURCE and TARGET KEYCOLS defines matching criteria USEDEFAULTS defines column for column mapping Our “Tokens” mapped to columns
  • 50. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Configuring GoldenGate REPLICAT 52 REPLICAT REP SETENV (ORACLE_HOME="/app/oracle/product/11.2.0/dbhome_1") SETENV (ORACLE_SID="orcl") USERID oggcore_2, PASSWORD ogg DISCARDFILE ./dirrpt/rep.dsc, append, megabytes 500 SOURCEDEFS ./dirdef/sugarcrm.def MAP SUGARCRM.ACCOUNTS, TARGET SUGARSTG.ACCOUNTS, KEYCOLS(ID, FND_SCN, FND_ROW_RANK), INSERTALLRECORDS, COLMAP ( USEDEFAULTS, FND_SCN=@token('FND_SCN'), FND_ROW_RANK=@token('FND_ROW_RANK'), FND_COMMIT_DATE=@token('FND_COMMIT_DATE'), FND_DML_TYPE=@token('FND_DML_TYPE') ); Map SOURCE and TARGET KEYCOLS defines matching criteria USEDEFAULTS defines column for column mapping Our “Tokens” mapped to columns INSERTALLRECORDS is the secret sauce for CDC
  • 51. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Configuring GoldenGate REPLICAT 53 REPLICAT REP SETENV (ORACLE_HOME="/app/oracle/product/11.2.0/dbhome_1") SETENV (ORACLE_SID="orcl") USERID oggcore_2, PASSWORD ogg DISCARDFILE ./dirrpt/rep.dsc, append, megabytes 500 MAP SUGARCRM.ACCOUNTS, TARGET SUGARFND.ACCOUNTS, KEYCOLS(ID, FND_SCN), INSERTALLRECORDS, COLMAP( USEDEFAULTS, FND_SCN=@GETENV("TRANSACTION" , "CSN"), FND_ROW_RANK=@TOKEN("TK_ROW_RANK"), FND_COMMIT_DATE=@GETENV("GGHEADER" , "COMMITTIMESTAMP"), FND_DML_TYPE=@GETENV("GGHEADER" , "OPTYPE") ); GGSCI (oracle.localdomain) 1> dblogin userid oggcore_2, password ogg Successfully logged into database. GGSCI (oracle.localdomain as oggcore_2@orcl) 2> add checkpointtable oggcore_2.checkpoint Successfully created checkpoint table oggcore_2.checkpoint. GGSCI (oracle.localdomain as oggcore_2@orcl) 3> add replicat REP integrated, exttrail ./dirdat/rt REPLICAT (Integrated) added. GGSCI (oracle.localdomain as oggcore_2@orcl) 4> start replicat REP Sending START request to MANAGER ... REPLICAT REP starting GGSCI (oracle.localdomain as oggcore_2@orcl) 5> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING REPLICAT RUNNING REP 00:00:00 00:20:54
  • 52. DEMO: Change Data in GoldenGate
  • 53. What Are We Missing?
  • 54. What Are We Missing? Subscriptions
  • 55. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Publish and Subscribe 57 EDW R Sandbox Partner Feed
  • 56. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics create table ogg_subscription ( sub_name varchar2(30) not null enable, sub_type varchar2(6), server_name varchar2(30), effective_scn number, expiration_scn number ); Create the Subscription Purge the Window Extend the Window SCN Window Subscription Name
  • 57. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics create table ogg_subscription ( sub_name varchar2(30) not null enable, sub_type varchar2(6), server_name varchar2(30), effective_scn number, expiration_scn number ); Create the Subscription create or replace view ogg_accounts_view as select id, name, ticker_symbol, ownership, fnd_scn, fnd_dml_type, fnd_commit_date, NVL ( LEAD ( fnd_commit_date ) over ( PARTITION BY id ORDER BY fnd_commit_date ), to_date( '12/31/9999','mm/dd/yyyy' )) fnd_expire_dt, CASE WHEN ( RANK() over (PARTITION BY id ORDER BY fnd_commit_date desc )) = 1 THEN 'Y' ELSE 'N' END current_ind from sugarstg.accounts join ogg_subscription on sub_name='FND_ACCOUNTS' and fnd_scn >=effective_scn and fnd_scn < expiration_scn order by fnd_commit_date; SCN Window Subscription Name Purge the Window Extend the Window
  • 58. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Create the Subscription MERGE INTO ogg_subscription t USING ( SELECT to_number( applied_low_position ) complete_scn, server_name FROM all_gg_inbound_progress ) s ON ( s.server_name = t.server_name ) WHEN MATCHED THEN UPDATE SET t.expiration_scn = s.complete_scn, t.effective_scn = t.expiration_scn WHEN NOT MATCHED THEN INSERT ( t.effective_scn, t.expiration_scn, t.sub_name, t.server_name ) values ( '0', s.complete_scn, 'FND_ACCOUNTS', s.server_name ); Slide our window over if the subscription exists Last SCN applied by GoldenGate Purge the Window Extend the Window Create our subscription if it doesn’t already exist
  • 59. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Create the Subscription delete sugarstg.accounts where fnd_scn < ( select min(expiration_scn) from ogg_subscription ); Delete all the records that have been read by all subscriptions Purge the Window Extend the Window
  • 60. www.RedPillAnalytics.com info@RedPillAnalytics.com @RedPillA © 2014 RED PILL Analytics Is Oracle GoldenGate a Replacement for Oracle Change Data Capture? 62 Stewart Bryson medium.com/@stewartbryson @stewartbryson linkedin.com/in/stewartbryson