Dữ liệu về chiều thay đổi chậm hoặc không thể đoán trước được sẽ được ghi lại trong phân tích Kích thước thay đổi chậm (SCD). Trong môi trường kho dữ liệu, bảng thứ nguyên có khóa chính xác định duy nhất từng bản ghi và các phần thông tin khác được gọi là dữ liệu thứ nguyên.
Tất cả các phương pháp cập nhật cho các loại SCD khác nhau được thực hiện bằng cách sử dụng chương trình SortCL trong IRI CoSort. Trong IRI Voracity có một trình hướng dẫn để hỗ trợ tạo các tập lệnh công việc SCD được sử dụng khi chạy chương trình SortCL. Hầu hết các loại SCD sử dụng một kết nối bên ngoài đầy đủ để khớp các bản ghi từ nguồn dữ liệu ban đầu với các bản ghi trong nguồn được cập nhật dựa trên việc cân bằng một khóa từ mỗi loại. Tuy nhiên, loại 4 hoàn thành cập nhật bằng cách sử dụng một loại.
Loại 4 SCD
Mô hình Loại 4 tương tự như đối với Loại 2. Sự khác biệt là có 2 bảng hoặc tệp được duy trì:một bảng cho các chi phí hiện tại và một để giữ các bản ghi lịch sử cho các chi phí. Khi các bản ghi hiện tại mới được thêm vào bản gốc, các bản ghi mới này thường được thêm vào lịch sử cùng một lúc.
Định nghĩa trường giống nhau trong bản cập nhật, lịch sử và tệp chính hoặc bảng. Chúng tôi sẽ sắp xếp các bản ghi cho bản cập nhật và lịch sử cùng nhau. Một cái chính mới sẽ được tạo chỉ có một bản ghi cho mỗi Mã sản phẩm và kỷ lục đó sẽ là kỷ lục mới nhất. Lịch sử sẽ có tất cả các bản ghi cho từng Mã sản phẩm bao gồm cả những cái từ nguồn cập nhật.
Bảng chính bắt đầu sẽ giống với bảng chính bắt đầu từ ví dụ về Loại 1 của chúng tôi với các giá trị như được hiển thị bên dưới.
Mã sản phẩm | Chi phí | Ngày Bắt đầu |
---|---|---|
C123 | 125,50 | 20110228 |
F112 | 2365,00 | 20120101 |
G101 | 19,25 | 20110930 |
J245 | 450.50 | 20110430 |
S022 | 98,75 | 20110515 |
Tất cả dữ liệu cập nhật sẽ có cùng Ngày bắt đầu. Nguồn update.dat chứa các bản ghi có các giá trị sau:
Mã sản phẩm | Chi phí | Ngày Bắt đầu |
---|---|---|
F112 | 2425,00 | 20120701 |
J245 | 550.50 | 20120701 |
M447 | 101,75 | 20120701 |
S022 | 101,75 | 20120701 |
Nguồn lịch sử bắt đầu bên dưới giống như nguồn gốc bắt đầu trong Loại 2. Vì vậy, Loại 4 là sự kết hợp của Loại 1 và Loại 2 trong đó nguồn gốc giống với nguồn gốc Loại 1 và lịch sử giống với nguồn gốc Loại 2.
Mã sản phẩm | Chi phí | Ngày Bắt đầu |
---|---|---|
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 |
Trong IRI Workbench, có một trình hướng dẫn Voracity để hỗ trợ việc tạo các tập lệnh để cập nhật các tệp và bảng Thứ nguyên. Trình hướng dẫn này nằm trong menu thả xuống Voracity trên thanh điều hướng. Đầu tiên, bạn chọn loại SCD. Sau đó, cửa sổ nơi bạn chọn các nguồn được sử dụng để xử lý bản cập nhật sẽ hiển thị.
Màn hình tiếp theo là nơi bạn thiết lập sắp xếp bằng cách chọn các phím. Có 2 khóa: Mã sản phẩm rồi đến Ngày bắt đầu . Chúng tôi đang nhóm theo Mã sản phẩm , nhưng chúng ta cũng cần sắp xếp theo thứ tự giảm dần theo Ngày bắt đầu trong mỗi Mã sản phẩm phân nhóm. Điều này để chúng tôi có thể lọc bản ghi gần đây nhất cho mỗi Mã sản phẩm nhóm vào trang cái mới.
Để thực hiện Ngày bắt đầu khóa sắp xếp theo thứ tự giảm dần, chọn khóa đó rồi chọn Chỉnh sửa khóa . Thao tác này sẽ hiển thị màn hình sau:
Trong trình đơn thả xuống cho Chỉ đường chọn Giảm dần .
Đây là kịch bản công việc cho loại:
/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
Dưới đây là bản tổng thể được cập nhật được tạo ra bằng cách chạy tập lệnh công việc ở trên sử dụng SortCL. Các giá trị giống nhau được tạo ra trong bản cập nhật Loại 1.
Mã sản phẩm | Chi phí | Ngày Bắt đầu |
---|---|---|
C123 | 125,50 | 20110228 |
F112 | 2425,00 | 20120701 |
G101 | 19,25 | 20110930 |
J245 | 550.50 | 20120701 |
M447 | 139,25 | 20120701 |
S022 | 101,75 | 20120701 |
Tệp lịch sử chứa tất cả các bản ghi trước đó cùng với các bản ghi mới từ tệp cập nhật.
Mã sản phẩm | Chi phí | Ngày Bắt đầu |
---|---|---|
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 |