Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables...

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

Transcript of Change Data Capture (CDC) - OracleChange Data Log Miner and Streams Oracle Database 11g DW Tables...

<Insert Picture Here>

Change Data Capture (CDC)

• Обзор

• Детали

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

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

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

• Q&A

<Insert Picture Here>

Обзор

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

• Два метода

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

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

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

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

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

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

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

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

Все

строки

Только

изменения

История 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 или выше как источника

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)

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

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

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

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

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

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

Logfiles

Logical Change Data

Log Minerand

Streams

Oracle Database 11gDWTables

SQL, PL/SQL,Java

Transform

Change Data Capture & Streams

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

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

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

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

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

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

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

<Insert Picture Here>

Детали

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

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

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

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

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

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

• Many implementations use one subscriber

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

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

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

Database Logging

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

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

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

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

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

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

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

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

Supplemental Logging

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

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

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

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

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

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

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

• Relevant for updates

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

SOURCE_TABLE

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

SOURCE

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

SOURCE_TABLE

Начальные

данные

SOURCE

ETL

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

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

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

CHANGE_TABLE

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

SUB_VIEW

SOURCE PUBLISHER SUBSCRIBER

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

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

SUB_VIEW

Deleted

Updated

Inserted

Updated old

Updated new

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

SOURCE PUBLISHER SUBSCRIBER

Inserted

Deleted

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

SOURCE PUBLISHER SUBSCRIBER

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

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

Updated

Inserted

Updated old

Updated new

Inserted

Deleted

Updated old

Updated new

Inserted

Deleted

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

SOURCE PUBLISHER SUBSCRIBER

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

данных

More changes More changes

Deleted

Updated

Inserted

Updated old

Updated new

Inserted

Deleted

Updated old

Updated new

Inserted

Deleted

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

SOURCE PUBLISHER SUBSCRIBER

More changes More changes

ETL

Deleted

Updated

Inserted

Updated old

Updated new

Inserted

Deleted

Updated old

Updated new

Inserted

Deleted

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

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

SOURCE PUBLISHER SUBSCRIBER

More changes More changes

Ничего

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

SUB_VIEW

Deleted

Updated

Inserted

Updated old

Updated new

Inserted

Deleted

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

SOURCE PUBLISHER SUBSCRIBER

More changes More changes

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

More changes

Deleted

Updated

Inserted

Updated old

Updated new

Inserted

Deleted

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

SOURCE PUBLISHER SUBSCRIBER

More changes More changes

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

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

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

CDC

More changes

Deleted

Updated

Inserted

<Insert Picture Here>

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

Synchronous CDC

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

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

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

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

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

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

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

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

Asynchronous Autolog Online

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

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

• Standby logs

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

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

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

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

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

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

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

Asynchronous Autolog Archive

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

• Same as standby database

• Standby logs

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

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

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

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

• Только на supplemental logging

Asynchronous Hotlog CDC

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

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

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

• Только на supplemental logging

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

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

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

Asynchronous Distributed Hotlog CDC

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

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

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

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

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

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

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

Сравнение режимов 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

<Insert Picture Here>

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

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

CDC With OWB

• Initial configuration and setup

• Manual

• Daily use and incremental ETL

• Warehouse Builder

Define Reusable Components

Define Initial Data Load Mapping

Initial LoadUse Reusable Component

Define Incremental Data Load

Incremental LoadUse Reusable Components

Define Process Flow Sequence

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

Demo: Asynchronous CDC

Параметры

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

<Insert Picture Here>

More information

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/

<Insert Picture Here>

Summary

• Overview

• Detail

• Comparing CDC modes

• CDC with Oracle Warehouse Builder

• More information

• Q&A

For More Information

http://search.oracle.com

or

oracle.com

Change Data Capture