Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
www.vietbandosolutions.com
Page 1 | 32
HỆ THỐNG QUẢN LÝ TỔNG KHO
DỮ LIỆU VBD-DATA
WAREHOUSE Tháng 03, 2020
TÓM TẮT Tài liệu mô tả.
www.vietbandosolutions.com
Page 2 | 32
MỤC LỤC 1. Vai trò và chức năng ................................................................................................... 3
2. Luồng công việc và xử lý ........................................................................................... 4
2.1. Quy trình nhập dữ liệu vào Tổng kho dữ liệu.................................................................... 4
2.2. Quy trình chi tiết trích xuất, biến đổi, nạp dữ liệu .......................................................... 6
2.3. Quy trình đăng ký trích xuất dữ liệu ...................................................................................... 8
3. Kiến trúc thành phần .................................................................................................. 9
3.1. Mô hình nguyên lý .......................................................................................................................... 9
3.2. Kiến trúc hệ thống ....................................................................................................................... 10
3.3. Kiến trúc phần mềm ứng dụng .............................................................................................. 12
4. Các nhóm chức năng phần mềm ............................................................................... 13
5. Nền tảng công nghệ VBD-DATA WAREHOUSE: ................................................... 13
5.1. Quản lý .............................................................................................................................................. 13
5.2. Tìm kiếm .......................................................................................................................................... 14
5.3. Khai thác ........................................................................................................................................... 15
5.4. Báo cáo thống kê .......................................................................................................................... 16
5.5. Tích hợp ............................................................................................................................................ 17
6. Một số giao diện phần mềm: ..................................................................................... 17
6.1. Đồng bộ hóa dữ liệu. ................................................................................................................... 17
6.2. Công cụ tạo thống kê OLAP ..................................................................................................... 18
6.3. Tra cứu dữ liệu .............................................................................................................................. 24
7. Phụ lục (Source code) ............................................................................................... 25
www.vietbandosolutions.com
Page 3 | 32
1. Vai trò và chức năng
Hệ thống quản lý Tổng kho dữ liệu VBD-DATA WAREHOUSE là một kho dữ liệu
(Data Warehouse), đóng vai trò một kho chứa tất cả dữ liệu được hợp nhất từ nhiều
nguồn, được chuẩn hóa để có thể khai thác tốt, có thể hỗ trợ trong việc đưa ra các quyết
định mang tính chiến lược và chiến thuật.
Mục đích chính của việc xây dựng Tổng kho dữ liệu là luôn cung cấp một hình ảnh
thống nhất và chính xác nhất về các lớp dữ liệu tại bất kỳ thời điểm nào. Sử dụng hệ thống
quản lý Tổng kho dữ liệu, ngườ dùng có thể khai thác toàn bộ dữ liệu lịch sử và hiện hành
của đơn vị mình dễ dàng, trong khi trước đây thực hiện việc này thường mất rất nhiều
công sức.
Các chức năng chính của Hệ thống quản lý Tổng kho dữ liệu:
Tổng hợp, thu thập dữ liệu
Biên tập, Xử lý, Chuẩn hoá dữ liệu
Đồng bộ dữ liệu
Thông báo đồng bộ dữ liệu cho các Kho dữ liệu chuyên đề
Trích xuất dữ liệu
Quản lý nhật ký
Quản lý dữ liệu
Quản trị hệ thống
Tra cứu truy vấn dữ liệu
Giao tiếp với Hệ thống quản lý và khai thác các Kho dữ liệu chuyên đề.
www.vietbandosolutions.com
Page 4 | 32
2. Luồng công việc và xử lý
2.1. Quy trình nhập dữ liệu vào Tổng kho dữ liệu
Hình Error! No text of specified style in document.-1: Quy trình nhập dữ liệu vào
Tổng kho dữ liệu
Bước 1: Trích xuất và tổng hợp dữ liệu:
www.vietbandosolutions.com
Page 5 | 32
o Các chuyên viên xử lý dữ liệu trích xuất dữ liệu từ dữ liệu nguồn
o Chuyên viên dữ liệu thực hiện tổng hợp dữ liệu bằng việc nạp dữ liệu trích
xuất từ nhiều nguồn khác nhau.
Bước 2: Chuyên viên dữ liệu sau khi tổng hợp sẽ nạp dữ liệu tổng hợp vào
vùng đệm lưu trữ dữ liệu tổng hợp trước khi được biên tập và biến đổi. Quy
trình được thực hiện cho tới khi tất cả dữ liệu đã được nạp vào vùng đệm.
Bước 3: Chuyên viên dữ liệu sử dụng các công cụ do hệ thống cung cấp để tiến
hành biến đổi dữ liệu trong vùng đệm lưu trữ dữ liệu tổng hợp và chuyển các
dữ liệu đã hoàn thiện vào vùng đệm lưu trữ dữ liệu chuẩn hóa. Quy trình lặp
lại cho tới khi tất cả dữ liệu trong vùng đệm được xử lý.
Bước 4: Dữ liệu sau khi hoàn thiện sẽ được nạp vào Tổng kho dữ liệu để lưu
trữ.
Bước 5: Dữ liệu hoàn thiện khi được nạp vào Tổng kho dữ liệu đồng thời thông
báo cho các hệ thống đã đăng ký sử dụng dữ liệu từ trước.
www.vietbandosolutions.com
Page 6 | 32
2.2. Quy trình chi tiết trích xuất, biến đổi, nạp dữ liệu Lưu ý: Trong quy trình đưa dữ liệu vào Tổng kho dữ liệu, bước biến đổi dữ liệu là
phức tạp nhất, chi tiết về bước này được trình bày rõ hơn trong quy trình bên dưới:
Hình Error! No text of specified style in document.-2: Quy trình ETL dữ liệu
Bước 1: Chuyên viên xử lý dữ liệu trích xuất dữ liệu từ dữ liệu nguồn
www.vietbandosolutions.com
Page 7 | 32
Bước 2: Dữ liệu trích xuất được nạp vào vùng đệm, nếu không thành công,
quay lại bước 1
Bước 3: Kiểm tra dữ liệu đã được làm sạch chưa
o Nếu đúng đi tiếp Bước 4
o Nếu chưa tiến hành làm sạch dữ liệu bằng các công cụ do hệ thống cung câp.
Quy trình làm sạch dữ liệu bao gồm xử lý dữ liệu lỗi, dữ liệu nhiễu, dữ liệu
thiếu, dữ liệu không nhất quán…
o Quy trình lặp lại cho tới khi tất cả dữ liệu trong vùng đệm được làm sạch.
Bước 4: Xác nhận dữ liệu đã được biến đổi chưa
o Nếu đúng đi tiếp Bước 5
o Nếu chưa tiến hành biến đổi dữ liệu bằng các công cụ do hệ thống cung câp.
Quy trình biến đổi dữ liệu bao gồm chuẩn hóa, chuyển đổi, kết hợp, làm giàu
… dữ liệu
o Quy trình lặp lại cho tới khi tất cả dữ liệu trong vùng đệm được biến đổi.
Bước 5: Dữ liệu sau khi hoàn thiện sẽ được trích xuất từ vùng đệm và nạp vào
Tổng kho dữ liệu để lưu trữ. Quy trình lặp lại cho tới khi tất cả dữ liệu trong
vùng đệm đều được nạp thành công vào Tổng kho dữ liệu.
www.vietbandosolutions.com
Page 8 | 32
2.3. Quy trình đăng ký trích xuất dữ liệu
Hình Error! No text of specified style in document.-3: Quy trình đăng ký trích xuất
dữ liệu
Bước 1: Hệ thống nhận thông tin đăng ký trích xuất dữ liệu từ hệ thống khác
(ví dụ như từ các Kho dữ liệu chuyên đề của Hệ thống quản lý và khai thác các
Kho dữ liệu chuyên đề)
www.vietbandosolutions.com
Page 9 | 32
Bước 2: Khi dữ liệu tại Tổng kho dữ liệu có xử thay đổi, hệ thống kiểm tra xem
lớp dữ liệu thay đổi có được đăng ký trích xuất không. Nếu có, chuyển đến bước
3
Bước 3: Hệ thống thông báo về sự thay đổi dữ liệu cho các hệ thống có đăng
ký trích xuất dữ liệu
Bước 4: Hệ thống nhận yêu cầu trích xuất từ các hệ thống khác
Bước 5: Trích xuất và gởi dữ liệu cho các hệ thống khác.
3. Kiến trúc thành phần
3.1. Mô hình nguyên lý
Hình Error! No text of specified style in document.-4: Mô hình nguyên lý Hệ thống
quản lý Tổng kho dữ liệu
Hệ thống quản lý Tổng kho dữ liệu là nơi tổng hợp, tiếp nhận và xử lý các dữ liệu
nguồn khác nhau. Dữ liệu nguồn sẽ được biên tập, xử lý, chuẩn hóa thành các dữ liệu hoàn
thiện để có thể lưu trữ vào Tổng kho dữ liệu.
Quá trình tổng hợp và biên tập, chuẩn hóa rất đa dạng và phức tạp, tính chất tùy
biến và khả năng khả chuyển yêu cầu cao, cần hỗ trợ nhiều vùng đệm lưu trữ để có thể
thực hiện một cách tốt nhất.
Hệ thống quản lý Tổng kho dữ liệu
Chuyên viên xử lý dữ liệu
Dữ liệu nguồn
Biên tậpXử lý
Chuẩn hoá
Nạp dữ liệu
Dữ liệu chuẩn hoá
Tổng hợp
Thông báo về dữ liệu nạp
Dữ liệu tổng hợp
Trích xuất dữ liệu nạp
Hệ thống quản lý và khai thác các kho dữ
liệu chuyên đề
Tổng kho dữ liệu
Vùng đệmDữ liệu tổng
hợp
Vùng đệmDữ liệu chuẩn
hóa
Dữ liệu nạp
Đăng ký thông báo và trích xuất dữ
liệu nạp
www.vietbandosolutions.com
Page 10 | 32
Việc khai thác và khai khoáng dữ liệu của tổng kho được Hệ thống quản lý và khai
thác các kho dữ liệu chuyên đề đảm nhận, nên hai hệ thống sẽ kết hợp với nhau, Tổng kho
dữ liệu sẽ cho nhận đăng ký về việc nạp dữ liệu, khi quá trình nạp dữ liệu hoàn thành, sẽ
thông báo để hệ thống các kho dữ liệu chuyên đề sẽ nhận được thông báo và trích xuất dữ
liệu nạp tương ứng để phục vụ cho nhu cầu khai thác tốt nhất.
3.2. Kiến trúc hệ thống
Hình Error! No text of specified style in document.-5: Kiến trúc hệ thống của Hệ
thống quản lý Tổng kho dữ liệu
Replicate, Cluster
Máy chủ
vùng đệm
Máy chủ
vùng đệm
Máy chủ
vùng đệm
Firewall
Database server Database server
Database
Web App Server
Search Server
Cache Server
Service Server Log ServerESB Server
Application Server
Router
Database
Firewall
SAN Backup
www.vietbandosolutions.com
Page 11 | 32
Các thành phần được đề xuất trong kiến trúc hệ thống của Hệ thống quản lý Tổng
kho dữ liệu:
1. Tầng đệm với các máy chủ vùng đệm trung gian: dùng để lưu trữ tạm dữ liệu
từ các hệ thống khác trước khi được biên tập, xử lý, chuẩn hoá và nạp vào Tổng
kho dữ liệu
2. Tầng ứng dụng:
o Các máy chủ Ứng dụng và Dịch vụ: chỉ huy các hoạt động của ứng dụng giữa
người dùng và ứng dụng, CSDL. Cung cấp các dịch vụ và chức năng cho toàn
hệ thống.
o Các máy chủ Website: cài đặt phần mềm dich vụ Web và sử dụng các chiến
lược khác nhau, khả năng mở rộng như cân bằng tải (load balancing), bộ
nhớ đệm (caching), và phân nhóm (clustering).
o Các máy chủ Hỗ trợ: cài đặt các thành phần hỗ trợ cho Tổng kho dữ liệu, sử
dụng để vận hành các công nghệ và hệ thống hỗ trợ phục vụ cho các công
việc và chức năng của Ứng dụng.
3. Tầng CSDL với các máy chủ Database: Lưu trữ toàn bộ kho dữ liệu. Do dữ liệu
lớn và đa dạng, các máy chủ CSDL sẽ được triển khai phân tán với các công
nghệ replicate và cluster, sử dụng thông qua các hệ thống cân bằng tải để đạt
được hiệu năng tối ưu nhất. Tất cả dữ liệu sẽ được sao lưu trong các hệ thống
SAN để đạt được độ an toàn cao nhất cho việc lưu trữ dữ liệu.
4. Các máy trạm làm việc và Hệ thống trong: Là những máy trạm và các kết nối từ
các máy chủ dịch vụ thuộc Hệ thống trong cho phép người dùng có thể sử dụng
để thao tác vào hệ thống thông qua các phương thức bảo mật an toàn nhất.
www.vietbandosolutions.com
Page 12 | 32
3.3. Kiến trúc phần mềm ứng dụng
Hình Error! No text of specified style in document.-6: Mô hình kiến trúc phần mềm
của Hệ thống quản lý Tổng kho dữ liệu
Tổng kho dữ liệu trung tâm
Nạp dữ liệuBiên tập
Xử lý
Chuẩn hoá
Quản lý nhật kýĐăng ký Thông báo và
Thông báo dữ liệu nạpTrích xuất dữ liệu
Tổng hợp, thu thập
Quản lý dữ liệu Quản trị hệ thốngTra cứu truy vấn dữ
liệu
Giao tiếp với
Hệ thống
quản lý và
khai thác các
kho dữ liệu
chuyên đề
Hệ điều hành Windows
IIS
.Net Framework
Apache
JAVA Framework
Hệ điều hành Linux
Phần Mềm
Hệ Thống
Phần Mềm
Thương mại
Phần Mềm
Tuỳ Biến
Giải pháp GIS Trục tích hợp Search EngineData Warehouse
FrameworkBIO
Trích xuất, xử lý, nạp dữ liệu tự động với Hệ thống Trong
Giao tiếp với
Hệ thống
trong
www.vietbandosolutions.com
Page 13 | 32
4. Các nhóm chức năng phần mềm
STT Tên nhóm chức
năng
Mô tả nhóm chức năng
1. Tổng hợp và thu
thập
Tổng hợp các chức năng để kết nối, tổng hợp, thu thập với
các nguồn dữ liệu khác nhau.
2. Biên tập, xử lý,
chuẩn hóa dữ liệu
Tổng hợp các công cụ và giao diện tương tác mạnh mẽ về
biên tập, xử lý, chuẩn hóa dữ liệu. Hỗ trợ về các mẫu và
luồng xử lý dữ liệu.
3. Nạp dữ liệu Chức năng về kiểm tra, nạp dữ liệu vào tổng kho, hỗ trợ
các chức năng nhật ký, lịch sử dữ liệu,…
4. Đăng ký thông báo
về dữ liệu sử dụng
Các chức năng cho đăng ký và quản lý đăng ký về việc sử
dụng dữ liệu cho các mục đích khai thác, kết hợp với Hệ
thống các kho dữ liệu chuyên đề.
5. Thông báo về sử
dụng dữ liệu
Chức năng thông báo cho các nới đã đăng ký về việc sử
dụng dữ liệu.
6. Trích xuất dữ liệu Các chức năng trích xuất dữ liệu phù hợp theo các thiết
lập trích xuất và quyền hạn sử dụng dữ liệu.
7. Quản lý dữ liệu Các chức năng quản lý dữ liệu, từ việc quản lý cấu trúc, dữ
liệu, quan hệ và các vấn đề liên quan tới dữ liệu khác.
8. Quản trị hệ thống Các chức năng quản trị hệ thống chung như người dùng,
vận hành, truy cập, hạ tầng, kết nối, …
9. Quản lý nhật ký Quản lý tất cả nhật ký sử dụng cũng như nhật ký vận hành,
nhật ký xử lý, nhật ký bảo trì, kết nối, …
10. Tra cứu, truy vấn
dữ liệu
Các chức năng tra cứu, truy vấn cơ bản trên các dữ liệu
thuộc quản lý của kho dữ liệu.
Bảng Error! No text of specified style in document.-1: Bảng chức năng phần mềm
của Hệ thống quản lý Tổng kho dữ liệu
5. Nền tảng công nghệ VBD-DATA WAREHOUSE:
VBD-DATA WAREHOUSE gồm 5 nền tảng công nghệ chính: quản lý, tìm kiếm, khai thác,
báo cáo thống kê, và tích hợp.
5.1. Quản lý
5.1.1. Tổng quan
VBD-DATA WAREHOUSE cung cấp cho người dùng khả năng tạo ra các lớp dữ liệu
trực tiếp với nhiều dạng dữ liệu và thuộc tính khác nhau, đa dạng, dễ dàng tùy
biến,…. Khả năng phân lớp, phân quyền, tùy chỉnh dữ liệu phức tạp để có thể khởi
tạo được bộ dữ liệu mạnh mẽ, dễ dàng tùy chỉnh trên trình duyệt đáp ứng được
mọi yêu cầu của bài toán cụ thể. Khả năng vẽ điểm, đường thẳng, đa giác, ellipse,
hình tròn, và hình tiêu chuẩn khác cũng được hỗ trợ. Ngoài khả năng tạo dữ liệu
thông thường, VBD-DATA WAREHOUSE còn có quy trình để tích hợp các tập tin /
www.vietbandosolutions.com
Page 14 | 32
nguồn dữ liệu bên ngoài vào bản đồ. Khả năng này cho phép tích hợp các lớp dữ
liệu của nhiều bộ dữ liệu từ nhiều nguồn khác nhau.
5.1.2. Biên tập và xử lý lớp dữ liệu trực tiếp
Quản lý dữ liệu có thể thủ công và tự động trong việc cập nhật thông tin. Ngoài các
thao tác dữ liệu chuẩn cho việc cập nhật các trường, ranh giới, siêu dữ liệu
(metadata) … VBD-DATA WAREHOUSE có thể kết nối trực tiếp với những dữ liệu
trực tuyến. Điều này đặc biệt hữu ích khi dữ liệu thay đổi thường xuyên như thời
tiết, địa điểm tài sản và hàng tồn kho.
5.1.3. Biên tập lớp dữ liệu theo mẫu và kế thừa
Dữ liệu thực tế rất đa dạng và phong phú, để tổ chức hợp lý và thông minh, các
phương pháp phát triển dữ liệu theo mẫu hoặc kế thừa lẫn nhau giữa các dữ liệu
được VBD-DATA WAREHOUSE nghiên cứu và triển khai một cách dễ dàng nhất
cho người dùng có thể sử dụng thông qua vài bước cơ bản.
5.1.4. Phân cấp và phân quyền
VBD-DATA WAREHOUSE có khả năng quản lý dữ liệu, phân quyền và tạo các quyền
chuyên biệt để tương tác với dữ liệu. Quyền và vai trò quản lý cho cấp độ người
dùng đã được tạo sẵn để định nghĩa dữ liệu, phê duyệt, và các chức năng khác cho
các nhóm người dùng khác nhau. Việc phân quyền được thực hiện tới từng dữ liệu
riêng biệt cho từng nhóm quyền tương tác, đảm bảo về bảo mật và riêng tư dữ liệu,
đáp ứng gần như tất cả các phương pháp triển khai và sử dụng dữ liệu ngoài thực
tế.
5.2. Tìm kiếm
5.2.1. Tổng quan
Khả năng tìm kiếm của VBD-DATA WAREHOUSE được tích hợp trực tiếp vào
trong framework của hệ thống cho phép tìm kiếm dữ liệu toàn cục của hệ thống.
Công cụ tìm kiếm cho phép tìm kiếm từ khóa, tìm kiếm ranh giới với không gian
địa lý xác định, tìm kiếm thời gian và các tùy chọn khác theo phân quyền và phân
cấp của dữ liệu.
5.2.2. Tìm kiếm theo thuộc tính
Các dữ liệu với thuộc tính đa dạng, với nhu cầu tìm kiếm phức tạp kết hợp các điều
kiện logic và điều kiện lọc theo giá trị, theo khoảng giá trị, theo thời gian, theo kiểu
dữ liệu ,… là một bài toán không hề đơn giản. VBD-DATA WAREHOUSE đã đưa ra
một quy chuẩn tìm kiếm theo thuộc tính dữ liệu đáp ứng được gần như tất cả các
yêu cầu từ đơn giản tới phức tạp nhất, như tìm gần giống, tìm chính xác, kết hợp
logic AND OR NOT của các điều kiện cho từng thuộc tính dữ liệu riêng biệt. Tìm kết
kết hợp giữa các loại dữ liệu khác nhau, giữa các dữ liệu có mối liên hệ trên giá trị,
cũng như những hàm cơ bản như DISTINCT, … Để có thể đáp ứng được bài toán
www.vietbandosolutions.com
Page 15 | 32
phức tạp trên, hệ thống đã đưa ra các chuẩn để tìm kiếm, hỗ trợ các biến thể như
ODATA,…
5.2.3. Tìm kiếm theo không gian
TÌm kiếm dữ liệu theo không gian là một thế mạnh không thể không nhắc tới của
VBD-DATA WAREHOUSE. Từ các bài toán đơn giản như tìm xung quanh một tọa
độ với bán kính xác định, tìm dọc tuyến trong bán kính, tìm trong một vùng đa giác
phức tạp đến các bài toán phức tạp khi kết hợp tìm kiếm theo thuộc tính và không
gian. Với lượng dữ liệu khổng lồ và phát triển liên tục, nhưng VBD-DATA
WAREHOUSE luôn đảm báo về tốc độ truy xuất và tìm kiếm với độ trễ gần với thời
thực thực cho người sử dụng.
5.2.4. Tìm kiếm theo phân quyền và phân cấp
Tất cả các bài toán tìm kiếm và truy xuất dữ liệu gồm tìm kiếm theo không gian
hay tìm kiếm theo thuộc tính đều phải được lọc theo bộ phân quyền và phân cấp
cho từng người dùng sử dụng. Với khối lượng xử lý rất lớn khi tìm kiếm siêu dữ
liệu đều được xử lý qua nhiều bước để đảm bảo về bảo mật dữ liệu nhưng vẫn đáp
ứng được về tốc độ yêu cầu gần với thời gian thực của hệ thống VBD-DATA
WAREHOUSE.
5.3. Khai thác
5.3.1. Tổng quan
Trích xuất dữ liệu, các tập hợp dữ liệu và các lớp dữ liệu có thể thông qua các chức
năng export đơn giản hoặc bằng tính năng chia sẻ URL được thể hiện trên nền bản
đồ số tổng quan để cho phép người dùng bên ngoài xem các dữ liệu của VBD-DATA
WAREHOUSE một cách đơn giản nhất. Ngoài ra, hệ thống cung cấp các hệ thống
hàm dịch vụ phục vụ cho việc khai thác để có thể dễ dàng triển khai cho các hệ
thống khác khai thác trên hệ thống VBD-DATA WAREHOUSE.
5.3.2. Trích xuất dữ liệu
Trong quá trình sử dụng, các dữ liệu được hiển thị trong hệ thống, hay được thể
hiện từ các kết quả tìm kiếm phức tạp đều có thể được trích xuất ra ngoài hệ thống
với nhiều định dạng (shapefile, excel, csv, word, pdf, zip, …) một cách dễ dàng chỉ
bằng một thao tác. Ngoài ra các chức năng trích xuất nâng cao cũng được tích hợp
như thể hiện dữ liệu dưới dạng một tập tin WORD theo mẫu định sẵn của người
dùng, hay chỉ trích xuất một phần các thuộc tính của dữ liệu mà người dùng mong
muốn. Ngoài ra việc trích xuất dữ liệu được phát triển độc lập, có thể mở rộng theo
nhiều định dạng hoặc phương pháp khác nhau, không ràng buộc theo một giao
thức cụ thể nào.
5.3.3. Bản đồ khai thác
VBD-DATA WAREHOUSE cung cấp một chức năng khai thác cực kì mạnh mẽ, chức
năng đa dạng và hợp nhất trên nền bản đồ số với tất cả các dữ liệu trong hệ thống.
www.vietbandosolutions.com
Page 16 | 32
Từ việc tìm kiếm theo không gian kết hợp tìm kiếm theo thuộc tính hay tương tác
với dữ liệu trực tiếp trên nền bản đồ được tùy biến dễ dàng theo nhu cầu từng
người dùng riêng biệt. Các dữ liệu được trình bày thành các lớp dữ liệu trực quang
trên nền bản đồ và các lớp bản đồ nền đều có thể được tùy chỉnh để thể hiện theo
mong muốn của người dùng. Trang bản đồ khai thác có thể phát triển mở rộng,
tích hợp các chức năng chuyên biệt cho từng riêng lớp dữ liệu khác nhau nếu có
nhu cầu. Ngoài ra các lớp dữ liệu có thể được thể hiển và tương tác một cách
chuyên nghiệp chỉ qua một URL cho mọi người bằng vài thiết lập cơ bản, gọi là bản
đồ chuyên đề.
5.3.4. Khai thác qua dịch vụ
Với định hướng mở và dễ dàng chia sẻ, VBD-DATA WAREHOUSE cung cấp các dịch
vụ chuyên biệt cho việc khai thác dữ liệu. Các hệ thống phần mềm ngoài có thể dễ
dàng kết nối và khai thác thông qua các tài khoản của hệ thống một cách nhanh
chóng và dễ dàng. VBD-DATA WAREHOUSE luôn đảm bảo về độ chính xác và tốc
độ cho việc khai thác thông qua dịch vụ.
5.4. Báo cáo thống kê
5.4.1. Giới thiệu
Khả năng phân tích tổng hợp dữ liệu là một trong những chức năng cốt lõi của tất
cả các hệ thống để có thể đáp ứng được các bài toán cụ thể của cuộc sống, đặc biệt
là các hệ thống liên quan tới GIS cũng như big data. Ngoài việc có được chức năng
trên, VBD-DATA WAREHOUSE còn vượt xa hơn ngoài việc cung cấp chức năng hoạt
động với tốc độ nhanh, đơn giản, tùy biến dễ dàng giúp thực thi các phép toán tối
ưu với khối lượng dữ liệu lớn.
5.4.2. Chức năng báo cáo động
Với lượng dữ liệu lớn và luôn được cập nhật, việc đưa ra các báo cáo thống kê trên
các dữ liệu là một chức năng không thể thiếu cho bất kì hệ thống đáp ứng nghiệp
vụ nào. Việc tạo ra các báo cáo và thống kê muôn hình vạn trạng không theo một
khuôn mãu nhất định đã được VBD-DATA WAREHOUSE tích hợp một chức năng
cao cấp là Báo cáo động (Report Builder). Người dùng có thể xây dựng bất kỳ báo
cáo thống kê theo nhu cầu nào dựa trên dữ liệu với các chức năng cao cấp được
VBD-DATA WAREHOUSE cung cấp như truy vấn tính toán và thống kê dữ liệu theo
thời gian thực. Việc thể hiện các báo cáo thống kê cũng được chăm chút thể hiện
qua các biểu đồ như biểu đồ tròn, biểu đồ cột, biểu đồ thanh,.. và đặc biệt là bản đồ
phân bố. Việc xây dựng các truy vấn tính toán để đưa ra báo cáo có thể sao lưu để
đáp ứng được việc sử dụng lại. Các báo cáo biểu đồ thống kê được lưu trữ trực tiếp
trong hệ thống và có thể thể hiện cho bất kỳ người dùng nào nếu có quyền truy
xuất.
www.vietbandosolutions.com
Page 17 | 32
5.4.3. Công nghệ Business Intelligence
Để xây dựng, phân tích nhanh các mô hình dự đoán và xử lý một cách nhanh chóng
với lượng dữ liệu lớn (big data) cũng như truy xuất toàn bộ dữ liệu, VBD-DATA
WAREHOUSE nghiên cứu tích hợp các công nghệ mới nhất về BI (Business
Intelligence) vào hệ thống, yêu cầu người dùng cần có đủ kiến thức để sử dụng một
cách hiệu quả nhất.
5.5. Tích hợp
5.5.1. Tổng quan
Với khả năng mở rộng và đáp ứng tối, hệ thống VBD-DATA WAREHOUSE có thể dễ
dàng tích hợp dữ liệu từ nhiều nguồn khác nhau qua trục tích hợp của hệ thống.
Với khả năng đáp ứng số lượng lớn và xử lý chặt chẽ trên các nền công nghệ tốt
nhất, trục tích hợp sẵn sàng tiếp nhận và xử lý các dữ liệu từ các nguồn khác nhau
với số lượng lớn và tức thì.
5.5.2. Trục tích hợp dữ liệu
Các dữ liệu được cung cấp từ rất nhiều nguồn khác nhau, để đảm bảo tính toàn vẹn
cũng như chịu tải lớn và không ảnh hưởng tới vận hành của hệ thống hiện tại, VBD-
DATA WAREHOUSE đưa ra giải pháp trục tích hợp, chuyên xử lý dữ liệu tích hợp
vào hệ thống với nhiều chức năng như kiểm tra ràng buộc dữ liệu, chịu tải lớn,
phân bổ dữ liệu, cơ chế log về các xử lý dữ liệu kết hợp với hệ thống phân quyền
người dùng đảm bảo dữ liệu luôn luôn được tích hợp vào hệ thống toàn vẹn và
nhanh nhất.
RabbitMQ là một phần mềm môi giới thông điệp (message broker) mã nguồn mở
(đôi khi được gọi là thông điệp-định hướng middleware) sử dụng giao thức
AMQP - Advanced Message Queue Protocol. RabbitMQ được lập trình bằng ngôn
ngữ Erlang và được xây dựng trên nền tảng Open Telecom, Nền tảng cho
nhóm(clustering) và dự phòng(failover) và cung cấp thư viện client để giao tiếp
có sẵn cho tất cả các ngôn ngữ lập trình chính. RabbitMQ cung cấp cho lập trình
viên một phương tiện trung gian để giao tiếp giữa nhiều thành phần trong một hệ
thống lớn. RabbitMQ sẽ nhận message đến từ các thành phần khác nhau trong hệ
thống, lưu trữ chúng an toàn trước khi đẩy đến đích.
Một hệ thống càng lớn, số thành phần càng nhiều, mức độ trao đổi message giữa
các thành phần cũng vì thế tăng lên khiến việc lập trình trở nên phức tạp.
Rabbitmq là một giải pháp rất tốt trong các kiến trúc hệ thống lớn.
6. Một số giao diện phần mềm:
6.1. Đồng bộ hóa dữ liệu.
www.vietbandosolutions.com
Page 18 | 32
5. Hình 1- Chức năng đồng bộ dữ liệu
6.
7. Hình 2- Chức năng đồng bộ dữ liệu
8.
9. Hình 3- Thông tin đồng bộ dữ liệu
6.2. Công cụ tạo thống kê OLAP
www.vietbandosolutions.com
Page 19 | 32
Hình 4- Công cụ tạo thống kê OLAP
Hình 5- Chọn “Nguồn dữ liệu, Mục lục, Khối dữ liệu”
Hình 6- Chọn một hoặc nhiều thuộc tính cho dòng và cột của bảng biểu
www.vietbandosolutions.com
Page 20 | 32
Hình 7- Chọn một hoặc nhiều thuộc tính cho dòng và cột của bảng biểu
Hình 8- Chọn “Bộ đo” cho dữ liệu
www.vietbandosolutions.com
Page 21 | 32
Hình 9- Hiển thị
Hình 10- Vẽ bảng biểu thành biểu đồ
www.vietbandosolutions.com
Page 22 | 32
Hình 11- Chọn loại biểu đồ
Hình 12- Chọn loại biểu đồ
www.vietbandosolutions.com
Page 23 | 32
Hình 13- Chọn loại biểu đồ
Hình 14- Lọc dữ liệu
www.vietbandosolutions.com
Page 24 | 32
Hình 15- Hiển thị MDX
6.3. Tra cứu dữ liệu
Hình 16- Tra cứu dữ liệu
www.vietbandosolutions.com
Page 25 | 32
Hình 17- Nhập thông tin tra cứu
Hình 18- Kết quả tìm kiếm
7. Phụ lục (Source code)
using System;
using System.Collections.Generic;
using System.Globalization;
www.vietbandosolutions.com
Page 26 | 32
using System.Linq;
using VDMS.ContentRepository.Core.Caching;
using VDMS.ContentRepository.Core.Helpers;
using VDMS.ContentRepository.Core.Security;
namespace VDMS.ContentRepository.Core
{
public static class DataBackingStore
{
#region Get
internal static NodeData GetNodeData(int nodeId)
{
if (!CanExistInDatabase(nodeId))
return null;
string idKey = CreateNodeDataIdCacheKey(nodeId);
NodeData item = (NodeData)DistributedApplication.Cache.Ge
t(idKey);
if (item == null)
{
item = DataProvider.DataProvider.Current.LoadNodeData
(nodeId);
if (item != null)
CacheNodeData(item, idKey, CreateNodeDataPathCach
eKey(item.Path));
}
return item;
}
internal static NodeData GetNodeData(string path)
{
if (!CanExistInDatabase(path))
return null;
string pathKey = CreateNodeDataPathCacheKey(path);
NodeData item = (NodeData)DistributedApplication.Cache.Ge
t(pathKey);
if (item == null)
{
item = DataProvider.DataProvider.Current.LoadNodeData
(path);
if (item != null)
CacheNodeData(item, CreateNodeDataIdCacheKey(item
.Id), pathKey);
www.vietbandosolutions.com
Page 27 | 32
}
return item;
}
internal static IEnumerable<NodeData> GetNodeDatas(IEnumerabl
e<int> idArray)
{
var nodeDatas = new List<NodeData>();
var unloadDatas = new List<int>();
foreach (var id in idArray)
{
string idKey = CreateNodeDataIdCacheKey(id);
var item = (NodeData)DistributedApplication.Cache.Get
(idKey);
if (item == null)
unloadDatas.Add(id);
else
nodeDatas.Add(item);
}
if (unloadDatas.Count > 0)
{
var needsSorting = nodeDatas.Count > 0;
foreach (var data in DataProvider.DataProvider.Curren
t.LoadNodeDatas(unloadDatas))
{
if (data != null)
CacheNodeData(data, CreateNodeDataIdCacheKey(
data.Id), CreateNodeDataPathCacheKey(data.Path));
nodeDatas.Add(data);
}
//sort the final list only if have node from the cach
e AND the database too
if (needsSorting)
{
//sort the node heads aligned with the original l
ist
nodeDatas = (from id in idArray
join head in nodeDatas.Where(h => h
!= null)
on id equals head.Id
where head != null
select head).ToList();
}
}
return nodeDatas;
www.vietbandosolutions.com
Page 28 | 32
}
internal static bool CanExistInDatabase(int id)
{
return id > 0;
}
internal static bool CanExistInDatabase(string path)
{
if (String.IsNullOrEmpty(path))
return false;
if (!path.StartsWith("/root", StringComparison.OrdinalIgn
oreCase))
return false;
if (path.EndsWith("/$count", StringComparison.OrdinalIgno
reCase))
return false;
if (path.EndsWith("signalr/send", StringComparison.Ordina
lIgnoreCase))
return false;
return true;
}
internal static bool NodeExists(string path)
{
if (path == null)
throw new ArgumentNullException("path");
if (!CanExistInDatabase(path))
return false;
// Look at the cache first
var pathKey = CreateNodeDataPathCacheKey(path);
if (DistributedApplication.Cache.Get(pathKey) is NodeData
)
return true;
// If it wasn't in the cache, check the database
return DataProvider.DataProvider.NodeExists(path);
}
#endregion
#region Cache
www.vietbandosolutions.com
Page 29 | 32
private static readonly string NODE_DATA_PREFIX = "NodeHeadCa
che.";
public static string CreateNodeDataPathCacheKey(string path)
{
return string.Concat(NODE_DATA_PREFIX, path.ToLowerInvari
ant());
}
public static string CreateNodeDataIdCacheKey(int nodeId)
{
return string.Concat(NODE_DATA_PREFIX, nodeId);
}
internal static void CacheNodeData(NodeData nodeData)
{
if (nodeData == null)
throw new ArgumentNullException("nodeHead");
var idKey = CreateNodeDataIdCacheKey(nodeData.Id);
var item = (NodeData)DistributedApplication.Cache.Get(idK
ey);
if (item != null)
return;
CacheNodeData(nodeData, idKey, CreateNodeDataPathCacheKey
(nodeData.Path));
}
internal static void CacheNodeData(NodeData head, string idKe
y, string pathKey)
{
var dependencyForPathKey = CacheDependencyFactory.CreateN
odeDataDependency(head);
var dependencyForIdKey = CacheDependencyFactory.CreateNod
eDataDependency(head);
DistributedApplication.Cache.Insert(idKey, head, dependen
cyForIdKey);
DistributedApplication.Cache.Insert(pathKey, head, depend
encyForPathKey);
}
#endregion
#region Create
internal static NodeData CreateNewNodeData(Node parent, NodeT
ype nodeType)
www.vietbandosolutions.com
Page 30 | 32
{
var parentId = parent == null ? 0 : parent.Id;
var userId = AccessProvider.Current.GetOriginalUser().Id;
var name = string.Format("{0}-
{1:yyyyMMddHHmmssfff}", nodeType.Name, DateTime.UtcNow);
var path = (parent == null) ? "/" + name : RepositoryPath
.Combine(parent.Path, name);
var parentIdPath = (parent == null)
? "/" + parentId
: !string.IsNullOrEmpty(parent.ParentIdPath) ? Reposi
toryPath.Combine(parent.ParentIdPath, parentId.ToString()) : "";
//---- when create new
var privateData = new NodeData()
{
Id = 0,
NodeTypeId = nodeType.Id,
ParentId = parentId,
Name = name,
Path = path,
ParentIdPath = parentIdPath,
OwnerId = userId,
Version = 0,
};
return privateData;
}
internal static void SaveNodeData(Node node, NodeSaveSettings
settings, string newPath)
{
var isNewNode = node.Id == 0;
SaveNodeDataTransactional(node, settings, newPath);
try
{
if (isNewNode)
SecurityManager.CreateSecurityEntity(node.Id, nod
e.ParentId, node.OwnerId);
}
catch (Exception exc)
{
Logger.WriteError(string.Format("Error during creatin
g or modifying security entity: {0}. Original message: {1}", node.Id)
);
throw new Exception(exc.Message);
}
}
www.vietbandosolutions.com
Page 31 | 32
private static bool SaveNodeDataTransactional(Node node, Node
SaveSettings settings, string newPath)
{
var data = node.Data;
data.Path = newPath;
try
{
DataProvider.DataProvider.Current.SaveNodeData(data,
settings);
}
catch (Exception exc)
{
throw;
}
return true;
}
#endregion
#region Query
public static IEnumerable<Node> QueryNodesByTypeAndPathAndNam
e(NodeType nodeType, bool exactType, string pathStart, bool orderByPa
th, string name)
{
int[] typeIds = null;
if (nodeType != null)
typeIds = new[] { nodeType.Id };
IEnumerable<int> ids = DataProvider.DataProvider.Current.
QueryNodesByTypeAndPathAndName(typeIds, pathStart, orderByPath, name)
;
return Node.LoadNodes(ids);
}
public static IEnumerable<Node> QueryNodesByTypeAndPathAndNam
e(List<NodeType> nodeTypes, bool exactType, string pathStart, bool or
derByPath, string name)
{
int[] typeIds = null;
if (nodeTypes != null)
typeIds = nodeTypes.Select(n => n.Id).ToArray();
IEnumerable<int> ids = DataProvider.DataProvider.Current.
QueryNodesByTypeAndPathAndName(typeIds, pathStart, orderByPath, name)
;
www.vietbandosolutions.com
Page 32 | 32
return Node.LoadNodes(ids);
}
public static Dictionary<int, string> QueryNodeTypeDef()
{
var res = DataProvider.DataProvider.Current.QueryNodeType
Def();
return res;
}
#endregion
}
}