GIỚI THIỆU VỀ ĐIỆN TOÁN ĐÁM MÂY VÀ DATA STREAMING
Tổng quan về điện toán đám mây
1.1.1 Khái niệm về điện toán đám mây Đám mây (cloud) là một mô hình mà mọi thông tin đều được lưu trữ, tính toán, xử lý trong các máy chủ đặt trên Internet Do đó, điện toán đám mây được hiểu như cách thức áp dụng các kỹ thuật điện toán dụra trên Internet Người sử dụng có thể làm việc với các thông tin đó mà không cần phải hiểu biết vể công nghệ, kỹ thuật và hạ tầng cơ sở của đám mây, Khách hàng sẽ không còn lo ngai về các kiến thức chuyên môn để điều khiển công nghệ, máy móc và cơ sở hạ tầng, mà tại đây các chuyên gia trong "đám mây" của các nhà cung cấp sẽ giúp thực hiện điều đó.
Thuật ngữ "đám mây" ở đây là lối nói ần dụ chỉ mạng Internet và liên tường vể độ phức tạp của các cơ sở hạ tầng ở bên trong Ở mô hình điện toán, mọi lĩnh vực liên quan đến công nghệ thông tin đều được cung cấp dưới dạng các "dịch vụ", nó cho phép khách hàng truy cập vào các dịch vụ của một nhà cung cấp nào đó
"trong đám mây" mả không cần phải có các kiến thức, kinh nghiệm về công nghệ, cũng như không cần quan tâm đến các cơ sở hạ tầng bên trong.
Tải nguyên, dữ liệu, phần mềm và các thông tin liên quan đều được quản lý trên các máy chủ ảo (chính là các "đám mây").
"Ứng dụng điện toán đám mây" là những ứng dụng trực tuyến trên Internet Trình duyệt là giao diện ứng dụng vận hành còn dữ liệu được lưu trữ và xử lý ở máy chủ của nhà cung cấp úng dụng đó. Điện toán đám mây tính toán, sử dụng phần mềm, truy cập dữ liệu và dịch vụ lưu trữ mà khách hàng không cần biết vị trí địa lý và cấu hình của hệ thống cung cấp dịch vụ.
Viện Tiêu chuẩn và Công nghệ (NIST) đã đưa ra nghĩa định nghĩa cụ thể:
"Điện toán đám mây là một mô hình cho phép ở một vị trí thuận tiện, khách hàng có thể truy cập mạng theo yêu cầu và được chia sẻ tài nguyên máy tính (mạng, máy chủ, lưu trữ, ứng dụng và dịch vụ) được nhanh chóng từ nhà cung cấp Trong trường hợp xấu nhất thì cũng phải cung cấp dịch vụ hoạt động ở mức cao nhất".
Hiểu theo cách khác, điện toán đám mây là sự thực hiện kết hợp nhiều công nghệ hiện có (SOA-Service Oriented Architecture - Kiến trúc hướng dịch vụ) với những ý tưởng mới để tạo ra một giải pháp công nghệ thông tin đầy đủ.
Với những ưu điểm trên việc áp dụng mô hình điện toán đám mây là một hướng lựa chọn tất yếu trong tương lai
1.1.2 Các đặc điểm của điện toán đám mây
Mô hình điện toán đám mây có những đặc điểm sau:
- Sự linh động (Agility) giúp người dùng nhanh chóng sử dụng dịch vụ và không tốn kém đầu tư vào xây dựng cơ sờ hạ tầng.
- Giao diện lập trình ứng dụng (Application Programming Interface - API) giúp người lập trình tiếp cận và tương tác với phần mềm đám mây thông qua giao diện sử dụng.
- Chi phí (Cost) giảm được đáng kể khi sử dụng đám mây công cộng, chi phí vốn để xây dựng cơ sở hạ tầng có thể chuyển qua cho hoạt động khác Điều này bỏ qua rào cản thuế quan, tại đây cơ sở hạ tầng được cung cấp bởi bên thứ ba và không cần phải mua luôn một lần để tính toán hay sử dụng công việc không thường xuyên tính toán chuyên sâu.
- Độc lập về vị trí và thiết bị (Device and location independence) cho phép người dùng truy cập hệ thống với bất kỳ nơi đâu và trình duyệt nảo, ở bất kì vị trí nào từ những thiết bị đang sử dụng như máy tính hay thiết bị di động Khi cơ sở hạ tầng được cung cấp bởi bên thứ ba thì khách hàng có thể truy cập thông qua Internet.
- Cho phép chia sê các nguồn tải nguyên và tính chi phí khi sử dụng cho nên:
Tập trung đầu tư được cơ sở hạ tầng.
Chia sẻ để tăng hiệu suất hoạt động.
Cải tiến để tăng hiệu suất hệ thống
- Độ tin cậy (Reliability) sẽ được cải tiến thông qua những góp ý của khách hàng giúp điện toán đám mây được hoàn thiện, thiết kế phù hợp cho việc kinh doanh và khắc phục những lỗi ảnh hưởng tới hệ thống và khách hàng.
- Khả năng mờ rộng (Scalability) thông qua việc cung cấp động có thể mở rộng tùy theo yêu cầu của khách hàng.
- Bảo mật (Security) có thể tập trung dữ liệu, gia tăng các hình thức bảo mật Các mối quan tâm như: mất quyền kiểm soát nhũng dữ liệu nhạy cảm và thiếu bảo mật tại nơi lưu trữ dữ liệu Bảo mật luôn được đặt lên hảng đầu, đây là nhiệm vụ an ninh phía bên nhà cung cấp phải đạm bảo khi khách hàng sử dụng Nhà cung cấp thường xuyên ghi nhật kí truy cập, để theo dõi và quản lí.
- Bảo trì (Maintenance) ứng dụng điện toán đám mây dễ dàng thực hiện công việc này nếu chúng không được cài đặt trên mỗi máy tính của mỗi người dùng.
1.1.3 Các mô hình điện toán đám mây
Các nhà cung cấp dịch vụ điện toán đám mây cung cấp các dịch vụ của họ theo ba mô hình cơ bản:
Dịch vụ dành cho Cơ sở hạ tầng (IaaS- Infrastructure as a Service).
IaaS là một dạng dịch vụ phát triển mạnh mẽ trong lĩnh vực điện toán đám mây, cho phép người dùng thuê và truy cập vào cơ sở hạ tầng máy tính mà không cần phải quản lý trực tiếp phần cứng IaaS cung cấp các nguồn tài nguyên như firewalls, load balancers, và các địa chỉ IP, trong khi hệ điều hành và các ứng dụng do người dùng tự cài đặt và cập nhật Điều này mang lại sự linh hoạt cho việc sử dụng tài nguyên và giúp dễ dàng quản lý hơn.
Dịch vụ IaaS phổ biến được cung cấp bởi các nhà cung cấp như Amazon, Google, và Microsoft Để quản lý IaaS hiệu quả, việc phát triển các templates cho các dịch vụ đám mây giúp tạo ra kế hoạch chi tiết để xây dựng hệ thống sẵn sàng sử dụng và tránh việc phải di chuyển giữa các đám mây khác nhau.
So với việc sở hữu và quản lý máy chủ, không gian lưu trữ, và thiết bị mạng, việc thuê dịch vụ IaaS mang lại sự linh hoạt và tiết kiệm chi phí Chi phí được tính dựa trên việc sử dụng chức năng và tài nguyên, phản ánh mức độ hoạt động thực tế của doanh nghiệp Điều này đánh dấu sự tiến bộ so với các giải pháp lưu trữ web và máy chủ cá nhân.
Dịch vụ dành cho Cơ sở nền tảng (PaaS-Platform as a Service).
Giới thiệu và Data Streaming
Data streaming là một phương pháp xử lý dữ liệu trong đám mây, được sử dụng để xử lý dữ liệu trong thời gian thực và liên tục, thay vì lưu trữ dữ liệu và xử lý sau này Kỹ thuật này thường được áp dụng trong các ứng dụng mà dữ liệu được tạo ra và truy cập liên tục, chẳng hạn như các ứng dụng Internet of Things (IoT), truyền thông xã hội, giám sát hệ thống, và phân tích dữ liệu từ các nguồn dữ liệu đa dạng như cảm biến, logs, và sự kiện trực tuyến.Trong một hệ thống data streaming, dữ liệu được xử lý một cách liên tục và ngay lập tức, thay vì phải đợi đến khi toàn bộ dữ liệu được gửi và lưu trữ trước khi xử lý Các hệ thống xử lý data streaming thường bao gồm các thành phần như:
Nguồn Dữ Liệu (Data Source): Đây là nơi dữ liệu được tạo ra hoặc thu thập từ các nguồn khác nhau Nguồn dữ liệu có thể là logs từ hệ thống, dữ liệu từ cảm biến IoT, hoặc dữ liệu từ các sự kiện trực tuyến.
Hệ Thống Xử Lý (Processing System): Hệ thống này nhận dữ liệu từ nguồn và thực hiện các phép xử lý trên dữ liệu này Các phép xử lý có thể bao gồm lọc dữ liệu, chuyển đổi định dạng, tính toán thống kê, hoặc phát hiện sự kiện.
Hệ Thống Lưu Trữ (Storage System): Trong một số trường hợp, dữ liệu được lưu trữ tạm thời để phục vụ cho các mục đích xử lý hoặc phân tích sau này Tùy thuộc vào yêu cầu của ứng dụng, dữ liệu có thể được lưu trữ tạm thời trong bộ nhớ hoặc trên đĩa cứng.
Điểm Đích (Sink): Sau khi dữ liệu được xử lý, nó có thể được gửi đến các điểm đích khác nhau tùy thuộc vào yêu cầu của ứng dụng Các điểm đích có thể là hệ thống lưu trữ dữ liệu lớn như Hadoop Distributed File System (HDFS), cơ sở dữ liệu trực tuyến (OLAP), hệ thống tạo báo cáo, hoặc hệ thống đồ họa để hiển thị dữ liệu.
Cùng với sự lớn mạnh của Internet of Things (IoT), tầm quan trọng của việc truyền dữ liệu (data streaming) và xử lý dòng (stream processing) cũng ngày càng tăng lên Máy theo dõi sức khỏe cá nhân và hệ thống an ninh gia đình là hai ví dụ về data streaming Hệ thống an ninh gia đình có thể bao gồm nhiều cảm biến chuyển động để giám sát các khu vực trong nhà Các cảm biến này tạo ra một luồng dữ liệu liên tục được truyền đến hạ tầng xử lý để theo dõi mọi hoạt động trong thời gian thực và lưu trữ dữ liệu để phân tích sau này Máy theo dõi sức khỏe cá nhân là một ví dụ khác về dữ liệu streaming, bao gồm máy theo dõi nhịp tim, huyết áp và mức độ oxy trong máu Các thiết bị này liên tục tạo ra dữ liệu, việc phân tích dữ liệu này kịp thời là rất quan trọng để đảm bảo sự an toàn và sức khỏe của người dùng Một ví dụ khác về data streaming là trong việc giám sát thị trường chứng khoán thời gian thực: dữ liệu tài chính thời gian thực thường được truyền ở định dạng dòng, việc xử lý và phân tích dữ liệu tài chính (như giá cổ phiếu và xu hướng thị trường) giúp các tổ chức nhanh chóng đưa ra quyết định quan trọng.
1.2.2 Đặc điểm của Data Streaming:
Nhạy với thời gian: Data streaming nhạy với thời gian, có nghĩa là mỗi dòng dữ liệu đều đi kèm với dấu thời gian và có giá trị chỉ trong một khoảng thời gian nhất định Điều này đặc biệt quan trọng trong các ứng dụng đòi hỏi xử lý dữ liệu trong thời gian thực như giám sát an ninh, quản lý tài nguyên, và phát hiện sự cố.
Tiếp diễn: Data streaming không có điểm bắt đầu hoặc điểm kết thúc rõ ràng Dữ liệu diễn ra liên tục và trong thời gian thực, không ngừng nghỉ, giúp hệ thống luôn cập nhật với thông tin mới nhất.
Không đồng nhất: Dữ liệu trong data streaming thường đến từ nhiều nguồn khác nhau và có thể có định dạng khác nhau Điều này đặc biệt thấy rõ trong các hệ thống thu thập dữ liệu từ các nguồn đa dạng như cảm biến, logs, hệ thống IoT, và ứng dụng trực tuyến.
Không hoàn hảo: Do sự đa dạng của nguồn và cơ chế truyền dữ liệu, dữ liệu trong data streaming có thể bị thiếu, hỏng hoặc không theo thứ tự Điều này đặc biệt quan trọng khi phải xử lý dữ liệu trong thời gian thực và đảm bảo tính chính xác của thông tin.
Tính biến động và không thể lặp lại: Data streaming là môi trường động, dữ liệu diễn ra liên tục và không thể lặp lại một cách hoàn toàn Mặc dù có thể lưu trữ và phân tích dữ liệu sau này, nhưng dữ liệu mới có thể không giống với dữ liệu đã xử lý trước đó do tính chất thời gian thực của data streaming.
Dữ liệu lớn (Big Data): Data streaming thích hợp cho việc xử lý dữ liệu lớn với các nguồn dữ liệu đa dạng và có thể phát sinh dữ liệu ở tốc độ cao, như logs hệ thống, dữ liệu từ cảm biến IoT, hoặc dữ liệu từ các ứng dụng trực tuyến.
1.2.3 Ưu, nhược điểm của Data Streaming:
Xử lý dữ liệu trong thời gian thực: Data streaming cho phép các ứng dụng xử lý dữ liệu ngay khi nó được tạo ra, giúp phản ứng nhanh chóng đối với sự kiện xảy ra trong thế giới thực Ví dụ, trong giám sát an ninh, việc phát hiện chuyển động bất thường và phản ứng ngay lập tức có thể giúp ngăn chặn các sự kiện không mong muốn Hay như một ví dụ khác, dòng dữ liệu thời gian thực cho phép các tổ chức giám sát liên tục hệ sinh thái kinh doanh của họ Chúng thông báo cho các tổ chức về các vi phạm bảo mật có thể xảy ra, các vấn đề sản xuất, sự không hài lòng của khách hàng, khủng hoảng tài chính Với việc truyền và xử lý dữ liệu liên tục, các tổ chức có thể tránh được những tổn thất vốn dĩ có thể ngăn ngừa.
Giảm chi phí cơ sở hạ tầng: Trong xử lý dữ liệu truyền thống, lượng lớn dữ liệu thường được lưu trữ trong kho dữ liệu Chi phí để duy trì các hệ thống lưu trữ này vô tình trở thành gánh nặng đối với các tổ chức Với data streaming, dữ liệu không được lưu trữ với lượng lớn, vậy nên các tổ chức có thể tiết kiệm được chi phí.
Tính quy mô và khả năng mở rộng: Data streaming có khả năng mở rộng dễ dàng để đáp ứng với việc xử lý lượng dữ liệu lớn và tăng cường khả năng của hệ thống khi cần thiết Các hệ thống xử lý data streaming thường có thể mở rộng theo chiều ngang để xử lý nhiều dòng dữ liệu đồng thời.
Data Streaming dựa trên môi trường Điện toán đám mây
Trong phần này chúng ta sẽ đi vào sơ lược về các thế hệ của hệ thống Data
Streaming và tìm hiểu về các hỗ trợ mới mẻ mà môi trường điện toán đám mây mang lại trong giai đoạn mới bùng nổ về khả năng kết hợp hệ thống xử lý luồng dữ liệu với điện toán đám mây (2010-2015) một số hệ thống tiêu biểu như Apache S4, Storm,D-Streams, StreamCloud,…và những phiên bản cải thiện cho đến hiện tại và sau này.
1.3.1 Các thế hệ của hệ thống xử lý luồng dữ liệu:
Hệ thống xử lý luồng dữ liệu có thể được chia thành 3 thế hệ:
Hình 1.1 Các thế hệ data streaming
Thế Hệ Đầu Tiên: Các hệ thống này được xây dựng dưới dạng nguyên mẫu độc lập hoặc dưới dạng phần mở rộng của các công cụ cơ sở dữ liệu hiện có Chúng được phát triển với mục đích sử dụng cụ thể và rất hạn chế về các loại toán tử được hỗ trợ cũng như các chức năng sẵn có Đại diện của thế hệ này bao gồm Niagara, Telegraph và Aurora.
Thế Hệ Thứ Hai: Các hệ thống này đã mở rộng các ý tưởng xử lý luồng dữ liệu với các tính năng nâng cao như khả năng chịu lỗi, xử lý truy vấn thích ứng, cũng như khả năng biểu đạt của toán tử nâng cao Các ví dụ quan trọng của lớp này là Borealis, CEDR, System S và CAPE.
Thế Hệ Thứ Ba: Các hệ thống này được thúc đẩy mạnh mẽ bởi xu hướng điện toán đám mây, đòi hỏi các công cụ xử lý luồng dữ liệu phải có khả năng mở rộng cao và mạnh mẽ trước các lỗi Các hệ thống nổi tiếng của thế hệ này bao gồm Apache S4, D- Streams, Storm và StreamCloud.
Trong phần này, chúng em sẽ trình bày các nội dung về công cụ xử lý luồng dữ liệu thế hệ thứ ba với sự tích hợp mạnh mẽ với xu hướng điện toán đám mây Cách mà điện toán đám mây có thể hỗ trợ mạnh mẽ hơn cho hệ thống xử lý luồng dữ liệu so với các thế hệ tiền nhiệm, trọng tâm của vấn đề là ba điểm khác biệt chính: Các use cases, Scaling và Khả năng chịu lỗi.
Trong thế hệ thứ ba của hệ thống xử lý luồng dữ liệu, một lớp lĩnh vực ứng dụng mới đã được giới thiệu Chúng bao gồm phát hiện sự bất thường trong luồng dữ liệu mạng xã hội và giám sát trang web/cơ sở hạ tầng Tất cả các trường hợp sử dụng này đều có một tập hợp các yêu cầu chung:
Phát hiện sự Bất Thường trong Luồng Dữ Liệu Mạng Xã Hội: Sử dụng các hệ thống xử lý luồng dữ liệu thế hệ thứ ba, các tổ chức có thể theo dõi và phát hiện sự bất thường trong các luồng dữ liệu mạng xã hội Ví dụ, có thể phát hiện các hành vi gian lận, các chuỗi sự kiện không bình thường hoặc các xu hướng không đúng đắn.
Giám Sát Trang Web/Cơ Sở Hạ Tầng: Các tổ chức có thể sử dụng hệ thống xử lý luồng dữ liệu để giám sát hoạt động trực tuyến của họ, bao gồm giám sát trang web và cơ sở hạ tầng Việc này giúp họ phát hiện và giải quyết các vấn đề kỹ thuật hoặc bảo mật một cách nhanh chóng, giảm thiểu thời gian ngừng hoạt động và cải thiện trải nghiệm người dùng.
Các trường hợp sử dụng này đặc biệt có các yêu cầu sau:
Các kịch bản thường liên quan đến luồng đầu vào có tốc độ dữ liệu cao (> 10,000 sự kiện/giây).
Độ trễ tối đa được yêu cầu là chỉ vài giây.
Yêu cầu mối tương quan giữa dữ liệu lịch sử và dữ liệu trực tiếp.
Yêu cầu hệ thống có quy mô linh hoạt và hỗ trợ khối lượng công việc đa dạng.
Yêu cầu khả năng chịu lỗi ở mức thấp và hỗ trợ các sự kiện ngoài trật tự. Dưới đây là một số trường hợp sử dụng cụ thể:
Google Trends: Google Trends là một ví dụ điển hình về ứng dụng xử lý dữ liệu dòng, giúp theo dõi sự phát triển của các xu hướng tìm kiếm trên Internet trong thời gian thực Google Trends phân tích từ khóa tìm kiếm trên Google và xác định các điểm bất thường như sự tăng đột ngột hoặc giảm đột ngột trong tìm kiếm.
Phát Hiện Sự Bất Thường trên Twitter: Bất cứ khi nào có sự kiện liên quan xảy ra trên thế giới, mọi người đều sử dụng Twitter để khám phá điều gì đang xảy ra bằng cách đưa ra các truy vấn Trong những trường hợp như vậy, dấu hiệu không thể tăng đột biến xảy ra trong các truy vấn được gửi tới Twitter và rất có thể những truy vấn này chưa từng thấy trước đây, khiến việc liên hệ chúng một cách chính xác với các sự kiện mà mọi người thực sự đang tìm kiếm là rất khó khăn Hơn nữa, sự quan tâm của mọi người đối với các sự kiện liên quan này chỉ là tạm thời và các truy vấn tương ứng sẽ giảm dần trong một khoảng thời gian giới hạn, vì vậy bắt buộc phải làm sắc nét mối tương quan này càng nhanh càng tốt.
Giám Sát Vận Hành Xe Buýt: Hội đồng thành phố Hà Nội có thể sử dụng hệ thống xử lý luồng dữ liệu để giám sát vận hành của 1000 xe buýt, cung cấp thông tin về ùn tắc giao thông hoặc tai nạn xe hơi trong thời gian thực.
Phát Hiện Gian Lận Trên Điện Thoại Di Động: Sử dụng xử lý dữ liệu trực tuyến, các tổ chức có thể phát hiện gian lận trong cuộc gọi điện thoại di động, với khả năng xử lý hàng chục nghìn bản ghi chi tiết cuộc gọi mỗi giây và phát hiện gian lận trong thời gian thực.
Một khía cạnh quan trọng của bất kỳ hệ thống xử lý luồng dữ liệu nào là khả năng mở rộng quy mô khi tải tăng dần, trong đó tải được đặc trưng bởi số lượng và độ phức tạp của các truy vấn được đưa ra cũng như tốc độ của các sự kiện đến cần được phân tích Đặc biệt, các công cụ truyền dữ liệu dựa trên đám mây được thiết kế để tự động mở rộng quy mô tới hàng trăm nút điện toán và tự động xử lý các khối lượng công việc khác nhau Việc thiết kế các động cơ như vậy đặt ra hai thách thức kỹ thuật lớn:
Các phương pháp tiếp cận ban đầu để cho phép thực thi song song các hệ thống xử lý luồng dữ liệu đã được đề xuất với FLUX và Aurora Cả hai hệ thống đều trình bày một sơ đồ song song hóa các toán tử bằng cách giới thiệu toán tử tách và hợp nhất Tùy thuộc vào loại toán tử song song, toán tử hợp nhất có thể là một liên kết đơn giản của tất cả các luồng hoặc có thể bao gồm cả chức năng sắp xếp Một bộ lọc đơn giản có thể được song song hóa bằng cách sử dụng sơ đồ quay vòng trong đó mỗi phiên bản có thể xử lý bất kỳ sự kiện đầu vào nào Đầu ra của các phiên bản song song có sẵn chỉ cần được tổng hợp bằng một liên minh Đối với toán tử tổng hợp, tất cả các thành phần dữ liệu liên quan đến cùng một nhóm khóa cần phải được xử lý bởi cùng một phiên bản để đảm bảo tính chính xác về mặt ngữ nghĩa Ngoài ra, đầu ra của tất cả các phiên bản cần được sắp xếp dựa trên dấu thời gian để đảm bảo thứ tự thời gian.
Các hệ thống như Apache S4 và Storm đều cho phép thiết kế các ứng dụng song song Trong Storm, người dùng có thể thể hiện tính song song của dữ liệu bằng cách xác định số lượng tác vụ song song cho mỗi toán tử Apache S4 tạo cho mỗi khóa mới trong luồng dữ liệu một phần tử xử lý, phần tử này được thực thi hơn một trong các nút xử lý đang chạy.
Kết luận chương
Trong chương này, chúng ta đã tìm hiểu về hai khái niệm quan trọng trong lĩnh vực công nghệ thông tin: Điện toán đám mây và Data Streaming. Đầu tiên, chúng ta đã khám phá về Điện toán đám mây thông qua các phần như đặt vấn đề, mô hình hoạt động, đặc điểm và ứng dụng Điện toán đám mây không chỉ là một cách tiếp cận mới trong việc cung cấp dịch vụ và lưu trữ dữ liệu mà còn là một nền tảng quan trọng cho việc phát triển các ứng dụng và dịch vụ số hiện đại.
Tiếp theo, chúng ta đã đi sâu vào khái niệm Data Streaming, bao gồm nguyên lý hoạt động cùng với ưu nhược điểm của nó Data Streaming không chỉ là một cách tiếp cận mới để xử lý dữ liệu liên tục mà còn là một công nghệ quan trọng trong việc xây dựng các hệ thống thời gian thực và phản ứng nhanh.
Trong phần Data Streaming dựa trên môi trường Điện toán đám mây, chúng ta đã thấy sự kết hợp của hai khái niệm này, mở ra một loạt các cơ hội mới cho việc phát triển các ứng dụng và dịch vụ thông minh, linh hoạt và mạnh mẽ.
Tóm lại, chương này đã cung cấp một cái nhìn tổng quan về Điện toán đám mây, Data Streaming và cách chúng tương tác với nhau Hiểu biết về những khái niệm này sẽ là nền tảng quan trọng cho các phần tiếp theo, nơi ứng dụng thử nghiệm một bài toán liên quan đến Data Streaming dựa trên nền tảng đám mây một cách cụ thể.
TRIỂN KHAI MÔ HÌNH ỨNG DỤNG CỦA DATA STREAMING DỰA TRÊN MÔI TRƯỜNG ĐIỆN TOÁN ĐÁM MÂY
Tìm hiểu các phần mềm và môi trường triển khai
Azure Event Hubs là một dịch vụ đám mây chuyên về streaming dữ liệu, có khả năng truyền 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ỳ đích nào Event Hubs tương thích với Apache Kafka, cho phép bạn chạy các tải công việc Kafka hiện có mà không cần thay đổi mã nguồn.
Bằng cách sử dụng Event Hubs để tiếp nhận và lưu trữ dữ liệu streaming, doanh nghiệp có thể tận dụng sức mạnh của dữ liệu streaming để thu được thông tin quý báu, thực hiện phân tích thời gian thực và phản ứng với sự kiện khi chúng xảy ra, từ đó nâng cao hiệu suất tổng thể và trải nghiệm của khách hàng Azure Event Hubs là lớp tiếp nhận sự kiện được ưa chuộng nhất của bất kỳ giải pháp streaming sự kiện nào bạn xây dựng trên nền tảng Azure Nó tích hợp một cách mượt mà với các dịch vụ dữ liệu và phân tích bên trong và bên ngoài Azure để xây dựng đường ống streaming dữ liệu hoàn chỉnh của bạn để phục vụ các trường hợp sử dụng sau đây:
Phân tích thời gian thực với Azure Stream Analytics để tạo ra thông tin thời gian thực từ dữ liệu streaming.
Phân tích và khám phá dữ liệu streaming với Azure Data Explorer.
Tạo ứng dụng, chức năng hoặc dịch vụ microservices riêng của bạn chạy trên dữ liệu streaming từ Event Hubs.
Truyền các sự kiện với xác nhận schema sử dụng một registry schema tích hợp để đảm bảo chất lượng và khả năng tương thích của dữ liệu streaming
Azure Stream Analytics là một công cụ xử lý dòng dữ liệu được quản lý hoàn toàn, được thiết kế để phân tích và xử lý các lượng lớn dữ liệu streaming với độ trễ dưới mili giây Bạn có thể xây dựng một đường ống dữ liệu streaming bằng cách sử dụng Stream Analytics để nhận diện các mẫu và mối quan hệ trong dữ liệu xuất phát từ các nguồn đầu vào khác nhau bao gồm ứng dụng, thiết bị, cảm biến, clickstreams và nguồn cấp dữ liệu truyền thông xã hội Sau đó, bạn có thể sử dụng các mẫu này để kích hoạt các hành động và khởi động các luồng công việc như thông báo cảnh báo, cung cấp thông tin cho một công cụ báo cáo hoặc lưu trữ dữ liệu đã được biến đổi để sử dụng sau này Stream Analytics cũng có sẵn trên runtime Azure IoT Edge, cho phép bạn xử lý dữ liệu trực tiếp từ các thiết bị IoT.
Dưới đây là một số kịch bản ví dụ mà bạn có thể sử dụng Azure Stream Analytics:
Phát hiện dị thường trong dữ liệu cảm biến để phát hiện các đỉnh, sụt, và thay đổi tích cực và tiêu cực chậm.
Phân tích địa lý không gian cho quản lý đội và xe không người lái.
Giám sát từ xa và bảo dưỡng dự đoán của tài sản có giá trị cao.
Phân tích clickstream để xác định hành vi của khách hàng.
Phân tích các luồng dữ liệu telemetric thời gian thực và logs từ ứng dụng và thiết bị IoT.
Hình 2.2 Azure Stream Analytics 2.1.4 Power BI
Power BI là một nền tảng phân tích dữ liệu mạnh mẽ, cho phép tạo các báo cáo và trực quan hóa dữ liệu từ nhiều nguồn khác nhau, cung cấp cái nhìn tổng thể và thông tin chi tiết về hoạt động kinh doanh Bằng cách kết hợp Power BI với các dịch vụ khác trong hệ sinh thái Azure, ta có thể biến những xử lý dữ liệu thành phân tích thông minh và báo cáo trực tuyến, cung cấp thông tin kinh doanh thời gian thực.
Dưới đây là một số kịch bản ví dụ mà có thể sử dụng Power BI:
Xây dựng bảng điều khiển thời gian thực để theo dõi hoạt động kinh doanh và dự báo xu hướng tương lai.
Tổ chức dữ liệu từ nhiều nguồn khác nhau, bao gồm cơ sở dữ liệu, bản trực tuyến và tệp tin, để tạo ra báo cáo chi tiết và phân tích sâu hơn.
Tạo các báo cáo tùy chỉnh và trực quan hóa dữ liệu để chia sẻ thông tin với các bộ phận khác nhau trong tổ chức.
Sử dụng Power BI Embedded để nhúng các bảng điều khiển và báo cáo vào ứng dụng, cung cấp trải nghiệm tương tác và thông tin thông qua ứng dụng.
Cài đặt, triển khai mô hình ứng dụng
Bài toán đặt ra là xây dựng một ứng dụng Data Streaming để tạo ra một bảng điều khiển dữ liệu thông tin chứng khoán theo thời gian thực trên nền tảng đám mây, với mục đích cung cấp thông tin thị trường chứng khoán mới nhất và chi tiết nhất cho người dùng Điều này bao gồm việc truy xuất dữ liệu chứng khoán từ Yahoo Finance API hoặc các nguồn dữ liệu tương tự, tự động cập nhật thông tin và hiển thị trên bảng điều khiển để người dùng có thể theo dõi và phân tích thị trường chứng khoán một cách thuận tiện và hiệu quả. Để đơn giản hóa bài toán, ta chỉ thêm vào dữ liệu giá cổ phiếu MSFT để xem cách hoạt động của Data Streaming dựa trên nền tảng đám mây ( Các dữ liệu khác có thể tùy chỉnh truy xuất thêm vào tương tự.)
Ngôn ngữ lập trình: Python Python là một ngôn ngữ lập trình thông dịch, dễ đọc và dễ hiểu, được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau như phát triển web, khoa học dữ liệu, máy học, trí tuệ nhân tạo, và nhiều ứng dụng khác Python được phát triển vào những năm 1990 và nhanh chóng trở thành một trong những ngôn ngữ lập trình phổ biến nhất trên thế giới do sự linh hoạt, dễ học và cộng đồng lớn của nó Do sự linh hoạt và mạnh mẽ của nó, Python thường được coi là một lựa chọn hàng đầu cho các dự án lập trình từ các dự án nhỏ đến các dự án lớn và phức tạp.
Nền tảng điện toán đám mây: Sử dụng Azure là nền tảng điện toán đám mây để triển khai và vận hành pipeline Azure cung cấp một loạt các dịch vụ và công cụ cho việc xây dựng, triển khai và quản lý các ứng dụng trên môi trường đám mây, bao gồm cả các dịch vụ liên quan đến dữ liệu và phân tích
Tạo một tài khoản Microsoft Azure sử dụng email trường
Thiết lập Azure Stream Analytics
Xây dựng truyền dữ liệu đầu vào Azure Event Hubs
Sau khi thiết lập xong chúng ta có giao diện như sau:
Xây dựng đầu ra Power BI
Thiết lập đầu ra và đầu vào trong Azure Stream Analytics
Sử dụng Python để lấy dữ liệu từ thị trường chứng khoán Microsoft (MSFT) để truyền dữ liệu theo thời gian thực trong Azure Event Hubs
Hình 2.13 from azure.eventhub import EventHubProducerClient, EventData import yfinance as yf import json import time
# Chuỗi kết nối với Azure Event Hubs connection_str "Endpoint=sb://n10dtdm.servicebus.windows.net/;SharedAccessKeyName RootUserAccessPolicy;SharedAccessKey=0S8Cv07Sxo8ZQJmMLw1Vbq6 53i7/yph7T+AEhK94tZQ=;EntityPath=pythonfeeddata" eventhub_name = "pythonfeeddata" producer EventHubProducerClient.from_connection_string(connection_str, eventhub_name=eventhub_name) def lấy_dữ_liệu_chứng_khoán(): while True:
# Lấy dữ liệu chứng khoán của Microsoft từ Yahoo Finance msft = yf.Ticker("MSFT") msft_info = msft.history(period="1d") msft_price = msft_info['Close'].iloc[-1] timestamp = time.time()
# Tạo một đối tượng JSON data = {
"mã_cổ_phiếu": "MSFT", "giá_cổ_phiếu": msft_price, "thời_gian": timestamp }
# Chuyển thành chuỗi JSON data_str = json.dumps(data)
# Tạo một lô (batch) và gửi dữ liệu with producer: batch = producer.create_batch() batch.add(EventData(data_str)) producer.send_batch(batch) print(f"Đã gửi dữ liệu: {data_str}") time.sleep(10) # Lấy và gửi dữ liệu mỗi phút if name == " main ": lấy_dữ_liệu_chứng_khoán()
Sử dụng Azure Stream Analytics để chạy dự án
- Sau khi chạy quy trình phát trực tuyến chúng ta có thể truy vấn hoặc xem dữ liệu truyền dưới dạng Json
Đánh giá kết quả
Quy trình xây dựng đã hoàn thành một hệ thống giám sát dữ liệu chứng khoán đơn giản.
Dưới đây là một phân tích chi tiết về các thành phần chính và ưu điểm của hệ thống:
Thu thập dữ liệu: Sử dụng Python và thư viện yfinance để lấy dữ liệu giá cổ phiếu từ thị trường chứng khoán của Microsoft (MSFT) Việc này đảm bảo rằng hệ thống có nguồn dữ liệu chính xác và đáng tin cậy để phân tích
Truyền dữ liệu vào Azure Event Hubs: Dữ liệu được truyền vào Azure Event Hubs để lưu trữ và xử lý Điều này cho phép hệ thống xử lý lượng dữ liệu lớn và đồng thời đảm bảo tính sẵn sàng và khả năng mở rộng
Xử lý và phân tích dữ liệu thông qua Azure Stream Analytics: Azure Stream Analytics được sử dụng để xử lý và phân tích dữ liệu trực tuyến
Hiển thị kết quả thông qua Power BI: Dữ liệu được hiển thị một cách trực quan thông qua Power BI, một công cụ mạnh mẽ cho việc tạo và chia sẻ báo cáo, biểu đồ và thông tin thống kê Việc này giúp người dùng dễ dàng tiếp cận và hiểu được thông tin từ dữ liệu Ưu điểm của hệ thống:
Tính linh hoạt: Hệ thống có thể dễ dàng mở rộng để theo dõi và phân tích dữ liệu từ nhiều nguồn khác nhau
Tính thời gian thực: Dữ liệu được xử lý và phân tích ngay lập tức, cho phép người dùng có cái nhìn chính xác và nhanh chóng
Tính trực quan: Kết quả được hiển thị thông qua Power BI, giúp người dùng dễ dàng hiểu và tương tác với thông tin.
Kết luận chương
Trong chương này, chúng ta đã tìm hiểu và triển khai một mô hình ứng dụng Data Streaming để xây dựng một bảng điều khiển dữ liệu theo thời gian thực trên nền tảng đám mây Azure Bằng cách sử dụng các dịch vụ như Azure Event Hubs, Azure Stream
Analytics và Power BI, chúng ta đã xây dựng một hệ thống truyền dữ liệu “giá chứng khoán” đơn giản qua đó thể hiện trực quan hóa được mô hình Data Streaming dựa trên nền tảng đám mây Ngoài ra, ta hoàn toàn có thể mở rộng đối tượng được truyền bằng truy vấn từ Yahoo Finance API qua Azure Event Hubs để có thể đáp ứng với yêu cầu phù hợp với doanh nghiệp.
Như vậy, việc xây dựng mô hình này không chỉ giúp chúng ta hiểu rõ hơn về cách sử dụng các dịch vụ của Azure để xây dựng hệ thống Data Streaming mà còn là một cơ hội để ta có thể thực hành triển khai các kỹ thuật quan trọng như xử lý sự kiện theo thời gian thực, xác thực và quản lý dữ liệu trên đám mây.
Như vậy, ta đã đề cập đến hai chủ đề chính là Điện toán đám mây và Data Streaming, cùng với việc triển khai một mô hình ứng dụng của Data Streaming dựa trên môi trường Điện toán đám mây.
Trước hết, chúng ta đã trình bày một cái nhìn tổng quan về Điện toán đám mây, bao gồm đặt vấn đề, giới thiệu chung về Điện toán đám mây, mô hình hoạt động, đặc điểm và ứng dụng của nó Ta đã tập trung vào việc giải thích cách thức hoạt động cũng như điểm mạnh và yếu của Điện toán đám mây.
Tiếp theo, ta đã giới thiệu về Data Streaming, bao gồm khái niệm, nguyên lý hoạt động, ưu nhược điểm Ta đã phân tích rõ ràng về những ưu điểm và nhược điểm của Data Streaming, cung cấp một cái nhìn tổng quan về cách nó hoạt động và tầm quan trọng của nó trong việc xử lý dữ liệu theo thời gian thực.
Cuối cùng, tiến hành triển khai một mô hình ứng dụng của Data Streaming dựa trên môi trường Điện toán đám mây Ta đã xác định các yêu cầu cụ thể cho mô hình, bao gồm ngôn ngữ lập trình, nền tảng điện toán đám mây, và tiến hành cài đặt, triển khai mô hình ứng dụng Cuối cùng, ta đã phân tích và đánh giá kết quả của mô hình, nhấn mạnh vào các ưu điểm và nhược điểm của nó.
Tóm lại, việc nghiên cứu và triển khai mô hình ứng dụng của Data Streaming dựa trên môi trường Điện toán đám mây không chỉ mang lại những hiểu biết sâu sắc về hai công nghệ này mà còn đem lại những giải pháp cụ thể và tiềm năng trong việc xử lý dữ liệu theo thời gian thực và quản lý dữ liệu trong các hoạt động kinh doanh và thống kê.