Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

SCD Tipe 1

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 dapat dilakukan dengan 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 menggunakan gabungan luar penuh untuk mencocokkan catatan dari sumber data asli dengan catatan di sumber pembaruan berdasarkan menyamakan kunci dari masing-masing. Catatan dengan kecocokan perlu diperbarui. Catatan di sumber pembaruan yang tidak memiliki kecocokan perlu ditambahkan ke master.

Artikel ini mencakup model SCD Tipe 1, di mana informasi baru dari data pembaruan menimpa informasi asli di sumber master. Rekaman di sumber pembaruan tanpa kecocokan ditambahkan ke master baru. Karena model ini melibatkan penimpaan nilai lama dengan nilai saat ini, dan tidak mempertahankan riwayat, model ini tidak sering digunakan.

Pembaruan dilakukan dengan bergabung sehubungan dengan bidang ProductCode. Untuk contoh ini, data saat ini akan menjadi file sumber master1.dat dan update.dat digunakan untuk mengubah nilai atau menambahkan catatan di sumber master saat ini.

Sumber master1.dat berisi:

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

Dalam hal ini, semua data pembaruan 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

Tabel dimensi baru akan memiliki nilai ini setelah pembaruan:

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

Di IRI Workbench, ada wizard 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 file yang digunakan untuk memproses pembaruan akan ditampilkan.

Layar berikutnya adalah untuk menentukan gabungan yang dilakukan dengan master dan memperbarui sumber

Di bawah ini adalah skrip pekerjaan sortcl yang dihasilkan saat memproses dua file master1.dat dan update.dat:

/INFILE=C:/IRI/CoSort95/workbench.orig/workspace/SCD/SCD1/master1.dat
  /PROCESS=DELIMITED
  /ALIAS=master1
  /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='\"')

/JOIN FULL_OUTER NOT_SORTED master1 NOT_SORTED update WHERE MASTER1.PRODUCTCODE == UPDATE.PRODUCTCODE

/OUTFILE=/master1.dat
# This processes all except the new records
  /PROCESS=DELIMITED
  /FIELD=(MASTER1.PRODUCTCODE, TYPE=ASCII, POSITION=1, SEPARATOR=",", FRAME='\"')
  /FIELD=(COST_NEW, TYPE=NUMERIC, POSITION=2, SEPARATOR=",", FRAME='\"', IF MASTER1.PRODUCTCODE EQ UPDATE.PRODUCTCODE THEN UPDATE.COST ELSE MASTER1.COST)
  /FIELD=(STARTDATE_NEW, TYPE=ASCII, POSITION=3, SEPARATOR=",", FRAME='\"', IF MASTER1.PRODUCTCODE EQ UPDATE.PRODUCTCODE THEN UPDATE.STARTDATE ELSE MASTER1.STARTDATE)
  /INCLUDE WHERE MASTER1.PRODUCTCODE NE ""
/OUTFILE=master1.dat
# This processes the new records to be added
  /PROCESS=DELIMITED
  /FIELD=(UPDATE.PRODUCTCODE, TYPE=ASCII, POSITION=1, SEPARATOR=",", FRAME='\"')
  /FIELD=(UPDATE.COST, TYPE=NUMERIC, POSITION=2, SEPARATOR=",", FRAME='\"')
  /FIELD=(UPDATE.STARTDATE, TYPE=ASCII, POSITION=3, SEPARATOR=",", FRAME='\"') I 
  /INCLUDE WHERE MASTER1.PRODUCTCODE EQ ""

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sorotan Hit dalam Pencarian Teks Lengkap

  2. Alibaba Cloud

  3. Cara Memilih Tipe Data yang Tepat

  4. Peran DBA dalam NoSQL

  5. Metode Pencadangan AWS RDS