Tải bản đầy đủ (.pdf) (50 trang)

Luận văn thạc sĩ công nghệ thông tin: Ứng dụng công nghệ mới vào việc phân tích và lưu trữ dữ liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (8 MB, 50 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN VĂN THỨC

ỨNG DỤNG CÔNG NGHỆ MỚI VÀO VIỆC XỬ LÝ VÀ LƯU TRỮ
DỮ LIỆU

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

Hà Nội - 2019


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN VĂN THỨC

ỨNG DỤNG CÔNG NGHỆ MỚI VÀO VIỆC XỬ LÝ VÀ LƯU TRỮ
DỮ LIỆU

Chuyên ngành: Hệ thống thông tin
Mã số: 8480104.01

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

Người hướng dẫn khoa học: PGS. TS Nguyễn Hải Châu

Hà Nội - 2019



Mục lục
Trang
1 Đặt vấn đề về bài toán tính cước đang dùng tại Viettel
4
1.1 Mô hình, hiện trạng và nghiệp vụ của hệ thống Viettel Billing. 4
1.1.1 Giới thiệu mô hình hệ thống Viettel Billing. . . . . . 4
1.1.2 Các nghiệp vụ tính cước . . . . . . . . . . . . . . . 5
1.2 Những tồn tại của hệ thống . . . . . . . . . . . . . . . . . . 11
2 Phân tích, lựa chọn và thiết kế giải pháp
2.1 Mô hình giải pháp cũ. . . . . . . . . . . . . . . . . . . . .
2.1.1 Mô hình vật lý hệ thống Billing hiện tại. . . . . . .
2.1.2 Mô hình logic hệ thống Billing hiện tại. . . . . . .
2.2 Mô hình giải pháp hệ thống Billing mới và hoàn toàn miễn
phí. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Mô hình giải pháp miễn phí kết hợp có phí. . . . . . . . .
2.4 So sánh giải pháp miễn phí hoàn toàn và giải pháp kết hợp
có phí. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13
. 13
. 13
. 15
. 16
. 20
. 24

3 Đánh giá thực nghiệm so sánh giải pháp cũ và giải pháp
mới
3.1 Mô hình logic hệ thống thực nghiệm . . . . . . . . . . . . .
3.2 Phương pháp lấy số liệu thực nghiệm . . . . . . . . . . . .

3.3 Phân tích, so sánh số liệu thực nghiệm giữa hai hệ thống . .

i

26
26
27
37


Danh sách hình vẽ
1.1

Mô hình hệ thống Viettel Billing. . . . . . . . . . . . . . . .

2.1
2.2
2.3
2.4






3.1
3.2
3.3
3.4
3.5

3.6
3.7

Mô hình thực nghiệm với công nghệ cũ. . . . . . . . . . . .
Mô hình thực nghiệm với công nghệ mới. . . . . . . . . . .
Công thức và kết quả tính cỡ mẫu thực nghiệm. . . . . . .
Import số liệu vào hệ thống. . . . . . . . . . . . . . . . . .
Mối liên hệ giữa thời gian thực nghiệm và dung lượng dữ liệu.
So sánh thời gian import giữa hai hệ thống. . . . . . . . . .
Biểu diễn phân bố dữ liệu thực nghiệm của hai hệ thống. .

hình
hình
hình
hình

vật lý hệ thống Billing. . . . . .
logic hệ thống Billing. . . . . . .
giải pháp hoàn toàn miễn phí. .
giải pháp kếp hợp có phí và miễn

ii

. . .
. . .
. . .
phí.

.
.

.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.

.
.

4
14
15
16
20
27
27
37
38
39
40
41


Thuật ngữ và từ viết tắt
Từ viết tắt
KPI

Từ gốc
Giải nghĩa - Tạm dịch
Key Performance Là chỉ số đánh giá công việc, công
Indicator
cụ đo lường nhằm phản ảnh hiệu
quả hoạt động của một đối tượng
CNTT
Công nghệ thông tin
CSKH

Chăm sóc khách hàng
CSDL
Cơ sở dữ liệu
CDR
Call Detail Record Bản ghi chi tiết cuộc gọi
SQL
Structured Query Ngôn ngữ truy vấn có cấu trúc
Language
Switch
Bộ chuyển mạch
Load Balacing Bộ cân bằng tải
Firewall
Tường lửa

iii


Lời cam đoan
Tôi xin cam đoan đây là công trình nghiên cứu do tôi thực hiện dưới sự
hướng dẫn của PGS. TS. Nguyễn hải Châu tại bộ môn Hệ thống Thông
tin, Khoa Công nghệ Thông tin, Trường Đại học Công nghệ, Đại học Quốc
gia Hà Nội. Các số liệu và kết quả trình bày trong luận án là trung thực,
chưa được công bố bởi bất kỳ tác giả nào hay ở bất kỳ công trình nào
khác.
Tác giả

Nguyễn Văn Thức

iv



Lời cảm ơn
Trước tiên tôi xin gửi lời cảm ơn chân thành và sâu sắc đến thầy giáo,
PGS. TS. Nguyễn Hải Châu – người đã hướng dẫn, khuyến khích, truyền
cảm hứng, chỉ bảo và tạo cho tôi những điều kiện tốt nhất từ khi bắt đầu
nghiên cứu đến khi hoàn thành luận văn này.
Tôi xin chân thành cảm ơn các thầy cô giáo khoa Công nghệ thông tin,
trường Đại học Công nghệ, Đại học Quốc Gia Hà Nội, đặc biệt là các Thầy
Cô trong Bộ môn Hệ thống Thông tin đã tận tình đào tạo, cung cấp cho
tôi những kiến thức vô cùng quý giá, đã tạo điều kiện tốt nhất cho tôi để
hoàn thành luận văn này.
Đồng thời tôi xin chân thành cảm ơn các bạn trong lớp HHT24 đã tạo
mọi điều kiện, giúp đỡ và bố trí thời gian tốt nhất dành cho tôi trong suốt
quá trình làm luận văn.
Cuối cùng, tôi xin chân thành cảm ơn những người thân trong gia đình
cùng toàn thể bạn bè đã luôn giúp đỡ, động viên tôi những lúc gặp phải
khó khăn trong suốt quá trình học tập và nghiên cứu.

v


Giới thiệu
Đặt vấn đề
Công nghệ thông tin ngày càng đóng vai trò quan trọng trong phát triển
kinh tế, xã hội. Công nghệ thông tin và viễn thông là một trong những
động lực chính tạo nên bộ mặt thế kỷ 21. Ngoài ra, công nghệ thông tin
và viễn thông còn là một trong những điều kiện chính quyết định sự phát
triển của nền kinh tế thế giới. Nó tác động sâu sắc đến cách chúng ta đang
sống, học tập và làm việc; đến cách thức nhà nước giao tiếp với dân. Nó
cũng tạo ra những thách thức kinh tế, xã hội trước các cá nhân, doanh

nghiệp, cộng đồng ở mọi nơi trên trái đất nhằm đạt hiệu quả và tính sáng
tạo cao hơn. Tất cả chúng ta đang đứng trước và cần nắm bắt cơ hội này.
Theo nghiên cứu của IDC Group - một trong năm công ty hàng đầu về
lĩnh vực công nghệ thông tin tại Việt Nam, ngành công nghệ thông tin sẽ
đóng góp khoảng 1,16 nghìn tỷ USD vào GDP của châu Á - Thái Bình
Dương với tỷ lệ tăng trưởng hằng năm 0,8%. Năm 2017, chiếm khoảng 6%
GDP của châu Á - Thái Bình Dương đến từ các sản phẩm và dịch vụ công
nghệ thông tin, thông qua việc sử dụng các công nghệ số. IDC dự báo con
số này sẽ tăng lên 60% GDP khu vực châu Á - Thái Bình Dương vào năm
2021. Cũng theo số liệu IDC, khoảng 84% các tổ chức, doanh nghiệp trong
khu vực đã và đang trong hành trình chuyển đổi số. Tuy nhiên, chỉ có 7%
là các doanh nghiệp tiên phong và đây là những đơn vị có chiến lược phát
triển công nghệ thông tin.
Trong cuộc đua phát triển và đổi mới công nghệ, ai nhanh hơn người
đó sẽ chiếm thế thượng phong và đạt được nhiều thành tựu. Chính vì vậy,
một điều rất quan trọng đó là các doanh nghiệp phải thường xuyên đổi
mới công nghệ, cập nhật các công nghệ mới để áp dụng vào quá trình sản
xuất kinh doanh. Đặc biệt là đối với các công ty công nghệ, ngoài việc cập
nhật công nghệ mới nhất còn phải đầu tư để nghiên cứu chuyên sâu về
công nghệ. Một công ty phát triển bền vững cần phải có các nghiên cứu
cơ bản hoặc có các sản phẩm cốt lõi làm nền tảng cho công ty mình.
Đo lường cũng là một trong những thành phần rất quan trọng trong
việc phát triển và đổi mới công nghệ. Các công ty và doanh nghiệp cần
phải sử dụng các chỉ số đo lường (Key Performance Indicator-KPI) để đo
1


các chỉ số như hiệu quả của quy trình, vốn dữ liệu, sự ủng hộ của khách
hàng, sự hài lòng của khách hàng, tài nguyên hệ thống... Bất kỳ sự phát
triển hoặc thay đổi nào đều phải đo đạc được trước và sau khi áp dụng

công nghệ mới, từ đó mới có đánh giá chính xác được sự thay đổi này có
thực sự hiệu quả hay không.
Tuy nhiên việc thực hiện áp dụng và nghiên cứu áp dụng công nghệ
thông tin vào quá trình sản xuất tại các doanh nghiệp còn chậm. Nhiều
công ty vẫn còn sử dụng các công nghệ trước thời điểm hiện tại cả chục
năm, mặc dù công nghệ thay đổi hàng ngày và đặc biệt là đối với ngành
công nghệ thông tin. Đối với các công ty chuyên sâu về công nghệ vẫn chưa
có những nghiên cứu cơ bản hoặc có các sản phẩm cốt lõi có tiếng vang
trên thị trường. Đây là một điểm yếu làm cho ngành công nghệ thông tin
của nước ta chưa phát triển đạt được như kỳ vọng.
Xuất phát từ thực trạng này, tác giả đưa ra một vấn đề không mới
nhưng vẫn chưa được khắc phục tại một số các doanh nghiệp lớn về viễn
thông. Viễn thông và công nghệ thông tin phải đi liền với nhau và viễn
thông cần áp dụng rất nhiều các công nghệ mới của ngành công nghệ thông
tin. Đề tài "Áp dụng công nghệ mới vào việc lưu trữ và xử lý dữ liệu" sẽ
chỉ ra những hạn chế của hệ thống Billing hiện tại và đưa ra phương án
khắc phục.
Mục tiêu nghiên cứu
Áp dụng những công nghệ mới vào việc lưu trữ và xử lý dữ liệu lớn.
Trong ngành viễn thông thì dữ liệu là cực kỳ lớn, nhất là đối với dữ liệu
liên quan đến cuộc gọi, tin nhắn và hành vi sử dụng dữ liệu. Đối với nhà
mạng Viettel thì những dữ liệu này phát sinh khoảng 2,5TB đến 3T trong
một tháng, đối với nhà mạng VinaPhone thì dữ liệu này khoảng 1,5T đến
2TB một tháng. Độ lớn của dữ liệu phụ thuộc vào số lượng thuê bao của
mỗi nhà mạng và các thông tin liên quan mà tổng đài sẽ ghi nhận lại.
Đề tài này sẽ chỉ ra nếu nhà mạng áp dụng các công nghệ mới thì tốc
độ import dữ liệu có thể tăng lên đến 1,5 đến 2 lần so với công nghệ cũ.
Các số liệu trong đề tài là được chạy trên hệ thống LAB có cấu hình cao,
dung lượng mỗi mẫu từ 1 ngày đến 3 ngày so với dữ liệu thật. Kết quả so
sánh là thực nghiệm của việc sử dụng bởi ngôn ngữ R giữa hai mẫu dữ

liệu sử dụng công nghệ mới và công nghệ cũ.
Trong phạm vi đề tài này, tác giả chỉ tập trung vào phần tối ưu import
dữ liệu CDR vào Database, chưa tối ưu phần xử lý và hiển thị dữ liệu cho
khách hàng.

2


Bố cục của luận văn
Luận văn được tình bày chia làm 3 chương:
Chương 1: Đặt vấn đề về bài toán tính cước đang dùng tại Viettel.
Chương 2: Phân tích, lựa chọn và thiết kế giải pháp.
Chương 3: Đánh giá thực nghiệm so sánh giải pháp cũ và giải pháp mới.

3


Chương 1

Đặt vấn đề về bài toán tính cước
đang dùng tại Viettel
1.1
1.1.1

Mô hình, hiện trạng và nghiệp vụ của hệ thống Viettel
Billing.
Giới thiệu mô hình hệ thống Viettel Billing.

Hình 1.1: Mô hình hệ thống Viettel Billing.


Mô hình hệ thống Viettel Billing được xây dựng từ những năm 2006 và
được phát triển cho tới ngày nay. Nhưng cơ bản không có sự khác biệt lớn
về mặt công nghệ, chủ yếu là được bổ sung thêm tài nguyên để hệ thống
có thể xử lý được khối lượng dữ liệu lớn hơn.
Tuy vậy, việc bổ sung thêm tài nguyên không thể bù đắp được cho sự
phát triển nhanh chóng về mặt dữ liệu. Ngoài ra, việc bổ sung thêm nhiều
tài nguyên sẽ làm cồng kềnh bộ máy vận hành khai thác do số lượng node
mạng tăng lên nhanh, kết nối giữa các hệ thống cũng phức tạp hơn.
Hệ thống được chia làm ba nhóm chính:
- Nhóm hệ thống tổng đài thuộc nhóm các thiết bị viễn thông, các hệ
thống tổng đài sau khi kết nối để thực hiện cuộc gọi cho khách hàng sẽ
4


đẩy ra CDR để tính cước cho khách hàng. Năm 2006 có khoảng 5 tổng
đài, nhưng đến năm 2019 thì số lượng tổng đài đã lên tới con số 30;
- Nhóm hệ thống Billing Gateway, dùng để chung chuyển dữ liệu CDR
về hệ thống Billing. Toàn bộ dữ liệu tổng đài sẽ được đẩy về hệ thống
Billing Gateway. Hiện tại có khoảng 15 máy chủ để phục vụ cho hệ thống
Billing gateway, tổng dữ liệu chung chuyển lên tới 100G/ngày;
- Nhóm hệ thống Billing dùng để import dữ liệu vào trong Database,
tính cước cuộc gọi và hiển thị dữ liệu cho khách hàng tra cứu.
Cụ thể mô tả chức năng của từng nhóm như sau:
a. Hệ thống tổng đài.
+ Hệ thống có khoảng 30 tổng đài thuộc nhiều đối tác khác nhau.
+ Toàn bộ các thông tin về cuộc goi, tin nhắn và lịch sử truy nhập dữ
liệu đều được các tổng đài ghi nhận lại.
+ Dữ liệu này định kỳ sẽ được đẩy về hệ thống Billing Gateway.
b. Hệ thống Billing Gateway.
+ Đây là nơi lưu trữ trung gian toàn bộ dữ liệu chuyển từ tổng đài về

hệ thống Billing.
+ Dữ liệu được lưu dưới dạng text hoặc dạng binary.
+ Dữ liệu trên hệ thống này sẽ được lưu ngắn hạn và sẽ được backup
trước khi xóa.
+ Mục đính của hệ thống này để: lưu dữ liệu tập trung cho hệ thống
Billing, có đủ dung lượng để lưu khi hệ thống Billing cần tính lại cước
(Tổng đài không đủ dung lượng để lưu), backup dữ liệu tập chung.
c. Hệ thống Billing.
+ Đây là hệ thống lưu trữ toàn bộ dữ liệu tổng đài dưới dạng bảng.
+ Hệ thống chạy trên nền tảng máy chủ Linux và cơ sở dữ liệu Oracle.
+ Dữ liệu import 1 tháng khoảng gần 2 TB.
+ Sau khi dữ liệu được import vào thì các nghiệp vụ tính cước đều
chạy trên dữ liệu này.
1.1.2

Các nghiệp vụ tính cước

Các nghiệm vụ tính cước đều rất phức tạp, mỗi lần chạy đều chiếm một
lượng lớn tài nguyên máy chủ, xử lý với một khối lượng lớn dữ liệu. Kết
quả cuối cùng là tính ra được tiền sử dụng của từng thuê bao đã phát sinh
cước.
Để có thể hiểu được độ phức tạp của quá trình xử lý, dưới đây là các
mô tả của quá trình xử lý hệ thống tính cước[11]:

5


a. Nghiệp vụ Lấy dữ liệu từ hệ thống Billing Gateway.
+ Bước 1: Quét thư mục chứa dữ liệu tổng đài.
+ Bước 2: Kiểm tra mẫu định dạng của file CDR.

- Nếu không đúng mẫu định dạng thì không xử lý file đó.
- Nếu đúng mẫu định dạng file:
• Nếu tiến trình được chia thành nhiều tiến trình nhỏ: thực hiện
lọc file theo MOD(sequence, 10), chuyển sang Bước 3.
• Nếu chỉ 1 tiến trình không thực hiện lọc file theo MOD(sequence,
10), chuyển sang Bước 3.
+ Bước 3: Kiểm tra dung lượng ổ cứng trên máy Local.
- Nếu dung lượng ổ cứng đủ thì chuyển sang Bước 4.
- Nếu dung lượng ổ cứng không đủ thì nhắn tin cảnh báo và quay
lại Bước 1.
+ Bước 4: Download về thư mục trên máy Local và chuyển sang
Bước 5.
+ Bước 5: Xử lý với những file đã được download với 1 trong 4 tùy
chọn:
- Xóa file.
- Thay đổi tên file.
- Chuyển file sang một thư mục khác trên FTP Server.
b. Nghiệp vụ Import dữ liệu vào Database.
+ Bước 1: Quét thư mục chứa file đã download về.
Format: Tên dịch vụ + ngày + tháng +năm
+ Bước 2: Kiểm tra mẫu định dạng file.
- Nếu không đúng mẫu định dạng thì không xử lý.
- Nếu đúng mẫu định dạng file thì chuyển sang Bước 3.
+ Bước 3: Đọc nội dung trong file.
+ Bước 4: Kiểm tra cấu trúc nội dung file.
- Nếu không đúng cấu trúc thì lưu file đến thư mục Unrate và ghi
log.
- Nếu đúng cấu trúc thì chuyển sang Bước 5.
+ Bước 5: Insert theo batch vào Database.
- Nếu insert không thành công thì ghi thông tin ra log và lưu file

đến thư mục Unrate và chuyển sang Bước 6.
- Nếu insert thành công thì lưu file đến thư mục Rate và chuyển
sang Bước 6.
+ Bước 6: Backup file.
- Tất cả các file chứa trong thư mục tạm trên máy Local được lưu
lại vào thư mục Backup.
6


c. Nghiệp vụ Tổng hợp cước định kỳ.
+ Bước 1: Khi được kích hoạt hệ thống sẽ tự load các bill item.
+ Bước 2: Hệ thống Billing đọc dữ liệu chi tiết cước trong chu kỳ
chốt sổ.
+ Bước 3: Hệ thống tổng hợp theo các tiêu chí.
+ Bước 4: Cập nhật dữ liệu tổng hợp vào bảng tổng hợp.
d. Nghiệp vụ Tổng hợp cước nóng.
+ Bước 1: Tìm kiếm thông tin về thuê bao, hợp đồng cần chốt cước
nóng.
- Khi có yêu cầu từ khách hàng muốn thực hiện chốt cước nóng
cho các thuê bao, hợp đồng, người dùng sẽ thực hiện tìm kiếm thông
tin cần chốt vào hệ thống.
+ Bước 2: Thực hiện chốt cước nóng.
- Sau khi tìm kiếm thông tin cần chốt, người dùng kích hoạt sự
kiện chốt cước nóng cho thuê bao, hợp đồng. + Bước 3: Tính toán số
liệu phát sinh trong kỳ cho thuê bao, hợp đồng.
- Hệ thống sẽ tính toán số liệu phát sinh từ đầu chu kỳ cho đến
thời điểm chốt cước nóng của thuê bao, hợp đồng cần chốt.
+ Bước 4: Tính toán số liệu điều chỉnh trong kỳ cho thuê bao, hợp
đồng.
- Đối với các điều chỉnh cho thuê bao, hợp đồng cần chốt cước nóng

từ đầu kỳ, hệ thống cũng tổng hợp số liệu các điều chỉnh này.
+ Bước 5: Tính toán công nợ cho các thuê bao, hợp đồng của khách
hàng.
- Công nợ của các thuê bao, hợp đồng cần chốt cước nóng được
tính theo công thức như sau:
Cước nóng = Tổng số đầu kỳ - tổng số tiền đã thanh toán + tổng số
phát sinh trong kỳ + tổng số điều chỉnh trong kỳ.
+ Bước 6: Nhân viên tính cước chuẩn bị câu lệnh SQL để kiểm tra
việc thực hiện khóa sổ.
e. Nghiệp vụ Phân tích giao dịch treo.
Giao dịch treo là các giao dịch phát sinh trong thời điểm đang khóa
sổ, hoặc sau thời điểm khóa sổ, nhưng giao dịch trước đấy của hợp
đồng đang là giao dịch treo.
+ Bước 1: Lấy danh sách tất cả các giao dịch treo, thông tin cần
lấy bao gồm(bao gồm cả 2 trường hợp khách hàng chỉ ra thuê bao và
không chỉ ra thuê bao cần thanh toán).
+ Bước 2: Phân tích giao dịch treo theo nguyên tắc gạch nợ, phần
7


này tham khảo nguyên tắc gạch nợ bên payment (cập nhật thông tin
thanh toán chi tiết từng tháng theo thuê bao và theo hợp đồng), sau
đó đánh dấu là giao dịch đã được phân tích.
- Đối với số tiền đã fill vào thuê bao thì sẽ phân tích xuống theo
thuê bao theo nguyên tắc từ tháng xa đến tháng gần.
- Đối với số tiền chưa fill vào thuê bao nào thì phân tích theo
nguyên tắc như một thanh toán mới từ đầu, tức là sẽ phải chọn thuê
bao theo nguyên tắc trên hệ thống, sau mới fill số tiền theo nguyên
tắc phân tích nợ.
+ Bước 3: Kiểm tra lại xem còn giao dịch nào được đẩy vào thêm

không.
+ Bước 4: Nếu không còn giao dịch thì kết thúc. Nếu còn giao dịch
thì quay lại Bước 1.
f. Nghiệp vụ Khóa sổ.
+ Bước 1: Tìm kiếm danh sách cần điều chỉnh.
- Đối với quy trình điều chỉnh thì phải xác định được danh sách
các thuê bao (hoặc hợp đồng) để điều chỉnh. Các thông tin cơ bản để
tìm kiếm bao gồm:
• Số CMT/Hộ chiếu, mã số thuế.
• Số hợp đồng có thuê bao cần điều chỉnh.
• Số thuê bao cần điều chỉnh.
+ Bước 2: Nhập số liệu điều chỉnh.
- Sau khi xác định được danh sách thuê bao (hoặc hợp đồng) cần
điều chỉnh, phải thực hiện nhập số tiền cần điều chỉnh cho các thuê
bao (hợp đồng) đó.
+ Bước 3: Kiểm tra xem có phải điều chỉnh cho hợp đồng hay không?
Nếu là điều chỉnh cho hợp đồng thì thực hiện Bước 3, nếu là điều
chỉnh cho thuê bao thì thực hiện Bước 4.
+ Bước 4: Tính toán số liệu điều chỉnh cho thuê bao trong hợp đồng
theo quy tắc cấu hình.
- Hệ thống có các tham số cấu hình để áp dụng các quy tắc phân
bổ điều chỉnh cho các thuê bao trong hợp đồng, các quy tắc phân bổ
này có thể là:
• Phân bổ đều cho các thuê bao trong hợp đồng.
• Phân bổ theo tỷ lệ phần trăm của cước phát sinh.
• Phân bổ theo tỷ lệ phần trăm của số tiền phải thanh toán.
- Sau khi áp dụng quy tắc phân bổ cho từng hợp đồng sẽ tính toán
được số liệu điều chỉnh cho từng thuê bao trong hợp đồng đó.
+ Bước 5: Thực hiện điều chỉnh cho thuê bao.
- Đối với điều chỉnh thuê bao thì bắt đầu thực hiện điều chỉnh, đối

8


với điều chỉnh hợp đồng thì sau khi tính toán ra số liệu điều chỉnh cho
từng thuê bao trong hợp đồng, sẽ bắt đầu thực hiện điều chỉnh.
+ Bước 6: Xác định xem loại điều chỉnh công nợ có phải là điều chỉnh
âm không? Nếu là giao dịch điều chỉnh âm thì thực hiện Bước 8, nếu
là giao dịch điều chỉnh dương thì thực hiện Bước 7.
+ Bước 7: Nếu giao dịch điều chỉnh là giao dịch điều chỉnh dương thì
lưu lại giá trị điều chỉnh để thực hiện chốt sổ cuối kỳ.
+ Bước 8: Phân tích lại công nợ của thuê bao.
- Nếu loại điều chỉnh là giao dịch điều chỉnh âm thì lập danh sách
công nợ chi tiết của thuê bao với thứ tự từ kỳ nợ cước xa đến kỳ nợ
cước gần, sau đó đối với mỗi bản ghi công nợ chi tiết thực hiện.
- Xác định số tiền điều chỉnh đối với thuê bao đó (ĐC0).
- Nếu số tiền điều chỉnh lớn hơn số tiền còn nợ của kỳ nợ xa (N0)
nhất thì:
• Ghi số tiền điều chỉnh cho kỳ nợ xa nhất bằng số tiền nợ (N0).
• Số tiền điều chỉnh cho kỳ nợ gần hơn (N1) = ĐC0 – N0.
• Thực hiện liên lục cho đến khi số tiền điều chỉnh mới (ĐCn)
nhỏ hơn số tiền nợ (Nn).
- Nếu số tiền điều chỉnh nhỏ hơn số tiền còn nợ của kỳ nợ xa nhất
thì:
• Trừ bớt nợ cuối kỳ trước của thuê bao đó số tiền bằng với số
tiền điều chỉnh.
+ Bước 9: Cập nhật công nợ của thuê bao, hợp đồng.
g. Nghiệp vụ Khuyến mại.
+ Bước 1: Liệt kê các chương trình khuyến mại còn hiệu lực.
- Khi thực hiện tính toán số liệu khuyến mại cần lên danh sách các
chương trình khuyến mại đang có hiệu lực. Các chương trình khuyến

mại đang có hiệu lực lấy trong danh mục khuyến mại.
+ Bước 2: Tìm kiếm danh sách thuê bao, hợp đồng thõa mãn chương
trình khuyến mại.
- Mỗi chương trình khuyến mại sẽ tham chiếu đến một danh sách
các thuê bao thõa mãn các điều kiện của chương trình khuyến mại đó,
bước này thiết lập để tìm ra được danh sách thuê bao, hợp đồng.
+ Bước 3: Sắp xếp các chương trình khuyến mại theo thứ tự ưu tiên.
- Các chương trình khuyến mại sẽ được sắp xếp theo thứ tự ưu
tiên phục vụ cho việc chạy chương trình khuyến mại nào trước trong
hệ thống.
- Các thông tin cơ bản:
• Mã chương trình khuyến mại.
• Thứ tự ưu tiên của các chương trình khuyến mại.
9


+ Bước 4: Khuyến mại là dành cho các hợp đồng hay là cho thuê
bao? Nếu là khuyến mại dành cho hợp đồng thì chuyển sang Bước 5,
nếu không thì chuyển sang Bước 6.
+ Bước 5: Tìm kiếm danh sách của các thuê bao trong hợp đồng.
- Đối với khuyến mại cho hợp đồng, phải tìm được danh sách các
thuê bao trong hợp đồng để phân bổ các khuyến mại cho các thuê bao
đó, sau đó sẽ tổng hợp khuyến mại lên mức hợp đồng.
+ Bước 6: Áp dụng và tính số khuyến mại cho thuê bao.
- Khi đã tìm được danh sách các thuê bao được khuyến mại, hệ
thống sẽ thực hiện tính toán các chương trình khuyến mại cho từng
thuê bao. Cách tính khuyến mại được lưu trữ trong các script của từng
chương trình khuyến mại.
+ Bước 7: Cập nhật số liệu khuyến mại cho hợp đồng.
- Số liệu khuyến mại sau khi được tính toán cho thuê bao sẽ được

cập nhật lên mức hợp đồng.
h. Nghiệp vụ Kiểm tra.
+ Bước 1: Nhân viên tính cước chuẩn bị câu lệnh SQL để kiểm tra
việc thực hiện khóa sổ.
+ Bước 2: Thực hiện câu lệnh kiểm tra dữ liệu đã tổng hợp với dữ
liệu vừa thực hiện tổng hợp, Nếu dữ liệu đúng thì kết thúc. Nếu dữ
liệu bị sai lệch thì sẽ thực hiện tiếp Bước 3.
+ Bước 3: Thực hiện kiểm tra dữ liệu theo các hướng (Bill Item), nếu
có hướng sai thì sẽ kiểm tra tại Bước 4. Ở bước này ta sẽ có danh
sách các hướng bị lệch, ta thực hiện tiếp kiểm tra từng hướng bị lệch.
+ Bước 4: Thực hiện kiểm tra dữ liệu theo ngày của hướng bị lệch. Ở
bước này ta sẽ có danh sách các ngày bị lệch của hướng đấy, và thực
hiện kiểm tra tiếp đến mức nhỏ hơn.
+ Bước 5: Kiểm tra dữ liệu tổng hợp của thuê bao, và đưa ra danh
sách các thuê bao bị lệch cước.
i. Nghiệp vụ In thử.
+ Bước 1: Lấy danh sách tất cả khách hàng có thông báo cước trên
hệ thống.
+ Bước 2: Sắp xếp lại theo thứ tự ưu tiên với các tiêu chí NSD chọn.
+ Bước 3: Gán cho KH một số thứ tự như đã sắp xếp ở Bước 2
và lưu vào CSDL. Kèm theo việc gán là tạo ra một mã barcode (như
mô tả ở tài liệu THNV). Và tạo ra một mã jobin cho khách hàng,
mỗi khách hàng sẽ thuộc một nhóm có chung một mã jobin, trong
một jobin sẽ có khoảng 3000-4000 item no liên tiếp nhau, tuân theo
nguyên tắc một jobin không được thuộc 2 nhóm in, một jobin không
10


được thuộc 2 tổ thu (Nhóm in là một bảng danh mục, danh mục này
sẽ chỉ ra một hình thức quản lý sẽ thuộc một nhóm in nào đấy, ví dụ

nhóm 1 gồm KNT và N1K, nhóm 2 gồm nợ đọng, nhóm 3 KXĐ. . . ).
j. Nghiệp vụ Phát hành thông báo cước.
+ Bước 1: Thực hiện Import các dữ liệu đã tính cước vào CSDL.
+ Bước 2: Kiểm tra lại số lượng các bản ghi trong CSDL được Import
của Công ty cước và dữ liệu trên cơ sở dữ liệu Billing có chính xác
không. Nếu không chính xác phải Import lại.
+ Bước 3: Tìm khách hàng có đầy đủ các hướng gọi( ví dụ: điều kiện
là đầy đủ dịch vụ, đầy đủ các gói sản phẩm, đầy đủ các khuyến mại
hiệu lực, đầy đủ các dịch vụ VAS...).
+ Bước 4: Tiến hành in thử khách hàng vừa tìm được thỏa mãn các
điều kiện trên.
+ Bước 5: Kiểm tra thông tin trên thông báo cước, chi tiết cước in
thử, nếu chính các thì nhân viên phòng Billing ký xác nhận.

1.2

Những tồn tại của hệ thống

Với độ phức tạp của quá trình xử lý như trên, dữ liệu của hệ thống ngày
càng lớn, vì vậy việc thay đổi công nghệ để hệ thống có thể đáp ứng được
yêu cầu của thực tế là việc bắt buộc phải làm.
a. Các nhược điểm của hệ thống:
- Theo quy định KPI về hệ thống, dữ liệu về cuộc gọi của khách hàng
chậm nhất là 45 phút phải hiển thị lên để CSKH thực hiện tra cứu và
giải đáp cho khách hàng nếu có khiếu nại [9].
- Khi hệ thống gặp sự cố, dữ liệu không import được vào Database
(lỗi trên hệ thống Billing Gateway, lỗi hệ thống mạng hoặc lỗi do tiến
trình import cước, lỗi Database lưu dữ liệu cước) thì dữ liệu hiện thị
lên cho CSKH tra cứu sẽ bị chậm. Thực tế, nếu sự cố xảy ra khoảng
1 giờ mới có thể khắc phục thì hệ thống cần đến 2 giờ để import hết

số lượng dữ liệu tồn trong khoảng thời gian sự cố.
- Dữ liệu trung bình tháng trong năm 2018 là khoảng 1.5TB, nhưng
sang đến năm 2019 thì dữ liệu trung bình tháng khoảng 2TB tương
ứng với khoảng 50 triệu thuê bao. Dữ liệu chi tiết này tăng cao do số
lượng thuê bao tăng hàng năm, ngoài ra nhu cầu sử dụng của khách
hàng cũng tăng.
- Qua các thông số trên ta thấy hệ thống có nguy cơ quá tải rất cao,
nhu cầu cấp thiết là phải nâng cấp hệ thống. Việc nâng cấp hệ thống
11


có 2 giải pháp là: nâng cấp tài nguyên phần cứng và nâng cáp giải
pháp phần mềm.
b. Những yêu cầu cải tiến:
- Nếu xảy ra sự cố thì hệ thống phải hoàn thành import cước chậm
nhất để không bị tồn là 45 phút. Đây là KPI của Tập đoàn cũng như
là KPI của Bộ Thông tin và truyền thông.
- Nâng khả năng import của hệ thống lên khoảng 1.5 đến 2 lần so với
hiện tại để phục vụ được nhu cầu thực tế. Với chính sách chuyển mạng
dữ số thì việc các thuê bao của mạng khác có thể chuyển sang dùng
mạng của Viettel là hoàn toàn có khả năng xảy ra, vì vậy cần nâng
cấp hệ thống sẵn sàng để có thể đáp ứng được nhu cầu kinh doanh.

12


Chương 2

Phân tích, lựa chọn và thiết kế giải
pháp

2.1
2.1.1

Mô hình giải pháp cũ.
Mô hình vật lý hệ thống Billing hiện tại.

Đây là mô hình vật lý truyền thống của một hệ thống công nghệ thông
tin, bao gồm các thiết bị mạng, thiết vị máy chủ và thiết bị lưu trữ. Các
thành phần vật lý đều có dự phòng đảm bảo rằng một node mạng vật lý
bị down sẽ không ảnh hưởng đến hệ thống.
Với mô hình này, việc mở rộng các thành phần vật lý rất đơn giản, trong
khoảng từ năm 2006 đến năm 2018 [10] thì số lượng node mạng đã tăng
lên khoảng 10 lần, tương ứng với khoảng 3.000 node mạng (bao gồm các
thiết bị như: firewall, switch, load blancer, server, storage, tape). Số lượng
node mạng lớn sẽ làm cho công tác vận hành khai thác khó hơn, tốn nhiều
nhân sự để thực hiện công tác vận hành khai thác.

13


Hình 2.1: Mô hình vật lý hệ thống Billing.

a. Nhóm các thiết bị mạng
- Cặp Switch core: là cặp switch đảm nhiệm vai trò giao diện giữa hệ
thống Billing và các hệ thống khác.
- Cặp Load Balancing: làm nhiệm vụ phân tải các connection từ bên
ngoài và chia đều vào các đường link của ứng dụng.
- Cặp Switch nội bộ: làm nhiệm vụ kết nối giữa các máy chủ và cặp
Switch core. Switch nội bộ được chia làm hai nhóm chính là nhóm
dành cho máy chủ app và nhóm dành cho máy chủ Database.

b. Nhóm các thiết bị máy chủ
- Thiết bị máy chủ được chia làm hai nhóm chính, nhóm ứng dụng
vào nhóm Database. Nhóm ứng dụng có cấu hình thấp hơn so với máy
chủ nhóm Database nhưng có số lượng nhiều hơn.
c. Nhóm các thiết bị lưu trữ
- Cặp Sanswitch: là thiết bị trung gian để đấu nối giữa máy chủ và
thiết bị lưu trữ thông qua kết nối quang.
- Thiết bị lưu trữ: bao gồm hai tủ đĩa dùng để lưu toàn bộ dữ liệu
của hệ thống. Dữ liệu trên hai tủ đĩa giống nhau nhằm mục đích dự
phòng cho nhau.
14


2.1.2

Mô hình logic hệ thống Billing hiện tại.

Mô hình được phân theo các khối chức năng khác nhau, được chia làm
bốn khối:
- Khối import chi tiết cước;
- Khối tính cước;
- Khối giao diện với cửa hàng;
- Khối lưu trữ dữ liệu.

Hình 2.2: Mô hình logic hệ thống Billing.

a. Khối import chi tiết cước
Đây là khối cung cấp dữ liệu đầu vào cho hệ thống. Toàn bộ thông tin
chi tiết về cuộc gọi, tin nhắn, dữ liệu đều được import vào Database
phục vụ cho việc tính cước và tra cứu cước.

b. Khối tính cước
Khối tính cước có chức năng tổng hợp cước định kỳ, tính khuyến mại
và khóa sổ cuối tháng và in thông báo cước cho khách hàng. Toàn bộ
nghiệp vụ tính cước đều nằm trên khối này, đây cũng là khối chức
năng chiếm tài nguyên nhiều nhất
c. Khối giao diện với khách hàng
Khối này là giao diện cho nhân viên tại cửa hàng. Các chức năng chính
như: đăng ký thuê bao mới, cập nhật thuê bao, thu cước, in chi tiết
cước...
d. Khối lưu trữ dữ liệu

15


Toàn bộ dữ liệu đều được lưu trữ trên hai Database Oracle. Database
thứ nhất lưu toàn bộ dữ liệu về cuộc gọi của khách hàng. Database
thứ hai lưu dữ liệu về khách hàng và thông tin về tiền cước của khách
hàng.

2.2

Mô hình giải pháp hệ thống Billing mới và hoàn toàn miễn
phí.

Hiện nay có nhiều giải pháp sử dụng công nghệ Open Source, trong đề
tài này tác giả chọn mô hình giải pháp của Hortonworks. Giải pháp này
do Apache phát triển và đang được sử dụng rộng rãi, phù hợp với việc xử
lý dữ liệu lớn và có cấu trúc hoặc phi cấu trúc.

Hình 2.3: Mô hình giải pháp hoàn toàn miễn phí.


a. Khối chức năng import (ETL)
Red Hat Fuse: là một nền tảng tích hợp mã nguồn mở dựa trên
Apache Camel. Nó là một nền tảng tích hợp phân tán cung cấp một
phương pháp, cơ sở hạ tầng và công cụ được chuẩn hóa để tích hợp
các dịch vụ, các dịch vụ nhỏ và các thành phần ứng dụng. JBoss Fuse
sử dụng công nghệ (Java Business Integration-JBI) làm nền tảng tích
hợp ứng dụng. Nhờ vậy, JBoss Fuse thừa kế các tính năng trên JBI
như: các bộ định tuyến và chuẩn hoá thông điệp, các tác vụ để quản
lý và cài đặt các thành phần trong trục tích hợp...
b. Khối chức năng lưu tạm thời (cache)
Kafka: là hệ thống truyền thông điệp phân tán, độ tin cậy cao, dễ
dàng mở rộng và có thông lượng cao. Kafka cung cấp cơ chế offset (có
thể hiểu như tương tự như chỉ số của một mảng) để lấy thông điệp
một cách linh hoạt, cho phép các ứng dụng xử lý có thể xử lý lại dữ
16


liệu nếu việc xử lý trước đó bị lỗi. Ngoài ra, cơ chế “đăng ký” theo dõi
cho phép việc lấy thông điệp ra gần như tức thời ngay khi dữ liệu đi
vào hàng đợi. Kafka được thiết kế hỗ trợ tốt cho việc thu thập dữ liệu
thời gian thực.
• Tốc độ nhanh: Với một máy đơn cài đặt Kafka có thể xử lý số
lượng dữ liệu từ việc đọc và ghi lên tới hàng trăm megabyte trong một
giây từ hàng ngàn máy khách.
• Khả năng mở rộng: Kafka được thiết kế cho phép dễ dàng được
mở rộng và trong suốt với người dùng (nghĩa là không có thời gian chết
– ngừng hoạt động trong khi thêm một nút máy chủ mới vào cụm).
Khi Kafka chạy trên một cụm, luồng dữ liệu sẽ được phân chia và
được vận chuyển tới các nút trong cụm, do đó cho phép trung chuyển

các dữ liệu mà có khối lượng lớn hơn nhiều so với sức chứa của một
máy đơn.
• Độ tin cậy: Dữ liệu vào hàng đợi sẽ được lưu trữ trên ổ đĩa và
được sao chép tới các nút khác trong cụm để ngăn ngừa việc mất dữ
liệu, như vậy Kafka đảm bảo tính chịu lỗi cao.
c. Khối quản lý, lưu trữ dữ liệu(storage)
HDFS: là 1 hệ thống lưu trữ chính được dùng bởi Hadoop. Nó cung
cấp truy cập hiệu suất cao đến dữ liệu trên các cụm Hadoop. Nó
thường được triển khai trên các phần cứng chi phí thấp. Các máy chủ
chi phí thấp này rất dễ xảy ra lỗi phần cứng. Vì lý do này mà HDFS
được xây dựng để có khả năng chịu lỗi cao. Tốc độ truyền dữ liệu giữa
các nodes trong HDFS là rất cao, dẫn đến giảm thiểu nguy cơ lỗi.
YARN: là một framework hỗ trợ phát triển ứng dụng phân tán.
YARN cung cấp daemons và APIs cần thiết cho việc phát triển ứng
dụng phân tán, đồng thời xử lý và lập lịch sử dụng tài nguyên tính
toán (CPU hay memory) cũng như giám sát quá trình thực thi các
ứng dụng đó.
MapReduce: Đây là hệ thống dựa trên YARN dùng để xử lý song
song các tập dữ liệu lớn. MapReduce framework gồm một single master
(máy chủ) JobTracker và các slave (máy trạm) TaskTracker trên mỗi
cluster-node. Master có nhiệm vụ quản lý tài nguyên, theo dõi quá
trình tiêu thụ tài nguyên và lập lịch quản lý các tác vụ trên các máy
trạm, theo dõi chúng và thực thi lại các tác vụ bị lỗi. Những máy slave
TaskTracker thực thi các tác vụ được master chỉ định và cung cấp
thông tin trạng thái tác vụ (task-status) để master theo dõi.
Zookeeper: là một dịch vụ tập trung để duy trì thông tin cấu hình,
đặt tên, cung cấp sự đồng bộ phân tán và cung cấp các dịch vụ nhóm.
Nói đơn giản trong Hadoop Cluster có nhiều nodes khác nhau và có
17



một node là master. Giả sử master node bị lỗi với bất kỳ lý do gì
thì vai trò của master node được chuyển cho một node khác. Vai trò
chính của master node là quản lý việc ghi theo thứ tự giữa các nodes.
Zookeeper sẽ gán master node mới và đảm bảo rằng Hadoop cluster
thực hiện tiếp việc xử lý và không gặp vấn đề gì. Zookeeper là phương
pháp phối hợp tất cả các yếu tố của hệ thống phân tán Hadoop.
HBase: là một hệ cơ sở dữ liệu mã nguồn mở được xây dựng dựa
trên BigTable được mô tả trong nghiên cứu “BigTable: A Distributed
Storage Systemystem for Structure Data”. HBase cung cấp khả năng
lưu trữ dữ liệu lớn lên tới hàng tỷ bản ghi, hàng triệu cột khác nhau
cũng như hàng petabytes dung lượng. HBase là một NoSQL điển hình
bởi vậy các tables của HBase không có một schemas cố định và không
có các quan hệ giữa các bảng, không cung cấp phép join giữa các bảng.
Hadoop có khả năng mở rộng tốt và được thiết kế để mở rộng theo
chiều ngang (Scale horizontally).
d. Khối truy cập dữ liệu (access)
Apache Oozie: có khả năng định nghĩa một luồng tiến trình trong
đó các tiến trình con có thể được thực hiện song song hay kết hợp một
cách rất linh hoạt. Oozie còn hỗ trợ một thành phần đóng vai trò như
một máy chủ sẽ kiểm soát và thống kê số liệu về những tiến trình đã
đang và sẽ được thực thi. Đối với một tiến trình đơn lẻ hay đối với
luồng dữ liệu kiểu micro, việc tiến trình sẽ chỉ được định nghĩa chứ
không thể được thực thi một cách tự động, việc khởi chạy một tiến
trình nào đó sẽ phải thực hiện một cách thủ công. Còn đối với Oozie,
các luồng tiến trình có thể được thực thi tự động tại một thời điểm cụ
thể với một tần suất cụ thể được định nghĩa ra bởi các coordinators
của nó.
Pig: là một nền tảng cấp cao để tạo các chương trình MapReduce
được dùng với Hadoop và ngôn ngữ chúng ta dùng cho nền tảng này

được gọi là PIG Latin. Pig được thiết kế để giúp Hadoop thân thiện
với người dùng hơn và thích hợp hơn. PIG là một môi trường thực thi
tương tác hỗ trợ ngôn ngữ Pig Latin. Ngôn ngữ Pig Latin hỗ trợ nạp
và xử lý dữ liệu đầu vào với một chuỗi các biến đổi để tạo ra kết quả
mong muốn. PIG có hai môi trường thực thi khác nhau 1) Local Mode
– tất cả scripts chạy trên 1 máy đơn. 2) Hadoop – tất cả scripts chạy
trên Hadoop Cluster.
Hive: là hạ tầng kho dữ liệu cho Hadoop. Nhiệm vụ chính là cung cấp
sự tổng hợp dữ liệu, truy vấn và phân tích. Nó hỗ trợ phân tích các tập
dữ liệu lớn được lưu trong HDFS của Hadoop cũng như trên Amazon
S3. Điểm hay của HIVE là hỗ trợ truy xuất giống SQL đến dữ liệu
18


×