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

Phát triển nền tảng phân tích dữ liệu thời gian thực cho thành phố thông minh

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 (414.52 KB, 3 trang )

Tuyển tập Hội nghị Khoa học thường niên năm 2018. ISBN: 978-604-82-2548-3

PHÁT TRIỂN NỀN TẢNG PHÂN TÍCH DỮ LIỆU
THỜI GIAN THỰC CHO THÀNH PHỐ THÔNG MINH
Nguyễn Văn Nam1, Nguyễn Ngọc Doanh2
1,2
JEAI WARM Thuyloi University, Vietnam and UMMISCO/IRD, France
MSLab, CSE, Thuyloi University

2.2. Quy trình khai thác dữ liệu lớn

1. GIỚI THIỆU CHUNG

Hiện nay, các thành phố hiện đại đang tìm
cách xây dựng các ứng dụng thơng minh có
thể cung cấp nhiều dịch vụ cơng ích đáp ứng
mọi nhu cầu của người dân. Điều này có thể
được thực hiện thơng qua việc phân tích dữ
liệu nhật ký ghi lại các sự kiện xảy ra hàng
ngày, hàng giờ. Quy trình cơng nghệ khai
phá dữ liệu truyền thống ETL (ExtractTransfer-Load) loại bỏ dữ liệu dư thừa gây
thất thốt lượng lớn thơng tin. Mục đích của
bài báo là giới thiệu quy trình cơng nghệ
phân tích dữ liệu lớn mới được cho là hiệu
quả hơn so với ETL.
2. PHƯƠNG PHÁP NGHIÊN CỨU

2.1. Đặt vấn đề
Thông tin về mọi hoạt động hàng ngày
trong thành phố thường được phản ánh và lưu
lại dưới dạng dữ liệu nhật ký. Đây là loại dữ


liệu lớn có khn dạng và kích thước khơng
xác định do tiến hóa liên tục. Nhưng đây lại
là nguồn dữ liệu có giá trị lớn cần phải được
khai thác hiệu quả. Quy trình khai thác dữ
liệu truyền thồng [1] gồm ba bước : lấy
(Extract) dữ liệu từ các cơ sở dữ liệu khác
nhau, chuyển đổi (Transfer) khuân dạng dữ
liệu về một dạng chuẩn chung và chuyển tải
(Load) các tập dữ liệu con đến nơi sử dụng.
Quy trình ETL dùng cho các khuôn dạng dữ
liệu cố định và nhu cầu có sẵn. Vì vậy, ETL
loại bỏ nhiều dữ liệu dư thừa, khó mở rộng
cho các yêu cầu cũng như các khuôn dạng
dữ liệu mới.

Dữ
liệu

Thu thập dữ liệut

Lưu trữ dữ liệu

Tương tác dữ liệu

Hình 1. Quy trình khai thác
Quy trình khai thác dữ liệu lớn (Hình 1)
được chia thành ba giai đoạn chính là : thu
thập dữ liệu (ingestion), lưu trữ dữ liệu
(storage) và tương tác dữ liệu (interaction)
(ISI)[2]. Quy trình ISI có tính mở cho phép

thu nhận các dữ liệu mới với khn dạng và
kích thước thay đổi, lưu trữ dữ liệu phân tán,
phân tích và xử lý dữ liệu gốc nhanh.
2.2.1. Thu thập dữ liệu
Giai đoạn thu thập dữ liệu thực hiện hai cơng
việc chính là phân giải dữ liệu (data filtering)
và vận chuyển dữ liệu (data shipping).
Dữ liệu lớn phi cấu trúc và thường là tuần
tự theo thời gian cần phải được phân giải
thông qua các lược đồ dữ liệu (data schema).
Lược đồ dữ liệu tuần tự đơn giản nhất là các
tệp CSV trong đó sử dụng dấu phân cách để
phân tách các trường thông tin. Tuy nhiên,
định dạng tệp văn bản không định nghĩa rõ
ràng kiểu dữ liệu của các trường thông tin.
JSON cũng là định dạng văn bản với các
trường thông tin được định nghĩa trong các
cặp khóa-giá trị. JSON cho phép xác định rõ
kiểu dữ liệu của các giá trị.
Lược đồ dữ liệu Avro (Lược đồ 1) cho
phép dữ liệu được ghi lại dưới dạng JSON và
dạng nhị phân. Dữ liệu nhị phân cho phép
việc phân giải dữ liệu chính xác ngay cả khi
không biết lược đồ dữ liệu.

169


Tuyển tập Hội nghị Khoa học thường niên năm 2018. ISBN: 978-604-82-2548-3


Lược đồ 1: Lược đồ dữ liệu Avro

2.2.3. Tương tác dữ liệu

{
"type":"record",
"name":"productrecord",
"fields":[
{"name":"id","type":"long"},
{"name":"created","type":"int"},
{"name":"product","type":"string"},
{"name":"price","type":"double"}
]
}

Dữ liệu từ xuất phát từ nhiều nguồn khác
nhau được vận chuyển đến nhiều nơi sử dụng
khác nhau. Để tránh tắc nghẽn khi vận
chuyển, hàng đợi dữ liệu (message queue) [4]
với cơ chế định tuyến quảng bá/ thuê bao
(publish/subcribe) được sử dụng.

Dữ liệu được lưu trữ cần có giao diện
tương tác với người sử dụng bên ngoài phục
vụ cho các mục đích tìm hiểu, phân tích, dự
đốn. NoSQL được thiết kế để phân tích dữ
liệu thời gian thực. Spark cung cấp SparkSQL chứa các lệnh truy vấn tương tác trực
tiếp với RDD. Mặc dù, Spark-Streaming hỗ
trợ việc xử lý luồng dữ liệu nhưng tốc độ xử
lý còn khá chậm do cần thời gian để chuyển

đổi dữ liệu từ lơ sang luồng. Dữ liệu cũng
cần được phân tích để nhận biết hình dạng và
kích cỡ. Spark-MLlib là thư viện hỗ trợ mạnh
mẽ các thuật toán học máy khám phá này.
2.2.4. Tích hợp hệ thống

2.2.2. Lưu trữ dữ liệu
Hadoop dựa trên hệ thống tệp phân tán
(HDFS) cho phép lưu trữ các tệp dữ liệu với
khn dạng và kích thước bất kỳ. Hadoop
cung cấp cơ chế MapReduce giúp ánh xạ dữ
liệu thành các bản ghi khóa-giá trị giống như
trong bảng băm. Sau đó các bản ghi được truy
xuất song song trên nhiều máy khác nhau.
MapReduce thích hợp cho việc xử lý lô dữ liệu
lớn. Tuy nhiên, việc xử lý các yêu cầu tương
tác trong MapReduce không hiệu quả do các
dữ liệu liên quan phải lưu trữ ở bộ nhớ ngoài.
Apache Spark khắc phục các điểm yếu của
Hadoop bằng cách sử dụng cấu trúc dữ liệu
RDD (Resilient Distributed Dataset) có thể
chứa bất kỳ kiểu dữ liệu trong các ngơn ngữ
lập trình phổ biến cũng như do người dùng tự
định nghĩa. RDD lưu trữ ở bộ nhớ trong và cả
bộ nhớ ngoài trong trường hợp kích cỡ lớn.
Các mơ hình quản trị cơ sở dữ liệu NoSQL
(Not only SQL) được thiết kế bằng cách
nhóm các tập dữ liệu liên quan phục vụ các
yêu cầu phân tích tương tác hay phân tích
thời gian thực. Các lược đồ dữ liệu tiên tiến

như JSON, Avro, Thrift được sử dụng để
biểu diễn các luồng dữ liệu. Các lược đồ dữ
liệu khác nhau trong cơ sở dữ liệu có thể
được nhóm thành các cột (Column-Family)
vì số cột nhỏ hơn số hàng (chẳng hạn
Cassandra) hoặc tập tài liệu (Documentbased) để có thể chứa nhiều khóa liên quan
hay đồ thị (Graph-based) để phục vu các đối
tượng dữ liệu với các thuộc tính liên quan.

Nền tảng cơng nghệ cho thành phố thơng
minh (hình 2) bao gồm tầng thu thập dữ liệu
sử dụng nền tảng Confluent có chứa hàng đợi
dữ liệu Kafka Stream. Cấu trúc của các
nguồn dữ liệu nhật ký được định nghĩa bởi
Avro. Các lược đồ dữ liệu mới được đăng ký
với hệ thống thơng qua Schema Registry
(ZooKeeper).

Hình 2. Nền tảng phân tích dữ liệu lớn
Dữ liệu gốc thơng qua Kafka được đưa đến
NoSQL Cassandra, đến ElasticSearch với cơ
chế đánh chỉ số ngược và đến Hadoop.
Golang được sử dụng như cổng đa dịch vụ
(REST API gateway) để phát triển các ứng
dụng phân tích thời gian thực. Kibana đi liền
với ElasticSearch là giao diện hiển thị kết
quả tìm kiếm tùy biến của người dùng. Spark
kết hợp với Hadoop tạo ra hạ tầng phân tích
tương tác hiệu quả.


170


Tuyển tập Hội nghị Khoa học thường niên năm 2018. ISBN: 978-604-82-2548-3

3. KẾT QUẢ NGHIÊN CỨU

3.1. Kịch bản thử nghiệm
Thành phố NewYork, Mỹ [5] triển khai
dịch vụ WiFi miễn phí ở một số khu vực
đông người như quảng trường, siêu thị, bến
xe. Họ muốn giám sát, phân tích dữ liệu nhật
ký sử dụng Wifi tại các điểm truy cập trên
toàn thành phố từ đó có thể cải thiện chất
lượng dịch vụ.
3.2. Nguồn dữ liệu

Hình 4. Biểu đồ sử dụng Wifi

Chúng tôi đưa vào hệ thống hai luồng dữ
liệu của thành phố thơng minh từ 02/2016
đến 07/2017 có khn dạng khác nhau. Tập
dữ liệu thứ nhất [6] là thông tin về tên, định
danh, tọa độ vị trí, tình trạng hoạt động các
điểm truy cập WiFi [7]. Tập dữ liệu thứ hai là
là lịch sử thống kê sử dụng dịch vụ tại các
điểm truy cập WiFi.
3.3. Kết quả

4. KẾT LUẬN


Quy trình ISI được cho là phù hợp với việc
lưu trữ và xử lý dữ liệu lớn tốt hơn các quy
trình cũ ở mức độ linh hoạt và khả năng mở
rộng. Bài báo đưa ra một trường hợp nghiên
cứu đơn giản để có thể thấy một số khía cạnh
nổi bật của ISI.
5. TÀI LIỆU THAM KHẢO

Hai luồng dữ liệu sau khi qua Kafka
Stream sẽ được lưu trữ trong Cassandra.
Chúng tôi phát triển ứng dụng trên AngularJS
và Golang cho phép người dân xem bản đồ
trực tuyến các điểm truy cập Wifi cơng cộng
(Hình 3).

Hình 3. Bản đồ sử dụng Wifi
Ngoài ra, giao diện Kibana (hình 4) kết nối
trực tiếp với ElasticSearch cho phép hiển thị
báo cáo tổng hợp việc sử dụng dịch vụ Wifi
công cộng trong thành phố. Các báo cáo là cơ
sở trợ giúp ra quyết định cải thiện chất lượng
dịch vụ.

[1] Philip Russom, Data Lakes Purposes,
Practices, Patterns, and Platforms. Best
practices report in Transforming Data With
Intelligence-Talend Company, 2017.
[2] Christoph Quix, Data Lakes: A Solution or
a new Challenge for Big Data

Integrations?,
Proceedings
of
5th
International
Conference
on
Data
Management
Technologies
and
Applications, Lisbon, Portugal, 24-26,
July, 2016.
[3] Huan Tan, Exploratory research of data
lake, Technical Report, Universiteit Leiden,
28/08/2015.
[4] John, Vineet and Xia Liu. “A Survey of
Distributed
Message
Broker
Queues.” CoRRabs/1704.00411 (2017): n. pag.
[5] City
of
NewYork
Open
Data,
.
[6] NYC
Wi-Fi
Hotspot

Locations,
/>[7] LinkNYC
Usage
Statistics,
/>
171



×