5.1 Mô tả và chuyển đổi dữ liệu
5.1.2 Các bước chuyển đổi dữ liệu
Từ dữ liệu thu thập được chúng ta sẽ làm sạch và tiền xử lý dữ liệu, xây dựng bảng dữ liệu từ điển cho các thuê bao và các dịch vụ gia tăng chuẩn bị dữ liệu đầu vàọ
1. Bảng dữ liệu chi tiết cuộc gọi cdr_data_full, bảng dữ liệu này là rất lớn lưu toàn bộ dữ liệu dịch vụ phát sinh của khách hàng. Trung bình 1TB dữ liệu trong vòng 4 tháng. Vì dữ liệu là rất lơn nên bảng dữ liệu được phân vùng dữ liệu theo từng ngày giao dịch trong trường rate_dt:
create table CDR_DATA_FULL (
trans_id VARCHAR2(20),
account_no NUMBER(10) not null, external_id VARCHAR2(144), rate_dt DATE not null ...)
Với cách phân vùng dữ liệu như sau :
partition by range (RATE_DT) (
partition DATA20100601 values less than '2010-06-01') partition DATA20100602 values less than '2010-06-02' ... )
Chúng ta thu nhỏ dữ liệu bằng việc xây dựng bảng tổng hợp dữ liệu dựa trên từng phân vùng dữ liệu của bảng cdr_data_full, việc tìm kiếm và xử lý trên từng phân vùng giúp tốc độ truy cập tìm kiếm nhanh hơn hàng trăm lần, tham khảo thủ tục pkg_apriorịtransform_data trong phụ lục B.
Create table CRD_AGGREGATE201006 as Select c.external_id,
c.aut_id,
sum(c.charged_amount / 1000) charged_amount, sum(c.primary_units) primary_units
from (select external_id, charged_amount, primary_units, aut_id from cdr_data_full partition(data20100601)
where charged_amount <> 0 or primary_units <> 0) c group by c.external_id, c.aut_id
2. Từ bảng aut_temp lưu danh sách các dịch vụ giá trị gia tăng trong hệ thống, xây dựng bảng danh mục các dịch vụ giá trị gia tăng như sau, tham khảo
create table MappedItemsTable as
select aut_id , display_value, rownum itemi ,reseller_version_id from aut_temp a where ạlanguage_code = 1 -- Tiếng Anh
and ạreseller_version_id = 90 -- Phiên bản mới nhất
Chúng ta thu được bảng từ điển các dịch vụ gia MappedItemsTable tăng như sau:
3. Từ hai bảng trên chúng ta xây dựng bảng TRANSACTIONS, tham khảo pkg_apriorịcreate_transactions_table trong phụ lục B.
create table transactions as select external_id tid, itemi item
from CRD_AGGREGATE201006 t, aut_mapping a where t.aut_id = ạaut_id