1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Khoa học máy tính: Nghiên cứu và phát triển giải pháp xử lý dữ liệu dòng tại nút biên trong lĩnh vực y tế

66 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

NHIỆM VỤ VÀ NỘI DUNG: – Tìm hiểu những thách thức về xử lý dữ liệu lớn trong lĩnh vực y tế và mô hình mô hình điện toán biên/sương mù ứng dụng trong lĩnh vực y tế; – Tìm hiểu bệnh tim mạ

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA

———————————–

NGUYỄN LÊ NGỌC DƯƠNG

NGHIÊN CỨU VÀ PHÁT TRIỂN GIẢI PHÁP XỬ LÝ

DỮ LIỆU DÒNG TẠI NÚT BIÊN TRONG LĨNH

Trang 2

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠITRƯỜNG ĐẠI HỌC BÁCH KHOA–ĐHQG-HCM

Cán bộ hướng dẫn khoa học : PGS.TS Thoại Nam

Cán bộ chấm nhận xét 1 : TS Nguyễn Quang Hùng

Cán bộ chấm nhận xét 2 : PGS.TS Nguyễn Thanh Hiên

Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp.HCM ngày 05 tháng 08 năm 2021 (Trực tuyến)

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: (Ghi rõ họ, tên, họchàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ)

1 Chủ Tịch: PGS.TS Trần Văn Hoài

2 Thư Ký: TS Lê Thanh Vân

3 Phản Biện 1: TS Nguyễn Quang Hùng

4 Phản Biện 2: PGS.TS Nguyễn Thanh Hiên

5 Uỷ Viên: PGS.TS Trần Công Hùng

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyênngành sau khi luận văn đã được sửa chữa (nếu có)

KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH

Trang 3

ĐẠI HỌC QUỐC GIA TP.HCM CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc lập - Tự Do - Hạnh Phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên: Nguyễn Lê Ngọc Dương MSHV: 1970212Ngày, tháng, năm sinh: 23/08/1996 Nơi sinh: Cần Thơ

I TÊN ĐỀ TÀI: Nghiên cứu và phát triển giải pháp xử lý dữ liệu dòng tại nútbiên trong lĩnh vực y tế

NHIỆM VỤ VÀ NỘI DUNG:

– Tìm hiểu những thách thức về xử lý dữ liệu lớn trong lĩnh vực y tế và mô hình

mô hình điện toán biên/sương mù ứng dụng trong lĩnh vực y tế;

– Tìm hiểu bệnh tim mạch, phương pháp theo dõi bệnh tim mạch, và ứng dụnghọc máy để xây dựng mô hình dự đoán bệnh tim mạch tại nhà;

– Dựa trên điện toán biên/sương mù xây dựng khung phần mềm thu thập phântích dữ liệu có khả năng mở rộng và xử lý theo thời gian thực;

– Đánh giá tính khả thi và so sánh với các công trình nghiên cứu đi trước

II NGÀY GIAO NHIỆM VỤ: 20/01/2021

III NGÀY HOÀN THÀNH NHIỆM VỤ: 20/06/2021

IV CÁN BỘ HƯỚNG DẪN: PGS.TS Thoại Nam

Trang 4

Lời cảm ơn

Đầu tiên là lời cảm ơn chân thành đến Thầy PGS.TS Thoại Nam trong suốtthời gian qua đã hướng dẫn và giúp đỡ tận tình trong quá trình thực hiện luậnvăn tốt nghiệp Với những lời nhận xét hướng dẫn, và định hướng chuyên nghiệpcủa Thầy đã giúp tôi có được hướng tiếp cận đúng để thực hiện đề tài, giúpchúng tôi thấy được những thuận lợi và hạn chế của các phương pháp khác nhau

và từng bước khắc phục để ngày một hoàn thiện hơn

Bên cạnh đó là lời cảm ơn sâu sắc đến gia đình và bạn bè đã động viên, cổ vũtinh thần và góp ý trong suốt quá trình học tập và thực hiện đề tài, đặc biệt làgia đình đã chăm lo và hy sinh rất nhiều để tôi có thể chuyên tâm học tập

Và sau cùng, tôi kính chúc quý Thầy Cô trong khoa Khoa Học và Kĩ Thuật MáyTính nhiều sức khỏe, niềm tin để tiếp tục thực hiện sứ mệnh cao đẹp của mình

là truyền nhiệt huyết và kiến thức cho thế hệ mai sau

TP.Hồ Chí Minh, Tháng 08 Năm 2021

Nguyễn Lê Ngọc Dương

Trang 5

Tóm tắt

Trong bối cảnh số hoá toàn cầu hiện nay trong nhiều lĩnh vực khác nhau, đặcbiệt trong lĩnh vực y tế thì việc theo dõi và quản lý về nhu cầu sức khoẻ từ xatheo thời gian thực để có thể dự đoán trước bệnh tật giúp giảm chi phí nhậpviện là ưu tiên hàng đầu cho quốc gia và toàn thế giới Vì vậy, các thiết bị y tế

có khả năng kết nối internet và các ứng dụng di động, v.v liên tục được pháttriển Tuy nhiên các thiết bị này liên tục sinh ra một lượng dữ liệu khổng lồ,được gọi là dữ liệu lớn Với tốc độ tạo dữ liệu ngày càng nhanh, nên việc thuthập, xử lý và phân tích dữ liệu để có thể thực hiện các dự đoán trong trườnghợp khẩn cấp hoặc trích xuất thông tin theo thời gian thực là một thách thứcrất lớn đối với các kiến trúc và phương pháp xử lý truyền thống Do đó, cần phải

có giải pháp về kiến trúc và phương pháp xử lý luồng dữ liệu theo thời gian thựcmột cách hiệu quả và có khả năng mở rộng cao Để khắc phục vấn đề này, luậnvăn đề xuất khung phần mềm hỗ trợ phân tích và dự đoán trước bệnh theo thờigian thực, giúp theo dõi bệnh nhân từ xa, giúp làm giảm nhiều chi phí Khungphần mềm được xây dựng dựa trên kiến trúc được đề mới xuất gần đây đượcgọi là điện toán biên/sương mù (Edge/Fog Computing), nó đem lại khả năng

xử lý và phản hồi nhanh do các máy xử lý đặt ở vị trí gần các nguồn sinh dữliệu, ngoài ra còn có khả năng lưu trữ tại nút biên/sương mù (Edge/Fog Node).Khung phần mềm tập trung vào việc thu thập dữ liệu từ các thiết bị hoặc ứngdụng di động thông qua Apache Kafka, mỗi loại bệnh sẽ được quản lý bởi mộthoặc nhiều Kafka Topics, ứng dụng giúp xử lý dữ liệu và áp dụng mô hình họcmáy dự đoán được xây dựng dựa trên Kafka Streams Để kiểm chứng cho tínhkhả thi của khung phần mềm, luận văn xây dựng khung phần mềm giúp thuthập dữ liệu và dự doán bệnh tim mạch (Heart Disease) với mô hình học sâu(Deeplearning) được huấn luyện từ tập dữ liệu có sẵn

Trang 7

be-Lời cam đoan

Tôi là Nguyễn Lê Ngọc Dương học viên cao học khoa Khoa Học và Kĩ ThuậtMáy Tính, Đại học Bách Khoa TP HCM, MSHV 1970212 Tôi xin cam đoanrằng luận văn thạc sĩ "Nghiên cứu và phát triển giải pháp xử lý dữ liệu dòng tạinút biên trong lĩnh vực y tế" là kết quả tìm hiểu, nghiên cứu độc lập của chínhbản thân Tôi xin cam đoan:

1 Luận văn được thực hiện cho mục đích tìm hiểu và nghiên cứu ở bậc caohọc

2 Các công trình, bài báo tham khảo để xây dựng nên luận văn này đều đượctrích dẫn, tham khảo Tất cả các tài liệu được trích dẫn và có tính kế thừa

từ các tạp chí và các công trình nghiên cứu đã được công bố

3 Những công cụ, phần mềm cho quá trình thực hiện luận văn đều là phầnmềm mã nguồn mở

4 Hình ảnh và số liệu được trích dẫn nguồn tham khảo rõ ràng

5 Kết quả nghiên cứu được trình bày trung thực dựa trên số liệu thực tế khichạy chương trình

TP.Hồ Chí Minh, Ngày Tháng Năm

Trang 8

Mục lục

1.1 Tổng quan đề tài 1

1.2 Mục tiêu, đối tượng nghiên cứu và phạm vi của đề tài 4

1.2.1 Mục tiêu và đối tượng nghiên cứu 4

1.2.2 Phạm vi của đề tài 5

1.2.3 Cấu trúc luận văn 5

2 Những nghiên cứu liên quan và bài toán cần giải quyết 6 2.1 Những nghiên cứu liên quan 6

2.2 Bài toán cần giải quyết 8

2.3 Công cụ giải bài toán 10

2.3.1 Công cụ xử lý dữ liệu dòng (Stream Processing Engines) 10 2.3.2 Apache Kafka 12

2.3.3 Kafka Streams 14

3 Khung phần mềm thu thập và phân tích dữ liệu trong y tế 18 3.1 Kiến trúc tổng quan 18

3.2 Kiến trúc khung phần mềm thu thập và phân tích dữ liệu 20

3.3 Thu thập dữ liệu 21

3.4 Ứng dụng xử lý dữ liệu luồng 22

4 Giải thuật xử lý dữ liệu tại nút biên 24 4.1 Bệnh tim mạch (Heart Disease) 24

4.2 Phương pháp theo dõi bệnh tim từ xa 26

4.3 Xây dựng mô hình học máy 30

Trang 9

MỤC LỤC

4.3.1 Trực quan hoá tập dữ liệu 304.3.2 Huấn luyện mô hình 324.4 Công cụ tích hợp mô hình vào ứng dụng xử lý luồng 34

5.1 Mô hình học máy dự đoán bệnh tim mạch 365.1.1 Phương pháp đánh giá mô hình dự đoán 365.1.2 Độ chính xác của mô hình dự đoán bệnh tim theo dõi từ xa 375.2 Khung phần mềm 405.2.1 Phương pháp đánh giá khung phần mềm 405.2.2 Đánh giá hiệu năng khung phần mềm 41

6.1 Kết quả đạt được 456.2 Khó khăn và hạn chế 466.3 Định hướng tương lai 46

B.1 Thiết lập Kafka Broker B2B.2 Thiết lập mô phỏng dữ liệu B3B.3 Thiết lập Kafka Streaming Application B3

Trang 10

Danh sách hình vẽ

1.1 Tổng quan mô hình điện toán biên/sương mù [1] 3

1.2 Tổng quan mô hình điện toán biên/sương mù ứng dụng trong lĩnh vực y tế [2] 4

2.1 Các tính năng của công cụ xử lý luồng hiện có và message broker [3] 11

2.2 Mô hình Publish/Subscribe [4] 11

2.3 Một hệ sinh thái sử dụng Apache Kafka [3] 13

2.4 Luồng dữ liệu và Kafka [3] 13

2.5 Đồ thị cấu trúc liên kết các bộ xử lý luồng trong Kafka Streams [5] 16 3.1 Kiến trúc tổng quan khung phần mềm 19

3.2 Thành phần và chức năng của từng thành phần trong khung phần mềm 20

3.3 Đồ thị cấu trúc liên kết xử lý và dự đoán bệnh tim 22

4.1 Điện tâm đồ (ECG) 28

4.2 Độ dốc của nhịp tim 28

4.3 Thống kê số lượng nhãn của tập dữ liệu 30

4.4 Tần suất bệnh tim mạch theo độ tuổi 31

4.5 Tần suất bệnh tim mạch theo các cơn đau ngực 31

4.6 Mối tương quan giữa các thuộc tính 32

4.7 K-Fold Cross Validation 33

4.8 Cấu trúc mô hình dự đoán bệnh tim 33

4.9 Thông số mô hình dự đoán bênh tim mạch 34

Trang 11

Danh sách bảng

4.1 Các thuộc tính của bệnh tim mạch 27

5.1 Confusion Matrix 36

5.2 Confusion Matrix cho mô hình 1 37

5.3 Confusion Matrix cho mô hình 2 38

5.4 Confusion Matrix cho mô hình 3 38

5.5 Confusion Matrix cho mô hình 4 39

5.6 Confusion Matrix cho mô hình 5 39

5.7 Cấu hình máy dùng cho thí nghiệm 41

5.8 Kết quả thông lượng tham khảo [4] 42

5.9 Kết quả thông lượng tham khảo với sự ảnh hưởng từ băng thông mạng [6] 42

5.10 Kết quả thông lượng của khung phần mềm được hiện thực với Kafka 43

5.11 Kết quả thời gian xử lý tham khảo 44

5.12 Kết quả thời gian xử lý của khung phần mềm được hiện thực với Kafka 44

Trang 12

bị theo dõi như MioT, Wearable Medical Devices, và một số công cụ thu thập

dữ liệu khác Gartner đã ước tính tổng số thiết bị IoT là 8,4 tỷ vào năm 2017 vàtăng 31% so với năm 2016 Intel ước tính 200 tỷ vào năm 2020, tương đương với

26 thiết bị thông minh cho mỗi con người trên Trái đất Về con số chi phí, tổng

số tiền chi cho các thiết bị và dịch vụ IoT là 2 nghìn tỷ đô la vào năm 2017, các

dự báo khác bao gồm 772,5 tỷ đô la vào năm 2018, tăng 14,6% so với ước tính

Nó có thể đạt 1 nghìn tỷ đô la vào năm 2020 và 1,1 nghìn tỷ đô la vào năm 2021.Các giải pháp IoT chăm sóc sức khỏe vào năm 2025 có thể đạt khoảng 1 nghìn

tỷ đô la vào năm 2025 Các số liệu thống kê sau đây cho thấy độ ảnh hưởng củaviệc ứng dụng công nghệ trong nển công nghiệp chăm sóc sức khỏe [8]:

1 Các thiết bị IoT ở các tổ chức chăm sóc sức khỏe chiếm 60%

2 Bảo trì và giám sát IoT đang diễn ra trên 73% các tổ chức

3 Đến năm 2019, các công cụ và công nghệ IoT có khả năng được triển khai

Trang 13

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI

tại 87% các tổ chức chăm sóc sức khỏe 64% bệnh nhân trong ngành chămsóc sức khỏe bắt đầu sử dụng các công cụ IoT

4 Tuy nhiên, có 89% vi phạm bảo mật IoT xảy ra trong các tổ chức chăm sócsức khỏe

Từ những con số từ thống kê có thể thấy, nền công nghiệp chăm sóc sức khỏeđang phát triển rất nhanh và phải đối mặt với nhiều thách thức được mô tả như

5 đặc tính trong dữ liệu lớn: Volume, Variety, Velocity, Veracity và Value (5V)[9]

Từ nhiều khảo sát có thể thấy trong nền công nghiệp chăm sóc sức khỏethông mình phải đối mặt mới 3 thách thức chính:

• Thứ nhất, dữ liệu chăm sóc sức khỏe đến từ nhiều nguồn phân tán, chẳnhạn như hồ sơ y tế điện tử, hình ảnh lâm sàng, dữ liệu chẩn đoán và dữ liệuyêu cầu về sức khỏe, hệ thống phát trực tuyến, cảm biến gắn vào giườngbệnh để liên tục theo dõi thông tin bệnh nhân, v v, thu thập dữ liệu từ các

hệ thống phân tán là một quá trình phức tạp do lượng dữ liệu khổng lồ

• Thứ hai, lưu trữ dữ liệu lớn và không đồng nhất đó là một vấn đề lớn; do

đó, nhu cầu về một hệ thống lưu trữ dữ liệu lớn với hiệu suất hoạt độnghiệu quả là rất cần thiết

• Thứ ba, thách thức này liên quan đến phân tích dữ liệu, đặc biệt là xử lý

dữ liệu lớn trong thời gian thực, bao gồm mô hình hóa, trực quan hóa, dựđoán và tối ưu hóa

Với những thách thức này đòi hỏi các hệ thống xử lý mới phải đối phó với dữliệu không đồng nhất hoặc xử lý dữ liệu lớn trong thời gian thực Điều này chothấy hệ thống tập trung điện toán đám mây (Cloud Computing) thuần túy sẽkhông giúp giải quyết được những thách thức vì cần phải xử lý tập trung theogói (Batch Processing), và tốn nhiều thời gian để xử lý Do đó, cần phải có một

mô hình thu thập và xử lý theo thời gian thực (Real-time Processing) hoặc cậnthời gian thực (Near Real-time Processing) Gần đây một kiến trúc hệ thốngmới được đề xuất đó là mô hình phân tích dữ liệu theo thời gian thực điện toánbiên/sương mù Hình 1.1, với mục đích giảm tải cho điện toán đám mây và mang

Trang 14

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI

các nút có khả năng tính toán, dự đoán và lưu trữ gần với nguồn sinh dữ liệu

từ các ICU, bệnh viện, phòng khám, v.v Mô hình mang lại khả năng tiền xử

lý dữ liệu, trích xuất những thông tin có ý nghĩa trước khi được thu thập tậptrung về máy chủ trung tâm Ngoài ra, với thiết kế đặt gần các nguồn sinh dữliệu (người dùng, thiết bị, ) về vị trí địa lý nên khả năng phản hồi nhanh,

độ trễ thấp, rất phù hợp cho việc theo dõi các thông số cần tính chất thời gianthực

Dựa trên mô hình điện toán biên/sương mù, luận văn xây dựng khung phầnmềm tập trung vào giải quyết việc thu thập và tiền xử lý dữ liệu theo thời gianthực hoặc cận thời gian thực trong lĩnh vực y tế Hình 1.2

Hình 1.1: Tổng quan mô hình điện toán biên/sương mù [1]

Trang 15

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI

Hình 1.2: Tổng quan mô hình điện toán biên/sương mù ứng dụng trong lĩnh vực

y tế [2]

1.2 Mục tiêu, đối tượng nghiên cứu và phạm

vi của đề tài

1.2.1 Mục tiêu và đối tượng nghiên cứu

Luận văn đề ra 2 mục tiêu cụ thể như sau:

• Dựa trên mô hình điện toán biên/sương mù xây dựng khung phần mềm đểthu thập và theo dõi dữ liệu trong lĩnh vực y tế Khung phần mềm đem lạikhả năng mở rộng và chịu tải cao với một lượng lớn dữ liệu được xử lý tạinút biên trước khi dữ liệu về nút xử lý trung tâm;

• Ứng dụng giải thuật giúp khung phần mềm có khả năng tiền xử lý và dựđoán tại nút biên Khả năng xử lý trong khoảng thời gian cho phép giúpkhung phần mềm có thể đem lại độ trễ thấp nhất có thể

Đối tượng nghiên cứu của luận văn là các loại bệnh cần theo dõi và phát hiệnsớm các bất thường để đội ngũ y bác sĩ có thể dễ dàng theo dõi và can thiệpđiều trị kịp thời như bệnh tim mạch, bệnh tiểu đường, bệnh tiểu đường thời kỳthai sản, v.v

Cụ thể đối tượng nghiên cứu chính trong luận văn là bệnh tim mạch

Trang 16

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI

1.2.2 Phạm vi của đề tài

Luận văn sẽ không tập trung vào việc định nghĩa các dữ liệu được sinh ra nhưthế nào và dữ liệu sau khi đã xử lý qua khung phần mềm được ứng dụng như thếnào Tất cả dữ liệu về các thông số theo dõi bệnh tim sẽ được mô phỏng, ngoạitrừ tập dữ liệu dùng để huấn luyện mô hình dự đoán bệnh tim từ Kaggle [10].Luận văn sẽ tập trung vào xây dựng khung phần mềm dựa trên nền điện toánbiên/sương mù và ứng dụng giải thuật máy học vào dự đoán bệnh tim mạch.Hiện thực và đánh giá khung phần mềm về khả năng chịu tải và khả năng xử

lý đưa ra dự đoán thông qua mô hình máy học

1.2.3 Cấu trúc luận văn

Chương 1 Tổng quan về nội dung, mục tiêu và phạm vi nghiên cứu

Chương 2 Những nghiên cứu liên quan và bài toán cần giải quyết

Chương 3 Khung phần mềm thu thập và phân tích dữ liệu

Chương 4 Giải thuật xử lý tại nút biên

Chương 5 Đánh giá khung phần mềm

Chương 6 Kết luận

Trang 17

Chương 2

Những nghiên cứu liên

quan và bài toán cần giải

quyết

2.1 Những nghiên cứu liên quan

Ngày nay, phân tích dữ liệu lớn, đặc biệt là phân tích chăm sóc sức khỏe đãtrở thành một vấn đề quan trọng đối với một số lượng lớn các nghiên cứu Gầnđây, nhiều bài nghiên cứu đang sử dụng máy học kết hợp với xử lý luồng trong

hệ thống chăm sóc sức khoẻ thông minh

Trong [11] tác giả đã đưa ra những thách thức phải đối mặt trong việc xử lýmột lượng lớn dữ liệu về y tế Họ đã đưa ra những thách thức như sau Thứnhất, việc thu thập và nhập dữ liệu là cần thiết cho thiết lập chăm sóc sức khỏelâm sàng, và nó là dữ liệu dạng luồng nên những thách thức chính trong khi

xử lý việc thu thập dữ liệu là băng thông mạng, khả năng mở rộng và các vấn

đề chi phí Thứ 2, sau khi thu thập thì việc quản lý và lưu trữ rất khó khắn

và cần chi phí rất lớn Thứ 3, để cải thiện kết quả của bệnh nhân và phát hiệncác dấu hiệu cảnh báo của các biến chứng, cần có khung phần mềm xử lý dòngtheo thời gian thực Ví dụ trong các dịch vụ chăm sóc sức khỏe hiện đại, bệnhnhân thường được kết nối với thiết bị y tế liên tục theo dõi huyết áp và nhịp

Trang 18

CHƯƠNG 2 NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT

tim Và để giải quyết các vấn đề, họ đã đề xuất mô hình kết hợp Apache Kafka

và Apache Spark Streaming Kafka hoạt động rất tốt trong việc vận chuyển dữliệu giữa các hệ thống khác nhau, nhưng lại không có công cụ phân tích và xử

lý, nên Spark Streaming được áp dụng vào để thực hiện việc phân tích

Nhóm tác giải ở [12] [13] cũng với ý tưởng kết hợp Apache Kafka và ApacheSpark xây dựng hệ thống xử lý luồng cho việc thu thập thông tin, phân tích

dự đoán bệnh tim mạch với mô hình máy học Decision Tree Họ sử dụng bộ dữliệu tim mạch Cleveland để huấn luyện mô hình Cả hai đều thu thập dữ liệu vàquản lý bệnh nhân thông qua mạng xã hội Twitter, sử dụng Twitter StreamingAPI để tạo các luồng dữ liệu.[12] thu thập dữ liệu và phân tích thông qua SparkStreaming, [13] kết hợp thêm Kafka để thu thập dữ liệu và Spark Streaming với

mô hình học máy để phân tích và dự đoán

Bài báo [14] dựa trên các ý tưởng về xây dựng hệ thống phân tích luồng và

áp dụng mô hình máy học Điểm đặc biệt trong [14] là nó vừa thu thập dữ liệu

và vừa huấn luyện mô hình (online traning) Kiến trúc mô hình như sau, tronggiai đoạn đầu, dữ liệu được thu thập từ các nguồn dữ liệu khác nhau; KafkaProducer liên tục tạo ra luồng dữ liệu và truyền về Kafka Broker thông qua cácchủ đề khác nhau, tên các chủ đề liên quan đến các bệnh khác nhau Thứ hai,Spark Streaming nhận luồng dữ liệu y tế với các thuộc tính liên quan đến từngbệnh và sau đó áp dụng mô hình máy học để dự đoán tình trạng sức khỏe Thứ

ba, Online Predict nhận các gói dữ liệu đầu vào và chịu trách nhiệm phân tích

và cập nhật mô hình theo dữ liệu mới đến Ở giai đoạn cuối cùng, kết quả dựđoán đến các nơi lưu dữ liệu, trong đó đầu ra cũng sẽ gửi lại một lần nữa đếnKafka để được sử dụng bởi các ứng dụng khác như dịch vụ web, hệ thống báođộng, bảng điều khiển, ứng dụng di động và mạng xã hội bệnh viện

Nhóm tác giả ở bài báo [15] xây dựng mô hình HealthFog, kết hợp mô hìnhdeep learning ở điện toán biên để theo dõi, phân tích và dự đoán bệnh tim mạchtheo thời gian thực Tác giả đưa ra thách thức với mô hình điện toán đám mâyhiện tại không thể đáp ứng hết khi cần phân tích dự đoán theo thời gian thực với

số lượng các thiết bị có thể tạo ra dữ liệu quá lớn Nên với mô hình HealthFogtác giả xây dựng kết hợp điện toán biên và điện toán đám mấy để giải quyếtbài toán trên Sử dụng ứng dụng di động để thu thập dữ liệu của bệnh nhân,

và các dữ liệu sẽ được gửi về nút biên có tên là FogBus Tận dụng lợi thế của

Trang 19

CHƯƠNG 2 NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT

điện toán biên được thế kế nằm gần các nguồn sinh dữ liệu nên việc nhận phântích và dự đoán với mô hình máy học đem lại phản hồi nhanh Các dữ liệu đượcphân tích ở FogBus sẽ được gửi về điện toán đám mây để có thể sử dụng lại.Với ý tưởng điện toán biên, [16] tác giả sử dụng một cụm máy Raspberry Pi

3 để chạy ứng dụng xử lý luồng tại nút biên Trong bài báo này, điện toán biênđược sử dụng để theo dõi, thu thập dữ liệu từ các thiết bị IoT trên xe đang dichuyển liên tục Mô hình kết hợp MQTT và Apache Flink để phân tích và xử

lý Kết quả đem lại mô hình có thể theo dõi được 245369 xe đang di chuyển tạiItaly, với 0.8 dữ liệu được sinh ra trong mỗi giây Quá trình xử lý mất 10s để cóthể gửi về đám mây

Một khung phần mềm thu thập, chuẩn hoá các loại dữ liệu không đồng nhất,

và kết hợp mô hình dự đoán tính toán nhỏ được đề xuất trong [3], bài báo tậndụng sức mạnh của Kafka Streams xây dựng mô hình dự đoán hạn hán Dựavào dữ liệu từ các trạm thu thập dữ liệu môi trường, và điểm đặc biệt các dữliệu của các trạm lại có định dạng khác nhau, tác giả kết hợp Kafka Streamingxây dựng công cự xử lý luồng để định dạng lại dữ liệu theo mong muốn và cho

đi qua mô hình dữ đoán hạn hán Trong bài báo, tác giả sử dụng ConfluentPlatform [17] một công cụ được xây dựng dựa trên Apache Kafka hỗ trợ nhiềutính năng mới để hiện thực nên mô hình đề xuất

Mô hình điện toán biên ngày càng được ứng dụng nhiều trong IoT, tại phòngthí nghiệm ở các trường đại học cũng đã đem vào giảng dạy và thực hành Bàibáo [18] xây dựng mô hình điện toán biên cho phòng thí nghiệm, tận dụng Kafka

để thu thập dữ liệu thông qua Kafka Connect để có thể hỗ trợ nhiều giao thứctrong IoT như MQTT, COAP, HTTP, v.v

2.2 Bài toán cần giải quyết

Các công trình nghiên cứu đi trước đã đưa ra những thách thức liên quan

về việc thu thập dữ liệu y tế, và từ các dữ liệu đó phân tích, trích xuất nhữngthông tin cần thiết để đưa ra dự đoán nhanh nhất có thể và sau đó là lưu trữ

dữ liệu

Với các khó khăn từ các công trình nghiên cứu đi trước, luận văn hình thànhbài toán như sau Với nhu cầu mức sống ngày càng cao của con người và việc

Trang 20

CHƯƠNG 2 NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT

ngày càng phát triển của khoa học kỹ thuật, thì việc ứng dụng khoa học kỹthuật vào lĩnh vực y tế như các công trình nghiên cứu trên là rất cần thiết Cácphòng khám, các bệnh viện, hoặc các trung tâm chăm sóc đặc biệt, v.v rất cầntheo dõi những thông số cần thiết liên quan đến bệnh của bệnh nhân một cácchặt chẽ Cụ thể trong phạm vi của luận văn, đối tượng bệnh cần theo dõi làbệnh tim, một căn bệnh có nguy cơ gây tử vong cao nên việc theo dõi liên tục

và đưa ra dự đoán sớm những dấu hiệu là rất cần thiết Giả sử một trường hợp

cụ thể, các bệnh nhân sau khi điều trị bệnh tim tại các cơ sở chữa trị được xuấtviện và cần theo dõi với tần suất theo yêu cầu của y bác sĩ Với cách truyềnthống không có sự can thiệp của khoa học kỹ thuật, các bệnh nhân chỉ có thểđược theo dõi mỗi lần tái khám định kỳ, trong quá trình giữa hai lần tái khám,đội ngũ y bác sĩ không thể theo dõi và phát hiện bất thường ngay lập tức vàcan thiệp điều trị Khi áp dụng sự theo dõi từ công nghệ, bệnh nhân có thểđược theo dõi từ xa và đều đặn, các thông số sẽ được theo dõi và phát hiện bấtthường ngay lập tức, giúp y bác sĩ có thể can thiệp kịp thời

Với bài toán đã đề ra, khung phần mềm cần xây dựng cần phải giải quyếtđược các vấn đề được trình bày sau:

1 Cách thu thập và quản lý dữ liệu đầu và từ các bệnh khác nhau, với nhiềuđịnh dạng khác nhau;

2 Giải thuật xử lý dữ liệu và đưa ra dự đoán bất thường một cách nhanhchóng;

3 Có khả năng mở rộng và đáp ứng khi lượng dữ liệu ngày càng nhiều theothời gian

Một số công trình nghiên cứu đi trước đã đưa ra cách theo dõi và dự đoánphát hiện sớm bệnh tim mạch, các tác giả đã kết hợp mô hình máy học DecisionTree và cả mô hình học sâu để đưa ra dự đoán trong mô hình theo dõi bệnhcủa họ, hệ thống của họ hướng tới hệ thống xử lý tập trung ứng dụng các côngnghệ xử lý dữ liệu lớn như Apache Spark chạy trên cụm máy chủ Và cũng cócông trình nghiên cứ tập trung vào điện toán biên để xây dựng mô hình theodõi bệnh tim Nhóm tác giả ở công trình [15] [16] đã cho thấy được sức mạnhcủa điện toán biên/sương mù trong việc giải bài toán tiền xử lý dữ liệu

Trang 21

CHƯƠNG 2 NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT

Thừa hưởng từ các công trình đã có luận văn đưa ra cách giải quyết các vấn

đề của bài toán đã đặt ra như sau Luận văn tận dụng sức mạnh và khả năngchịu tải của Apache Kafka [4] để thu thập dữ liệu từ bệnh nhân vì Kafka hoạtđộng rất tốt trong việc vận chuyển dữ liệu giữa các hệ thống, nhưng lại không

có công cụ phân tích và xử lý [11] Để xây dựng công cụ phân tích và xử lý chokhung phần mềm, luận văn dựa vào bài báo nghiên cứu [3] với ý tưởng sử dụngkhả năng xử lý dữ liệu một cách nhanh chóng và dễ sử dụng của thư viện KafkaStreams để xây dựng ứng dụng xử lý dữ liệu và dự đoán cho khung phần mềm

Để có thể xây dựng và chọn được công cụ cho các thành phần của khungphần mềm, ta cần một số khái niệm sẽ được trình bày tiếp sau đây

2.3 Công cụ giải bài toán

2.3.1 Công cụ xử lý dữ liệu dòng (Stream Processing

Engines)

Xử lý dữ liệu dòng là một phần của xử lý dòng, nó là một cách để có thể cóthể bắt được tất cả các sự kiện xảy ra trong thế giới thực theo thời gian và xử

lý dữ liệu đó theo thời gian thực Quá trình xử lý liên quan đến việc sử dụngmột công cụ nhằm thực hiện các hoạt động tính toán như tính trung bình, sosánh mẫu, dự đoán sự kiện (dự báo), lọc sự kiện, tương quan và trừu tượng hóatrên các luồng dữ liệu đầu vào hoặc tập dữ liệu

Trong nhiều năm qua, nhiều nền tảng xử lý luồng khác nhau đã được pháttriển, [3] một số được phát triển theo mô hình publish/subscribe (Hình 2.2)với công cụ xử lý dữ liệu dòng tích hợp và Message Broker Ngoài ra, vẫn cómột số một số công cụ chỉ chuyên xử lý dữ liệu dòng như Apache Storm [19], Apache Flink [20], Apache Kafka [21], Apache Spark [22], Apache Samza ,SQLStreams-Server , v.v

Trang 22

CHƯƠNG 2 NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT

Hình 2.1: Các tính năng của công cụ xử lý luồng hiện có và message broker [3]

Hình 2.1 nêu các tính năng nổi bật của các công cụ xử lý dữ liệu, xử lý luồng

và message broker khác nhau Từ đó, ta có thể thấy Apache Kafka phù hợp cho

đề tài luận văn Kafka cung cấp các tính năng quan trọng về khả năng mở rộng

hệ thống, tính sẵn sàng cao, hiệu suất cao (lên đến 100.000 message/s trên mộtmáy chủ duy nhất), và quản lý các bản ghi thông qua các Kafka Topics, điềunày có thể giúp giải quyết được hai vấn đề mà bài toán đã đề ra đó là: Cách thuthập và quản lý dữ liệu đầu từ các bệnh khác nhau, có nhiều định dạng khácnhau; Có khả năng mở rộng và đáp ứng khi lượng dữ liệu ngày càng nhiều theothời gian

Hình 2.2: Mô hình Publish/Subscribe [4]

Trang 23

CHƯƠNG 2 NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT

dữ liệu, lưu trữ các luồng dữ liệu theo cách có thể chịu được lỗi và xử lý cácluồng dữ liệu trong thời gian thực Công cụ xử lý luồng xử lý các luồng dữ liệucảm biến hoặc tập dữ liệu trong thời gian thực để xác định các mẫu sự kiện từquan sát/đọc của cảm biến đến và tương quan dữ liệu với ngưỡng giá trị đượcxác định trước/đặt trước để phân tích dự đoán

Apache Kafka có thể được chạy dưới dạng một cluster hoặc được triển khaitrong môi trường cloud, với các producers được kết nối với cụm bằng cách sửdụng Kafka Connect APIs [23], được xử lý bởi bộ xử lý luồng Kafka Clusterlưu lại các bản ghi của dữ liệu (data record) thông qua Kafka Topics Mỗi bảnghi (record) sẽ bao gồm key, value, timestamp Công cụ Kafka Streams sẽ lấyluồng dữ liệu từ các Input Topics để xử lý, chuyển hoá dữ liệu sau đó ghi ra cácOutput Topics Hình 2.4

Trang 24

CHƯƠNG 2 NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT

Hình 2.3: Một hệ sinh thái sử dụng Apache Kafka [3]

Hình 2.4: Luồng dữ liệu và Kafka [3]

Các thành phần Apache Kafka

1 Topics

Trong Kafka cluster, các messages được phân loại thành các Topics dựa trêncác thuộc tính tương tự Mỗi chủ đề tương tự như các bảng trong cơ sở dữliệu như PostgreSQL - tuy nhiên, không có các ràng buộc Trong Kafka,một số chủ đề có thể được tạo ra để phân loại sự giống nhau, với mỗi chủ

đề được xác định duy nhất bằng tên của nó Các chủ đề được chia thànhcác phân vùng trong một danh sách có thứ tự với các messages/data trongmỗi phân vùng của chủ đề được xác định bằng cách sử dụng offset [24].Các messages hoặc records được tạo từ producers được ghi vào các Topics

Trang 25

CHƯƠNG 2 NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT

thích hợp theo thứ tự thời gian hoặc trình tự đến, các consumers sử dụngcác messages/records bằng các đọc từ các Topics

3 Producers

Kafka Producers là nguồn của các messages/data ghi vào các Topics, sau

đó được ghi vào các phân vùng và được lưu trên các Brokers trong cụm.Producers rất đa dạng có thể là các cảm biến, các ứng dụng di động, v.v

4 Consumers

Consumers sử dụng các messages/data do các Producers tạo ra bằng cáchsubcribe một Topics cụ thể [24] Các Consumers được cấu hình và lập trìnhvới quyền truy cập đọc để kết nối với các Brokers thích hợp để đọc dữ liệutheo dạng luồng Trong trường hợp Broker trong cụm bị lỗi, Consumers sẽ

tự động tìm dữ liệu từ Broker có sẵn tiếp theo trong cluster Messages/datatrong các phân vùng được sử dụng theo thứ tự dựa trên hiệu số Phần bùcủa Consumer giống như dấu trang tiêu chuẩn cho phép Consumer biết bắtđầu đọc dữ liệu của Topic từ đâu Trong trường hợp một Topics có nhiềuhơn một phân vùng, data/messages được đọc song song bởi Consumer vàngẫu nhiên từ nhiều phân vùng

2.3.3 Kafka Streams

Kafka Streams [5] là một thư viện client để xây dựng ứng dụng xử lý và phântích dữ liệu được lưu trữ trong Kafka

Trang 26

CHƯƠNG 2 NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT

Một vài điểm mạnh của Kafka Streams

• Được thiết kế như một thư viện client đơn giản và nhẹ, có thể dễ dàngnhúng vào bất kỳ ứng dụng Java nào và tương thích với bất kỳ công cụđóng gói, triển khai và vận hành nào mà lập trình viên sử dụng để pháttriển các ứng dụng phát trực tuyến của họ

• Không phụ thuộc vào bất kỳ thư viện nào khác Tận dụng tối đa khả năngphân vùng và mở rộng của Apache Kafka

• Hỗ trợ khả năng chịu lỗi cao

• Hỗ trợ ngữ nghĩa xử lý chính xác một lần để đảm bảo rằng mỗi bản ghi sẽđược xử lý một lần và chỉ một lần ngay cả khi có lỗi xảy ra đối với StreamsClient hoặc Kafka Broker trong quá trình xử lý

• Sử dụng xử lý một bản ghi tại một thời điểm để đạt được độ trễ xử lýmilisecond và hỗ trợ các windowing operations dựa trên event-time với cácbản ghi đến không theo thứ tự

Cấu trúc liên kết xử lý luồng (Stream Processing Topology)

Luồng (Stream) là phần trừu tượng quan trọng nhất được cung cấp bởi KafkaStreams: nó đại diện cho một dữ liệu được cập nhật liên tục, không bị ràng buộc,

và không có điểm dừng Luồng là một chuỗi các bản ghi dữ liệu (data record)

có thứ tự, có thể phát lại và có khả năng chịu lỗi, trong đó mỗi bản ghi dữ liệuđược định nghĩa là một cặp key-value

Bất kỳ ứng dụng xử lý luồng nào sử dụng thư viện Kafka Streams Nó xácđịnh các logic tính toán thông qua một hoặc nhiều cấu trúc liên kết bộ xử lý(processor topologies), trong đó cấu trúc liên kết bộ xử lý là một đồ thị của các

bộ xử lý luồng (nodes) và chúng được kết nối với nhau bằng các luồng (edge)

Bộ xử lý luồng (stream processor) là một nút trong cấu trúc liên kết của bộ

xử lý; nó đại diện cho một bước xử lý để chuyển đổi dữ liệu trong các luồngbằng cách nhận một bản ghi dữ liệu đầu vào tại một thời điểm từ các node xử

lý trước trong đồ thị, khi đi qua mỗi node các bản ghi dữ liệu được biến hoá vàchuyển đổi theo bộ xử lý của node đó, và sau đó có thể tạo ra một hoặc nhiềubản ghi dữ liệu đầu ra cho các node xử lý sau của nó Hình 2.5

Trang 27

CHƯƠNG 2 NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT

Có hai bộ xử lý đặc biệt trong cấu trúc liên kết:

• Source Processor : là một loại bộ xử lý dòng đặc biệt không có bất kỳ bộ

xử lý nào trước nó Nó tạo ra một luồng đầu vào cho cấu trúc liên kết của

nó từ một hoặc nhiều Kafka Topics bằng cách sử dụng các bản ghi dữ liệu

từ các Topics và chuyển tiếp chúng đến bộ xử lý luồng sau đó trong đồ thị

• Sink Processor : là một loại bộ xử lý dòng đặc biệt không bộ xử lý dòngnào sau nó Nó gửi bất kỳ các bản ghi dữ liệu nào đã nhận từ các bộ xử lýluồng trên nó đến một Kafka Topics được chỉ định

Lưu ý: trong các nút bộ xử lý thông thường, các hệ thống khác cũng có thểđược sử dụng trong khi xử lý bản ghi dữ liệu Do đó, các kết quả đã được xử lý

có thể được truyền ngược trở lại Kafka hoặc được ghi vào hệ thống bên ngoài

Hình 2.5: Đồ thị cấu trúc liên kết các bộ xử lý luồng trong Kafka Streams [5]

Trang 28

CHƯƠNG 2 NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT

Định nghĩa về thời gian trong xử lý luồng

Một khía cạnh quan trọng khác trong xử lý luồng là khái niệm về thời gian

và cách nó được mô hình hóa và tích hợp

Các khái niệm phổ biến về thời gian trong luồng là:

• Event time - Thời điểm xảy ra sự kiện hoặc bản ghi dữ liệu Ví dụ: Nếu

sự kiện là một thay đổi vị trí địa lý được báo cáo bởi cảm biến GPS trong

ô tô, thì thời gian sự kiện sẽ là thời gian mà cảm biến GPS nắm bắt được

sự thay đổi vị trí

• Processing time - Thời điểm xảy ra sự kiện hoặc bản ghi dữ liệu được xử

lý bởi ứng dụng xử lý luồng, tức là khi bản ghi đang được sử dụng Thờigian xử lý có thể chậm hơn milisecond, giờ hoặc ngày, v.v so với thời gianEvent time Ví dụ: Hãy tưởng tượng một ứng dụng phân tích đọc và xử lý

dữ liệu vị trí địa lý được báo cáo từ các cảm biến trên ô tô để hiển thị nólên bảng điều khiển quản lý đội xe Ở đây, thời gian xử lý trong ứng dụngphân tích có thể là milisecond hoặc giây (ví dụ: real-time pipeline dựa trênApache Kafka và Kafka Streams) hoặc hàng giờ (ví dụ: batch processingdựa trên Apache Hadoop hoặc Apache Spark) sau Event time

• Ingestion time - Thời điểm một sự kiện hoặc bản ghi dữ liệu được Kafkabroker lưu trữ trong phân vùng của Topic Sự khác biệt với Event Time là

nó là thời gian khi bản ghi được Kafka broker thêm vào Topic Sự khác biệtđối với Processing Time là Processing Time là khi ứng dụng xử lý luồng xử

lý bản ghi Ví dụ: nếu một bản ghi không bao giờ được xử lý, thì không cókhái niệm về Processing Time cho nó, nhưng nó vẫn có Ingestion time

Trang 29

về khung phần mềm được xây dựng trong luận văn.

3.1 Kiến trúc tổng quan

Hình 3.1 mô tả kiến trúc đầy đủ các thành phần khi khung phần mềm đượctriển khai trên nút biên/sương mù Ta có thể thấy rõ được ba thành phần: cácthiết bị đầu cuối, khung phần mềm với Kafka ở tầng điên toán biên/sương mù,

và cuối cùng là điện toán đám mây bao gồm hệ cơ sở dữ liệu và các khung phầnmềm mạnh mẽ để phân tích dữ liệu như Apache Spark, Apache Storm, v.v.Theo xu hướng hiện nay với sự phát triển của Confluent [17] Kafka có thể

Trang 30

CHƯƠNG 3 KHUNG PHẦN MỀM THU THẬP VÀ PHÂN TÍCH DỮ LIỆU TRONG Y TẾ

mở rộng và hỗ trợ nhiều loại kết nối của thiết bị IoT hoặc các ứng dụng di độngnhư MQTT, REST HTTP, v.v, thông qua Kafka Connect APIs, hoặc các Proxy

do Confluent phát triển để có thể truyền dữ liệu về Kafka Broker Các dữ liệusau khi được chuyển hoá và xử lý sẽ được lưu trữ thông qua một Kafka Topicshoặc cơ sở dữ liệu thông qua Kafka Connector

Hình 3.1: Kiến trúc tổng quan khung phần mềm

Luận văn thực hiện trong môi trường nghiên cứu, nên sẽ có những hạn chếnhất định Luận văn giả định dữ liệu từ các thiết bị được thu thập không thôngqua Kafka Connect APIs, mà sử dụng trực tiếp Kafka Producer APIs để có thểgửi trực tiếp vào Kafka Broker sau đó sẽ được ứng dụng xử lý luồng được pháttriển trên thư viện Kafka Streams sẽ chạy các giải thuật để phân tích dữ liệu,sau khi phân tích kết quả sẽ được lưu trữ vào một Kafka Topics Phạm vi hiệnthực của luận văn chỉ dừng lại ở phần điện toán biên/sương mù, phần điện toánđám mây tương lai sẽ phát triển bổ sung Sau đây là phần trình bày chính chokhung phần mềm của luận văn

Trang 31

CHƯƠNG 3 KHUNG PHẦN MỀM THU THẬP VÀ PHÂN TÍCH DỮ LIỆU TRONG Y TẾ

3.2 Kiến trúc khung phần mềm thu thập và

phân tích dữ liệu

Hình 3.2, kiến trúc của khung phần mềm phân tích và xử lý, nó sẽ bao gồmcác thành phần

1 Lớp thu thập dữ liệu (data ingestion layer);

2 Lớp truyền tải trung gian (data broker layer);

3 Ứng dụng xử lý dữ liệu luồng (stream data processing engine and services);

4 Lớp truyền tải trung gian (data broker layer);

Trang 32

CHƯƠNG 3 KHUNG PHẦN MỀM THU THẬP VÀ PHÂN TÍCH DỮ LIỆU TRONG Y TẾ

Thứ hai, sau khi bản ghi dữ liệu các thông số đo đạc tương ứng với bệnh cầntheo dõi được lưu vào Kafka Topic, ứng dụng phân tích và xử lý được xây dựngdựa trên công cụ Kafka Streams cho bệnh cần theo dõi sẽ đăng ký với KafkaTopic tương ứng, nhận luồng dữ liệu để phân tích và xử lý

Ở giai đoạn cuối cùng, kết quả dự đoán đầu ra sẽ được lưu trữ vào một KafkaTopic khác hoặc một cơ sở dũ liệu, để các ứng dụng khác sử dụng như dịch vụweb, hệ thống báo động, bảng điều khiển, ứng dụng di động, mạng xã hội bệnhviện, và thậm chí là điện toán đám mây cần một lượng dữ liệu khổng lồ để phântích chuyên sâu

3.3 Thu thập dữ liệu

Đây là một thành phần trong khung phần mềm, nó có thể là các cảm biến,các ứng dụng di động, cơ sở dữ liệu, v.v – được gọi là các Producers Một loạtcác thiết bị không đồng nhất tạo ra dữ liệu chuỗi thời gian ở các định dạng dữliệu khác nhau Trong y tế, mỗi loại bệnh khác nhau cũng sẽ có kiểu dữ liệu khácnhau, để quản lý Kafka Topics được sử dụng Mỗi dữ liệu khác nhau, mỗi loạibệnh sẽ được quản lý bằng một Kafka Topic Các Producers thông qua KafkaConnect APIs gửi dữ liệu về Kafka Broker và lưu trữ vào Kafka Topic

Trong phạm vi của luận văn các dữ liệu cụ thể sẽ được thu thập là dữ liệu liênquan về bệnh tim mạch, dữ liệu bao gồm các thuộc tính cần thiết giúp theo dõibệnh tim từ xa/tại nhà Kafka Topics với tên là “heart_disease_raw” được tạo

ra để nhận dữ liệu từ các Producer Thực tế, các Producer này sẽ là ứng dụng

di động, giúp bệnh nhân cần theo dõi sẽ nhập các thông số cần thiết theo yêucầu của y bác sĩ và gửi dữ liệu theo khung thời gian Tuy nhiên, trong giới hạn

về thời gian và hạ tầng của luận văn nên tất các producers sẽ được mô phỏngbằng Python script

Script sẽ liên tục sinh một cách ngầu nhiên số liệu cho từng thuộc tính củabệnh tim, các thuộc tính sẽ được trình bày cụ thể ở Chương 4 Tốc độ sinh dữliệu xấp xỉ 3000 msg/s Mỗi bản ghi dữ liệu được sinh ra sẽ là một chuồi JSON

có dạng như sau:

Trang 33

CHƯƠNG 3 KHUNG PHẦN MỀM THU THẬP VÀ PHÂN TÍCH DỮ LIỆU TRONG Y TẾ

Như đã đề cập ở Chương 2 phần 2.3.3 Kafka Streams, bất kỳ ứng dụng xử lý

dữ liệu luồn nào sử dụng thư viện Kafka Streams, nó xác định các luồng tínhtoán thông qua một hoặc nhiều cấu trúc liên kết bộ xử lý, trong cấu trúc liênkết bộ xử lý là một đồ thị của các bộ xử lý luồng (nút) được kết nối với nhaubằng các luồng (cạnh)

Hình 3.3: Đồ thị cấu trúc liên kết xử lý và dự đoán bệnh tim

Hình 3.3, là đồ thị luồng xử lý của luận văn, đầu tiên là nút Source Processor

- lấy tất cả những bản ghi trong Kafka Topic có tên “heart_disease_raw” và lầnlượt xử lý các bản ghi đi qua các nút xử lý còn lại trong đồ thị

Nút tiếp theo là Pe-processing Data - đảm nhiệm việc chuyển đổi chuổi JSON

từ các bản ghi thành một vector với 7 chiều dữ liệu, mỗi chiều dữ liệu sẽ là mộtthông số đó của bệnh tim mạch Tại sao là 7 chiều dữ liệu? - giải thích chi tiếttại xây dựng mô hình máy học cho dự đoán bệnh tim trong Chương 4

Ngày đăng: 03/08/2024, 23:04

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN