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. Bài viết 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 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.
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 liệu lớn GIỚI THIỆU CHUNG Hiện nay, thành phố đại tìm cách xây dựng ứng dụng thơng minh cung cấp nhiều dịch vụ cơng ích đáp ứng nhu cầu người dân Điều thực thơng qua việc phân tích liệu nhật ký ghi lại kiện xảy hàng ngày, hàng Quy trình cơng nghệ khai phá liệu truyền thống ETL (ExtractTransfer-Load) loại bỏ liệu dư thừa gây thất lượng lớn thơng tin Mục đích báo giới thiệu quy trình cơng nghệ phân tích liệu lớn cho hiệu so với ETL PHƯƠNG PHÁP NGHIÊN CỨU 2.1 Đặt vấn đề Thông tin hoạt động hàng ngày thành phố thường phản ánh lưu lại dạng liệu nhật ký Đây loại liệu lớn có khn dạng kích thước khơng xác định tiến hóa liên tục Nhưng lại nguồn liệu có giá trị lớn cần phải khai thác hiệu Quy trình khai thác liệu truyền thồng [1] gồm ba bước : lấy (Extract) liệu từ sở liệu khác nhau, chuyển đổi (Transfer) khuân dạng liệu dạng chuẩn chung chuyển tải (Load) tập liệu đến nơi sử dụng Quy trình ETL dùng cho khn dạng liệu cố định nhu cầu có sẵn Vì vậy, ETL loại bỏ nhiều liệu dư thừa, khó mở rộng cho yêu cầu khuôn dạng liệu Dữ liệu Thu thập liệut Lưu trữ liệu Tương tác liệu Hình Quy trình khai thác Quy trình khai thác liệu lớn (Hình 1) chia thành ba giai đoạn : thu thập liệu (ingestion), lưu trữ liệu (storage) tương tác liệu (interaction) (ISI)[2] Quy trình ISI có tính mở cho phép thu nhận liệu với khn dạng kích thước thay đổi, lưu trữ liệu phân tán, phân tích xử lý liệu gốc nhanh 2.2.1 Thu thập liệu Giai đoạn thu thập liệu thực hai cơng việc phân giải liệu (data filtering) vận chuyển liệu (data shipping) Dữ liệu lớn phi cấu trúc thường theo thời gian cần phải phân giải thông qua lược đồ liệu (data schema) Lược đồ liệu đơn giản tệp CSV sử dụng dấu phân cách để phân tách trường thông tin Tuy nhiên, định dạng tệp văn không định nghĩa rõ ràng kiểu liệu trường thông tin JSON định dạng văn với trường thông tin định nghĩa cặp khóa-giá trị JSON cho phép xác định rõ kiểu liệu giá trị Lược đồ liệu Avro (Lược đồ 1) cho phép liệu ghi lại dạng JSON dạng nhị phân Dữ liệu nhị phân cho phép việc phân giải liệu xác lược đồ 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 đồ liệu Avro 2.2.3 Tương tác 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 vận chuyển đến nhiều nơi sử dụng khác Để tránh tắc nghẽn vận chuyển, hàng đợi liệu (message queue) [4] với chế định tuyến quảng bá/ thuê bao (publish/subcribe) sử dụng Dữ liệu lưu trữ cần có giao diện tương tác với người sử dụng bên phục vụ cho mục đích tìm hiểu, phân tích, dự đốn NoSQL thiết kế để phân tích liệu thời gian thực Spark cung cấp SparkSQL chứa 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 liệu tốc độ xử lý chậm cần thời gian để chuyển đổi liệu từ lô sang luồng Dữ liệu cần phân tích để nhận biết hình dạng kích cỡ Spark-MLlib thư viện hỗ trợ mạnh mẽ thuật toán học máy khám phá 2.2.4 Tích hợp hệ thống 2.2.2 Lưu trữ liệu Hadoop dựa hệ thống tệp phân tán (HDFS) cho phép lưu trữ tệp liệu với khn dạng kích thước Hadoop cung cấp chế MapReduce giúp ánh xạ liệu thành ghi khóa-giá trị giống bảng băm Sau ghi truy xuất song song nhiều máy khác MapReduce thích hợp cho việc xử lý lô liệu lớn Tuy nhiên, việc xử lý yêu cầu tương tác MapReduce không hiệu liệu liên quan phải lưu trữ nhớ Apache Spark khắc phục điểm yếu Hadoop cách sử dụng cấu trúc liệu RDD (Resilient Distributed Dataset) chứa kiểu liệu ngơn ngữ lập trình phổ biến người dùng tự định nghĩa RDD lưu trữ nhớ nhớ trường hợp kích cỡ lớn Các mơ hình quản trị sở liệu NoSQL (Not only SQL) thiết kế cách nhóm tập liệu liên quan phục vụ 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 đồ liệu tiên tiến JSON, Avro, Thrift sử dụng để biểu diễn luồng liệu Các lược đồ liệu khác sở liệu nhóm thành cột (Column-Family) số cột nhỏ số hàng (chẳng hạn Cassandra) tập tài liệu (Documentbased) để chứa nhiều khóa liên quan hay đồ thị (Graph-based) để phục vu đối tượng liệu với 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 liệu sử dụng tảng Confluent có chứa hàng đợi liệu Kafka Stream Cấu trúc nguồn liệu nhật ký định nghĩa Avro Các lược đồ liệu đăng ký với hệ thống thông qua Schema Registry (ZooKeeper) Hình Nền tảng phân tích liệu lớn Dữ liệu gốc thông qua Kafka đưa đến NoSQL Cassandra, đến ElasticSearch với chế đánh số ngược đến Hadoop Golang sử dụng cổng đa dịch vụ (REST API gateway) để phát triển ứng dụng phân tích thời gian thực Kibana liền với ElasticSearch giao diện hiển thị kết tìm kiếm tùy biến người dùng Spark kết hợp với Hadoop tạo hạ tầng phân tích tương tác hiệu 170 Tuyển tập Hội nghị Khoa học thường niên năm 2018 ISBN: 978-604-82-2548-3 KẾT QUẢ NGHIÊN CỨU 3.1 Kịch thử nghiệm Thành phố NewYork, Mỹ [5] triển khai dịch vụ WiFi miễn phí số khu vực đơng người quảng trường, siêu thị, bến xe Họ muốn giám sát, phân tích liệu nhật ký sử dụng Wifi điểm truy cập toàn thành phố từ cải thiện chất lượng dịch vụ 3.2 Nguồn liệu Hình Biểu đồ sử dụng Wifi Chúng đưa vào hệ thống hai luồng liệu thành phố thông minh từ 02/2016 đến 07/2017 có khn dạng khác Tập liệu thứ [6] thông tin tên, định danh, tọa độ vị trí, tình trạng hoạt động điểm truy cập WiFi [7] Tập liệu thứ hai là lịch sử thống kê sử dụng dịch vụ điểm truy cập WiFi 3.3 Kết KẾT LUẬN Quy trình ISI cho phù hợp với việc lưu trữ xử lý liệu lớn tốt quy trình cũ mức độ linh hoạt khả mở rộng Bài báo đưa trường hợp nghiên cứu đơn giản để thấy số khía cạnh bật ISI TÀI LIỆU THAM KHẢO Hai luồng liệu sau qua Kafka Stream lưu trữ Cassandra Chúng phát triển ứng dụng AngularJS Golang cho phép người dân xem đồ trực tuyến điểm truy cập Wifi cơng cộng (Hình 3) Hình Bản đồ sử dụng Wifi Ngồ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 thành phố Các báo cáo sở trợ giúp đị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, http://opendata.cityofnewyork.us [6] NYC Wi-Fi Hotspot Locations, https://data.cityofnewyork.us/CityGovernment/NYC-Wi-Fi-HotspotLocations/yjub-udmw [7] LinkNYC Usage Statistics, https://data.cityofnewyork.us/CityGovernment/LinkNYC-UsageStatistics/69wu-b929 171 ... phục vụ 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 đồ liệu tiên tiến JSON, Avro, Thrift sử dụng để biểu diễn luồng liệu Các lược đồ liệu khác sở liệu nhóm thành cột (Column-Family)... (publish/subcribe) sử dụng Dữ liệu lưu trữ cần có giao diện tương tác với người sử dụng bên phục vụ cho mục đích tìm hiểu, phân tích, dự đốn NoSQL thiết kế để phân tích liệu thời gian thực Spark cung cấp... Nền tảng phân tích liệu lớn Dữ liệu gốc thông qua Kafka đưa đến NoSQL Cassandra, đến ElasticSearch với chế đánh số ngược đến Hadoop Golang sử dụng cổng đa dịch vụ (REST API gateway) để phát triển