2 Mart 2017

ETL Informatica & Data Warehouse DWH Testing ve ETL Süreçleri

ETL Informatica & Data Warehouse DWH Testing

ETL (Extract, Transform, Load) işlemi ham verinin kaynaktan alınıp, bu kaynak büyük veri deposu DWH Datawarehouse olabilir daha sonra Datanın istenilen kurallar çerçevesinde dönüştürülüp (Transform) veri ambarına veya Data Mart'lara yüklenmesi (Load) işlemine ETL süreci denir. ETL süreçlerinin geliştirme ortamı ise Informatica PowerCenter aracıdır.

Informatica PowerCenter Workflow Manager aracı genel olarak farklı Database'ler den (RDBMS) Oracle, IBM DB2, Microsoft SQL Server, TERADATA, IBM Netezza, SYBase, Excel, Flat File gibi birçok ortamdaki kaynak Dataları alıp tek bir ortamda toplamaya ve bu Dataları işlemeye yarar. İçerisinde Power Center Designer, Workflow Monitor ve Workflow Manager gibi uygulamalar bulunur.

ETL Informatica & Data Warehouse DWH Testing

Power Center Designer: Target Table dediğimiz asıl tabloya ulaşarak ETL işlerinin tasarlanmasına yardımcı olur. Bir çok kaynaktan gelen verilerin tek bir platformda derleme yapıp, üzerinde istenen işlemleri yaparak hedef tabloya(Target Table) kadar Datanın ulaşmasını sağlayan Mappinglerin tasarımında kullanılır. Bir nevi ETL sürecinin yol haritasını bu kısımda yaparız.

Workflow Manager: İş akışının sağlanmasında kullanılır. Bir tablonun ETL süreci bazen tek bir işten olmuşmaz. Bazen bir dosya beklenir veya Batch bir iş beklenir daha sonra hedef tablo doldurulur başarılı bitmiş ise  işin sonunda gerekli parametreler SET edilir. Bu tüm süreç bir iş akışıdır. ETL'de bu akışı Workflow Manager sağlar.

Workflow Monitor: Çalışan ETL akışının çalışma durumunu izler. Hata alan işlerin ne hata aldıkları, biten işler, çalışma süreleri, CPU ve RAM tüketimleri gibi bilgiler bu uygulamadan izlenir.

Data Mart ve Data Warehouse DWH arasındaki farkı açıklayacak olursak Data mart, Departman verilerini tutar. Örnekle finans, yazılım ya da sistem destek departmanları gibi. Data Warehouse ise bütün şirketin verilerini depolar. İstatistik ve iş zekası için kullanılan programlar ise; SAS, SPSS ve QlikView örnek verebiliriz. Veri(Data) ve bilgi arasındaki fark ise Veri işlendikten sonra bilgi olur. Yani bilginin işlenmemiş haline veri diyoruz.

ETL Informatica & Data Warehouse DWH Testing ve ETL Süreçleri

Genel ETL bilgisinden sonra ETL süreçleri testleri nasıl yapılır konusuna geçebiliriz. ETL Testing için genel olarak aşağıdaki beceriler gereklidir;
- SQL, T-SQL, DB2, PL/SQL Bilgisi
- Linux/Unix Basic Komut Bilgisi (Shell Commands)
- DWH(Data Warehouse) Data Modeli Bilgisi, Data Mart (Mapping Okuma)
- Business Intelligence Testing

DWH Testing = ETL Testing(Informatica) = BI Testing(OBIEE)

ETL geliştirme sürecinden bahsedecek olursak Developer birçok farklı veri tabanı yapısından veri çeker (IBM DB2, Oracle) bu verileri belli kurallar çerçevesinde ve ihtiyaç duyduğu tablo ve kolonlardan çekmektedir. Temelde Developer DB2'dan veri çekmek için DB2 SQL, Oracle'dan veri çekmek için PL/SQL dillerini kullanarak SQL Script'ini yazar. ETL'de bu SQL'ler dönüşerek ETL'in kendi SQL Syntax yapısına dönüşür ve siz burada manüel geliştirme ve ekleme yapabilirsiniz.

ETL Testleri için gerekli olan başlangıç bilgisi kaynak tablolardan (DWH) ne çekilmek istenildiği hangi kolon, tablo ve kurallar çerçevesinde hangi Datanın alınmak istendiğine dair Teknik Analiz veya Teknik doküman gereklidir. Bu dokuman sonucu Oracle, IBM DB2 veya başka ortamlarda SQL Script Tester tarafından yazılır ve istenilen Data yapısı TEMP tabloya atılarak veri filtrelenmiş olur. Daha sonra bu Test tablosu üzerinden Data nerede kullanılacak, nereye yüklenecek ve ne kadarı Load edilecek, Ne ile karşılaştırılacak bu bilgiler doğrultusunda ETL testi yapılır.

Genelde Teknik dokümanda Mapping akışı anlatılarak Target Table ve istenilen Data modeli çıkartılabilir. ETL Testleri için ihtiyaçları ve yapılacakları genel olarak madde şeklinde yazacak olursak;
- Datawarehouse ve data modeli hakkında gerekli bilgi.
- Datanın ne kadar çabuk ve hızlı geldiğini test etmek için Performance Testi(Performance Testing)
- SQL Script doğru yazılmış mı ve Data hızlı geliyor mu Performans Testi.
- Data modelin doğruluğu (Validate)
- Arayüzde data ile yapılacak işlemin Fonksiyonel ve Sistem Testi.
- Data Mapping Sheet (Gerekli Test Dokumanı)
- Target SQL Script/Example Target Tables SQL Script (Gerekli Test Dokumanı)
- DWH-Data Mart Workflow Diagram (Gerekli Test Dokumanı)
- Excel ile Duplicate verileri silerek tekilleştirip test yapmak.
- Data sayısı (COUNT) kontrolü.
- Data karşılaştırma ve Datanın doğruluğu (Excel VLOOKUP)
- NULL değerler var mı veya geliyor mu kontrolü.
- ETL Test Senaryolarını hazırlamak. Data Test Case yöntemi bu işleme örnektir.

ETL Informatica & Data Warehouse DWH Testing ve ETL Süreçleri

Expression Transformation ETL içindeki Transformation için kullanılan temel fonksiyonlar ise;

IIF, DECODE, LOG, POWER, SQRT, GET_DATE_PART, IS_DATE, DIFF_DATES, (ISNULL), (REPLACESTR), (TO_DECIMAL, TO_CHAR, TO_DATE), CONCAT, INITCAP

ETL Informatica & Data Warehouse DWH Testing ve ETL Süreçleri

Yukarıdaki gibi olup Expression Editor içinde Edit ettiğiniz tablo veya kolona manüel kodlama yapabilir ve yeni SQL kuralları ekleyebilirsiniz.

ETL Araçları
Informatica PowerCenter Workflow Manager
IBM InfoSphere DataStage
Ab Initio Software
Oracle Data Integrator

ETL Informatica & Data Warehouse DWH Testing ve ETL Süreçleri

ETL, Data Migration ve Test Yöntemleri;

1) ETL ile veri taşıma yaparken önce Datanın çekileceği veri tabanında hangi tablo ve kolonlardan hangi bilgi ve hangi kurallar veya dönüştürmeleri sonucu çekilecek önce bu belirlenir, teknik tasarım dokümanı yazılır sonrasında SQL Query yazılır ve İlgili tabloların DDL scriptleri çıkartılır.

Örnekle siz MR adlı bir Database'den MEMBERS tablosundaki bazı bilgileri başka bir Database olan HR içindeki EMPLOYEES kısmına taşıyacaksınız. Siz SQL Query'i  MR Database içinde çalıştıracaksınız ama Target Tables(Hedef Tablo) HR.EMPLOYEES'e göre Alias olması lazım. Bu şekilde taşıma yöntemi daha iyi olacaktır.

SQL Query;
TABLE1 AS TARGET_TABLE1,
TABLE2 AS TARGET_TABLE2,
TABLE3 AS TARGET_TABLE3

Yukarıdaki sorgu çekildikten sonra Data kontrol edilir ve MR Database'den HR Database'e Data taşınır. Fakat Datayı taşırken direk EMPLOYEES tablosuna değilde Geçici bir Temporary Table TEMP_EMPLOYEES içine taşınır Data burada doğruluk kontrolünden geçer sonra EMPLOYEES tablosu içine gönderilir.

2) Data taşımada Server(Alt yapı) kısmında SQL Query yazıp Stored Procedure oluşturarak ilgili Batch ile de çalıştırıp taşıyabilirsiniz fakat Datanın boyutu büyükse ETL daha doğru bir yöntem olacaktır.


Kaynaklar
en.wikipedia.org/wiki/Metadata (MetaData English)
www.informatica.com (Informatica Power Center)
en.wikipedia.org/wiki/Informatica (Informatica English)
en.wikipedia.org/wiki/IBM_InfoSphere_DataStage (IBM InfoSphere DataStage English)
en.wikipedia.org/wiki/Ab_Initio_Software (Ab Initio Software English)
en.wikipedia.org/wiki/Oracle_Data_Integrator (Oracle Data Integrator English)
İlişkisel Veri Tabanı Yönetim Sistemi (RDBMS) (Türkçe)
Relational Database Management System (RDBMS) (English)
Online Analytical Processing (OLAP) (English)
OLTP (Online Transaction Processing) İlişkisel Veri Tabanı Sistemi
en.wikipedia.org/wiki/IBM_DB2 (IBM DB2) (English)
Veri Ambarı (Türkçe)
Oracle Business Intelligence Enterprise Edition (OBIEE) (English)
www.youtube.com/user/informaticavideosall (Informatica Video)

İş Zekası (Business Intelligence BI)
en.wikipedia.org/wiki/Business_intelligence (Business Intelligence BI)
İş Zekası (Business Intelligence BI)
en.wikipedia.org/wiki/Qlik (QlikView)
www.qlik.com (QlikView)
en.wikipedia.org/wiki/Big_data (Big Data)
Büyük Veri (Big Data)
tr.wikipedia.org/wiki/SPSS (IBM SPSS Statistics)
en.wikipedia.org/wiki/SAS_(software) (SAS Statistical Analysis System)