Jumat, 27 November 2009

PACKAGE PKG_DY_TP php oracle

CREATE OR REPLACE PACKAGE PKG_DY_TP AS
TYPE ViewRecTyp IS RECORD(
sts_code mis_adhoc_trans.trans_status%type
,trans_id mis_adhoc_trans.trans_id%type
,sts_desc mis_adhoc_status.sts_desc%type
,trans_summary mis_adhoc_trans.trans_summary%type
,ana_name mis_adhoc_analyst.ana_name%type
,dev_name mis_adhoc_developer.dev_name%type);

TYPE ViewCurTyp IS REF CURSOR RETURN ViewRecTyp;

PROCEDURE MAIN;
PROCEDURE PROC_DY_TP
(
pDev VARCHAR2
,in_file utl_file.file_type
);
PROCEDURE VIEW_TP
(
pDev VARCHAR2
,cur_view_tp OUT ViewCurTyp
);
FUNCTION GET_COLOR(pSts VARCHAR2) RETURN VARCHAR2;
END;

CREATE OR REPLACE PACKAGE BODY PKG_DY_TP AS

vchFileName VARCHAR2(100) := 'Daily_TP.html';
vchLocfile VARCHAR2(100) := LOG_PROCESS_NEW.GET_FOLDER('OUTPUT');

PROCEDURE VIEW_TP
(
pDev VARCHAR2
,cur_view_tp OUT ViewCurTyp
) IS
BEGIN
OPEN cur_view_tp FOR
SELECT pkg_dy_tp.get_color(mat.trans_status) sts_code
,mat.trans_id
,mas.sts_desc
,mat.trans_summary
,maa.ana_name
,mad.dev_name
FROM mis_adhoc_trans mat
,mis_adhoc_analyst maa
,mis_adhoc_developer mad
,mis_adhoc_status mas
WHERE mat.trans_pic_analyst = maa.ana_code
AND mat.trans_pic_developer = mad.dev_code
AND mat.trans_status = mas.sts_code
AND DECODE(pDev, 'ALL', '1', mat.trans_pic_developer) = DECODE(pDev, 'ALL', '1', pDev)
ORDER BY mad.dev_code;

END;

FUNCTION GET_COLOR(pSts VARCHAR2) RETURN VARCHAR2 IS
BEGIN
CASE pSts
WHEN 3 THEN
RETURN '"#3366FF"'; --biru
WHEN 4 THEN
RETURN '"#FFFFFF"'; --putih
WHEN 9 THEN
RETURN '"#CC6699"'; --merah
WHEN 1 THEN
RETURN '"#FFCCFF"'; --merah muda
WHEN 2 THEN
RETURN '"#00CC33"'; -- hijau
ELSE
RETURN '"#FFFFFF"'; --putih
END CASE;

END;

END;

Php nya :

$p_id = $_POST['p_id'];
$p_dev = "ALL";
$conn = oci_connect('KONSDEV','KONSDEV', 'DB_18_39') or die;
$sql1 ="begin pkg_dy_tp.view_tp(:p_dev, :cur_view_tp); end;";
$stmt1=oci_parse($conn,$sql1);
$cur_view_tp=oci_new_cursor($conn);
if (!$cur_view_tp)
{
$err=oci_error();
die ($err['message']);
}
if (!oci_bind_by_name($stmt1,":p_dev",$p_dev,32))
{
$err=oci_error($stmt1);
die ($err['message']);
}
if (!oci_bind_by_name($stmt1,":cur_view_tp",$cur_view_tp,-1,OCI_B_CURSOR))
{
$err=oci_error($stmt1);
die ($err['message']);
}

@oci_execute($stmt1);
@oci_execute($cur_view_tp);
@oci_fetch_all($cur_view_tp, $view_records, null, null, OCI_FETCHSTATEMENT_BY_ROW) ;

foreach ($view_records as $fld)
{
//echo "";
echo "";
echo "Update";
echo "View";

?>





}
oci_close($conn);
?>





Minggu, 15 November 2009

Komponen Data Warehouse


Komponen Data Warehouse

Bidang Data Warehouse pada dasarnya adalah apa yang perlu dilakukan untuk membuat Data Warehouse , dan apa yang dilakukan dengannya. Ini adalah proses membuat, mempopulasikan dan kemudian melakukan query pada data warehouse dan dapat melibatkan sejumlah teknologi diskrit seperti :

Identifikasi sistem sumber : untuk membangun data warehouse, data yang sesuai harus terlokasi dengan baik. Biasanya, hal ini akan melibatkan sistem OLTP (On-Line Transaction Processing) saat ini dimana informasi “hari ke hari” tentang bisnis berada, dan data historis periode sebelumnya, yang mungkin terkandung dalam beberapa bentuk “warisan” sistem. Seringkali sistem warisan ini bukan berbentuk database relasional, sehingga dibutuhkan banyak upaya untuk mengambil data yang sesuai.

Desain dan Penciptaan Data Warehouse : tahap ini menjelaskan proses perancangan warehouse, yang dengan hati-hati diambil untuk memastikan bahwa desain mendukung jenis query yang akan digunakan untuk warehouse. Ini adalah usaha yang memerlukan pemahaman baik itu skema database yang akan dibuat, dan banyaknya interaksi dengan komunitas pengguna. Desain seringkali merupakan proses yang berulang-ulang dan harus dimodifikasi beberapa kali sebelum model dapat distabilkan. Pada tahap ini dibutuhkan kehati-hatian, karena sekali model diisi dengan data dalam jumlah besar, beberapa di antaranya mungkin sangat sulit untuk diciptakan kembali, sedangkan model tidak dapat diubah dengan mudah.

Akuisisi Data : ini adalah proses perpindahan data perusahaan dari system sumber ke dalam warehouse. Dan seringkali proses yang paling memakan waktu dan biaya di dalam proyek data warehousing, dan dilakukan dengan produk perangkat lunak yang dikenal dengan ETL (Extract / Transform / Load) Tools. Saat ini ada lebih dari 50 jenis ETL Tools di pasaran. Fase akuisisi data ini bias memakan biaya yang sangat banyak dan waktu hinggga berbulan-bulan atau bahkan bertahun-tahun untuk menyelesaikannya. Akuisisi data kemudian berkelanjutan, proses yang dijadwalkan, yang mana dieksekusi untuk menjaga warehouse saat ini ke sebuah waktu dengan periode yang ditentukan. (yaitu penyegaran kembali warehouse setiap bulan).

Perubahan data tangkapan : pembaruan periodik warehouse dari sistem transaksional menjadi rumit dengan sulitnya mengidentifikasi data mana pada sumber yang telah berubah sejak update terakhir. Hal ini disebut sebagai “perubahan data capture”. Bidang ini menjadi sebuah bagian tersendiri dan banyak produk di pasaran untuk mengatasinya. Beberapa produk yang digunakan di bagian ini adalah Replication Server, Publish/Subscribe, Triggers and Stored Procedures, dan Database Log Analysis.

Pembersihan data : Hal ini biasanya dilakukan bersamaan dengan akuisisi data (dapat juga menjadi bagian dari “T” dalam “ETL”). Sebuah data warehouse yang berisi data yang tidak benar tidak hanya tidak berguna, tetapi juga bisa sangat berbahaya. Ide di balik pembuatan data warehouse adalah untuk memungkinkan pengambilan keputusan. Jika, keputusan tingkat tinggi dibuat berdasarkan data yang tidak benar di dalam warehouse, perusahaan dapat mengalami konsekuensi berat, atau bahkan kegagalan total. Pembersihan data adalah suatu proses rumit yang memvalidasi dan bila perlu mengoreksi data sebelum dimasukkan ke dalam warehouse. Sebagai contoh, sebuah perusahaan dapat memiliki tiga data “Nama Pelanggan” dalam berbagai sistem sumber, satu dimasukkan sebagai “IBM”, kemudian satu sebagai “I.B.M” dan yang terakhir sebagai “International Business Machines”. Jelas, ini semua adalah pelanggan yang sama. Seseorang di dalam organisasi harus membuat keputusan yang benar, dan kemudian alat pembersihan data akan mengubah yang lain agar sesuai dengan aturan. Proses ini juga disebut sebagai “data scrubbing” atau “penjaminan kualitas data”. Hal ini dapat menjadi sebuah proses yang sangat kompleks terutama jika beberapa input ke dalam warehouse berasal dari system file mainframe yang lebih tua (biasa disebut “flat file” atau “file sekuensial”)

Data Aggregation : adalah proses yang sering dilakukan selama fase “T” pada ETL. Data warehouse dapat dirancang untuk menyimpan data pada tingkat detail (setiap transaksi), pada beberapa tingkat agregat (data ringkasan), atau kombinasi keduanya. Keuntungan dari data yang diringkas adalah bahwa query khas terhadap warehouse dapat berjalan lebih cepat. Kelemahannya adalah bahwa informasi, yang mungkin diperlukan untuk menjawab query, hilang selama penggabungan. Trade off harus ditimbang dengan hati-hati, karena keputusan tidak dapat dibatalkan tanpa membangun kembali dan merepopulasi warehouse. Keputusan yang paling aman adalah dengan membangun warehouse dengan tingkat detail tinggi, tetapi dengan biaya yang sangat besar.

Setelah warehouse telah dibangun dan diisi dengan data, maka ada kemungkinan untuk mengekstrak informasi yang berarti dari warehouse tersebut yang akan memberikan keunggulan kompetitif dan laba dari investasi. Hal ini dilakukan dengan alat-alat yang masuk dalam kategori “Business Intelligence”.

Business Intelligence : sebuah bidang yang sangat luas. Mengandung teknologi seperti Decision Support System (DSS), Executive Information Systems (EIS), On-Line Analytical Processing (OLAP), Relational OLAP (ROLAP), Multi-Dimensional OLAP (MOLAP), Hybrid OLAP (HOLAP, kombinasi MOLAP dan ROLAP), dan banyak lagi. Business Intelligence dapat dibagi menjadi empat bidang :

  • Alat Analisis Multi-Dimensi : alat yang memungkinkan pengguna untuk melihat dari beberapa sudut yang berbeda. Alat ini sering menggunakan basis data multi-dimensi yang sering disebut sebagai “cube”.
  • Query Tools : alat yang memungkinkan pengguna untuk melakukan perintah SQL terhadap warehouse dan mendapatkan hasi yang diinginkan.
  • Data Mining Tools : peralatan yang secara otomatis mencari pola di dalam data. Alat ini biasanya dikontrol oleh rumus statistik yang kompleks. Cara termudah untuk membedakan data mining dari berbagai bentuk OLAP adalah OLAP hanya dapat menjawab pertanyaan yang pengguna tahu untuk bertanya, sedangkan data mining menjawab pertanyaan yang pengguna terlalu tahu untuk bertanya.
  • Data Visualization Tools : peralatan yang menunjukkan representasi grafis dari data, termasuk gambar data tiga-dimensi kompleks. Teorinya adalah bahwa pengguna dapat “melihat” trend lebih efektif dengan cara ini daripada ketika melihat grafik statistic yang kompleks. Beberapa vendor membuat kemajuan di bidang ini dengan menggunakan Virtual Reality Modeling Language (VRML).
  • Metadata Management : dalam seluruh proses mengidentifikasi, memperoleh, dan query data, pengelolaan metadata terjadi. Metadata didefinisikan sebagai “data mengenai data”. Sebagai contoh adalah sebuah tabel. Tipe data (misalnya sebuah string atau integer) dari kolom adalah salah satu bagian dari metadata, selain itu adalah nama kolom. Nilai actual di dalam kolom untuk baris tertentu bukanlah metadata, itu adalah data.metadata yang disimpan di dalam sebuah repository metadata dan memberikan informasi yang sangat berguna untuk semua alat-alat yang telah disebutkan sebelumnya. Manajemen metadata telah berkembang menjadi sebuah ilmu yang dapat memberikan keuntungan yang sangat besar bagi sebuah organisasi. Hal ini dapat membantu perusahaan di dalam menganalisis dampak perubahan pada tabel database, pelacakan pemilik elemen data individual (“data pelayan”), dan banyak lagi. Hal ini juga diperlukan untuk membangun warehouse, karena alat ETL perlu mengetahui atribut metadata dari sumber-sumber dan target dalam rangka untuk memetakan data dengan benar. Alat BI memerlukan metadata untuk alasan yang sama.

Ringkasan :

Data Warehousing adalah bidang yang kompleks. Kompleksitas teknologi dan interaksi antara berbagai alat-alat, dan poin harga tinggi untuk produk-produk yang dibutuhkan perusahaan untuk melakukan evaluasi teknologi sebelum memulai sebuah proyek pergudangan. Namun, potensi besar laba atas investasi dan keuntungan kompetitif membuat data warehousing menjadi sulit untuk diabaikan.


Data Warehouse Gotchas

Artikel berikut akan sedikit menjelaskan tentang beberapa poin untuk pembangun data warehouse yang mungkin jarang sekali didiskusikan secara jelas di kebanyakan artikel tentang data warehousing.

Anda akan menghabiskan banyak sekali waktu untuk melakukan ekstraksi, pembersihan dan pemuatan data

Angka yang biasa dikutip adalah 80% dari waktu untuk pembangunan data warehouse akan dihabiskan pada bagian ini. (Tidak ada yang pernah menjelaskan bagaimana persentase ini didapat).Tapi, cukuplah untuk dikatakan, bahwa jumlah waktu dari proses kerja pada bagian ini seringkali diremehkan atau kurang diperhatikan. Sebagai catatan bahwa pada poin ini adalah tentang ekstraksi, pembersihan, dan pemuatan.Walaupun sudah banyak orang menyadari bahwa pembersihan data itu rumit, ekstraksi dan pemuatan data adalah sama dengan atau jika tidak lebih rumit.

Meskipun upaya terbaik pada manajemen proyek dilakukan, cakupan proyek akan semakin meluas

Dengan mengartikan data warehousing dari W.H. Inmon, proyek tradisional dimulai dengan syarat-syarat tertentu dan diakhiri dengan data. Proyek data warehousing dimulai dengan data dan diakhiri dengan syarat-syarat. Setelah pengguna data warehouse melihat apa yang dapat mereka lakukan dengan teknologi Y2K, mereka akan meminta lebih banyak. sedikit saran bagi pembangun data warehouse adalah jangan pernah menanyakan pada pengguna data warehouse informasi apa yang mereka butuhkan. Sebaliknya, tanyakan informasi apa yang diinginkan selanjutnya.

Anda akan menemukan masalah dengan sistem yang memberikan data pada data warehouse

Masalah yang belum terdeteksi selama bertahun-tahun akan muncul. Anda diharuskan utuk membuat keputusan apakah akan mengatasi masalah yang kita pikir adalah data warehouse 'read-only' atau memperbaiki sistem pengolah transaksi yang berjalan.

Anda akan menemukan kebutuhan untuk menyimpan data yang tidak terambil oleh sistem yang ada.

Masalah yang sangat umum adalah untuk menemukan kebutuhan untuk menyimpan data yang tidak disimpan di dalam sistem pengolah transaksi. Misalnya, ketika membangun data warehouse untuk laporan penjualan, seringkali ada kebutuhan untuk menyertakan informasi pada off-invoice adjustments yang tidak terekam di dalam sistem entry order. Dalam hal ini, pengembang data warehouse menghadapi kemungkinan untuk mengubah sistem pengolah transaksi atau membangun sistem yang khusus untuk menyimpan informasi yang kurang.

Anda harus memvalidasi data yang tidak divalidasi oleh sistem pengolah transaksi

Biasanya setelah data di dalam warehouse banyak ditemukan ketidak konsistenan dengan field yang berisi informasi deskriptif. Misalnya, beberapa kali tidak ada kontrol yang diletakkan pada nama pelanggan. Karena itu, anda dapat memiliki field dengan nama 'DEC', 'Digital', 'Digital Equipment' di dalam database yang sebenarnya berarti sama. Hal ini akan menimbulkan masalah bagi pengguna warehouse yang mengharapkan untuk melakukan permintaan pada database untuk menyeleksi nama pelanggan. Pengembang warehouse, sekali lagi, mungkin harus merubah sistem pengolah transaksi atau mengembangkan (atau membeli) teknologi penghapusan data.

Beberapa sistem pengolah transaksi tidak menyediakan data secara detail kepada data warehouse.

Masalah ini sering ditemui pada sistem data warehouse berorientasi produk atau pelanggan. Seringkali ditemukan bahwa sistem yang berisi informasi yang ingin dimasukkan perancang ke dalam data warehouse tidak mengandung informasi dasar untuk produk atau tingkat pelanggan. Hal ini yang oleh sebagian orang disebut masalah yang 'diberi'.

Anda akan kehabisan anggaran untuk sumber daya terampil untuk patform sistem yang berjalan.

Sebagai tambahan untuk memahami data dari sistem yang berjalan, anda dapat menemukan manfaat untuk membangun beberapa logika 'pembersih' pada platform sistem yang berjalan jika platform tersebut adalah mainframe. Seringkali pembersihan meliputi pengurutan / penggabungan dalam jumlah besar, tugas dimana pada utilitas mainframe unggul. Juga, anda mungkin menemukan bahwa anda ingin membangun agregrasi pada mainframe karena agregasi juga melibatkan banyak penyortiran substansial.

Banyak pengguna akhir warehouse akan dilatih dan jarang atau tidak pernah menerapkan hasil pelatihan.

Ada sebuah studi yang menyatakan bahwa hanya seperempat dari orang-orang yang mendapatkan pelatihan menjadi pengguna yang baik.Setelah pengguna akhir menerima query dan perangkat laporan, permintaan terhadap laporan tertulis IS dapat meningkat. Fenomena ini telah terlihat di banyak pusat-pusat informasi pada 1980-an. Hal ini muncul karena alat untuk melakukan query dan laporan memungkinkan pengguna untuk mendapatkan yang lebih baik daripada yang mampu dilakukan teknologi. Bagaimanapun, untuk banyak alasan para pengguna tidak dapat menggunakan alat-alat tersebut sendiri untuk menyadari potensinya. Dan dikarenakan banyak laporan yang sangat rumit sehingga keahlian dari IS akan sangat dibutuhkan tidak peduli alat apa yang dimiliki pengguna. Akhirnya, fenomena ini menjadi salah satu poin dari kebutuhan pelatihan.

Pengguna warehouse anda akan mengembangkan aturan bisnis yang berpotensi menghasilkan konflik

Banyak alat-alat data warehouse memungkinkan pengguna untuk melakukan perhitungan. Alat tersebut akan memungkinkan pengguna untuk melakukan perhitungan yang sama dengan cara yang berbeda. Misalnya, anda merangkum penjualan minuman berdasarkan kategori rasa. Juga misalkan bahwa kategori dari rasa termasuk cherry dan cola. Jika anda memiliki merk cherry cola maka ada kesempatan bahwa dua pengguna akan mengklasifikasikan merk tersebut menjadi dua kategori. Anda akan menemukan bahwa ada cara untuk memasukkan beberapa aturan bisnis ke dalam data warehouse. Bagaimanapun, jumlah dari aturan bisnis yang mungkin dimasukkan terlalu besar sehingga anda tidak mampu untuk memasukkan semua peraturan.

Pengguna data warehouse mungkin tidak tahu bagaimana menggunakan data

Setelah bertahun-tahun menggunakan laporan apapun yang telah mereka gunakan, pengguna mungkin tidak tahu data apa yang akan diambil menggunakan alat pendukung keputusan baru mereka. Menggunakan sebuah kata dari sosiologi, pengguna telah 'dikondisikan secara budaya' untuk menggunakan apa yang diberikan kepada mereka dan untuk tidak bertanya lebih banyak.

Data warehousing skala besar dapat menjadi 'latihan' di dalam penyeragaman data

Kadang-kadang ketika kita para pengembang menggabungkan data rinci untuk subyek berbeda, dalam usaha untuk membuat segalanya cocok kita harus sangat berhati-hati. Sebagai contoh, jika sebuah perusahaan menjual makanan hewan dan ban mobil, kita akan lebih berhati-hati dalam membangun database untuk penjualan untuk kedua lini bisnis. Kita harus membuat keputusan apakah bisnis ini sesuai dengan model logika atau fisik yang sama.

'Overhead' dapat memakan jumlah besar pada ruang penyimpanan

Cara yang populer untuk merancang sebuah database relasional pendukung keputusan adalah dengan skema star atau snowflake. sesorang yang menggunakan pendekatan ini biasanya juga membuat tabel agregasi fakta. Jika terdapat banyak dimensi untuk data, kita harus mengetahui bahwa kombinasi dari tabel agregasi dan indeks pada tabel fakta dan tabel agregasi fakta dapat memakan jumlah yang lebih besar daripada data mentah, jika kita menggunakan database multidimensional, perlu diketahui bahwa beberapa produk dihitung terlebih dahulu dan menyimpan data ringkasannya. seperti skema star / snowflake, penyimpanan dari data terkalkulasi ini dapat memakan tempat lebih banyak daripada data mentah.

Waktu yang dibutuhkan untuk membuka data warehouse akan semakin lama

Ada banyak pendekatan dalam melakukan update pada data warehouse. Sebelum kita memutuskan bahwa kita dapat melakukan update menyeluruh, kita harus menentukan waktu yang tepat untuk melakukan pembaharuan.


Kita akan memiliki masalah keamanan, terutama jika kita membuat data warehouse kita dapat diakses melalui web.


Kita akan menghadapi paradoks, semakin kita membuat mudah akses terhadap data warehouse, semakin besar resiko keamanan yang kita hadapi. Karena semakin banyak yang dapat melihat data yang ada. Salah satu cara mungkin dengan melakukan pembatasan terhadap jumlah pegawai yang dapat melakukan akses. Tapi, hal tersebut juga tidak terlalu

membantu, karena para pencuri data akan selalu menemukan jalan lain.


Relasi OLTP, ETL, Business Intelligence, Data Warehouse dan OLAP

Relasi OLTP, ETL, Business Intelligence, Data Warehouse dan OLAP

Apa itu OLTP ?? Kemudian apa yg dimaksud dengan ETL ?? Bagaimana Data Warehouse & Business Intelligence bekerja ?? dan apa perbedaan OLTP dengan OLAP ?? mari kita coba tarik benang merah di antara ke-5 unsur tersebut...., tapi sebelumnya kita cari tau dulu pengertian dari masing2 unsur.

Online Transaction Processing Systems (OLTP) adalah suatu sistem yang memproses suatu transaksi secara langsung(insert,update,delete) melalui komputer yang terhubung dalam jaringan. Sedangkan ETL sesuai dengan namanya (Extract, Transformation and Load), Extract berarti proses pengambilan data dari sumber data,proses pengambilan data ini tidak mengambil keseluruhan data yang ada di database operasional, melainkan hanya mengambil data-data matang saja.

Transform berarti mengubah struktur Database tersebut ke dalam bentuk standart, mengingat data-data yang diambil berasal dari sumber berbeda yang kemungkinan memiliki standarisasi yang berbeda pula. Standarisasi diperlukan untuk nantinya memudahkan pembuatan laporan. Load sendiri adalah proses mengirimkan data yang telah menjalani proses transformasi ke repository(gudang data) akhir.


Data Warehouse bicara mengenai bagaimana data-data yang besar dan beragam disimpan dalam satu repository(gudang data) dan disusun sedemikian sehingga memudahkan pencarian, sedangan Business Intelligence bisa dikatakan sebagai konsep database yang multidimensi sehingga memudahkan analisa dan pengambilan keputusan secara bijak berdasakan informasi yang akurat. Gabungan dari DW dan BI dinamakan Online Analytical Processing Systems (OLAP) yaitu sistem yang dibuat untuk membantu dalam perencanaan, memecahkan masalah dan mendukung keputusan.


Untuk mengetahui lebih jelas relasi antar unsur-unsur tersebut bisa lihat gambar dibawah ini :


Dari situ dapat disimpulkan, bahwa data2 awal yg ada didalam OLTP di olah sedemikian rupa melalui proses ETL, hasil dari pengolahan tersebut menghasilkan bentuk database baru yg dinamakan Data Warehouse, Data Warehouse tidak bisa dipisahkan dengan Business Intelligent, karena BI yg baik didapat dari DW yg baik juga. Hasil dari DW & BI itulah kita bisa menarik kesimpulan dan mengambil keputusan yang dinamakan sebagai OLAP.

Itulah gambaran singkat mengenai OLTP, ETL, DW, BI dan OLAP, Ane yakin anda sudah tau sekilas perbedaan antara OLTP dan OLAP. Ingin tau lebih detail lg perbedaan keduanya ?? ikuti posting selanjutnya ya.........

Business Intelligence dan Data Warehouse

Business Intelligence dan Data Warehouse

Business Intelligence dan Data Warehouse adalah dua hal yang berbeda namun hampir tidak bisa dipisahkan. Data Warehouse bicara mengenai bagaimana data-data yang besar dan beragam disimpan dalam satu repository dan disusun sedemikian sehingga memudahkan pencarian (query), sedangkan Business Intelligence adalah suatu alat yang digunakan untuk menyajikan data-data tersebut sehingga memudahkan analisa dan pengambilan keputusan secara bijak berdasakan informasi yang akurat. Suatu solusi Business Intelligence yang baik memerlukan Data Warehouse yang baik.

Data Warehouse
Data Warehouse yang secara harfiah berarti gudang data, sebetulnya memiliki makna lebih dalam dari sekedar “gudang”. Bill Inmon, yang dianggap sebagai Bapaknya Data Warehouse mendefinisikan bahwa Data Warehouse adalah Database yang memiliki karakter: Subject Oriented, Integrated, Non-volatile, Time Variant.

Subject Oriented
Suatu Data Warehouse harus berorientasi subject atau disusun menurut jenis subyeknya. Suatu data transaksi (OLTP) biasanya disusun berdasarkan jenis transaksi yang ditangani oleh aplikasi transaksi tertentu. Misalnya aplikasi teller suatu bank akan menyimpan data transaksi yang terjadi, misalnya transaksi penarikan atau penyimpanan dana. Tentu saja setiap transaksi, teller akan memasukan data utama dan pendukungnya seperti nomor rekening, nilai transaksi, tanggal, dsb.

Subject oriented (lawan dari transaction oriented) menuntut agar data-data transaksi ini disusun dengan melihat subject areanya. Dalam hal data perbankan tersebut, subject areanya adalah nasabah, jenis transaksi, wilayah, kantor cabang, dsb. Menyusun data menjadi subject oriented berarti memastikan bahwa data tersebut akan dengan mudah disajikan berdasarkan subject areanya. Anda mungkin berfikir bahwa dengan data transaksi yang ada pun kita bisa manampilkan report berdasarkan subject. Anda tidak salah 100%, namun demikian apabila data transaksi ini disimpan berdasarkan transaction oriented, proses query terhadap data tersebut untuk menyajikan suatu report mungkin membutuhkan join banyak table dan bahkan mungkin antara database yang memakan resource cukup besar.
Integrated
Data Warehouse biasanya dibentuk dengan menggabungkan beberapa database yang mungkin berbeda baik dari segi teknologi maupun kodifikasi suatu table referensinya. Untuk menghasilkan subject oriented yang konsisten, data-data dari berbagai sumber harus diintegrasikan. Hal ini berarti teknologi yang beragam harus disatukan dan kode-kode referensi yang mungkin berbeda, contohnya kode wilayah, harus disamakan.

Non-volatile
Data Warehouse idealnya adalah data final dan bukan data yang masih bergerak. Data-data operational biasanya mencakup data-data yang bergerak, seperti Order yang belum diverifikasi atau Transaksi yang belum di-approve. Data-data ini masih memiliki status yang belum final dan dikatakan masih volatile. Untuk menghindari penggunaan data yang salah, Data Warehouse harusnya hanya memuat data-data yang sudah final (dan menjadi history). Untuk memastikan non-volatilitas, Data Warehouse adalah data yang hanya bisa dibaca dan tidak bisa ditulis/dimodifikasi (Read Only).
Time Variant
Karakteristik time-variant lah yang membuat suatu Data Warehouse menjadi sangat berarti untuk analisis. Time-variant berarti memiliki dimensi waktu sebagai variable. Sebagai contoh, apa artinya mengatakan suatu kantor cabang berhasil menjual 1500 items? Tanpa dimensi waktu informasi ini menjadi tidak berarti: apakah 1500 item itu angka hari ini? Bulan ini? Tahun ini? Tahun lalu?

Aspek time variant dari suatu Data Warehouse memberikan kemampuan untuk menyajikan informasi dalam bentuk trend. Hampir semua bisnis saat ini membutuhkan trend analysis untuk melihat performance maupun untuk forecasting.

ETL (Extract, Transform, Load)
Data Warehouse dibangun dengan mengintegrasikan data-data yang berasal dari berbagai sumber data, yaitu database operasional. Dalam suatu perusahaan, data-data operasional biasanya berada pada daerah kekuasaan departemen masing-masing dalam bentuk database OLTP. Untuk melakukan proses integrasi ini Data Warehouse Architect menggunakan suatu aplikasi yang disebut ETL (Extract, Transform, Load).

Sesuai dengan namanya, aplikasi ETL melakukan fungsi-fungsi Extract, Transform dan Load. Proses Extract adalah proses pengambilan data dari sumber data. Disebut extract, karena proses pengambilan data ini tidak mengambil keseluruhan data yang ada di database operasional, melainkan hanya mengambil data-data matang saja. Proses Extract ini harus mengakomodir berbagai macam teknologi yang digunakan oleh sumber data dan diintegrasikan ke dalam databsae tunggal.

Kemudian data-data hasil extract ini menjalani proses transformasi yang pada prinsipnya adalah mengubah kode-kode yang ada menjadi kode-kode standard, misalnya kode propinsi. Hal ini perlu dilakukan mengingat data-data yang diambil berasal dari sumber yang berbeda yang kemungkinan memiliki standarisasi yang berbeda pula. Standarisasi diperlukan untuk nantinya memudahkan pembuatan laporan.
Arsitektur Data Warehouse yang umum biasanya menempatkan satu server database terpisah yang disebut Staging yang berfungsi untuk menangani proses Extract dan Transform ini sebelum dilakukan proses Load ke tujuan akhir Data Warehouse.

Proses Load dalam ETL adalah suatu proses mengirimkan data yang telah menjalani proses transformasi ke gudang data akhir, yaitu Data Warehouse itu sendiri di mana aplikasi reporting dan business intelligence siap mengakses.

Untuk memudahkan pembuatan report dan meningkatkan performance, struktur database dari suatu Data Warehouse biasanya berbentuk Star Schema. Disebut demikian karena bentuk ERD (Entity Relationshio Diagram) dari table-tablenya mirip Bintang (star) (Catatan : Sebetulnya saya tahu bahwa bentuk bintang tidak seperti itu melainkan sama seperti matahari yang kita ketahui yaitu rada bulat, namun demikian untuk menghargai guru-guru saya sejak kecil yang terlanjur memberikan gambar bentuk bintang seperti itu, maka saya ikuti saja).

Selain bentuk Star Scheme, bentuk lain yang sering digunakan adalah bentuk snowflake atau gabungan antara star schema dengan snowflake (starflake).

Reporting & Business Intelligence
Dahulu sekali (sebelum ada teknologi spreadsheet), executive mengandalkan laporan tercetak untuk melihat performance perusahaannya. Proses analisa dilakukan langsung dikepalanya sambil membaca laporan ini. Laporan dicetak dalam berbagai bentuk untuk membantu analisa ini, misalnya di sort berdasarkan field tertentu. Seperti yang anda bayangkan, setelah laporan ini dicetak, maka user tidak bisa melakukan sortir lagi dengan field yang lainnya. Sebetulnya bisa saja kalau memang mau mengurutkan laporan yang sudah dicetak tersebut dengan kunci urutan yang lain, namun hal ini membutuhkan gunting, lem dan waktu yang banyak.

Kemudian lahirlah teknologi spreadsheet seperti Lotus 123 dan Microsoft Excel, maka laporan dapat dibuat lebih “interactive” dengan memberikan users pilihan sorting dan filter yang diinginkan. Pembuatan grafik pun dapat dilakukan dengan mudah. Dengan mengikuti kursus dasar Microsoft Excel yang cuma makan waktu 1-2 hari, seorang executive dapat “bermain-main” dengan data. Namun demikian, masih banyak executive yang lebih senang mengirimkan staffnya untuk kursus, sementara dirinya masih dimanja oleh “pelayanan data” oleh staffnya. Mungkin sang executive punya misi suci untuk meningkatkan kemampuan staffnya atau karena merasa sudah terlalu tua untuk belajar. Alasan yang kedua kayaknya yang lebih masuk akal.

Permasalahan dengan teknologi spreadsheet adalah pada akses terhadap datanya. Apakah data yang di worksheet up-to-date? Butuh effort yang lumayan besar untuk memastikan bahwa data di excel selalu up-to-date. Selain itu MS Excel memiliki keterbatasan jumlah baris data yang bisa disimpan. Beberapa kendala lain adalah bahwa dengan MS Excel, data yang tersedia untuk “bermain-main” terbatas kepada data yang telah di-export ke file excel terebut, ketika dibutuhkan kolom lainnya, maka users harus meminta IT Department untuk menambahkan data tersebut.

Pada awal 90-an lahirlah Business Intelligence yang didahului oleh kemunculan DSS (Decision Support System) dan kemudian Executive Information System (EIS). Business Intelligence lahir untuk menjawab tantangan yang tidak bisa dipenuhi oleh standard reporting, yaitu yang berkaitan dengan empat hal: accessibility, timeliness, format, data integrity. Business Intelligence memiliki sambungan langsung ke Data Warehouse, hal tersebut saja sudah menjawab dua hal yaitu accessibility dan timeliness. User selalu mendapatkan akses terhadap informasi yang dibutuhkan (accessibility) secara cepat (timeliness).

Business Intelligence memberikan kebebasan kepada users untuk mendefinisikan format laporan sesukanya. Sedangkan Data Integrity dipenuhi oleh Data Warehouse di mana BI ini dijalankan.

Salah satu yang menjadi kelebihan dari Business Intelligence adalah dimanjakannya users dengan struktur data yang memudahkan pembuatan report secara self-service dalam bentuk dimensi dan measures. Dengan mengkombinasikan measures dan dimensi yang tepat, users mendapatkan report yang diinginkan. Selanjutnya dia dapat menyajikannya dalam bentuk tabel atau dalam berbagai bentuk grafik yang dapat dipilih. Setelah report disajikan, user diberi fasilitas untuk menyimpan tampilan report tersebut dalam bentuk excel, xml, pdf, jpeg, dll sesuai kebutuhan.

Key Technology Datawarehouse

Key Technology Datawarehouse


Duaberita - Dalam kesempatan ini saya hanya menyampaikan dan memaparkan tentang Key , dan sedikit akan share mengenai Key Tenhnology untuk Datawarehouse. Ini bukan karena saya bisa dengan sendirinya, ataupun bukan dateng dari jatuh dari langit, tetapi karena proses pembelajaran berkat mentor saya yang canggih yaitu Octony. Sekilas dalam tulisan saya sebelumnya saya telah paparkan sedikit mengenai apa itu Datawarehouse dan BI. Berikut merupakan poin-poin penting atau key technology mengenai Datawarehouse, yaitu :

1. Data source dan data target
Dalam Datawarhouse pasti tidak terlepas dari data source , dan juga pasti membutuhkan data target. Seperti yang telah dijelaskan sebelumnya bahwa secara sederhana datawarehouse merupakan proses perpindahan data yang bersifat OLTP ke OLAP. Data source atau sumber data merupakan database yang sifatnya operasional atau database transaksi, yang sangat beraneka macam atau heterogenous. Inilah tantangan dalam datawarehouse yaitu sumber data yang beraneka macam, bisa jadi merupakan platform dari oracle, microsoft, SAP, ataupun flat file, dan lain sebagainya. Kemudian dari datasource tersebut dipindah ke data target , dan datatarget inilah yang kelak di desain sebagai datawarehouse.

2. OLAP
Seperti yang telah disinggung diatas, OLAP atau Online analytical Procesing merupakan sifat dari datawarehouse yaitu yang didesain dengan tujuan untuk analisa. Dan bicara mengenai OLAP ini akan berhubungan dengan Cube, Rolap, Molap, Holap. Di sini mungkin akan dijelaska sedikit mengenai semuanya itu. Cube atau kubus hhhmm…., mungkin merupakan suatu business object yang bisa dilihat dalam beberapa dimensi , bisa juga dilihat dalam tiga dimensi. Dan biasanya cube ini terdiri dari beberapa dimension dan fact. Sedangkan ROLAP atau Relational Online Analytical Procesing, jika dilihat dari namanya saja , merupakan OLAP yang sifatnya relasional. Dan Molap yaitu Multidimensional OLAP , yang sifatnya multi dimensi, sedangkan HOLAP merupakan Hybrid OLAP yang merupakan gabungan dari ROLAP dan MOLAP.

3.ETL
ETL merupakan extracting, transforming, dan loading, merupakan proses yang terjadi dalam perpindahan dari OLTP ke OLAP. Dan dalam proses ETL tersebut juga terjadi suatu proses apa yang disebut dengan data cleansing. Dalam proses extracting merupakan proses yang melakukan pengambilan data dari data source dan biasanya disimpan dalam temporary table atau yang disebut dengan staging. Kemudian dari staging inilah terjadi proses data cleansing ataupun data transformation. Dan loading merupakan data yang telah di cleansing dan yang telah ditransformasi dimuat atau diloading ke datawarehouse.

4.Star Schema
Dalam mendesain ututk datawarehouse haruslah menggunakan desain Star schema. Yang biasanya terdiri dari fact atau measure yang berada di tengah-tengah dan dikelilingi dengan beberapa dimensi. Kadangkala dalam desain ini menggunakan juga desain dengan Snowflake

5. Data Mart
Data Mart dalam konteks datawarehouse , adalah kupulan beberapa bisnis area, atau dengan kata lain datawarehouse merupakan kumpulan atau bagian dari beberapa data mart

6.Dimensi
Seperti yang telah dijelaskan diatas, datawarehouse terdiri atas , beberapa dimensi dan fact yang biasanya membentuk suatu star schema. Jadi dapat dilihat dari banyak segi dimensi , seperti time dimensi, dimensi berdasarkan geography, dimensi berdasarkan product, dan lain sebagainya.

7.Fact
Fact table atau measures , merupakan table transaksi , atau table yag berisi dengan segala macam perhitungan dalam datawarehouse.Dan dalam desain biasanya adadi tengah-tengah yang dikelilingi oleh beberapa dimensi.

8.Time dimension
Time dimension dalam datawarehouse merupakan behavior yang sangat perlu mendapat perhatin dalam datawarehouse. Dari sifat dalam datawarehouse yang bersifat historical , maka time dimensi dapat dilihat dalam waktu seperti apakah weekly , monthly , yearly , dan disesuaikan dengan kebutuhan.

Demikian sedikit sharing knowledge saya mengenai key technology datawarehouse, semoga berguna dan membantu bagi yang membutuhkannya.

(*) Penulis Adalah :
Professional IT/ORACLE at ASABA COMPUTER CENTER