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

phân tích dữ liệu luồng và trực quan kết quả lên power bi điện toán đám mây

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 (6.54 MB, 26 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINHTRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN</b>

<b>KHOA HỆ THỐNG THƠNG TIN</b>

<b>PHÂN TÍCH DỮ LIỆU LUỒNG VÀ TRỰC QUAN KẾT QUẢ LÊN POWER BIĐIỆN TOÁN ĐÁM MÂY</b>

<b>Giảng viên hướng dẫn ThS. Hà Lê Hoài Trung</b>

Lớp: IS402.O11.HTCLSinh viên thực hiện:

Nguyễn Quốc VinhĐỗ Thanh Trường

<b>Thành phố Hồ Chí Minh, 2023</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>BẢNG PHÂN CÔNG CÔNG VIỆC</b>

Nguyễn Thị TrangThơ20521973

Đỗ ThanhTrường20522079

Nguyễn QuốcVinh20522160

Lê Tiến TuấnVũ20522164

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>Mục lục</b>

<b><small>I. Giới thiệu...4</small></b>

<b><small>1.Giới thiệu đề tài...4</small></b>

<b><small>2.Mục tiêu...4</small></b>

<b><small>II. Lý thuyết tổng quan...4</small></b>

<b><small>1.Azure Stream Analytics...4</small></b>

<b><small>2.Azure Event Hub...5</small></b>

<b><small>3.Azure Blob Storage...6</small></b>

<b><small>4.Azure Synapse Analytics...8</small></b>

<b><small>5.Power BI service...9</small></b>

<b><small>III. Phân tích dữ liệu...10</small></b>

<b><small>1.Thu thập dữ liệu...10</small></b>

<b><small>2.Triển khai...10</small></b>

<b><small>2.1.Thiết lập Azure Event Hub...11</small></b>

<b><small>2.2.Thiết lập Azure Stream Analytics...16</small></b>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>I. Giới thiệu</b>

<b>1. Giới thiệu đề tài</b>

Dữ liệu luồng là một loại dữ liệu được tạo ra liên tục bởi các nguồn khác nhau, nhưthiết bị IoT, máy chủ web, mạng xã hội... Dữ liệu luồng có thể mang lại nhiều thơng tinhữu ích cho các tổ chức và cá nhân, nhưng cũng đặt ra nhiều thách thức về khả năng xửlý, lưu trữ và phân tích. Một trong những cách để khai thác dữ liệu luồng là sử dụng cáccơng cụ phân tích và trực quan hóa dữ liệu, như Power BI.

Phân tích dữ liệu cuộc gọi điện thoại bằng Azure Stream Analytics. Dữ liệu cuộc gọiđiện thoại được tạo bởi ứng dụng client (dữ liệu luồng - data stream), chứa các cuộc gọigian lận, được phát hiện bởi công cụ Stream Analytics. Có thể sử dụng các kỹ thuật từ bàitập này để phát hiện các loại gian lận khác, chẳng hạn như gian lận thẻ tín dụng hoặctrộm danh tính.

<b>2. Mục tiêu</b>

Mục tiêu của bài tập này là học cách để:

Tạo dữ liệu cuộc gọi điện thoại mẫu và gửi đến Trung tâm sự kiện Azure.Tạo cơng việc Phân tích luồng.

Cấu hình đầu vào và đầu ra cơng việc.

Xác định các truy vấn để lọc các cuộc gọi lừa đảo. Kiểm tra và bắt đầu công việc.

Trực quan hóa kết quả trong Power BI.

<b>II. Lý thuyết tổng quan 1. Azure Stream Analytics</b>

Azure Stream Analytics là một dịch vụ tích hợp trong Microsoft Azure, được thiết kếđể xử lý và phân tích dữ liệu trực tiếp từ nguồn dữ liệu thời gian thực như luồng dữ liệu,log sự kiện, và các nguồn dữ liệu khác. Dịch vụ này giúp người dùng triển khai các truyvấn trực tiếp lên dữ liệu đầu vào để trích xuất thơng tin quan trọng, thực hiện biến đổi dữliệu, và đưa ra kết quả hoặc truyền dữ liệu đó vào các hệ thống khác.

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

Một số tính năng chính của Azure Stream Analytics bao gồm:

Xử lý thời gian thực: Cho phép xử lý dữ liệu ngay khi nó được tạo ra hoặcnhận được, giúp đáp ứng nhanh chóng với sự thay đổi trong dữ liệu.

Hỗ trợ ngôn ngữ truy vấn SQL: Sử dụng ngơn ngữ truy vấn SQL để trích xuất,biến đổi, và phân tích dữ liệu, giúp người dùng khơng chun về lập trình cóthể dễ dàng sử dụng.

Tích hợp linh hoạt: Có thể tích hợp với nhiều nguồn dữ liệu khác nhau và đưara các đầu ra vào các hệ thống khác nhau như Azure Event Hub, Azure BlobStorage, Azure SQL Database, Azure Cosmos DB, Power BI, và nhiều hệthống khác.

Khả năng mở rộng: Có thể mở rộng để xử lý lượng dữ liệu lớn thơng qua sựtích hợp với các dịch vụ Azure khác.

Azure Stream Analytics thường được sử dụng trong các kịch bản như giám sát thờigian thực, phân tích dữ liệu từ Internet of Things (IoT), xử lý log sự kiện, và các ứngdụng khác liên quan đến xử lý và phân tích dữ liệu thời gian thực.

<b>2. Azure Event Hub</b>

Azure Event Hubs là dịch vụ truyền dữ liệu gốc trên nền tảng đám mây có thể truyềnphát hàng triệu sự kiện mỗi giây, với độ trễ thấp, từ bất kỳ nguồn nào đến bất kỳ đíchnào.

Bằng cách sử dụng Event Hub để thu nạp và lưu trữ dữ liệu phát trực tuyến, doanhnghiệp có thể khai thác sức mạnh của dữ liệu phát trực tuyến để thu được thơng tin chitiết có giá trị, thúc đẩy phân tích theo thời gian thực và phản hồi các sự kiện khi chúngdiễn ra, nâng cao hiệu quả tổng thể và trải nghiệm của khách hàng.

Một số tính năng chính của Azure Event Hubs bao gồm:

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

Thu thập dữ liệu sự kiện: Event Hubs có khả năng thu thập hàng triệu sự kiệnmỗi giây từ các nguồn như thiết bị IoT (Internet of Things), ứng dụng, trangweb, hoặc bất kỳ nguồn sự kiện nào khác.

Đối tượng chủ đề (Event Hubs namespaces): Event Hubs hỗ trợ đối tượng chủđề, cho phép bạn phân loại và tổ chức sự kiện thành các chủ đề khác nhau đểdễ dàng quản lý và theo dõi.

Lưu trữ dữ liệu sự kiện: Dữ liệu sự kiện được dự trữ trong một kho lưu trữ tuỳchọn, giúp bạn duy trì dữ liệu sự kiện trong khoảng thời gian cần thiết.

Khả năng mở rộng: Event Hubs có thể mở rộng để xử lý một lượng lớn sự kiệnvà đảm bảo khả năng mở rộng tốt.

Tích hợp với các dịch vụ Azure khác: Event Hubs tích hợp chặt chẽ với nhiềudịch vụ khác trong Azure như Azure Stream Analytics, Azure Functions,Azure Logic Apps, Azure Storage, và nhiều dịch vụ khác.

Azure Event Hubs là lớp nhập sự kiện ưu tiên của bất kỳ giải pháp truyền phát sự kiệnnào mà bạn xây dựng trên Azure. Nó tích hợp liền mạch với các dịch vụ dữ liệu và phântích bên trong và bên ngồi Azure nên thường được sử dụng trong các trường hợp nhưthu thập dữ liệu từ IoT, xử lý dữ liệu sự kiện trong thời gian thực, và truyền tải dữ liệu sựkiện giữa các thành phần của ứng dụng, nhằm phục vụ các trường hợp sử dụng sau:

Phân tích thời gian thực với Azure Stream Analytics để tạo thông tin chi tiết theothời gian thực từ dữ liệu truyền phát.

Phân tích và khám phá dữ liệu phát trực tuyến bằng Azure Data Explorer.Tạo các ứng dụng, chức năng hoặc vi dịch vụ gốc trên đám mây của riêng chúngta chạy trên dữ liệu truyền trực tuyến từ Event Hubs.

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

Truyền phát sự kiện bằng tính năng xác thực lược đồ bằng cách sử dụng sổ đăngký lược đồ tích hợp sẵn để đảm bảo chất lượng và khả năng tương thích của dữliệu truyền phát.

<b>3. Azure Blob Storage</b>

Azure Blob Storage là giải pháp lưu trữ đối tượng của Microsoft dành cho môi trườngđám mây. Đây là một hệ thống lưu trữ được tối ưu hóa để chứa lượng lớn dữ liệu khơngcó cấu trúc. Dữ liệu khơng có cấu trúc thường là những dữ liệu không tuân theo một mơhình hay định nghĩa cụ thể nào đó, chẳng hạn như dữ liệu văn bản, dữ liệu hình ảnh, hoặcdữ liệu nhị phân.

Blob Storage được thiết kế để:

- Cung cấp hình ảnh hoặc tài liệu trực tiếp đến trình duyệt.- Lưu trữ các tệp tin để truy cập phân tán.

- Phát trực tuyến video và âm thanh.- Ghi vào các tệp nhật ký.

- Lưu trữ dữ liệu để sao lưu và khôi phục, phục hồi sau thảm họa, và lưu trữ dữ liệulâu dài.

- Lưu trữ dữ liệu để phân tích bởi dịch vụ được đặt tại chỗ hoặc trên nền tảngAzure.

Người dùng có thể truy cập các đối tượng trong Blob Storage thông quaHTTP/HTTPS từ mọi nơi trên thế giới. Đối tượng trong Blob Storage có thể được truycập thơng qua Azure Storage REST API, Azure PowerShell, Azure CLI, hoặc một thưviện người dùng Azure Storage. Các thư viện người dùng có sẵn cho các ngơn ngữ lậptrình khác nhau, bao gồm: .NET, Java, Node.js, Python, Go

Người dùng cũng có thể kết nối một cách an toàn đến Blob Storage bằng cách sửdụng Giao thức Truyền tệp SSH (SFTP) và gắn kết các container Blob Storage bằng cáchsử dụng Giao thức Hệ thống Tệp Mạng (NFS) 3.0.

Blob Storage có hỗ trợ Azure Data Lake Storage Gen2, là giải pháp phân tích dữ liệulớn trong doanh nghiệp của Microsoft trên nền tảng đám mây. Azure Data Lake StorageGen2 cung cấp một hệ thống tệp các hệ thống theo cấp độ cũng như những ưu điểm củaBlob Storage.

Blob Storage cung cấp ba loại tài nguyên:- Tài khoản lưu trữ (Storage Account):

+ Một tài khoản lưu trữ cung cấp một không gian tên duy nhất trong Azure cho dữliệu của người dùng. Mỗi đối tượng mà người dùng lưu trữ trong Azure Storage đều cómột địa chỉ bao gồm tên tài khoản duy nhất của bạn. Sự kết hợp giữa tên tài khoản vàđiểm cuối Blob Storage tạo thành địa chỉ cơ sở cho các đối tượng trong tài khoản lưu trữcủa người dùng.

+ Các loại tài khoản lưu trữ khác nhau được hỗ trợ cho Blob Storage: purpose v2, Block blob, Page blob

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

General-- Container trong tài khoản lưu trữ:

+ Một container tổ chức một bộ các blobs, tương tự như một thư mục trong hệ thốngtệp. Một tài khoản lưu trữ có thể bao gồm một số khơng giới hạn container, và mộtcontainer có thể lưu trữ một số khơng giới hạn các blobs.

- Blob trong một container:+ Azure Storage hỗ trợ ba loại blobs:

Block blobs: Lưu trữ dữ liệu văn bản và nhị phân. Block blobs được tạo thành từcác khối dữ liệu có thể được quản lý độc lập. Chúng có khả năng lưu trữ lên đến khoảng190.7 TiB.

Append blobs: Gồm các khối giống như block blobs, nhưng được tối ưu hóa chocác hoạt động append (thêm dữ liệu vào cuối). Append blobs lý tưởng cho các kịch bảnnhư ghi log dữ liệu từ các máy ảo.

Page blobs: Lưu trữ các tệp có thể truy cập ngẫu nhiên với kích thước lên đến 8TiB. Page blobs lưu trữ các tệp đĩa cứng ảo (VHD) và đóng vai trò là ổ đĩa cho các máyảo Azure.

Biểu đồ dưới đây mô tả mối quan hệ giữa các tài nguyên này:

<b>4. Azure Synapse Analytics</b>

Azure Synapse là dịch vụ phân tích doanh nghiệp giúp tăng tốc thời gian tìm hiểu sâuvề kho dữ liệu và hệ thống dữ liệu lớn. Azure Synapse tập hợp những công nghệ SQL tốtnhất được sử dụng trong kho dữ liệu doanh nghiệp, công nghệ Spark được sử dụng chodữ liệu lớn, Data Explorer để phân tích nhật ký và chuỗi thời gian, Pipesline để tích hợpdữ liệu và ETL/ELT cũng như tích hợp sâu với các dịch vụ Azure khác như Power BI,CosmosDB và AzureML.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

Dưới đây là một số đặc điểm chính của Azure Synapse Analytics:

Lưu trữ và xử lý dữ liệu: Synapse Analytics sử dụng kiến trúc Massively ParallelProcessing (MPP) để cung cấp khả năng lưu trữ và xử lý dữ liệu lớn một cách hiệuquả.

Tích hợp dữ liệu: Dịch vụ này có khả năng tích hợp dữ liệu từ nhiều nguồn khácnhau, bao gồm cả dữ liệu có cấu trúc và khơng có cấu trúc, giúp tạo ra một hệthống phân tích tồn diện.

Tích hợp với Power BI: Có tích hợp chặt chẽ với Power BI để trực quan hóa dữliệu và tạo bảng điều khiển phân tích.

Tích hợp với dịch vụ Azure khác: Synapse Analytics tích hợp với nhiều dịch vụkhác trong Azure như Azure Event Hubs, Azure Data Factory, Azure MachineLearning, Azure Active Directory, và nhiều dịch vụ khác.

Quản lý bảo mật và nhóm người dùng: Dịch vụ này cung cấp các tính năng bảomật mạnh mẽ và khả năng quản lý người dùng, nhóm người dùng, và quyền truycập.

<b>5. Power BI service</b>

Dịch vụ đám mây Power BI Service là một dịch vụ lưu trữ dữ liệu của Power BI chophép người dùng lưu trữ báo cáo, dashboard mọi nơi mọi lúc.

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

Power BI service có 4 thành phần cơ bản như:

<b>Dashboard: là một bảng điều hướng hiển thị các số liệu quan trọng từ các Report.</b>

Bạn có thể tạo nhiều Dashboard khác nhau trong một Workspace và chia sẻ chúng vớingười khác.

<b>Workspace: là nơi bạn lưu trữ các tài liệu Power BI của riêng mình, bao gồm các</b>

Dashboard, Report và Dataset. Bạn có thể thêm hoặc xóa người dùng khác để cùng làmviệc trên Workspace.

<b>Report: là một tài liệu Power BI chứa các biểu đồ, đồ thị và thông tin chi tiết về dữ</b>

liệu. Bạn có thể tạo nhiều Report khác nhau từ cùng một Dataset hoặc từ các Datasetkhác nhau.

<b>Datasets: là một nguồn dữ liệu được liên kết với Power BI Service. Bạn có thể nhập</b>

hoặc kết nối với nhiều loại nguồn dữ liệu khác nhau, như Excel, SQL Server, Salesforce,web… Bạn có thể tạo nhiều Dataset khác nhau trong một Workspace và chia sẻ chúngvới người khác.

<b>III. Phân tích dữ liệu1. Thu thập dữ liệu </b>

Dữ liệu được tải xuống từ ứng dụng tạo sự kiện cuộc gọi điện thoại,TelcoGenerator.zip từ Microsoft hoặc lấy mã nguồn từ GitHub.

Dữ liệu cuộc gọi điện thoại chứa các trường sau:

CallrecTime Thời điểm bắt đầu cuộc gọi

dụ này, các chuyển mạch được đặt dưới dạng chuỗi đại diện cho quốc

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

gia/khu vực xuất phát (Mỹ, Trung Quốc, Anh, Đức hoặc Úc).CallingNum Số điện thoại của người gọi

Mã danh tính Quốc tế của Người gọi. Đó là một định danh duy nhất củangười gọi.

nhất của người nhận cuộc gọi.Các bước thực hiện thu thập dữ liệu:- Giải nén tệp TelcoGenerator.zip.

- Mở tệp TelcoGenerator\TelcoGenerator\telcodatagen.exe.config bằng một trìnhsoạn thảo văn bản bất kỳ.

- Cập nhật phần tử <appSettings> trong tệp cấu hình với các chi tiết sau:

o Đặt giá trị của khóa EventHubName thành giá trị của EntityPath ở cuối chuỗikết nối.

o Đặt giá trị của khóa Microsoft.ServiceBus.ConnectionString thành chuỗi kếtnối mà khơng có giá trị EntityPath ở cuối.

- Lưu lại tệp.

- Tiếp theo, mở cửa sổ dòng lệnh và chuyển đến thư mục giải nén ứng dụngTelcoGenerator. Sau đó, nhập lệnh sau: .\telcodatagen.exe 1000 0.2 2

Lệnh này có các tham số sau:

- Số lượng bản ghi dữ liệu cuộc gọi mỗi giờ.

- hần trăm xác suất gian lận, đại diện cho tần suất mà ứng dụng nên mô phỏngmột cuộc gọi gian lận. Giá trị 0.2 có nghĩa là khoảng 20% các bản ghi cuộc gọicó vẻ là gian lận.

- Thời lượng tính bằng giờ, là số giờ mà ứng dụng nên chạy. Cũng có thể dừngứng dụng bất cứ lúc nào bằng cách kết thúc quy trình (Ctrl+C) tại dịng lệnh.- Sau vài giây, ứng dụng sẽ bắt đầu hiển thị bản ghi cuộc gọi điện thoại trên màn

hình khi nó gửi chúng đến event hub.

- Tài khoản Power BI

<b>2.1. Thiết lập Azure Event Hub</b>

<b>- Tạo namespace cho event hub: Chọn Create a resource > Event hub. Tại trang</b>

Event Hubs chọn Create

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

- Thiết lập các thông số về resource group, namespace, location, pricing tier. Sau đó chọnReview + create.

Sau khi namespace được triển khai thành công, chọn Go to resource để chuyển đến trang Event Hubs Namespace.

Tại Event Hubs Namespace tiến hành tạo mới một Event Hub

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

Nhập tên Event Hub. Thiết lập partition là 2. Sử dụng các lựa chọn mặc định và chọn Review + Create.

- Cấp quyền truy cập cho event hub và lưu chuỗi kết nối

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

- Thực hiện kết nối đến event hub thông qua tên và chuỗi kết nối

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

- Khởi chạy chương trình tạo cuộc gọi

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b>2.2. Thiết lập Azure Stream Analytics- Tạo Azure Stream Analytics</b>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

- Thiết lập các thông số về Resource Group, Name, và các thơng số liên quan.

- Cấu hình Input: Chọn Add Input và Event Hub

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

- Thiết lập tên cho Input, chọn các thông tin về subscription, event hub namespace, …

Cấu hình output: Xuất dữ liệu vào Synapse Analytics

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

- Tạo Sysnapse Analytics

- Tạo table fraudcall

- Cấu hình output synapse analytics

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

- Thực hiện truy vấn

- Nhận được dữ liệu real-time

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

Cấu hình output: Xuất và trực quan hóa dữ liệu với Power BI

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

- Start job và trực quan hóa dữ liệu với Power BI

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

- Tại Power BI thực hiện tạo mới một Dashboard

- Chọn loại dữ liệu và dataset

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

- Thực hiện add tile với visualize type là Line Chart

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

- Kết quả trực quan hóa dữ liệu

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<b>IV. Tổng kết</b>

<b>1. Kết quả đạt được</b>

Với kết quả hiện tại, nhóm đã hồn thành được u cầu về bài tốn phân tích luồng dữliệu trực tuyến và trực quan hóa kết quả thông qua dịch vụ Azure Stream Analytics. Cụthể, nhóm đã tiếp cận và ứng dụng được các cơng cụ được tích hợp trong hệ sinh thái của

Azure bao gồm:- Azure Event Hub- Azure Stream Analytics Job- Azure Machine Learning Studio- Azure Storage Accounts- Azure Synapse Analytics

Nhóm cũng làm quen được các cách tiếp cận xây dựng mơ hình Machine Learningbằng cách thiết lập các công cụ được Azure hỗ trợ cũng như cách hoạt động của cơ chếgửi và nhận sự kiện của Event Hub.

Thơng qua đó, nhóm đã xây dựng được hệ thống phát hiện cuộc gọi gian lận. Từ đóđưa ra hướng giải quyết cũng như ngăn chặn các hậu qua do các cuộc gọi gian lận gây ra.

<b>2. Mở rộng phạm vi</b>

Trong thời gian sắp tới, nhóm sẽ tiếp cận bài tốn bằng cách cải thiện kết quả tínhtốn của mơ hình dự đốn bằng cách xây dựng thuật toán xử lý dữ liệu bằng AzureNotebook. Điều này sẽ giúp kiểm sốt tốt q trình huấn luyện và kết quả đầu ra của mơhình.

Bên cạnh đó, nhóm sẽ ứng dụng đề tài vào phát hiện các loại gian lận khác như gianlận thẻ tín dụng hoặc trộm danh tính.

<b>Tài liệu tham khảo</b>


×