Data dimensi yang berubah secara perlahan atau tidak terduga ditangkap dalam analisis Dimensi yang Berubah Perlahan (SCD). Dalam lingkungan data warehouse, tabel dimensi memiliki kunci utama yang secara unik mengidentifikasi setiap record dan bagian informasi lainnya yang dikenal sebagai data dimensional.
Semua metode pembaruan untuk jenis SCD yang berbeda diselesaikan menggunakan program SortCL di IRI CoSort. Di IRI Voracity ada wizard untuk membantu membuat skrip pekerjaan SCD yang digunakan saat menjalankan program SortCL. Sebagian besar jenis SCD menggunakan gabungan luar penuh untuk mencocokkan catatan dari sumber data asli dengan catatan di sumber yang diperbarui berdasarkan menyamakan kunci dari masing-masing. Tipe 4, bagaimanapun, menyelesaikan pembaruan menggunakan semacam.
Ketik 4 SCD
Model Tipe 4 mirip dengan Tipe 2. Perbedaannya adalah ada 2 tabel atau file yang dipertahankan:satu untuk biaya saat ini dan satu lagi untuk menyimpan catatan riwayat untuk biaya. Saat record baru saat ini ditambahkan ke master, record baru ini biasanya ditambahkan ke histori pada waktu yang sama.
Definisi bidang sama dalam pembaruan, riwayat, dan file atau tabel master. Kami akan mengurutkan catatan untuk pembaruan dan riwayat bersama-sama. Master baru akan dibuat yang hanya memiliki satu record untuk setiap ProductCode dan rekor itu akan menjadi yang terbaru. Riwayat akan memiliki semua catatan untuk setiap ProductCode termasuk yang dari sumber pembaruan.
Tabel master awal akan sama dengan master awal dari contoh Tipe 1 kami dengan nilai seperti yang ditunjukkan di bawah ini.
Kode Produk | Biaya | Tanggal Mulai |
---|---|---|
C123 | 125,50 | 20110228 |
F112 | 2365.00 | 20120101 |
G101 | 19,25 | 20110930 |
J245 | 450,50 | 20110430 |
S022 | 98,75 | 20110515 |
Semua data pembaruan semua akan memiliki StartDate yang sama. Sumber update.dat berisi catatan dengan nilai berikut:
Kode Produk | Biaya | Tanggal Mulai |
---|---|---|
F112 | 2425.00 | 20120701 |
J245 | 550,50 | 20120701 |
M447 | 101.75 | 20120701 |
S022 | 101.75 | 20120701 |
Sumber history awal di bawah ini seperti master awal di Tipe 2. Jadi Tipe 4 adalah kombinasi dari Tipe 1 dan Tipe 2 dimana master sama dengan master Tipe 1 dan histori sama dengan master Tipe 2.
Kode Produk | Biaya | Tanggal Mulai |
---|---|---|
C123 | 125,50 | 20110228 |
F112 | 2365.00 | 20120101 |
G101 | 19,25 | 20110930 |
G101 | 21,25 | 20110501 |
J245 | 450,50 | 20110430 |
J245 | 425,25 | 20101001 |
J245 | 385,25 | 20100215 |
S022 | 98,75 | 20110515 |
Di IRI Workbench, ada wizard Voracity untuk membantu pembuatan skrip untuk memperbarui file dan tabel Dimensi. Wizard ini terletak di dropdown Voracity di bilah navigasi. Pertama Anda memilih jenis SCD. Kemudian jendela tempat Anda memilih sumber yang digunakan untuk memproses pembaruan akan ditampilkan.
Layar berikutnya adalah tempat Anda mengatur pengurutan dengan memilih tombol. Ada 2 kunci:ProductCode lalu Tanggal Mulai . Kami mengelompokkan berdasarkan ProductCode , tetapi kita juga perlu mengurutkan dalam urutan menurun berdasarkan Tanggal Mulai dalam setiap ProductCode pengelompokan. Ini agar kami dapat memfilter catatan terbaru untuk setiap ProductCode grup ke master baru.
Untuk membuat Tanggal Mulai kunci yang diurutkan dalam urutan menurun, pilih kunci itu lalu pilih Edit Kunci . Ini akan memunculkan layar berikut:
Di tarik-turun untuk Arah pilih Turun .
Berikut adalah skrip pekerjaan untuk pengurutan:
/INFILE=C:/IRI/CoSort95/workbench.orig/workspace/SCD/SCD4/history4.dat /PROCESS=DELIMITED /ALIAS=history4 /FIELD=(PRODUCTCODE, TYPE=ASCII, POSITION=1, SEPARATOR=",", FRAME='\"') /FIELD=(COST, TYPE=NUMERIC, POSITION=2, SEPARATOR=",", FRAME='\"') /FIELD=(STARTDATE, TYPE=ASCII, POSITION=3, SEPARATOR=",", FRAME='\"') /INFILE=C:/IRI/CoSort95/workbench.orig/workspace/SCD/update.dat /PROCESS=DELIMITED /ALIAS=update /FIELD=(PRODUCTCODE, TYPE=ASCII, POSITION=1, SEPARATOR=",", FRAME='\"') /FIELD=(COST, TYPE=NUMERIC, POSITION=2, SEPARATOR=",", FRAME='\"') /FIELD=(STARTDATE, TYPE=ASCII, POSITION=3, SEPARATOR=",", FRAME='\"') /SORT /KEY=(PRODUCTCODE, TYPE=ASCII) /KEY=(STARTDATE, DESCENDING, TYPE=ASCII) /OUTFILE=history4.dat # This file will contain all the records from both inputs /PROCESS=DELIMITED /FIELD=(PRODUCTCODE, TYPE=ASCII, POSITION=1, SEPARATOR=",", FRAME='\"') /FIELD=(COST, TYPE=NUMERIC, POSITION=2, SEPARATOR=",", FRAME='\"') /FIELD=(STARTDATE, TYPE=ASCII, POSITION=3, SEPARATOR=",", FRAME='\"') /OUTFILE=master4.dat # Include only one record for each ProductCode /PROCESS=DELIMITED /FIELD=(PRODUCTCODE, TYPE=ASCII, POSITION=1, SEPARATOR=",", FRAME='\"') /FIELD=(COST, TYPE=NUMERIC, POSITION=2, SEPARATOR=",", FRAME='\"') /FIELD=(STARTDATE, TYPE=ASCII, POSITION=3, SEPARATOR=",", FRAME='\"') /INCLUDE WHERE PRODUCTCODE
Di bawah ini adalah master yang diperbarui yang dihasilkan dengan menjalankan skrip pekerjaan di atas menggunakan SortCL. Nilainya sama dengan yang dihasilkan dalam pembaruan Tipe 1.
Kode Produk | Biaya | Tanggal Mulai |
---|---|---|
C123 | 125,50 | 20110228 |
F112 | 2425.00 | 20120701 |
G101 | 19,25 | 20110930 |
J245 | 550,50 | 20120701 |
M447 | 139,25 | 20120701 |
S022 | 101.75 | 20120701 |
File riwayat berisi semua catatan sebelumnya ditambah catatan baru dari file pembaruan.
Kode Produk | Biaya | Tanggal Mulai |
---|---|---|
C123 | 125,50 | 20110228 |
F112 | 2425.00 | 20120701 |
F112 | 2365.00 | 20120101 |
G101 | 19,25 | 20110930 |
G101 | 21,25 | 20110501 |
J245 | 550,50 | 20120701 |
J245 | 450,50 | 20110430 |
J245 | 425,25 | 20101001 |
J245 | 385,25 | 20100215 |
M447 | 101.75 | 220120701 |
S022 | 101.75 | 20120701 |
S022 | 98,75 | 20110515 |