2002, Building The Data Warehouse - Third Edition, John Wiley and Sons, New York.. Vincent Rainardi 2008, Building a Data Warehouse: With Examples in SQL Server, Apress, CA 94705.. Ahmed
Trang 1MỤC LỤC
DANH M C THU T NG .3
DANH M C HÌNH V .5
DANH M C B NG 6
T V .7
1.1 Phân tích hi n tr ng 7
1.2 M tài 8
1.3 B c c lu .9
NG QUAN V H TÍCH H P THÔNG TIN CÁ NHÂN 10
2.1 Ki n trúc ETL 10
2.2 ng t i m t h tích h p thông tin cá nhân 13
2.2.1 Bi u di i dùng 13
2.2.2 H tích h p thông tin cá nhân 17
2.3 Th o lu n 18
2.3.1 Ánh x d u 18 li 2.3.2 Tích h p d li 21
THU T GI I QUY T BÀI TOÁN 23
3.1 Ngôn ng lu t 23
3.2 Ch li uy i d u 29
3.3 T i d li .33
3.4.1 i dùng 35
3.4.2 Gi i thu i dùng và gi i quy t 39
T VÀ TH NGHIM 43
Tai ngay!!! Ban co the xoa dong chu nay!!! 17062857823371000000 e3fb01b1-d133-4689-8676-010f16eeaeec
Trang 22
4.1 t 43
4.1.1 Chu n b d liu ngu n 43
4.4.2 Xây d ng c u hình cho h tích h p 47
4.2 Th nghi 52
T LU N 55
5.1 Các k t qu c 55
5.2 ng phát tri n 56
TÀI LI U THAM KH O 57
PH L C 58
Trang 3
Transform Chuyi d li u
Validate before load Kim tra d li u
Trang 55
DANH M C HÌNH V Ụ Ẽ
Hình 1: Kin trúc h tích h p d li u 11
Hình 2: Mô hình ETL cho h tích h p thông tin cá nhân 17
Hình 3: Mô hình ánh x 20
Hình 4: Lui dùng 34
Hình 5 - C u trúc d u thu th p t R ng Bay 43 li Hình 6 - C u trúc d u thu th p t V li t Giá 44
Hình 7 - C u trúc d u thu th p t li Én Bc 45
Hình 8 - C u trúc d u thu th p t li Violet 46
Hình 9- C u trúc d u thu th p t Tìm vi c nhanh 47 li Hình 10 Giao di- p - Loader 52
Hình 11 - th a s ng record ích và th i gian th c hin 54
Trang 7 n Bay (http://rongbay.com/) công khai email, G iá(http://www.vatgia.com/), ngoài các thông tin
thông
Các
Trang 10 kh , truy c p ngu n m i khi m t truy v n c th c hi n Nó ho ng m t giao di n gi a i s d ng và các ngu n có bim t u di n o c a n i dung c a d u li các i t i ngu n
Trang 1212
Trong quá trình
metadata ý
thông tin S và
Trang 1313
Bước 3: Tải trích
vào là chèn thêm (record)
Trang 17ác
Extract (E):
Trang 20
Trang 2424
validate cho load
prepare prepare bên trên)
<! ELEMENT data-source ( source , destination ) >
<! ELEMENT source ( connection-string , query-data ) >
<! ELEMENT destination ( connection-string , db-collection ) >
<! ELEMENT validate (( require | match | range | compare | in )+) >
<! ELEMENT prepare (( default | format )+) >
<! ELEMENT transform (( if | for | foreach | while | fire | set | unset | math | string
| date | extract | single-value | query | is | array | xml )+) >
<! ELEMENT load ( field +) >
Trang 25< source storage-type = Table > " "
< connection-string > Data Source=(localdb)\v11.0;Initial
Catalog=P_VatGia;Integrated
Security=True;Encrypt=False;TrustServerCertificate=False </ connection-string > < query > Select
name,gender,province,address,skype,email,mobilephone,joinedDate,lastCrawled from tbl_VatGia </ query >
Trang 2626
d li u ngu d li c khai báo chu i
kt ni và tên collection mà d u load t i li
Cấu hình config – validate (before transform):
o Ba
o validate
Trang 28- Ki liu d u: DateTime
L nh này chuy i l giá tr i ng birthday v nh d -MM
Trang 2929
3.2 Chuyển đổ ữ liệu i d
Quá trình prepare before load
Trang 30L nh này chuy n email v d ng ch ng
Cấu hình config – validate (before load):
before transform
- Giá tr t c nh nh a kho ng giá tr : min
- Giá tr l n nht ca kho ng giá tr : max
Trang 3131
L nh này ki m tra xem mark có n m trong kho ng [0.0, 10.0] hay không
Cấu hình config – prepare (before load):
before transform
Trang 3535
o
merge
Trang 36var(X + Y) = var(X) + var(Y)
T var variance)
tam giác vuông
Trang 38vài
Trang 4141
des) = null thì CopyField(Field, Psrc, Pdes) và thoát
des) < T(Source(Psrc)) thì CopyField(Field, Psrc, Pdes)
des) = T(Source(Psrc)) và Time(Field, Pdes) < Time(Psrc) thì CopyField(Field, Psrc, Pdes)
CopyField ImportField(Field, P src , P des ) :
CopyField(Field, P src , P des )
Gán V(Field, Pdes) = V(Field, Psrc)
Gán T(Field, Pdes) = T(Source(Psrc))
Gán Time(Field, Pdes) = Time(Psrc)
Gán Source(Field, Pdes) = Source(Psrc)
correlation-threshold:
time-field
Trang 42< field input = email " " destination = email " " identity-level = AlmostDifference " "
weight = 50 " />
< field input = name " " destination = data*.name " " weight = 1 " " />
< field input = address " " destination = data*.address " " weight = 0.5 " " />
< field input = age " " destination = data*.age " " type = Int " " weight = 0.5 " " />
< field input = sex " " destination = data*.gender " " type = Boolean " " weight = 0.5 " " /> </ load >
Trang 434.1.1 Chuẩ n b d ị ữ liệu ngu n ồ
Trang 4545
Hình 7 - Cấu trúc dữ liệu thu thập từ Én Bạc
Hinh 7
Ten, NgayThamGia, DiDong, MayBan, Yahoo, Skype, Email, Website, DiaChi
Thông tin nghttp://violet.vn/)
3.420.496
Trang 48< source storage-type = Table " " id = VatGia > " "
< connection-string > Data Source=(localdb)\v11.0;Initial Catalog=P_VatGia;Integrated Security=True;Encrypt=False;TrustServerCertificate=False
Trang 49< default field = Ten " " value = "" />
< default field = DiDong " " value = "" />
< default field = MayBan " " value = "" />
< default field = Yahoo " " value = "" />
< default field = Skype " " value = "" />
< default field = Email " " value = "" />
< default field = DiaChi " " value = "" />
</ prepare >
o
< transform >
< string input = email " " operator = ToLower " " output = email " " />
< set output = name " " input = name " " />
</ transform >
Trang 51< field input = name " " destination = name " " weight = 1 " " />
< field input = gender " " destination = data.gender " " weight = " 0 5 " />
< field input = province " " destination = address.province " " weight = 0.4 " " /> < field input = district " " destination = address.district " " weight = 0.3 " " />
</ load >
Trang 55thông tin cá nhân
Trang 57[3 William Harvey Inmon ] (2002), Building The Data Warehouse - Third Edition, John Wiley and Sons, New York
[4] Vincent Rainardi (2008), Building a Data Warehouse: With Examples in SQL Server, Apress, CA 94705
[5] Shaker H Ali El-Sappagh, Abdeltawab M Ahmed Hendawi, Ali Hamed El Bastawissy (2011), A proposed model for data warehouse ETL processes, Journal of King Saud University
[6] Stefan Dessloch Mauricio A Hernandez, Ryan Wisnesky, Ahmed Radwan, Jindan Zhou, Integrating Schema Mapping and ETL
[7] Second Order Dependencies to the Rescue, Ronald Fagin, Phokion G Kolaitis,
Trang 58Bảng 3 - Bảng trusted index các nguồn
-2. Bảng trọng số (w) của các trường dữ liệu
Trang 59<! ELEMENT data-source ( source , destination ) >
<! ELEMENT source ( connection-string , query-data ) >
<! ELEMENT connection-string #PCDATA > ( )
<! ELEMENT query-data #PCDATA > ( )
<! ELEMENT destination ( connection-string , db-collection ) >
<! ELEMENT db-collection #PCDATA > ( )
<! ELEMENT validate (( require | match | range | compare | in )+) >
<! ELEMENT require EMPTY>
<! ELEMENT match #PCDATA > ( )
<! ELEMENT range EMPTY>
<! ELEMENT compare EMPTY>
<! ELEMENT in ( item +) >
<! ELEMENT item #PCDATA > ( )
<! ELEMENT prepare (( default | format )+) >
<! ELEMENT default #PCDATA > ( )
<! ELEMENT format #PCDATA > ( )
<! ELEMENT transform (( if | for | foreach | while | fire | download | set | unset |
math | string | date | extract | single-value | query | save | cookie | is | array |
xml )+) >
Trang 6060
<! ELEMENT rule ( input +, param *, output *) >
<! ELEMENT input #PCDATA > ( )
<! ELEMENT param #PCDATA > ( )
<! ELEMENT output #PCDATA > ( )
<! ELEMENT load ( field +) >
<! ELEMENT field EMPTY>
field CDATA #REQUIRED
pattern CDATA #REQUIRED
option ( | g | gi ) #IMPLIED>
<! ATTLIST range
field CDATA #REQUIRED
not ( True | False ) " False "
min CDATA #IMPLIED
max CDATA #IMPLIED>
<! ATTLIST compare
field CDATA #REQUIRED
to CDATA #REQUIRED
not ( True | False ) " False "
ignore-case ( True | False ) " False > "
<! ATTLIST in
field CDATA #REQUIRED
not ( True | False ) " False > "
<! ATTLIST default
field CDATA #REQUIRED
value CDATA #REQUIRED>
Trang 6161
<! ATTLIST format
field CDATA #REQUIRED
format-string CDATA #REQUIRED
data-type ( Long | Double | DateTime ) #REQUIRED>
<! ATTLIST load trusted-index CDATA #REQUIRED>
<! ATTLIST field
input CDATA #REQUIRED
destination CDATA #REQUIRED
action ( Set | NewArrayItem ) " Set "
identity-level ( Unique | AlmostDifference | Various ) " Various "
type ( String | Int | Long | Double | Boolean | DateTime ) " String > "
<! ELEMENT if if-true , otherwise ?) >
<! ELEMENT if-true (( if | for | foreach | while | fire | download | set | unset | math
| string | date | extract | single-value | query | save | cookie | is | array | xml )+) > <! ELEMENT otherwise (( if | for | foreach | while | fire | download | set | unset |
math | string | date | extract | single-value | query | save | cookie | is | array |
xml )+) >
<! ELEMENT for (( if | for | foreach | while | fire | download | set | unset | math |
string | date | extract | single-value | query | save | cookie | is | array | xml )+) >
<! ELEMENT foreach (( if | for | foreach | while | fire | download | set | unset | math |
string | date | extract | single-value | query | save | cookie | is | array | xml )+) >
<! ELEMENT while (( if | for | foreach | while | fire | download | set | unset | math |
string | date | extract | single-value | query | save | cookie | is | array | xml )+) >
<! ELEMENT fire EMPTY>
<! ELEMENT cookie EMPTY>
<! ELEMENT save ( header *, post *) >
<! ELEMENT header EMPTY>
<! ELEMENT post EMPTY>
<! ELEMENT unset EMPTY>
<! ELEMENT array EMPTY>
<! ELEMENT xml EMPTY>