Dữ liệu truyền là gì?
Dữ liệu truyền là dữ liệu được phát ở khối lượng lớn theo cách tăng dần, liên tục nhằm mục đích xử lý với độ trễ thấp. Các tổ chức có hàng nghìn nguồn dữ liệu thường phát ra đồng thời các thông báo, bản ghi hoặc dữ liệu có kích thước từ vài byte đến vài megabyte (MB). Dữ liệu truyền bao gồm dữ liệu vị trí, sự kiện và cảm biến mà các công ty sử dụng để quan sát và phân tích theo thời gian thực nhiều khía cạnh kinh doanh của họ. Chẳng hạn, doanh nghiệp có thể theo dõi thay đổi trong quan điểm của công chúng đối với thương hiệu và sản phẩm của họ bằng cách liên tục phân tích đường dẫn nhấp chuột và bài đăng của khách hàng từ các luồng dữ liệu mạng xã hội, sau đó phản hồi kịp thời khi cần.
Dữ liệu truyền có những đặc điểm gì?
Luồng dữ liệu có các đặc điểm cụ thể sau đây xác định nên luồng.
Có tính quan trọng theo thứ tự thời gian
Từng thành phần trong luồng dữ liệu đều có dấu thời gian. Bản thân luồng dữ liệu có thể chỉ hữu ích trong thời gian nhất định, với tầm quan trọng giảm sau một khoảng thời gian cụ thể. Chẳng hạn, ứng dụng của bạn đưa ra đề xuất về nhà hàng dựa trên vị trí hiện tại của người dùng. Bạn phải hành động dựa trên dữ liệu vị trí địa lý của người dùng theo thời gian thực hoặc dữ liệu sẽ không còn quan trọng.
Truyền liên tục
Luồng dữ liệu không có bắt đầu cũng như kết thúc. Luồng sẽ thu thập dữ liệu liên tục và không ngừng chừng nào còn được yêu cầu. Chẳng hạn, nhật ký hoạt động của máy chủ tích lũy dữ liệu chừng nào máy chủ còn chạy.
Duy nhất
Việc lặp lại quá trình truyền của luồng dữ liệu đầy thách thức vì tính nhạy cảm về mặt thời gian. Do đó, khả năng xử lý dữ liệu chính xác theo thời gian thực là rất quan trọng. Đáng tiếc là khả năng cung cấp quá trình truyền lại bị hạn chế trong hầu hết các nguồn dữ liệu truyền.
Không đồng nhất
Một số nguồn có thể truyền dữ liệu ở nhiều định dạng có cấu trúc như JSON, Avro và các giá trị được phân tách bằng dấu phẩy (CSV) với các loại dữ liệu bao gồm chuỗi, số, ngày và loại nhị phân. Hệ thống xử lý luồng của bạn phải có khả năng xử lý những biến thể dữ liệu đó.
Không hoàn hảo
Những lỗi tạm thời tại nguồn có thể khiến các thành phần trong dữ liệu được truyền bị hỏng hoặc thiếu. Việc đảm bảo tính nhất quán của dữ liệu có thể là thách thức do tính chất liên tục của luồng. Các hệ thống phân tích và xử lý luồng thường có logic để xác thực dữ liệu nhằm giảm nhẹ hoặc giảm thiểu các lỗi này.
Vì sao dữ liệu truyền lại quan trọng?
Các hệ thống xử lý dữ liệu truyền thống thu thập dữ liệu vào một kho dữ liệu tập trung và xử lý dữ liệu theo nhóm hoặc lô. Các hệ thống này được xây dựng để thu nạp và xây dựng cấu trúc dữ liệu trước khi phân tích. Tuy nhiên, trong những năm gần đây, tính chất của dữ liệu doanh nghiệp và các hệ thống xử lý dữ liệu cơ bản đã thay đổi đáng kể.
Khối lượng dữ liệu vô hạn
Khối lượng dữ liệu được tạo từ các nguồn luồng dữ liệu có thể rất lớn, do đó việc phân tích theo thời gian thực để quản lý tính toàn vẹn (việc xác thực), cấu trúc (sự phát triển) hay vận tốc (thông lượng và độ trễ) của dữ liệu truyền trở thành thách thức.
Hệ thống xử lý dữ liệu nâng cao
Trong khi đó, cơ sở hạ tầng đám mây đã mang đến tính linh hoạt trong quy mô và việc sử dụng tài nguyên điện toán. Bạn sử dụng chính xác những gì bạn cần và chỉ phải trả tiền cho những gì bạn sử dụng. Bạn có thể chọn lọc dữ liệu truyền theo thời gian thực hoặc tổng hợp cả trước và sau khi lưu trữ dữ liệu. Kiến trúc dữ liệu truyền sử dụng các công nghệ đám mây để tiêu thụ, làm phong phú, phân tích và lưu trữ vĩnh viễn dữ liệu truyền theo yêu cầu.
Trường hợp sử dụng nào cần dữ liệu truyền?
Hệ thống xử lý luồng dữ liệu mang lại nhiều lợi ích trong hầu hết các trường hợp khi dữ liệu động mới được tạo ra liên tục. Hệ thống này áp dụng với hầu hết phân khúc ngành và trường hợp sử dụng dữ liệu lớn.
Doanh nghiệp thường bắt đầu với ứng dụng đơn giản chẳng hạn như thu thập nhật ký hệ thống và tác vụ xử lý thô sơ như các phép tính cực tiểu-cực đại động. Sau đó, những ứng dụng này phát triển lên bước xử lý gần theo thời gian thực, phức tạp hơn.
Sau đây là một số ví dụ khác về dữ liệu truyền.
Phân tích dữ liệu
Ứng dụng xử lý các luồng dữ liệu để tạo báo cáo và thực hiện các hành động hồi đáp, chẳng hạn như phát ra cảnh báo khi các chỉ số chính vượt những ngưỡng nhất định. Ứng dụng xử lý luồng phức tạp hơn sẽ trích xuất thông tin chuyên sâu chi tiết hơn bằng cách áp dụng thuật toán máy học vào dữ liệu hoạt động của doanh nghiệp và khách hàng.
Ứng dụng IoT
Thiết bị Internet vạn vật (IoT) là một trường hợp sử dụng khác của dữ liệu truyền. Thiết bị cảm biến trên xe cộ, thiết bị công nghiệp và máy nông nghiệp gửi dữ liệu tới một ứng dụng truyền. Ứng dụng này giám sát hiệu suất vận hành, phát hiện trước sai sót có thể xảy ra và tự động đặt mua linh kiện để tránh gián đoạn hoạt động của thiết bị.
Phân tích tài chính
Tổ chức tài chính sử dụng dữ liệu luồng để theo dõi biến động theo thời gian thực trên thị trường cổ phiếu, tính toán giá trị rủi ro và tự động cân bằng lại danh mục đầu tư dựa trên biến động về giá cổ phiếu. Một trường hợp sử dụng khác trong lĩnh vực tài chính là phát hiện gian lận trong giao dịch thẻ tín dụng bằng cách sử dụng phương pháp suy luận theo thời gian thực dựa trên dữ liệu truyền của giao dịch.
Đề xuất theo thời gian thực
Ứng dụng bất động sản theo dõi dữ liệu vị trí địa lý từ thiết bị di động của người dùng và đưa ra đề xuất theo thời gian thực về bất động sản nên ghé thăm. Tương tự, ứng dụng quảng cáo, đặt đồ ăn, bán lẻ và tiêu dùng có thể tích hợp đề xuất theo thời gian thực để mang đến nhiều giá trị hơn cho khách hàng.
Đảm bảo dịch vụ
Bạn có thể triển khai xử lý luồng dữ liệu để theo dõi và duy trì mức độ dịch vụ trong các ứng dụng và thiết bị. Chẳng hạn, một công ty về điện mặt trời phải duy trì công suất nguồn điện cho khách hàng, nếu không sẽ phải chịu tiền phạt. Họ triển khai ứng dụng dữ liệu truyền, theo dõi tất cả các tấm pin mặt trời tại khu khai thác và lên lịch bảo dưỡng theo thời gian thực. Nhờ đó, công ty này có thể giảm thiểu khoảng thời gian công suất thấp của mỗi tấm pin cũng như khoản tiền phạt liên quan.
Truyền thông và trò chơi
Các nhà xuất bản phương tiện truyền thông truyền hàng tỷ bản ghi về đường dẫn nhấp chuột từ các tài sản trực tuyến của họ, tổng hợp và làm phong phú dữ liệu bằng thông tin nhân khẩu học của người dùng cũng như tối ưu hóa vị trí nội dung. Nhờ đó, họ cung cấp trải nghiệm phù hợp hơn, tốt hơn cho người xem. Tương tự, các công ty kinh doanh trò chơi trực tuyến sử dụng tác vụ xử lý luồng sự kiện để phân tích tương tác giữa người chơi và trò chơi, cũng như cung cấp trải nghiệm linh động để thu hút người chơi.
Kiểm soát rủi ro
Các nền tảng mạng xã hội và phát trực tuyến thu thập dữ liệu hành vi người dùng theo thời gian thực để kiểm soát rủi ro đối với hoạt động tài chính của người dùng, chẳng hạn như nạp, hoàn và thưởng tiền. Các nền tảng đó xem xét trang tổng quan theo thời gian thực để linh hoạt điều chỉnh các chiến lược kiểm soát rủi ro.
Dữ liệu theo lô và dữ liệu truyền khác nhau như thế nào?
Xử lý lô dữ liệu là phương pháp được máy tính sử dụng để hoàn tất các công việc về dữ liệu khối lượng lớn định kỳ, lặp đi lặp lại. Bạn có thể sử dụng phương thức này để xử lý các truy vấn tùy ý trên nhiều tập dữ liệu khác nhau. Phương pháp này thường trích xuất kết quả xử lý từ tất cả dữ liệu có trong lô và cho phép phân tích sâu các tập dữ liệu lớn. Các hệ thống dựa trên MapReduce như Amazon EMR là ví dụ về những nền tảng có hỗ trợ tác vụ xử lý lô dữ liệu.
Ngược lại, việc xử lý luồng dữ liệu yêu cầu thu nạp một chuỗi dữ liệu và từng bước cập nhật các chỉ số, báo cáo và số liệu thống kê tổng hợp khi mỗi bản ghi dữ liệu được tiếp nhận. Phương pháp này phù hợp hơn với các chức năng phân tích và phản hồi theo thời gian thực.
Xử lý lô dữ liệu | Xử lý luồng dữ liệu |
|||
Quy mô dữ liệu |
Truy vấn hoặc xử lý đối với toàn bộ hoặc phần lớn dữ liệu có trong tập dữ liệu. | Truy vấn hoặc xử lý đối với dữ liệu trong một khoảng thời gian cuốn chiếu hoặc chỉ trên bản ghi dữ liệu gần đây nhất. |
||
Kích thước dữ liệu |
Lô dữ liệu lớn. |
Các bản ghi riêng lẻ hoặc các lô siêu nhỏ gồm một vài bản ghi. |
||
Hiệu năng |
|
Yêu cầu độ trễ khoảng vài giây hoặc mili giây. |
||
Phân tích |
Chỉ số phân tích phức tạp. | Các hàm hồi đáp, tổ hợp và chỉ số động. |
Nhiều tổ chức đang xây dựng một mô hình lai bằng cách kết hợp hai phương pháp này để duy trì một lớp xử lý theo thời gian thực và một lớp xử lý theo lô. Chẳng hạn, trước tiên, bạn có thể xử lý dữ liệu trong nền tảng dữ liệu truyền như Amazon Kinesis để trích xuất thông tin chuyên sâu theo thời gian thực. Sau đó, bạn có thể lưu giữ dữ liệu trong kho lưu trữ như Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3). Tại đó, dữ liệu có thể được chuyển đổi và tải cho nhiều trường hợp sử dụng tác vụ xử lý theo lô khác nhau.
Dịch vụ Thu nạp truyền Amazon Redshift cho phép người dùng thu nạp dữ liệu trực tiếp từ Luồng dữ liệu Amazon Kinesis mà không cần phân giai đoạn trong Amazon S3. Dịch vụ này cũng thu nạp dữ liệu từ Dịch vụ truyền được quản lý của Amazon dành cho Apache Kafka (Amazon MSK) vào Amazon Redshift.
Bạn có thể xử lý dữ liệu truyền bằng cách nào?
Kiến trúc dữ liệu truyền có hai loại thành phần chính.
Đối tượng tạo luồng
Đối tượng tạo luồng là các thành phần của phần mềm trong ứng dụng và hệ thống IoT thu thập dữ liệu. Đối tượng tạo luồng truyền các bản ghi chứa tên luồng, giá trị dữ liệu và số chuỗi đến đối tượng xử lý luồng. Đối tượng xử lý sẽ đưa vào bộ đệm hoặc tạm thời gộp nhóm bản ghi dữ liệu theo tên luồng. Đối tượng xử lý sử dụng số chuỗi để theo dõi vị trí duy nhất của mỗi bản ghi và xử lý dữ liệu theo thứ tự thời gian.
Đối tượng dùng luồng
Đối tượng dùng luồng là các thành phần của phần mềm xử lý và phân tích luồng dữ liệu đã đưa vào bộ đệm trong đối tượng xử lý. Mỗi đối tượng dùng có khả năng phân tích như tìm mối tương quan, tổng hợp, lọc, lấy mẫu hoặc máy học. Mỗi luồng có thể có nhiều đối tượng dùng và mỗi đối tượng dùng có thể xử lý nhiều luồng. Đối tượng dùng cũng có thể gửi dữ liệu đã thay đổi về cho đối tượng xử lý để tạo luồng mới cho các đối tượng dùng khác.
Triển khai kiến trúc
Để triển khai kiến trúc dữ liệu truyền, bạn cần có các lớp lưu trữ và xử lý. Lớp lưu trữ phải có khả năng hỗ trợ sắp xếp bản ghi và có độ nhất quán cao để cho phép đọc và ghi luồng dữ liệu lớn một cách nhanh chóng, tiết kiệm chi phí và có thể thực hiện lại. Lớp xử lý chịu trách nhiệm sử dụng dữ liệu từ lớp lưu trữ, thực hiện các tính toán trên dữ liệu đó và sau đó báo cho lớp lưu trữ xóa những dữ liệu không còn cần thiết nữa.
Việc xử lý dữ liệu truyền có những thách thức gì?
Kiến trúc dữ liệu truyền đòi hỏi cần cân nhắc đặc biệt do tính chất và khối lượng của dữ liệu.
Độ sẵn sàng
Ứng dụng dữ liệu truyền đòi hỏi sự nhất quán, độ trễ thấp và mức độ sẵn sàng cao. Đối tượng dùng liên tục lấy dữ liệu mới từ luồng để xử lý. Sự chậm trễ của đối tượng tạo có thể khiến hệ thống ngừng hoạt động và gây ra lỗi.
Khả năng mở rộng
Luồng dữ liệu thô có thể tăng vọt nhanh chóng và đột ngột. Chẳng hạn, số bài đăng trên mạng xã hội tăng đột biến trong thời gian diễn ra sự kiện thể thao lớn. Do đó, hệ thống phải ưu tiên tạo chuỗi dữ liệu phù hợp, mức độ sẵn sàng và sự nhất quán – kể cả trong thời gian tải cao điểm.
Độ bền
Vì tính nhạy cảm về mặt thời gian của dữ liệu, hệ thống xử lý luồng phải có khả năng chịu lỗi. Nếu không, dữ liệu sẽ bị mất vĩnh viễn trong sự cố.
AWS có thể hỗ trợ các yêu cầu về dữ liệu phát trực tuyến của bạn như thế nào?
AWS đưa ra nhiều lựa chọn để xử lý dữ liệu truyền.
Amazon Kinesis
Kinesis là nền tảng dành cho dữ liệu truyền trên AWS. Nền tảng này cung cấp các dịch vụ mạnh mẽ giúp tải và phân tích dữ liệu truyền dễ dàng, đồng thời cho phép bạn xây dựng ứng dụng dữ liệu truyền tùy chỉnh để đáp ứng các nhu cầu chuyên biệt.
Kinesis cung cấp ba dịch vụ: Firehose dữ liệu Amazon Kinesis, Luồng dữ liệu Amazon Kinesis và Dịch vụ truyền được quản lý của Amazon dành cho Apache Kafka (Amazon MSK).
Firehose dữ liệu Kinesis
Firehose dữ liệu Kinesis có thể thu thập và tự động tải dữ liệu truyền vào Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) và Amazon Redshift. Nhờ đó, bạn có thể sử dụng các công cụ và trang tổng quan thông tin về kinh doanh sẵn có mà bạn vốn đang sử dụng hiện nay để thực hiện phân tích theo thời gian thực.
Luồng dữ liệu Kinesis
Luồng dữ liệu Kinesis có khả năng thu thập và lưu trữ liên tục hàng terabyte (TB) dữ liệu mỗi giờ từ hàng trăm nghìn nguồn khác nhau. Dịch vụ này hỗ trợ bạn lựa chọn khung xử lý luồng bao gồm Amazon Kinesis Client Library (KCL), Apache Storm và Apache Spark Streaming.
Amazon MSK
Amazon MSK là một dịch vụ được quản lý toàn phần giúp bạn dễ dàng xây dựng và chạy các ứng dụng dùng Apache Kafka để xử lý dữ liệu truyền. Apache Kafka là một nền tảng mã nguồn mở để xây dựng các ứng dụng và đường ống dữ liệu truyền trong thời gian thực.
Amazon Redshift
Dịch vụ Thu nạp truyền Amazon Redshift cho phép người dùng thu nạp dữ liệu truyền vào kho dữ liệu của họ để phân tích theo thời gian thực từ nhiều luồng dữ liệu Kinesis. Bạn có thể thực hiện phân tích dữ liệu phong phú bằng SQL quen thuộc cũng như dễ dàng tạo và quản lý quy trình ELT. Dịch vụ này cũng cho phép bạn xử lý khối lượng lớn dữ liệu truyền với độ trễ thấp và thông lượng cao nhằm trích xuất thông tin chuyên sâu chỉ trong ít giây.
Các giải pháp truyền khác trên Amazon EC2
Bạn có thể cài đặt các nền tảng dữ liệu truyền theo ý muốn trên Đám mây điện toán linh hoạt của Amazon (Amazon EC2) vàAmazon EMR rồi xây dựng các lớp lưu trữ và xử lý luồng tùy chỉnh. Nhờ đó, bạn có thể tránh được trở ngại từ việc cung cấp cơ sở hạ tầng, cộng thêm việc có được quyền truy cập vào nhiều khung lưu trữ và xử lý luồng khác nhau. Các tùy chọn cho lớp lưu trữ dữ liệu bao gồm Amazon MSK và Apache Flume. Các tùy chọn cho lớp xử lý luồng dữ liệu bao gồm Apache Spark Streaming và Apache Storm.
Bắt đầu xử lý dữ liệu truyền trên AWS bằng cách tạo tài khoản AWS miễn phí ngay hôm nay!