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

Инкрементално маскиране и картографиране на данни:Откриване на промени и актуализиране...

Инкременталната репликация на данни, маскирането, интеграцията (ETL) и други операции за опресняване на данни са често срещани в често актуализирани среди на бази данни. Тези задачи изискват откриване на допълнения и актуализации към таблици. Такива динамични операции са лесни за автоматизиране в работните потоци на IRI Voracity, проектирани и изпълнявани в IRI Workbench (WB).

Тази статия съдържа пример за работен процес, който потребителите на изданието на Voracity, FieldShield, CoSort или NextForm DBMS могат да прилагат, за да проверяват редовно за промени в таблица с източник (Oracle в този случай), за да решат кога да преместят данните в нова цел (MySQL). Той също така показва как данните могат да бъдат маскирани условно като част от този процес. Имайте предвид, че IRI също така работи върху базиран на дневник подход за увеличаване на данните в реално време без нужда от стойности на делта колони.

Промените могат да бъдат заредени в различни бази данни или файлове, като се използва команден файл или шел скрипт. Това може да се направи с помощта на времева марка и специфични полета в изходната таблица. Проверката за грешки също е включена и може да се предприемат действия.

Този пример е създаден и изпълняван на машина с Windows. Може лесно да се модифицира, за да работи на Linux или Unix платформа.

Създаването на пакетния файл е лесно с помощта на диаграма на потока на Voracity в WB. В този пример изходната таблица съдържа колони с име CREATED_DATE и UPDATED_DATE които са важни в тази работа.

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

  • заданието се изпълнява в определена директория
  • променлива на средата се задава с помощта на времевата марка на последното изпълнение на задание
  • текущият времеви печат е записан
  • текущите промени са уловени
  • нивото на грешката се проверява и се предприема действия, ако е успешно или не
  • текущата дата за време презаписва последното времеви клеймо на изпълнение
  • в целта се използва правило за редактиране на имейли, завършващи на „edu“
  • в целта се използва правило за частично редактиране на полето SSN.
  • променените данни се зареждат в MySQL
  • нивото на грешката е проверено, временният файл с времеви отпечатъци се преименува

Всеки блок задачи в работния процес е обяснен по-долу. Двата пурпурни блока са блокове за преобразуване на картографиране и представляват скриптове за задание на CoSort SortCL. Диаграмите за съпоставяне и скриптовете за работа, представени от всеки от блоковете, са показани по-долу за по-голяма яснота. За инструкции за изграждане на работни потоци на Voracity от палитрата вижте тази статия.

Промяна на директория

Този блок променя текущата работна директория в посочената.

Задайте ПОСЛЕДНО ВРЕМЕ

Този блок на командния ред задава променлива на средата, наречена LASTTIME . Стойността, зададена на променливата, е съдържанието на файла LastTime.txt . Печатът за време в този файл е клеймото за време, което е записано по време на последното изпълнение на това задание. Ако това е първото изпълнение, този файл ще трябва да бъде направен ръчно с произволен времеви печат с дата преди изпълнението на тази задача.

Този файл съдържа един ред:„2008-09-10 09:39:23.5“

Timestamp.scl

Тази задача използва програмата SortCL за запитване на изходната база данни за текущото време. Това клеймо за време се записва във файл, наречен LastTimeTemp.txt . Причината да се съхранява във временен файл е така, че както текущите, така и последните времеви печати могат да бъдат запазени, докато не се появи проверка за грешка.

Важно е времевата марка да идва от базата данни, а не от локалната машина. Това избягва проблеми, при които базата данни и средата за изпълнение не са синхронизирани.

Диаграмата за съпоставяне и сериализираният скрипт за това задание са както следва:

Changes.scl

Тази работа извършва основното извличане, трансформация, натоварване. Входът е изходната таблица в Oracle, а изходът е подобна форматирана таблица в MySQL:

В секцията за въвеждане, към изходната таблица се изпраща заявка за всички записи, които имат CREATED_DATE или UPDATED_DATE по-голямо от променливата на средата LASTTIME . Заявката е „SELECT * FROM SCOTT.CLIENT WHERE CREATED> TO_TIMESTAMP(\'$LASTTIME\', \'YYYY-MM-DD HH24:MI:SS.FF1\') ИЛИ (АКТУАЛИЗИРАНО> TO_TIMESTAMP(\'$LASTTIME\) ', \'ГГГГ-ММ-ДД HH24:MI:SS.FF1\'))".

Освен това е добавено условие за проверка на EMAIL колона за данни, завършващи на „edu“. Това ще се използва във функция за условно маскиране на данни в изхода. В изхода, If-Then-Else изявлението се добавя към EMAIL колона. Той използва предварително създаденото условие за тестване на данните. Ако данните завършват на „edu“, тогава имейл адресът се редактира. Ако не, имейл адресът се копира от входа.

В SSN се използва втора функция за редактиране колона. Редактира първите три знака, напуска тирето, редактира следващите два знака, напуска тирето и оставя последните четири знака. Например ***-**-6789.

По-долу е описаният по-горе сериализиран скрипт за задание SortCL, за да можете да разгледате заявката и условния синтаксис, включени в инкременталните делти:

Грешка CoSort

Блокът за решение проверява променливата ERRORLEVEL за да се уверите, че е върнал 0 (за успех) след изпълнение на заданието SortCL по-горе. Ако не е, задачата продължава до КРАЙ блок, където работата е прекратена. Ако върне истината, задачата продължава към следващия блок.

Преименуване на LastTimeTemp

Този команден блок копира съдържанието на LastTimeTemp.txt към LastTime.txt . Това записва по-рано заснетото текущо времево клеймо във файла, което да се използва за следващото изпълнение на задание.

Пакетен файл

Пакетният файл и скриптовете за трансформация се създават, когато диаграмата на потока (показана по-горе) се експортира. Копие на пакетния файл е по-долу. Всеки блок добавя изпълними редове към пакетния файл.

Планировчик на задачи

С помощта на Windows Task Scheduler този пакетен файл може да се изпълнява многократно, за да се уловят промените в изходната база данни.

Заключение

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

Свържете се с [email protected] или с вашия представител на IRI за повече информация или помощ с вашия случай на употреба.


  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. Групиран агрегатен избутване

  3. Подаване на таблица с данни като параметър към съхранените процедури

  4. Всичко, което трябва да знаете за нормализирането на базата данни

  5. Свържете ODBC приложения на Windows към Zoho CRM