Top Banner
<Insert Picture Here> Change Data Capture (CDC) Обзор Детали Сравнение режимов CDC CDC вместе с Oracle Warehouse Builder Дополнительная информация Q&A
45

Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Mar 23, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

<Insert Picture Here>

Change Data Capture (CDC)

• Обзор

• Детали

• Сравнение режимов CDC

• CDC вместе с Oracle Warehouse Builder

• Дополнительная информация

• Q&A

Page 2: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

<Insert Picture Here>

Обзор

Page 3: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Методы извлечения новыхданных

• Два метода

• Полное извлечение:

• Не требуется отслеживатьизменения

• Больше данных переносить

• Меньшая нагрузка наOLTP среду

• Инкрементальное извлечение:

• Требуется отслеживатьизменения

• Меньше данных

• Большая нагрузка на OLTP

Все

строки

Только

изменения

Page 4: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

История Oracle Change Data Capture

• Oracle Database 9.2: synchronous

• Построена на триггерах

• Часть транзакции

• Oracle Database 10g Release 1: asynchronous

• Основана на Oracle Streams

• Поддерживается только 10g

• Oracle Database 10g Release 2: asynchronous

• Поддержка для 9.2.0.6 или выше как источника

Page 5: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Change Data Capture СегодняOracle Database 11g

• Synchronous

• Asynchronous (local) hotlog

• Читает [redo logs | archive logs]

• Asynchronous distributed hotlog

• Читает redo logs на источнике, применяет на целевой DB

• Поддержка Cross-version/cross operating system

• Asynchronous remote autolog [online | archive]

• Распространяет [redo logs | archive logs] на целевую DB

• Собирает и применяет изменения на целевой DB(downstream)

• Требуется одинаковых версий базы и ОС

Page 6: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Как работает Asynchronous CDC

• Собираем изменения из [redo | archive] logs

• Не нужно менять приложение

• Минимальная дополнительная нагрузка

• Хранит изменения в таблицах измененийOLTPDB

Logfiles

Logical Change Data

Log Minerand

Streams

Oracle Database 11gDWTables

SQL, PL/SQL,Java

Transform

Page 7: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Change Data Capture & Streams

• Проще интерфейс

• Меньшая гибкость

• Разработана для «почти» real-time хранилищ данных

• Bulk-load интерфейс

• Поддержка окна для подписчика на данные

• Гарантированная согласованность данных

• Asynchronous CDC это приложение на базе Streams

Page 8: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

<Insert Picture Here>

Детали

Page 9: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Терминология Oracle

• Change source – Логическое представление базы-источника

• Publisher – публикует изменения из источника

• Обычно отдельная схема в базе

• Subscriber – подписывается на изменения

• 1 publisher может иметь N subscribers

• Many implementations use one subscriber

• Обычно отдельная схема в базе

• Change table – таблица с изменениями

• Change set – транзактно-согласованный наборданных с изменениями

Page 10: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Database Logging

• Asynchronous CDC использует redo logs

• Журналирование может быть установлен впринудительный режим

• Database level – все изменения в базе

• Tablespace level – все изменения в табличномпространстве

• Table level – все изменения в таблице

• ЖУРНАЛИРОВАНИЕ ТРЕБУЕТСЯ ДЛЯASYNCHRONOUS CDC

• Нежурналируемые операции не мог быть собраны

• Пример: загрузка в режиме direct path без enforced logging

Page 11: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Supplemental Logging

• Дополнительное журналирование для того, чтобылогически связать измененные записи

• Применяется к базе-источнику

• Рекомендовано для упрощения обработки в режимеdownstream

• Primary key/unique столбцы (уже собирается!) достаточно

• Рекомендуется включить для всех собираемыхстолбцов

• Автоматически начиная с 10gR2 (как источника)

• Если нет primary/unique, то вся записи сохраняется вжурнал

• Relevant for updates

Page 12: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Сценарий применения CDC Начальная точка

SOURCE_TABLE

Начальныеданные

SOURCE

Page 13: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Сценарий применения CDC Начальный ETL

SOURCE_TABLE

Начальные

данные

SOURCE

ETL

Начальная загрузка данных вхранилище с помощью bulk load.

Page 14: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Сценарий применения CDC Настройка CDC

ИзначальнопустаяSOURCE_TABLE

CHANGE_TABLE

Ничегоне показывает

SUB_VIEW

SOURCE PUBLISHER SUBSCRIBER

Page 15: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Сценарий применения CDC Появление и сбор изменений

Ничегоне показывает

SUB_VIEW

Deleted

Updated

Inserted

Updated old

Updated new

Change table собираетизменения (старые иновые значения)

SOURCE PUBLISHER SUBSCRIBER

Inserted

Deleted

Page 16: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Сценарий применения CDC Subscriber расширил окно подписки

SOURCE PUBLISHER SUBSCRIBER

После расширенияпредставление подписчика

показывает текущиеизмененияDeleted

Updated

Inserted

Updated old

Updated new

Inserted

Deleted

Updated old

Updated new

Inserted

Deleted

Page 17: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Сценарий применения CDC Добавили еще изменений

SOURCE PUBLISHER SUBSCRIBER

Подписчик видитснимок измененных

данных

More changes More changes

Deleted

Updated

Inserted

Updated old

Updated new

Inserted

Deleted

Updated old

Updated new

Inserted

Deleted

Page 18: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Сценарий применения CDC «Прочитали» измененные данные

SOURCE PUBLISHER SUBSCRIBER

More changes More changes

ETL

Deleted

Updated

Inserted

Updated old

Updated new

Inserted

Deleted

Updated old

Updated new

Inserted

Deleted

Page 19: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Сценарий применения CDC

Подписчик очищает окно подписки

SOURCE PUBLISHER SUBSCRIBER

More changes More changes

Ничего

не показывает

SUB_VIEW

Deleted

Updated

Inserted

Updated old

Updated new

Inserted

Deleted

Page 20: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Сценарий применения CDC Subscriber расширил окно подписки снова

SOURCE PUBLISHER SUBSCRIBER

More changes More changes

Появляются новыеизменения

More changes

Deleted

Updated

Inserted

Updated old

Updated new

Inserted

Deleted

Page 21: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Сценарий применения CDC Очищаются измененные данные

SOURCE PUBLISHER SUBSCRIBER

More changes More changes

Прошлые изменениядля которых уже нет

подписчиковудаляются

Автоматическийджоб создаетсяпри реализации

CDC

More changes

Deleted

Updated

Inserted

Page 22: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

<Insert Picture Here>

Сравнение режимов CDC

Page 23: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Synchronous CDC

• Реализован с помощью триггеров

• Запись изменений – часть транзакции

• Значительная дополнительная нагрузка в транзакции

• Изменения фиксируются (commit) как часть транзакции

• Нулевая задержка

• Опасайтесь direct path загрузок (триггеры отключаются)

• Изменения собираются локально в базе-источнике

• Работает для Standard Edition

Page 24: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Asynchronous Autolog Online

• Используем redo log доставку для передачи журналов

• Как в standby базе данных

• Standby logs

• Использует Streams для сбора и примененияизменений

• Короткая задержка между транзакцией и ее сбором

• Удаленный журнал пишет изменения как часть транзакции

• Удаленный журнал может писаться асинхронно

• Влияние на транзакции

• Минимальное, если удаленный журнал пишется асинхронно

• Зависит от скорости сети, когда пишется асинхронно

Page 25: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Asynchronous Autolog Archive

• Используем redo log доставку для передачи журналов

• Same as standby database

• Standby logs

• Использует Streams для сбора и примененияизменений

• Возможна задержка между временем транзакции исбором измененных данных

• Журнал передается после переключения

• Минимальное влияние на транзакции

• Только на supplemental logging

Page 26: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Asynchronous Hotlog CDC

• Использует redo log для сбора изменений

• Отдельный процесс для сбора изменений из журналов

• Минимальное влияние на транзакции

• Только на supplemental logging

• Использует Streams для сбора и примененияизменений

• Небольшая задержка между транзакцией и сборомизменений (обычно максимум несколько секунд)

• Изменения собираются на базе-источнике

Page 27: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Asynchronous Distributed Hotlog CDC

• Процесс сбор изменений разделен

• Сбор изменений происходит на базе-источнике

• Изменения передаются на промежуточную (stage) базу

• Изменения применяются к таблице изменений напромежуточной базе

• Если версия промежуточная базы =>10.2, то вкачестве источника могут быть базы с версией9.2.0.6 и выше

• Поддерживаются разные операционные системыдля базы источника и промежуточной базы

• Минимальное влияние на транзакции

Page 28: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Сравнение режимов CDC

НетНетДаN/AN/AПоддержка разных версий

операционной системы

НетНетДаN/AN/AПоддержка разных версий

НетНетНетДаДаЛокальная таблица изменений

Redo transport

after log switch

Redo

transportStreamsN/AN/AМеханизм переноса

НетНетНетНетДаПостроена на триггерах

НетНетДаДаДаЛокальный сбор изменений

Возможно

высокая

Минимальная

autolog

archive

Задержка между транзакцией

и сбором изменений

Влияние на транзакции

Критерий

Нулевая

Высокая

sync

Низкая

Низкая

async

hot

НизкаяНизкая

НизкаяНизкая

autolog

online

asynch

dist hot

Page 29: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

<Insert Picture Here>

CDC вместе с Oracle Warehouse Builder (OWB)

Page 30: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Oracle Warehouse BuilderWhat is it?

• Graphical user interface to

• Design data warehouse structures

• Define data loads

• Warehouse Builder will then

• Generate code to create database objects

• Generate data load scripts that utilize Oracle Database functionality

• Provide metadata access for easy manageability

• Provide the monitoring infrastructure to monitor ETL

Page 31: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

CDC With OWB

• Initial configuration and setup

• Manual

• Daily use and incremental ETL

• Warehouse Builder

Page 32: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Define Reusable Components

Page 33: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Define Initial Data Load Mapping

Page 34: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Initial LoadUse Reusable Component

Page 35: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Define Incremental Data Load

Page 36: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Incremental LoadUse Reusable Components

Page 37: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Define Process Flow Sequence

• Extend subscription window – load data for table(s) –upon success, purge window

Page 38: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Demo: Asynchronous CDC

Page 39: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Параметры

Page 40: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

Additional Steps

• Define schedule

• How frequently do you want to load

• Deploy database objects

• Target table(s)

• Data load mapping(s)

• Process flow(s)

• Schedule(s)

• Execute initial load once

• Activate schedule to load incrementally

• Monitor

Page 41: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

<Insert Picture Here>

More information

Page 42: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

More Information

• Chapter 16 in Oracle Database 10g Data Warehousing Guide

• Asynchronous Change Data Capture Cookbookhttp://www.oracle.com/technology/products/bi/db/10g/pdf/twp_cdc_cookbook_0206.pdf

• Asynchronous Autolog CDC Cookbookhttp://www.oracle.com/technology/products/bi/db/10g/pdf/twp_autolog_cdc_cookbook_0107.pdf

• Feature pagehttp://dw.us.oracle.com/pls/htmldb/f?p=174:58

• Using asynchronous distributed hotlog CDC with Oracle Warehouse Builderhttp://www.rittman.net/2006/04/14/asynchronous-hotlog-distributed-change-data-capture-and-owb-paris/

Page 43: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

<Insert Picture Here>

Summary

• Overview

• Detail

• Comparing CDC modes

• CDC with Oracle Warehouse Builder

• More information

• Q&A

Page 44: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс

For More Information

http://search.oracle.com

or

oracle.com

Change Data Capture

Page 45: Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables SQL, PL/SQL, Java Transform Change Data Capture & Streams • Прощеинтерфейс