Database
 sql >> база данни >  >> RDS >> Database

Инкрементална репликация на данни в IRI Workbench

Първата ни статия за репликацията на данни в графичния интерфейс на IRI Workbench за NextForm (издание на DB) или Voracity демонстрира как да копирате и трансформирате данни, докато се преместват от Oracle към две цели. Тази статия показва как да синхронизирате постепенно производствена и архивна таблица в отделни бази данни.

В този случай производствената база данни е Oracle, резервната база данни е MySQL, а таблицата е с име SG_TRANSACTIONS и в двете. Има редове за транзакции, които съдържат номера на сметката, вида на транзакцията, датата на транзакцията и сумата на транзакцията с имената на колоните ACCT_NUM, TRANSTYPE, TRANS_DATE и TRANS_AMOUNT.

Имайте предвид, че можете също да създавате таблици, като дефинирате и изпълнявате оператори в SQL файлове в IRI Workbench.

Изпълнете съветника

В IRI Workbench има съветници, които могат да се използват за създаване на скрипт за мигриране, който ще копира редовете от една таблица в друга. В този случай ще репликираме данните от таблицата ORACLE SG_TRANSACTIONS в MySQL таблицата SG_TRANSACTIONS.

Преди това създадох проекта Репликация. Трябва да щракнем върху тази папка в Project Explorer за да маркирате проекта, преди да стартирате съветника. Това гарантира, че съветникът ще запише моя скрипт за работа в тази папка. Нашата задача за репликация ще бъде създадена чрез съветник, достъпен от Менюто NextForm в лентата с инструменти.

За да стартирате съветника, щракнете върху стрелката до иконата NextForm. Имайте предвид, че в предишната статия използвахме Нова задача за преформатиране съветник, защото една от целите е филтрирана, маскирана и преформатирана. Тъй като този случай е директно репликация, ще използваме Ново задание за миграция от един източник вместо това съветник.

На първия екран на съветника, наречен Файл със спецификация на заданието , проверете дали Папката полето има Репликация като стойност (име на проекта). В Име на файла поле, въведете името на скрипта за работа, който създаваме; Нарекох го SG_Transaction_Transfer. Изберете Създаване на скрипт бутон за избор, след което изберете Напред за да отидете на Миграция от един източник прозорец.

Под Информация за източника , изберете Преглед бутон до Източник поле. Сега изберете ODBC бутон за избор в Източник на данни прозорец и щракнете върху Преглед бутон.

В Избор на ODBC таблица прозорец, изберете DSN от падащия списък; след това изберете Име на таблицата, и щракнете върху OK . ODBC се използва за свързване към нашата изходна и целева база данни при преместване на данни с помощта на нашите скриптове за работа. Щракнете върху OK отново, за да се върнете към Миграция от един източник прозорец.


Разгледайте или открийте вашите изходни метаданни

Всички IRI програми изискват оформления на метаданни за вашите източници на данни и цели във формат на стандартен файл за дефиниране на данни (DDF). Тези оформления обикновено се създават веднъж, съхраняват се централно и се използват като препратки за вашите картографии и модели.

Ако вече е създаден файл с метаданни, тогава под Информация за източника , щракнете върху Преглед бутон до Метаданни поле. В Отворени метаданни прозорец, изберете файла с метаданни в Съвпадащи елементи поле, което дефинира колоните в SG_TRANSACTIONS маса. След това щракнете върху OK за да се върнете към Миграция от един източник прозорец.

Ако трябва да създадете файла с метаданни сега, изберете Откриване бутон. Това ви отвежда до Настройка Опции прозорец. Уверете се, че папката е /името на вашия проект /метаданни. В Име на файла поле, въведете името на файла с метаданни и щракнете върху Напред . В Идентификация на източника на данни прозорец, проверете дали полетата са попълнени правилно и щракнете върху Напред за да отидете в Преглед и редактор на полеви данни прозорец.

В горната половина на прозореца има имената на колоните и извадка от записите в таблицата, ако има такива. Долната половина има полето Име да се използва в скрипта за работа, еквивалентните данни на IRI Тип за оригиналната база данни Тип източник , и порядъкът Позиция на полето (колона). Щракнете върху Край .


Вече сте отново в Миграция от един източник прозорец.

Дефинирайте целта

Под Информация за целта , изберете Преглед бутон до полето за Цел . Сега в Целта за данни прозорец, изберете ODBC бутон за избор и щракнете върху Преглед бутон до ODBC поле. След това изберете изходния DSN и Име на таблица (Twister MYSQL и SG_Transactions) в Избор на ODBC таблица прозорец. Не забравяйте да изберете квадратчето за Копиране на метаданни от източник . Щракнете върху OK и щракнете върху OK отново.

Цялата необходима информация вече е в Миграция от един източник прозорец. Щракнете върху Край .


Скриптът на контролния език NextForm SG_Transaction_Transfer.ncl е създаден и може да се разглежда в текстов редактор с цветови кодове на IRI Workbench, съобразен със синтаксиса.

Репликиране на новите записи

Този скрипт ще копира всички редове, които съществуват в SG_TRANSACTIONS таблица в Oracle към същата наименована таблица в MySQL. Но след първото изпълнение искаме само да копираме нови редове в резервната таблица. За да направим това, трябва да добавим оператор /QUERY към входната секция на скрипта за задание, така че само най-новите редове да се обработват всеки път, когато стартирате заданието (ad hoc или по график).

За да промените скрипта от редактора на IRI Workbench, щракнете с десния бутон върху тялото на скрипта. Изберете IRI , след това Редактиране на източници . В Източници на данни диалогов прозорец, изберете Редактиране на опции за източник .

В долната част на Опции за източника прозорецът е Заявка поле. Тук добавяме оператора на SQL заявка, който ще избере само най-новите редове от таблицата на Oracle. Ще приемем, че това е процес в края на месеца. Инструкцията QUERY по-долу филтрира редовете за едномесечен интервал, но можем да изберем всеки интервал. Вместо да използваме конкретни дати в скрипта, бихме могли да използваме и променливи на средата, за да посочим интервала.

select * from NIGHTLY.SG_TRANSACTIONS where to_char(TRANS_DATE, 'YYYY-MM-DD') > 
'2016-11-30' AND  (to_char(TRANS_DATE, 'YYYY-MM-DD') < '2017-01-01')"

Сега щракнете върху OK , след което Край за да актуализирате и запишете нашия оригинален скрипт за работа, създаден от съветника, с новия оператор /QUERY вътре:

Когато скриптът се изпълнява за първи път, операторът /QUERY трябва да бъде коментиран, защото искаме всички записи да бъдат копирани. След това искаме да стартираме с оператора /QUERY, за да репликираме редове от интервал от време, който все още не е копиран в резервната таблица.

Това задание може да се изпълнява от графичния интерфейс или командния ред, където се лицензира изпълним файл NextForm DB, Voracity или CoSort (sortcl).

Ето извадка от редове в производствената таблица:

И ето извадка от редове в таблицата за архивиране, преди да стартирате архивирането в края на декември. Така че редовете в тази таблица в момента преминават само до края на ноември.

След като изпълним нашата задача за репликация с оператора /QUERY в него, само декемврийските записи се добавят към таблицата за архивиране. Забележете, че в производствената таблица има един запис от януари, но този запис не е копиран в таблицата за архивиране, тъй като стойността на датата за този ред е извън посочения от нас диапазон.

Възможно е също да добавите функции за маскиране на ниво колона към всяка цел, както показва заданието по-долу:

Вижте този пример за репликация между Oracle и MongoDB. За помощ при възпроизвеждане на данни на еднократна или повтаряща се основа, изпратете имейл на [email protected].


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пример за подобряване на производителността на заявката с индекси

  2. Как да инсталирам SQLcl на Windows?

  3. Броячи на PerfMon на коляното:Продължителност на живота на страницата

  4. Как да коментирате в SQL

  5. Основи на табличните изрази, част 11 – изгледи, съображения за модификация