- Amazon Kinesis›
- Luồng dữ liệu›
- Câu hỏi thường gặp
Câu hỏi thường gặp về Amazon Kinesis Data Streams
Chủ đề trang
Thông tin chungThông tin chung
Amazon Kinesis Data Streams là gì?
Với Luồng dữ liệu Kinesis, bạn có thể xây dựng các ứng dụng tùy chỉnh để xử lý hoặc phân tích dữ liệu truyền liên tục nhằm đáp ứng các nhu cầu chuyên dụng. Bạn có thể thêm nhiều loại dữ liệu khác nhau chẳng hạn như luồng nhấp chuột, bản ghi ứng dụng và mạng xã hội vào luồng dữ liệu Kinesis từ hàng trăm nghìn nguồn. Trong vài giây, dữ liệu sẽ sẵn sàng để các ứng dụng của bạn đọc và xử lý từ luồng.
Luồng dữ liệu Kinesis quản lý những gì thay mặt tôi?
Luồng dữ liệu Kinesis quản lý cơ sở hạ tầng, lưu trữ, kết nối mạng và cấu hình cần thiết để truyền liên tục dữ liệu ở cấp độ thông lượng dữ liệu của bạn. Bạn không cần phải lo lắng về việc cung cấp, triển khai hay bảo trì liên tục phần cứng, phần mềm hoặc các dịch vụ khác cho luồng dữ liệu. Ngoài ra, Kinesis Data Streams còn sao chép dữ liệu đồng bộ trên ba Vùng sẵn sàng, nhờ đó mang đến độ sẵn sàng và độ bền dữ liệu cao. Theo mặc định, Kinesis Data Streams sẽ tự động thay đổi quy mô dung lượng, giúp bạn giải phóng dung lượng cung cấp và quản lý. Bạn có thể chọn chế độ được cung cấp nếu muốn tự mình cung cấp và quản lý thông lượng.
Luồng dữ liệu Kinesis giúp tôi làm những gì?
Luồng dữ liệu Kinesis hữu ích cho việc di chuyển nhanh dữ liệu từ đối tượng tạo dữ liệu rồi xử lý dữ liệu liên tục, bất kể là để chuyển đổi dữ liệu trước khi phát tới kho dữ liệu, chạy các chỉ số và phân tích trong thời gian thực hoặc rút ra các luồng dữ liệu phức tạp hơn để xử lý thêm.
Sau đây là các trường hợp điển hình để sử dụng Kinesis Data Streams:
- Thu thập nguồn cấp dữ liệu và bản ghi nhanh hơn: Thay vì phải chờ đợi để đủ lô dữ liệu, bạn có thể để các đối tượng tạo dữ liệu đẩy dữ liệu tới luồng dữ liệu Kinesis ngay khi dữ liệu được tạo ra, nhờ đó tránh mất dữ liệu khi xảy ra lỗi ở đối tượng tạo. Ví dụ: nhật ký hệ thống và ứng dụng có thể liên tục được thêm vào luồng dữ liệu và sẵn sàng để xử lý trong vòng vài giây.
- Chỉ số và báo cáo theo thời gian thực: Bạn có thể trích xuất chỉ số và tạo báo cáo từ dữ liệu trong luồng dữ liệu Kinesis theo thời gian thực. Ví dụ: ứng dụng Amazon Kinesis có thể xử lý số liệu và báo cáo tới hệ thống cũng như nhật ký ứng dụng khi dữ liệu đang truyền phát vào, thay vì phải đợi nhận các lô dữ liệu.
- Phân tích dữ liệu theo thời gian thực: Với Luồng dữ liệu Kinesis, bạn có thể chạy phân tích dữ liệu truyền liên tục trong thời gian thực. Ví dụ: bạn có thể thêm các luồng nhấp chuột vào luồng dữ liệu Kinesis và để ứng dụng Kinesis chạy phân tích trong thời gian thực, cho phép bạn thu được thông tin chuyên sâu từ dữ liệu chỉ trong vài phút thay vì hàng giờ hoặc hàng ngày.
- Thu thập dữ liệu bản ghi và sự kiện: Thu thập dữ liệu bản ghi và sự kiện từ các nguồn như máy chủ, máy tính để bàn và thiết bị di động. Sau đó, bạn có thể xây dựng các ứng dụng bằng Amazon Lambda hoặc Dịch vụ được quản lý của Amazon dành cho Apache Flink để liên tục xử lý dữ liệu, tạo các chỉ số, hỗ trợ cho bảng thông tin trực tiếp và gửi dữ liệu tổng hợp vào các kho lưu trữ như Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3).
- Hỗ trợ cho các ứng dụng theo định hướng sự kiện: Nhanh chóng ghép với AWS Lambda để phản hồi hoặc điều chỉnh các sự kiện xảy ra ngay lập tức trong các ứng dụng theo định hướng sự kiện trong môi trường của bạn, ở bất cứ quy mô nào.
Làm thế nào để sử dụng Luồng dữ liệu Kinesis?
Sau khi đăng ký AWS, bạn có thể bắt đầu sử dụng Luồng dữ liệu Kinesis bằng cách tạo luồng dữ liệu Kinesis thông qua Bảng điều khiển quản lý AWS hoặc thao tác CreateStream. Sau đó, cấu hình nguồn tạo dữ liệu để liên tục thêm dữ liệu vào luồng dữ liệu của bạn. Bạn có thể tùy chọn gửi dữ liệu từ các tài nguyên hiện có trong các dịch vụ AWS như Amazon DynamoDB, Amazon Aurora, Amazon CloudWatch và AWS IoT Core. Sau đó, bạn có thể sử dụng AWS Lambda, Dịch vụ được quản lý của Amazon dành cho Apache Flink hoặc Truyền liên tục AWS Glue để nhanh chóng xử lý dữ liệu được lưu trữ trong Luồng dữ liệu Kinesis. Bạn cũng có thể xây dựng các ứng dụng tùy chỉnh chạy trên Đám mây điện toán linh hoạt của Amazon (Amazon EC2), Dịch vụ bộ chứa linh hoạt của Amazon (Amazon ECS) và Dịch vụ Kubernetes linh hoạt Amazon (Amazon EKS) bằng cách sử dụng API Amazon Kinesis hoặc Thư viện máy khách Amazon Kinesis (KCL).
Khái niệm chính
Phân mảnh, đối tượng tạo và đối tượng dùng trong Luồng dữ liệu Kinesis là gì?
Phân đoạn có một chuỗi các bản ghi dữ liệu trong một luồng. Phân đoạn đóng vai trò như một đơn vị thông lượng cơ sở của một luồng dữ liệu Kinesis. Một phân đoạn hỗ trợ 1 MB/giây và 1.000 bản ghi mỗi giây để ghi và 2 MB/giây để đọc. Các giới hạn phân đoạn đảm bảo hiệu suất có thể dự đoán được, giúp dễ dàng thiết kế và vận hành quy trình truyền dữ liệu có độ tin cậy cao. Nguồn tạo đưa các bản ghi dữ liệu vào các phân đoạn và trình tiêu thụ nhận các bản ghi dữ liệu từ các phân đoạn. Trình tiêu thụ sử dụng các phân đoạn để xử lý dữ liệu song song và sử dụng dữ liệu theo thứ tự lưu trữ chính xác của chúng. Nếu số lượt ghi và đọc vượt quá giới hạn phân đoạn, ứng dụng nguồn tạo và trình tiêu thụ sẽ nhận được các nút điều chỉnh, có thể xử lý thông qua các lần thử lại.
Bản ghi là gì?
Bản ghi là đơn vị dữ liệu được lưu trữ trong luồng dữ liệu Amazon Kinesis. Bản ghi bao gồm số trình tự, khóa phân vùng và blob dữ liệu. Blob dữ liệu là dữ liệu cần quan tâm mà nguồn tạo dữ liệu thêm vào luồng dữ liệu. Kích thước tối đa của blob dữ liệu (dữ liệu thực trước khi mã hóa Base64) là 1 megabyte (MB).
Khóa phân vùng là gì?
Khóa phân vùng được sử dụng để cô lập và định tuyến các bản ghi tới các phân mảnh khác nhau trong luồng dữ liệu. Khóa phân vùng do đối tượng tạo dữ liệu của bạn chỉ định khi thêm dữ liệu vào luồng dữ liệu Kinesis. Ví dụ: giả sử bạn có luồng dữ liệu gồm hai phân đoạn (phân đoạn 1 và phân đoạn 2). Bạn có thể cấu hình nguồn tạo dữ liệu để sử dụng hai khóa phân vùng (khóa A và khóa B) sao cho tất cả các bản ghi có khóa A được thêm vào phân đoạn 1 và tất cả các bản ghi có khóa B được thêm vào phân đoạn 2.
Số trình tự là gì?
Số trình tự là một mã định danh duy nhất cho mỗi bản ghi. Số trình tự được Amazon Kinesis ấn định khi nguồn tạo dữ liệu gọi thao tác PutRecord hoặc PutRecords để thêm dữ liệu vào luồng dữ liệu Amazon Kinesis. Số trình tự cho cùng một khóa phân vùng thường tăng lên theo thời gian; khoảng thời gian giữa các yêu cầu PutRecord hoặc PutRecords càng lâu thì số trình tự càng lớn.
Chế độ dung lượng là gì?
Chế độ dung lượng của Kinesis Data Streams xác định cách quản lý dung lượng và tính phí sử dụng cho một luồng dữ liệu. Bạn có thể chọn giữa chế độ cấp phép và chế độ theo nhu cầu. Ở chế độ được cung cấp, bạn có thể chỉ định số lượng phân đoạn cho luồng dữ liệu. Tổng dung lượng của một luồng dữ liệu là tổng dung lượng các phân đoạn của nó. Bạn có thể tăng hoặc giảm số lượng phân đoạn trong luồng dữ liệu nếu cần và thanh toán cho số lượng phân đoạn ở mức phí theo giờ. Trong chế độ theo nhu cầu, AWS quản lý các phân đoạn để cung cấp thông lượng cần thiết. Bạn chỉ cần thanh toán cho thông lượng thực tế đã sử dụng và Kinesis Data Streams sẽ tự động đáp ứng nhu cầu thông lượng khối lượng công việc của bạn khi chúng tăng hoặc giảm. Tất cả các API ghi và đọc của Kinesis Data Streams, cùng với các tính năng tùy chọn như Khả năng lưu giữ kéo dài và Phân xuất tăng cường, đều được hỗ trợ ở cả hai chế độ dung lượng.
Làm thế nào để chọn giữa chế độ theo nhu cầu và chế độ được cung cấp?
Chế độ theo nhu cầu phù hợp nhất cho khối lượng công việc có các mẫu lưu lượng không thể đoán trước và có nhiều thay đổi. Bạn nên sử dụng chế độ này nếu muốn AWS thay bạn quản lý dung lượng hoặc bạn muốn mức định giá theo thông lượng. Chế độ được cung cấp phù hợp nhất cho lưu lượng có thể đoán trước, có thể dễ dàng dự báo các yêu cầu về dung lượng. Bạn nên cân nhắc sử dụng chế độ được cung cấp nếu muốn kiểm soát chi tiết cách phân phối dữ liệu trên các phân đoạn. Chế độ được cung cấp cũng phù hợp nếu bạn muốn cung cấp thêm các phân đoạn để ứng dụng tiêu thụ có thể có nhiều thông lượng đọc hơn nhằm tăng tốc quá trình xử lý tổng thể.
Có thể chuyển đổi giữa chế độ theo nhu cầu và chế độ được cung cấp không?
Có. Bạn có thể chuyển đổi giữa chế độ theo nhu cầu và chế độ được cung cấp hai lần một ngày. Số lượng phân đoạn của luồng dữ liệu vẫn được giữ nguyên khi bạn chuyển từ chế độ được cung cấp sang chế độ theo nhu cầu và ngược lại. Với việc chuyển từ chế độ dung lượng được cung cấp sang chế độ theo nhu cầu, luồng dữ liệu của bạn sẽ giữ lại bất kỳ số lượng phân đoạn nào mà nó có trước khi chuyển đổi. Nhưng từ thời điểm đó trở đi, Kinesis Data Streams sẽ giám sát lưu lượng dữ liệu của bạn và thay đổi quy mô số phân đoạn của luồng dữ liệu theo nhu cầu này lên hoặc xuống tùy thuộc vào lưu lượng truy cập tăng hoặc giảm.
Thêm dữ liệu vào Luồng dữ liệu Kinesis
Làm thế nào để thêm dữ liệu vào luồng dữ liệu Amazon Kinesis?
Bạn có thể thêm dữ liệu vào luồng dữ liệu Kinesis thông qua thao tác PutRecord và PutRecords, KPL hoặc Tác tử Amazon Kinesis.
Điểm khác biệt giữa PutRecord và PutRecords là gì?
Thao tác PutRecord cho phép một bản ghi dữ liệu đơn lẻ trong một lệnh gọi API và thao tác PutRecords cho phép nhiều bản ghi dữ liệu trong một lệnh gọi API. Để biết thêm thông tin, vui lòng tham khảo PutRecord và PutRecords.
Thư viện đối tượng tạo Amazon Kinesis (KPL) là gì?
KPL là thư viện dễ sử dụng và có cấu hình linh hoạt cao giúp bạn đưa dữ liệu vào luồng dữ liệu Amazon Kinesis. KPL có giao diện đơn giản, không đồng bộ và đáng tin cậy, giúp bạn nhanh chóng đạt được thông lượng đối tượng tạo cao với lượng tài nguyên máy khách tối thiểu.
Tác tử Amazon Kinesis là gì?
Amazon Kinesis Agent là ứng dụng Java dựng sẵn, mở ra cách thức dễ dàng để thu thập và gửi dữ liệu tới luồng dữ liệu Amazon Kinesis của bạn. Bạn có thể cài đặt ứng dụng đại diện này trên các môi trường máy chủ dựa trên Linux như máy chủ web, máy chủ nhật ký và máy chủ cơ sở dữ liệu. Ứng dụng đại diện này giám sát các tệp nhất định và liên tục gửi dữ liệu đến luồng dữ liệu. Để biết thêm thông tin, vui lòng tham khảo Ghi bằng các tác tử.
Trong khi có lệnh gọi PutRecord hoặc PutRecords, dữ liệu nào sẽ được kiểm đếm so với thông lượng dữ liệu của luồng dữ liệu Amazon Kinesis?
Blob dữ liệu, khóa phân vùng và tên luồng dữ liệu là các tham số bắt buộc của lệnh gọi PutRecord hoặc PutRecords. Kích thước của blob dữ liệu (trước khi mã hóa Base64) và khóa phân vùng sẽ được kiểm đếm so với thông lượng dữ liệu của luồng dữ liệu Amazon Kinesis do số lượng phân đoạn trong luồng dữ liệu xác định.
Đọc và xử lý dữ liệu từ Luồng dữ liệu Kinesis
Đối tượng dùng là gì và Luồng dữ liệu Kinesis cung cấp những kiểu đối tượng dùng khác nhau nào?
Đối tượng dùng là một ứng dụng xử lý mọi dữ liệu từ luồng dữ liệu Kinesis. Bạn có thể chọn giữa loại trình tiêu thụ phân xuất chung và phân xuất tăng cường để đọc dữ liệu từ luồng dữ liệu Kinesis. Trình tiêu thụ phân xuất chung đều dùng chung một thông lượng đọc 2 MB/giây của một phận đoạn và giới hạn năm giao dịch mỗi giây, đồng thời yêu cầu sử dụng API GetRecords. Trình tiêu thụ phân xuất tăng cường nhận riêng phân bổ thông lượng đọc 2 MB/giây, cho phép nhiều trình tiêu thụ đọc dữ liệu từ cùng một luồng song song, mà không cần tranh thông lượng đọc với những trình tiêu thụ khác. Bạn cần sử dụng API SubscribeToShard với các trình tiêu thụ phân xuất tăng cường. Chúng tôi khuyên bạn nên sử dụng đối tượng dùng phân rộng tăng cường nếu bạn muốn thêm nhiều đối tượng dùng vào luồng dữ liệu của mình.
Làm thế nào để xử lý dữ liệu được ghi lại và lưu trữ trong Luồng dữ liệu Kinesis?
Bạn có thể sử dụng các dịch vụ được quản lý như AWS Lambda, Dịch vụ được quản lý của Amazon dành cho Apache Flink và AWS Glue để xử lý dữ liệu được lưu trữ trong Luồng dữ liệu Kinesis. Các dịch vụ được quản lý này đảm nhận việc cung cấp và quản lý cơ sở hạ tầng bên dưới để bạn có thể tập trung vào việc viết logic làm việc của mình. Bạn cũng có thể gửi dữ liệu được lưu trữ trong Luồng dữ liệu Kinesis tới Amazon S3, Dịch vụ OpenSearch của Amazon, Amazon Redshift và các điểm cuối HTTP tùy chỉnh bằng cách sử dụng tiện ích tích hợp dựng sẵn với Firehose dữ liệu Kinesis. Bạn cũng có thể xây dựng các ứng dụng tùy chỉnh bằng cách sử dụng Amazon Kinesis Client Library, một thư viện được tạo sẵn hoặc API Amazon Kinesis Data Streams.
Thư viện máy khách Amazon Kinesis (KCL) là gì?
KCL dành cho Java, Python, Ruby, Node.js và .NET là thư viện dựng sẵn giúp bạn dễ dàng xây dựng ứng dụng Amazon Kinesis để đọc và xử lý dữ liệu từ luồng dữ liệu Amazon Kinesis.
KCL giải quyết được các vấn đề phức tạp như thích ứng với những thay đổi về khối lượng luồng dữ liệu, cân bằng tải cho dữ liệu truyền liên tục, điều phối các dịch vụ phân tán và xử lý dữ liệu với khả năng chịu lỗi cao. KCL cho phép bạn tập trung vào logic làm việc trong khi xây dựng ứng dụng. Tham khảo tài liệu về Luồng dữ liệu Kinesis tại đây để biết thêm chi tiết về KCL.
API SubscribeToShard là gì?
API SubscribeToShard là API tạo luồng hiệu năng cao giúp đẩy dữ liệu từ các phân đoạn đến các trình tiêu thụ qua một kết nối liên tục mà không cần tới chu trình yêu cầu từ ứng dụng khách. API SubscribeToShard sử dụng giao thức HTTP/2 để phân phối dữ liệu đến các trình tiêu thụ đã đăng ký bất cứ khi nào dữ liệu mới đến phân đoạn, thường là trong vòng 70ms, mang tới tốc độ phân phối nhanh hơn khoảng 65% so với API GetRecords. Trình tiêu thụ sẽ được hưởng tốc độ phân phối nhanh ngay cả khi có nhiều trình tiêu thụ đã đăng ký cùng đọc từ một phân đoạn.
Phân rộng tăng cường là gì?
Phân xuất tăng cường là tính năng tùy chọn cho các trình tiêu thụ Kinesis Data Streams, cung cấp các đường dẫn nối có thông lượng 2 MB/giây giữa các trình tiêu thụ và các phân đoạn. Nhờ đó, bạn có thể thay đổi số lượng trình tiêu thụ đang đọc đồng thời từ một luồng dữ liệu mà vẫn duy trì được hiệu suất cao.
Khi nào tôi nên sử dụng phân rộng tăng cường?
Bạn nên sử dụng phân xuất tăng cường nếu bạn có, hoặc dự kiến sẽ có, nhiều trình tiêu thụ cùng truy xuất đồng thời từ một luồng, hoặc nếu bạn có ít nhất một trình tiêu thụ bắt buộc phải sử dụng API SubscribeToShard để cung cấp tốc độ phân phối dữ liệu dưới 200 ms giữa các nguồn tạo dữ liệu và trình tiêu thụ.
Đối tượng dùng sử dụng phân rộng tăng cường như thế nào?
Các trình tiêu thụ sử dụng phân xuất tăng cường bằng cách truy xuất dữ liệu bằng API SubscribeToShard. Tên của trình tiêu thụ đã đăng ký được sử dụng trong API SubscribeToShard, nhờ đó tận dụng được lợi ích của phân xuất tăng cường được cung cấp cho trình tiêu thụ đã đăng ký.
Tôi có thể để một số đối tượng dùng sử dụng phân rộng tăng cường, còn một số đối tượng dùng khác không sử dụng không?
Có. Bạn có thể để đồng thời nhiều trình tiêu thụ sử dụng phân xuất tăng cường, còn số khác thì không sử dụng nó cũng được. Việc sử dụng phân xuất tăng cường không làm ảnh hưởng đến giới hạn số lượng phân đoạn đối với lượng sử dụng GetRecords thông thường.
Tôi có cần sử dụng phân rộng tăng cường nếu muốn dùng SubscribeToShard hay không?
Có. Để sử dụng SubscribeToShard, bạn cần đăng ký trình tiêu thụ và việc đăng ký sẽ kích hoạt phân xuất tăng cường. Theo mặc định, trình tiêu thụ sẽ tự động sử dụng phân xuất tăng cường khi truy xuất dữ liệu qua SubscribeToShard.
Chế độ theo nhu cầu
Định mức thông lượng mặc định để ghi dữ liệu vào luồng dữ liệu bằng chế độ theo nhu cầu là bao nhiêu?
Luồng dữ liệu mới được tạo ở chế độ theo nhu cầu có định mức 4 MB/giây và 4.000 bản ghi mỗi giây để ghi. Theo mặc định, các luồng này tự động mở rộng quy mô lên đến 200 MB/giây và 200.000 bản ghi mỗi giây để ghi.
Các luồng dữ liệu điều chỉnh quy mô ở chế độ theo nhu cầu như thế nào để xử lý việc tăng thông lượng ghi?
Luồng dữ liệu ở chế độ theo nhu cầu có khả năng tăng gấp đôi thông lượng ghi đỉnh trước đó được quan sát trong 30 ngày gần nhất. Khi thông lượng ghi của luồng dữ liệu đạt mức đỉnh mới, Kinesis Data Streams sẽ tự động thay đổi quy mô dung lượng của luồng. Ví dụ: nếu luồng dữ liệu của bạn có thông lượng ghi thay đổi từ 10 MB/giây đến 40 MB/giây, Kinesis Data Streams sẽ đảm bảo rằng bạn có thể dễ dàng tăng gấp đôi thông lượng đỉnh là 80 MB/giây. Sau đó, nếu có một luồng dữ liệu tương tự duy trì thông lượng đỉnh mới là 50 MB/giây, thì Data Streams sẽ đảm bảo rằng có đủ dung lượng để thu nạp 100 MB/giây thông lượng ghi. Tuy nhiên, bạn sẽ thấy lỗi “ProvisonedThroughputExceeded” nếu lưu lượng truy cập của bạn tăng hơn gấp đôi so với mức đỉnh trước đó trong khoảng thời gian 15 phút. Bạn cần phải thử lại các yêu cầu điều chỉnh này.
Giới hạn thông lượng để đọc dữ liệu từ các luồng ở chế độ theo nhu cầu là bao nhiêu?
Dung lượng đọc tổng hợp của chế độ theo nhu cầu tăng theo tỷ lệ thuận với thông lượng ghi để đảm bảo rằng các ứng dụng đang sử dụng luôn có đủ thông lượng đọc để xử lý dữ liệu đến trong thời gian thực. Bạn nhận được tối thiểu gấp đôi thông lượng ghi để đọc dữ liệu bằng API GetRecords. Chúng tôi khuyên bạn nên sử dụng một trình tiêu thụ có API GetRecord để có đủ chỗ để bắt kịp khi ứng dụng cần khôi phục sau thời gian ngừng hoạt động. Để thêm nhiều hơn một ứng dụng đang sử dụng, bạn cần sử dụng phân xuất tăng cường, hỗ trợ thêm tối đa 20 trình tiêu thụ vào luồng dữ liệu bằng API SubscribeToShard, với mỗi API có thông lượng chuyên dụng.
Chế độ được cung cấp
Giới hạn của Luồng dữ liệu Kinesis ở chế độ được cung cấp là bao nhiêu?
Thông lượng của luồng dữ liệu Kinesis trong chế độ được cung cấp được thiết kế để mở rộng quy mô không giới hạn thông qua việc tăng số lượng phân đoạn trong một luồng dữ liệu.
Làm thế nào để điều chỉnh quy mô dung lượng của Luồng dữ liệu Kinesis ở chế độ được cung cấp?
Bạn có thể tăng quy mô dung lượng luồng dữ liệu Kinesis ở chế độ được cung cấp bằng cách chia nhỏ các phân mảnh hiện có thông qua API SplitShard. Bạn có thể giảm quy mô dung lượng bằng cách hợp nhất hai phân mảnh thông qua API MergeShard. Ngoài ra, bạn có thể sử dụng API UpdateShardCount để tăng (hoặc giảm) dung lượng luồng đến số lượng phân đoạn cụ thể.
Làm thế nào để quyết định thông lượng của luồng dữ liệu Amazon Kinesis ở chế độ được cung cấp?
Số lượng phân đoạn trong luồng dữ liệu sẽ quyết định thông lượng của luồng dữ liệu Kinesis. Thực hiện theo các bước dưới đây để ước tính số lượng phân đoạn ban đầu cần thiết cho luồng dữ liệu của bạn trong chế độ được cung cấp. Lưu ý rằng bạn có thể điều chỉnh linh hoạt số lượng phân đoạn trong luồng dữ liệu thông qua thao tác chia lại phân đoạn.
Ước tính kích thước trung bình của bản ghi được ghi vào luồng dữ liệu tính theo kilobyte (KB), được làm tròn tới 1 KB gần nhất (average_data_size_in_KB)
Ước tính số lượng bản ghi được ghi vào luồng dữ liệu trên mỗi giây. (number_of_records_per_second)
Quyết định số lượng ứng dụng Amazon Kinesis tiêu thụ dữ liệu đồng thời và độc lập từ luồng dữ liệu. (number_of_consumers)
Tính băng thông ghi đi vào theo KB (incoming_write_bandwidth_in_KB), bằng average_data_size_in_KB nhân với number_of_records_per_second.
Tính băng thông đọc đi ra theo KB (outgoing_read_bandwidth_in_KB), bằng incoming_write_bandwidth_in_KB nhân với number_of_consumers.
Sau đó, bạn có thể tính số phân đoạn ban đầu (number_of_shards) cần thiết cho luồng dữ liệu theo công thức sau: number_of_shards = max (incoming_write_bandwidth_in_KB / 1000, outgoing_read_bandwidth_in_KB / 2000)
Thông lượng tối đa mà tôi có thể yêu cầu cho luồng dữ liệu Amazon Kinesis ở chế độ được cung cấp là bao nhiêu?
Thông lượng của luồng dữ liệu Kinesis được thiết kế để thay đổi quy mô không giới hạn. Định mức phân đoạn mặc định là 500 phân đoạn mỗi luồng đối với các Khu vực AWS sau: Miền Đông Hoa Kỳ (Bắc Virginia), Miền Tây Hoa Kỳ (Oregon) và Châu Âu (Ireland). Đối với tất cả các Khu vực khác, định mức phân đoạn mặc định là 200 phân đoạn mỗi luồng. Bạn có thể yêu cầu tăng định mức phân đoạn thông qua Bảng điều khiển AWS Service Quotas.
Điều gì sẽ xảy ra nếu dung lượng của luồng dữ liệu Amazon Kinesis vượt quá giới hạn trong khi đối tượng tạo dữ liệu thêm dữ liệu vào luồng dữ liệu ở chế độ được cung cấp?
Trong chế độ được cung cấp, số lượng phân đoạn trong luồng dữ liệu sẽ quyết định giới hạn dung lượng của luồng dữ liệu Kinesis. Giới hạn có thể bị vượt quá do thông lượng dữ liệu hoặc số lượng bản ghi PUT. Khi vượt quá giới hạn dung lượng, lệnh gọi đặt dữ liệu sẽ bị từ chối với lỗi ProvisionedThroughputExceeded. Nếu nguyên nhân là do tốc độ dữ liệu đầu vào của luồng dữ liệu tăng tạm thời, thao tác thử lại do nguồn tạo dữ liệu thực hiện cuối cùng sẽ hoàn tất các yêu cầu. Nếu nguyên nhân là do tốc độ dữ liệu đầu vào của luồng dữ liệu tăng kéo dài, bạn nên tăng số lượng phân đoạn trong luồng dữ liệu để cung cấp đủ dung lượng cho các lệnh gọi đặt dữ liệu luôn thành công. Trong cả hai trường hợp, số liệu của Amazon CloudWatch đều cho phép bạn tìm hiểu về thay đổi tốc độ dữ liệu đầu vào của luồng dữ liệu và sự xuất hiện của lỗi ProvisionedThroughputExceeded.
Điều gì sẽ xảy ra nếu dung lượng của luồng dữ liệu Amazon Kinesis vượt quá giới hạn trong khi ứng dụng Amazon Kinesis đọc dữ liệu từ luồng dữ liệu ở chế độ được cung cấp?
Trong chế độ được cung cấp, số lượng phân đoạn trong luồng dữ liệu sẽ quyết định giới hạn dung lượng của luồng dữ liệu Kinesis. Giới hạn có thể bị vượt quá do thông lượng dữ liệu hoặc số lượng lệnh gọi đọc dữ liệu. Khi vượt quá giới hạn dung lượng, lệnh gọi đọc dữ liệu bị từ chối với lỗi ProvisionedThroughputExceeded. Nếu nguyên nhân là do tốc độ dữ liệu đầu ra của luồng dữ liệu tăng tạm thời, thao tác thử lại do ứng dụng Amazon Kinesis thực hiện cuối cùng sẽ hoàn tất các yêu cầu. Nếu nguyên nhân là do tốc độ dữ liệu đầu vào của luồng dữ liệu tăng kéo dài, bạn nên tăng số lượng phân đoạn trong luồng dữ liệu để cung cấp đủ dung lượng cho các lệnh gọi đọc dữ liệu luôn thành công. Trong cả hai trường hợp, chỉ số của Amazon CloudWatch đều cho phép bạn tìm hiểu về thay đổi tốc độ dữ liệu đầu ra của luồng dữ liệu và sự xuất hiện của lỗi ProvisionedThroughputExceeded.
Lưu giữ dữ liệu mở rộng và dài hạn
Luồng dữ liệu Kinesis hỗ trợ thời hạn lưu giữ bao lâu?
Khoảng thời gian lưu giữ mặc định là 24 giờ dành cho những trường hợp cần bắt kịp dữ liệu trong thời gian thực cho những khoảng thời gian trễ không liên tục trong quá trình xử lý. Chế độ lưu giữ bảy ngày cho phép bạn xử lý lại dữ liệu trong tối đa bảy ngày để giải quyết vấn đề mất dữ liệu hạ nguồn có thể xảy ra. Chế độ lưu giữ dữ liệu dài hạn, trên bảy ngày và tối đa 365 ngày, cho phép bạn xử lý lại dữ liệu cũ trong các trường hợp sử dụng như kiểm thử lại thuật toán, lấp đầy kho dữ liệu và kiểm tra.
Có thể sử dụng các API Luồng dữ liệu Kinesis hiện có để đọc dữ liệu cũ hơn bảy ngày không?
Có. Bạn có thể sử dụng cùng một API getShardIterator, GetRecords và SubscribeToShard để đọc dữ liệu được lưu giữ trong hơn bảy ngày. Trình tiêu thụ có thể di chuyển biến lặp đến vị trí mong muốn trong luồng, truy xuất bản đồ phân đoạn (bao gồm cả phân đoạn mở và đã đóng) cũng như đọc các bản ghi.
Có API mới nào để hỗ trợ thêm khả năng đọc dữ liệu cũ không?
Có. Chúng tôi đã bổ sung tính năng cải tiến cho API ListShards, GetRecords và SubscribeToShard. Bạn có thể dùng tùy chọn bộ lọc mới với tham số TimeStamp có sẵn trong API ListShards để truy xuất hiệu quả bản đồ phân đoạn và cải thiện hiệu suất đọc dữ liệu cũ. Bộ lọc TimeStamp cho phép các ứng dụng khám phá và liệt kê các phân đoạn từ thời điểm bạn muốn xử lý lại dữ liệu và không cần phải bắt đầu ở khung thời hạn xóa. API GetRecords và SubscribeToShards có trường mới tên là ChildShards, cho phép bạn nhanh chóng phát hiện các phân đoạn con khi một ứng dụng đọc xong dữ liệu từ một phân đoạn đã đóng, thay vì phải duyệt lại bản đồ phân đoạn. Việc phát hiện nhanh các phân đoạn giúp sử dụng hiệu quả tài nguyên điện toán của ứng dụng cho luồng ở mọi kích thước, bất kể thời gian lưu giữ dữ liệu.
Khi nào nên sử dụng các tính năng cải tiến API này?
Bạn nên cân nhắc sử dụng các tính năng cải tiến API này nếu định lưu giữ dữ liệu lâu hơn và thường xuyên mở rộng dung lượng luồng của mình. Khi mở rộng luồng, các phân đoạn hiện có sẽ bị đóng để mở các phân đoạn con mới. Dữ liệu trong tất cả các phân đoạn mở và đóng được giữ lại cho đến khi kết thúc khoảng thời gian lưu giữ. Vì vậy, tổng số phân đoạn sẽ tăng theo thời gian lưu giữ và số thao tác mở rộng quy mô. Sự gia tăng này trong bản đồ phân đoạn đòi hỏi bạn phải sử dụng ListShards với bộ lọc TimeStamp cũng như trường ChildShards trong API GetRecords và API SubscribeToShard nhằm khám phá hiệu quả các phân đoạn để truy xuất dữ liệu. Bạn sẽ cần nâng cấp KCL lên phiên bản mới nhất (1.x đối với đối tượng dùng tiêu chuẩn và 2.x đối với đối tượng dùng phân rộng tăng cường) để có thể sử dụng các tính năng này.
Luồng dữ liệu Kinesis có hỗ trợ đăng ký lược đồ không?
Có. Máy khách của Luồng dữ liệu Kinesis có thể sử dụng Sổ đăng ký lược đồ AWS Glue, một tính năng phi máy chủ của AWS Glue, thông qua KPL và KCL hoặc thông qua các API Sổ đăng ký lược đồ AWS Glue trong SDK AWS Java. Sổ đăng ký lược đồ được cung cấp mà không tính thêm phụ phí.
Xem tài liệu hướng dẫn sử dụng về Sổ đăng ký lược đồ để bắt đầu và tìm hiểu thêm.
Quản lý Luồng dữ liệu Kinesis
Làm thế nào để thay đổi thông lượng của luồng dữ liệu Amazon Kinesis ở chế độ được cung cấp?
Có hai cách để thay đổi thông lượng của luồng dữ liệu. Bạn có thể sử dụng API UpdateShardCount hoặc Bảng điều khiển quản lý AWS để thay đổi số lượng phân đoạn trong luồng dữ liệu, hoặc bạn có thể thay đổi thông lượng của luồng dữ liệu Amazon Kinesis bằng cách điều chỉnh số lượng phân đoạn trong luồng dữ liệu (chia lại phân đoạn).
Mất bao lâu để thay đổi thông lượng của luồng dữ liệu Amazon Kinesis chạy trong chế độ được cung cấp bằng cách sử dụng UpdateShardCount hoặc Bảng điều khiển quản lý AWS?
Việc hoàn thành các yêu cầu thay đổi quy mô điển hình thường mất vài phút. Các yêu cầu điều chỉnh quy mô lớn hơn sẽ mất nhiều thời gian hơn các yêu cầu nhỏ hơn.
Khi tôi thay đổi thông lượng của luồng dữ liệu Kinesis ở chế độ được cung cấp hoặc khi việc điều chỉnh quy mô xảy ra tự động ở chế độ theo nhu cầu, thì Luồng dữ liệu Kinesis có còn được cung cấp không?
Có. Bạn có thể tiếp tục thêm dữ liệu vào và đọc dữ liệu từ luồng dữ liệu Kinesis khi đang sử dụng UpdateShardCount hoặc chia lại phân đoạn để thay đổi thông lượng của luồng dữ liệu hoặc khi Kinesis Data Streams tự động chia lại phân đoạn trong chế độ theo nhu cầu.
Làm thế nào để giám sát hoạt động và hiệu năng của luồng dữ liệu Amazon Kinesis?
Bảng điều khiển quản lý Luồng dữ liệu Amazon Kinesis hiển thị các số liệu hoạt động và hiệu năng chính như thông lượng đầu vào và đầu ra dữ liệu của luồng dữ liệu Kinesis. Luồng dữ liệu Kinesis cũng tích hợp với Amazon CloudWatch để bạn có thể thu thập, xem và phân tích số liệu CloudWatch cho các luồng dữ liệu và các phân mảnh trong những luồng dữ liệu đó. Để biết thêm thông tin về chỉ số của Luồng dữ liệu Kinesis, hãy xem bài viết Giám sát Luồng dữ liệu Amazon Kinesis bằng Amazon CloudWatch.
Lưu ý rằng tất cả số liệu ở cấp độ luồng đều miễn phí. Tất cả số liệu ở cấp độ phân mảnh được kích hoạt chịu mức giá của Amazon CloudWatch.
Làm thế nào để quản lý và kiểm soát quyền truy cập luồng dữ liệu Amazon Kinesis?
Luồng dữ liệu Kinesis tích hợp với Quản lý danh tính và truy cập (IAM) trong AWS, một dịch vụ hỗ trợ bạn kiểm soát một cách bảo mật quyền truy cập vào dịch vụ và tài nguyên của AWS đối với người dùng của bạn. Ví dụ: bạn có thể tạo chính sách chỉ cho phép một nhóm hoặc người dùng cụ thể thêm dữ liệu vào luồng dữ liệu của bạn. Bạn cũng có thể đính kèm chính sách dựa trên tài nguyên vào luồng dữ liệu hoặc đối tượng dùng đã đăng ký để kiểm soát quyền truy cập ở cấp tài nguyên. Để biết thêm thông tin về quản lý và kiểm soát quyền truy cập luồng dữ liệu, vui lòng tham khảo Kiểm soát quyền truy cập tài nguyên Luồng dữ liệu Amazon Kinesis thông qua IAM.
Làm cách nào để chia sẻ quyền truy cập vào luồng dữ liệu của tôi với một tài khoản khác?
Bạn có thể sử dụng vai trò giả định của IAM hoặc chính sách dựa trên tài nguyên để chia sẻ quyền truy cập với tài khoản khác. Để chia sẻ quyền truy cập với hàm AWS Lambda liên tài khoản, hãy đính kèm chính sách dựa trên tài nguyên vào luồng dữ liệu hoặc đối tượng dùng của bạn để cấp quyền truy cập vào vai trò thực thi của hàm Lambda. Xem thêm tại Sử dụng AWS Lambda với Amazon Kinesis.
Làm thế nào để tạo bản ghi lệnh gọi API đã thực hiện đến luồng dữ liệu Amazon Kinesis để phục vụ phân tích bảo mật và giải quyết sự cố hoạt động?
Luồng dữ liệu Kinesis tích hợp với Amazon CloudTrail, một dịch vụ ghi lại các lệnh gọi API của AWS cho tài khoản của bạn và gửi các tệp bản ghi cho bạn. Để biết thêm thông tin về tạo bản ghi lệnh gọi API và danh sách các thao tác API Amazon Kinesis được hỗ trợ, vui lòng tham khảo Tạo bản ghi lệnh gọi API Amazon Kinesis bằng Amazon CloudTrail.
Làm thế nào để quản lý các luồng dữ liệu Amazon Kinesis và chi phí liên quan đến các luồng dữ liệu này một cách hiệu quả?
Kinesis Data Streams cho phép bạn gắn thẻ các luồng dữ liệu Kinesis để quản lý tài nguyên và chi phí dễ dàng hơn. Thẻ là một nhãn do người dùng xác định được thể hiện dưới dạng một cặp giá trị khóa giúp sắp xếp các tài nguyên AWS. Ví dụ: bạn có thể gắn thẻ các luồng dữ liệu theo các trung tâm chi phí để có thể phân loại và theo dõi các khoản phí Luồng dữ liệu Kinesis dựa trên các trung tâm chi phí. Để biết thêm thông tin về gắn thẻ Luồng dữ liệu Amazon Kinesis, hãy xem Gắn thẻ Luồng dữ liệu Amazon Kinesis.
Bảo mật
Dữ liệu của tôi bảo mật ở mức độ nào khi sử dụng Luồng dữ liệu Kinesis?
Amazon Kinesis bảo mật theo mặc định. Chỉ chủ tài khoản và luồng dữ liệu mới có quyền truy cập các tài nguyên Kinesis mà họ tạo. Kinesis hỗ trợ xác thực người dùng để kiểm soát truy cập dữ liệu. Bạn có thể sử dụng các chính sách IAM để cấp quyền có chọn lọc cho người dùng và nhóm người dùng. Bạn có thể đặt và lấy dữ liệu một cách bảo mật từ Kinesis thông qua các điểm cuối SSL bằng cách sử dụng giao thức HTTPS. Nếu cần tăng cường thêm bảo mật, bạn có thể sử dụng mã hóa phía máy chủ với các khóa của Dịch vụ quản lý khóa của AWS (AWS KMS) để mã hóa dữ liệu được lưu trữ trong luồng dữ liệu. AWS KMS cho phép bạn sử dụng các khóa KMS do AWS tạo để mã hóa hoặc bạn có thể mang khóa KMS của riêng bạn vào AWS KMS nếu muốn. Cuối cùng, bạn có thể sử dụng thư viện mã hóa của riêng mình để mã hóa dữ liệu phía máy khách trước khi đặt dữ liệu vào Kinesis.
Tôi có thể truy cập một cách riêng tư vào các API Luồng dữ liệu Kinesis từ Amazon Virtual Private Cloud (Amazon VPC) mà không cần sử dụng IP công cộng không?
Có. Bạn có thể truy cập riêng tư vào các API Kinesis Data Streams từ Amazon VPC bằng cách tạo Điểm cuối VPC. Với Điểm cuối VPC, mạng AWS sẽ xử lý việc định tuyến giữa VPC và Kinesis Data Streams mà không cần cổng Internet, cổng NAT hoặc kết nối VPN. Thế hệ mới nhất của Điểm cuối VPC mà Luồng dữ liệu Kinesis sử dụng được cung cấp bởi AWS PrivateLink, một công nghệ cho phép kết nối riêng tư giữa các dịch vụ AWS bằng Giao diện mạng linh hoạt (ENI) với IP riêng tư trong VPC của bạn. Để tìm hiểu thêm về PrivateLink, hãy tham khảo tài liệu về PrivateLink.
Mã hóa
Tôi có thể mã hóa dữ liệu mà tôi đặt vào luồng dữ liệu Kinesis không?
Có, và có hai cách để làm việc đó. Bạn có thể sử dụng mã hóa phía máy chủ, đây là một tính năng được quản lý toàn phần, tự động mã hóa và giải mã dữ liệu khi bạn đưa dữ liệu vào và lấy dữ liệu từ luồng dữ liệu. Bạn cũng có thể ghi dữ liệu đã mã hóa vào luồng dữ liệu bằng cách mã hóa và giải mã phía máy khách.
Tại sao tôi nên sử dụng mã hóa phía máy chủ thay vì mã hóa phía máy khách?
Bạn nên chọn mã hóa phía máy chủ hơn là mã hóa phía máy khách vì một trong những lý do sau:
- Để mã hóa phía máy khách là một việc rất khó.
- Khách hàng muốn tầng bảo mật thứ hai bên cạnh mã hóa phía máy khách.
- Khó triển khai các mô hình quản lý khóa phía máy khách.
Mã hóa phía máy chủ là gì?
Mã hóa phía máy chủ dành cho Kinesis Data Streams tự động mã hóa dữ liệu bằng khóa AWS KMS do người dùng chỉ định trước khi được ghi vào tầng lưu trữ luồng dữ liệu và giải mã dữ liệu sau khi truy xuất từ kho lưu trữ. Việc mã hóa làm vô hiệu hóa các thao tác ghi và đọc dữ liệu và khóa phân vùng trừ khi người dùng đang ghi hoặc đọc từ luồng dữ liệu có quyền sử dụng khóa đã chọn để mã hóa trên luồng dữ liệu. Do đó, mã hóa phía máy chủ có thể giúp đơn giản hóa việc đáp ứng các yêu cầu nội bộ về bảo mật và tuân thủ điều chỉnh dữ liệu của bạn.
Với mã hóa phía máy chủ, các ứng dụng phía máy khách (nguồn tạo và ứng dụng tiêu thụ dữ liệu) không cần phải đảm nhiệm việc mã hóa, các ứng dụng đó không cần quản lý khóa KMS hay hoạt động mã hóa và dữ liệu của bạn được mã hóa khi lưu trữ và khi truyền trong phạm vi dịch vụ Kinesis Data Streams. AWS KMS cung cấp tất cả các khóa KMS mà tính năng mã hóa phía máy chủ sử dụng. AWS KMS giúp dễ dàng sử dụng khóa KMS do AWS quản lý cho Kinesis (phương thức mã hóa “một lần nhấp”), khóa do khách hàng AWS KMS quản lý của chính bạn hoặc khóa KMS mà bạn nhập để mã hóa.
Có hướng dẫn cách bắt đầu sử dụng mã hóa phía máy chủ không?
Có, bạn có thể xem hướng dẫn bắt đầu trong tài liệu hướng dẫn sử dụng.
Liệu mã hóa phía máy chủ có làm ảnh hưởng đến cách các ứng dụng của tôi tương tác với Luồng dữ liệu Kinesis hay không?
Có thể. Điều này tùy thuộc vào khóa mà bạn sử dụng để mã hóa và các quyền điều chỉnh khả năng truy cập vào khóa.
- Nếu bạn sử dụng khóa KMS do AWS quản lý cho Kinesis (bí danh khóa = aws/kinesis), các ứng dụng của bạn sẽ không bị ảnh hưởng khi bật hoặc tắt chức năng mã hóa bằng khóa này.
- Nếu bạn sử dụng khóa KMS khác, ví dụ như khóa AWS KMS tùy chỉnh hoặc một khóa mà bạn đã nhập vào dịch vụ AWS KMS và nếu nguồn tạo và ứng dụng tiêu thụ dữ liệu của một luồng dữ liệu không có quyền sử dụng khóa KMS để mã hóa, các yêu cầu PUT và GET sẽ thất bại. Để sử dụng được mã hóa phía máy khách, bạn phải cấu hình các chính sách khóa của AWS KMS để cho phép mã hóa và giải mã thông điệp. Để xem ví dụ và biết thêm thông tin về quyền của AWS KMS, vui lòng tham khảo Quyền API của AWS KMS: Tài liệu tham khảo về thao tác và tài nguyên trong Hướng dẫn dành cho nhà phát triển Dịch vụ quản lý khóa của AWS hoặc hướng dẫn về quyền trong tài liệu hướng dẫn sử dụng mã hóa phía máy chủ của Luồng dữ liệu Kinesis.
Việc sử dụng mã hóa phía máy chủ có phát sinh thêm chi phí không?
Có, tuy nhiên, nếu bạn đang sử dụng khóa KMS do AWS quản lý cho Kinesis và không vượt quá mức phí sử dụng API KMS thuộc bậc miễn phí của AWS, bạn được sử dụng mã hóa phía máy chủ miễn phí. Sau đây là mô tả về các chi phí theo tài nguyên:
Khóa:
Khóa KMS do AWS quản lý dành cho Kinesis (bí danh = “aws/kinesis”) là miễn phí.
Khóa KMS do khách hàng quản lý chịu các khoản phí đối với khóa KMS. Tìm hiểu thêm.
Mức sử dụng KMS API:
Phí sử dụng API áp dụng cho từng khóa KMS, bao gồm các khóa tùy chỉnh. Kinesis Data Streams gọi KMS khoảng năm phút một lần khi đang xoay vòng khóa dữ liệu. Trong 30 ngày, mức phí tổng cộng cho các lệnh gọi KMS API do luồng dữ liệu Kinesis khởi tạo sẽ chưa đầy vài đô-la. Lưu ý rằng mức phí này tăng lên theo số lượng thông tin xác thực người dùng mà bạn sử dụng trên các nguồn tạo và trình tiêu thụ dữ liệu vì mỗi thông tin xác thực người dùng cần một lệnh gọi API riêng tới AWS KMS. Khi bạn sử dụng vai trò IAM để xác thực, mỗi lệnh gọi nhận vai trò sẽ cần đến các thông tin xác thực người dùng riêng và bạn có thể sẽ phải lưu đệm các thông tin xác thực do lệnh gọi nhận vai trò trả về để tiết kiệm phí KMS.
Các khu vực AWS nào cung cấp mã hóa phía máy chủ cho Luồng dữ liệu Kinesis?
Mã hóa phía máy chủ Luồng dữ liệu Kinesis được cung cấp trong Khu vực AWS GovCloud và tất cả các Khu vực công cộng ngoại trừ Khu vực Trung Quốc (Bắc Kinh).
Làm thế nào để bắt đầu, cập nhật hoặc xóa mã hóa phía máy chủ khỏi luồng dữ liệu?
Bạn có thể hoàn thành tất cả các thao tác này trên Bảng điều khiển quản lý AWS hoặc sử dụng SDK AWS. Để tìm hiểu thêm, vui lòng tham khảo hướng dẫn bắt đầu mã hóa phía máy chủ Luồng dữ liệu Kinesis.
Mã hóa phía máy chủ sử dụng thuật toán mã hóa nào?
Luồng dữ liệu Kinesis sử dụng thuật toán AES-GCM 256 để mã hóa.
Nếu tôi mã hóa luồng dữ liệu đã có dữ liệu được ghi vào dưới dạng văn bản thuần hoặc bản mã, thì khi tôi cập nhật mã hóa, tất cả dữ liệu trong luồng dữ liệu đó có được mã hóa hay giải mã hay không?
Không. Chỉ dữ liệu mới đã ghi vào luồng dữ liệu sẽ được mã hóa (hoặc duy trì ở trạng thái đã giải mã) bởi ứng dụng mã hóa mới.
Mã hóa phía máy chủ cho Luồng dữ liệu Kinesis sẽ mã hóa những gì?
Mã hóa phía máy chủ mã hóa dữ liệu thực của tin nhắn cùng với khóa phân vùng do các ứng dụng tại nguồn tạo dữ liệu của luồng dữ liệu chỉ định.
Mã hóa phía máy chủ là tính năng dành riêng cho phân mảnh hay dành riêng cho luồng?
Mã hóa phía máy chủ là tính năng dành riêng cho luồng.
Tôi có thể thay đổi khóa KMS dùng để mã hóa luồng dữ liệu cụ thể không?
Có, khi sử dụng Bảng điều khiển quản lý AWS hoặc SDK AWS, bạn có thể chọn khóa KMS mới để áp dụng cho luồng dữ liệu cụ thể.
Luồng dữ liệu Kinesis có sẵn ở Bậc miễn phí của AWS không?
Không. Luồng dữ liệu Kinesis hiện không có sẵn ở Bậc miễn phí của AWS. Bậc miễn phí của AWS là chương trình cho phép dùng thử miễn phí một nhóm dịch vụ AWS. Để biết thêm chi tiết về Bậc miễn phí của AWS, vui lòng tham khảo Bậc miễn phí của AWS.
Cam kết chất lượng dịch vụ
Thỏa thuận mức dịch vụ (SLA) của Luồng dữ liệu Kinesis đảm bảo những gì?
SLA của Luồng dữ liệu Kinesis của chúng tôi đảm bảo Phần trăm thời gian hoạt động hàng tháng đạt mức tối thiểu 99,9% cho Luồng dữ liệu Kinesis.
Làm cách nào để biết tôi có đủ điều kiện nhận Tín dụng dịch vụ SLA hay không?
Bạn đủ điều kiện nhận tín dụng SLA cho Luồng dữ liệu Kinesis theo SLA của Luồng dữ liệu Kinesis nếu bạn chạy một tác vụ ở nhiều Vùng sẵn sàng, trong cùng một Khu vực, có Phần trăm thời gian hoạt động hàng tháng dưới 99,9% trong bất kỳ chu kỳ tính phí hàng tháng nào.
Để biết chi tiết đầy đủ về tất cả các điều khoản và điều kiện của SLA cũng như chi tiết về cách gửi yêu cầu thanh toán, vui lòng tham khảo SLA của Luồng dữ liệu Amazon Kinesis.
Giá và thanh toán
Luồng dữ liệu Kinesis có mức định giá là bao nhiêu?
Luồng dữ liệu Kinesis chỉ đơn giản định giá theo mức sử dụng. Bạn không phải trả trước hay trả phí tối thiểu mà chỉ cần trả cho tài nguyên bạn sử dụng. Luồng dữ liệu Kinesis có hai chế độ dung lượng – theo nhu cầu và được cung cấp – đồng thời cả hai chế độ này đều đi kèm với các lựa chọn thanh toán cụ thể.
Luồng dữ liệu Kinesis có mức định giá là bao nhiêu ở chế độ theo nhu cầu?
Với chế độ dung lượng theo nhu cầu, bạn không cần chỉ định mức thông lượng đọc và ghi mà bạn mong muốn ứng dụng của mình thực hiện. Trong chế độ này, mức định giá dựa trên dung lượng dữ liệu được thu nạp và truy xuất cùng với khoản phí mỗi giờ cho từng luồng dữ liệu trong tài khoản của bạn. Các tính năng tùy chọn sẽ chịu thêm các khoản phí bổ sung: Lưu giữ dữ liệu kéo dài (quá 24 giờ đầu tiên và trong vòng bảy ngày đầu tiên), Lưu giữ dữ liệu dài hạn (quá bảy ngày và tối đa một năm) và Phân xuất tăng cường. Để biết thêm thông tin về mức phí của Luồng dữ liệu Kinesis, vui lòng tham khảo Định giá Luồng dữ liệu Amazon Kinesis.
Luồng dữ liệu Kinesis có mức định giá là bao nhiêu ở chế độ được cung cấp?
Với chế độ dung lượng được cung cấp, bạn chỉ định số lượng phân đoạn cần thiết cho ứng dụng của mình, dựa trên tỷ lệ yêu cầu đọc và ghi của ứng dụng. Phân đoạn là một đơn vị dung lượng, cung cấp 1 MB/giây thông lượng ghi và 2MB/giây thông lượng đọc. Bạn sẽ phải trả phí theo giờ cho mỗi phân đoạn. Bạn cũng phải trả tiền cho các bản ghi được ghi vào luồng dữ liệu Kinesis. Bạn phải trả thêm phí khi sử dụng các tính năng tùy chọn như Lưu giữ dữ liệu kéo dài và Phân xuất tăng cường.
Sau đây là hai thước đo cốt lõi và ba thước đo tùy chọn trong chế độ được cung cấp của Kinesis Data Streams:
- Mức phí Phân mảnh theo giờ được xác định theo số lượng phân mảnh trong luồng dữ liệu Amazon Kinesis của bạn.
- Mức phí Đơn vị dữ liệu thực PUT được xác định theo số lượng đơn vị dữ liệu thực 25 KB mà các đối tượng tạo dữ liệu thêm vào luồng dữ liệu.
Tùy chọn:
- Lưu giữ dữ liệu kéo dài là phí tùy chọn được xác định bởi số giờ phân đoạn phát sinh trong luồng dữ liệu của bạn. Khi cho phép lưu giữ dữ liệu kéo dài, bạn sẽ trả phí lưu giữ dữ liệu kéo dài cho mỗi phân mảnh trong luồng.
- Lưu giữ dữ liệu dài hạn là chi phí tùy chọn với hai thước đo chi phí: lưu trữ dữ liệu dài hạn và truy xuất dữ liệu dài hạn. Lưu trữ dữ liệu dài hạn phản ánh lượng dữ liệu theo GB-tháng được lưu trữ trong khoảng thời gian lớn hơn bảy ngày và tối đa 365 ngày. Truy xuất dữ liệu dài hạn phản ánh số GB dữ liệu truy xuất đã được lưu trữ trong hơn bảy ngày.
- Phân xuất tăng cường là chi phí tùy chọn với hai thước đo chi phí chính: giờ tiêu thụ-phân đoạn và truy xuất dữ liệu. Số giờ ứng dụng tiêu thụ-phân đoạn bằng số lượng phân đoạn trong luồng nhân với số lượng ứng dụng tiêu thụ đang sử dụng phân xuất tăng cường. Lượng truy xuất dữ liệu được xác định bằng số GB được phân phối cho các trình tiêu thụ đang sử dụng phân xuất tăng cường.
Để biết thêm thông tin về mức phí của Luồng dữ liệu Kinesis, vui lòng tham khảo Định giá Luồng dữ liệu Amazon Kinesis.
Làm thế nào để tính giờ phân mảnh của đối tượng dùng khi sử dụng Phân rộng tăng cường ở chế độ được cung cấp?
Một giờ tiêu thụ-phân đoạn được tính bằng cách lấy số lượng trình tiêu thụ trong luồng đã đăng ký nhân với số lượng phân đoạn trong luồng. Bạn cũng sẽ chỉ phải thanh toán cho lượng thời gian đã chia tỷ lệ mà trình tiêu thụ đã đăng ký sử dụng phân xuất tăng cường. Ví dụ: nếu một giờ tiêu thụ-phân đoạn có phí 0,015 USD thì trong luồng dữ liệu gồm 10 phân đoạn, trình tiêu thụ sử dụng phân xuất tăng cường này có thể đọc từ 10 phân đoạn, nên sẽ chịu mức phí giờ tiêu thụ-phân đoạn là 0,15 USD mỗi giờ (1 trình tiêu thụ x 10 phân đoạn x 0,015 USD trên giờ tiêu thụ-phân đoạn). Nếu có hai trình tiêu thụ được đăng ký đồng thời sử dụng phân xuất tăng cường, tổng mức phí giờ tiêu thụ-phân đoạn sẽ là 0,30 USD mỗi giờ (2 trình tiêu thụ x 10 phân đoạn x 0,015 USD).
So sánh với các dịch vụ AWS khác
Khi nào tôi nên sử dụng Luồng dữ liệu Kinesis và khi nào nên sử dụng Dịch vụ truyền được quản lý của Amazon dành cho Apache Kafka (Amazon MSK)?
Luồng dữ liệu Kinesis và Amazon MSK đều là những nền tảng truyền liên tục dữ liệu phổ biến giúp bạn xây dựng khối lượng công việc truyền liên tục của riêng mình để xử lý dữ liệu cho các nhu cầu chuyên biệt. Cả hai dịch vụ đều có quy mô linh hoạt, bảo mật và có độ sẵn sàng cao. Cả hai dịch vụ đều có thể được triển khai để chạy các trường hợp sử dụng truyền liên tục như phân tích bản ghi và web theo thời gian thực, cá nhân hóa trải nghiệm khách hàng, kiến trúc định hướng theo sự kiện, phân tích IoT và phát hiện gian lận theo thời gian thực. Khi lựa chọn giữa hai dịch vụ, bạn cần phải xem xét trường hợp sử dụng và yêu cầu cụ thể của mình. Sau đây là một số yếu tố cần xem xét:
Mức độ quen thuộc
- Nếu bạn chưa từng sử dụng các công nghệ truyền liên tục, hãy lựa chọn Luồng dữ liệu Kinesis.
- Nếu bạn có sẵn các ứng dụng đang chạy trên Apache Kafka, hãy sử dụng MSK. MSK có sẵn chương trình di chuyển Kafka (KMP) và hướng dẫn di chuyển để giúp mang lại trải nghiệm di chuyển dễ dàng.
Ưu tiên nguồn mở
- Nếu bạn ưu tiên sử dụng các công nghệ nguồn mở, chúng tôi khuyên bạn nên lựa chọn MSK. Cả MSK và MSK Connect đều lần lượt tương thích hoàn toàn với Apache Kafka và Kafka Connect nguồn mở.
Luồng dữ liệu Kinesis có điểm khác biệt gì so với Amazon SQS?
Luồng dữ liệu Kinesis cho phép xử lý truyền liên tục dữ liệu lớn trong thời gian thực. Dịch vụ này cung cấp tính năng sắp xếp thứ tự bản ghi cũng như khả năng đọc và/hoặc phát lại các bản ghi theo cùng thứ tự tới nhiều ứng dụng Amazon Kinesis. Thư viện máy khách Amazon Kinesis (KCL) sẽ phân phối tất cả các bản ghi dành cho một khóa phân vùng cụ thể tới cùng một bộ xử lý bản ghi, qua đó giúp bạn dễ dàng hơn trong việc xây dựng nhiều ứng dụng đọc từ cùng một luồng dữ liệu Kinesis (ví dụ: để thực hiện việc đếm, tổng hợp và lọc). Dịch vụ hàng đợi đơn giản của Amazon (Amazon SQS) cung cấp hàng đợi lưu trữ đáng tin cậy và có quy mô linh hoạt cao để lưu trữ tin nhắn khi chúng di chuyển giữa các máy tính. Amazon SQS cho phép bạn dễ dàng di chuyển dữ liệu giữa các thành phần ứng dụng phân tán và giúp bạn xây dựng ứng dụng trong đó các tin nhắn được xử lý độc lập (với ngữ nghĩa ack/fail ở cấp độ tin nhắn), chẳng hạn như các quy trình làm việc tự động.
Khi nào tôi nên sử dụng Luồng dữ liệu Kinesis và khi nào nên sử dụng Amazon SQS?
Chúng tôi khuyên bạn nên sử dụng Luồng dữ liệu Kinesis trong những trường hợp sử dụng có yêu cầu tương tự như sau:
- Định tuyến các bản ghi liên quan tới cùng một trình xử lý bản ghi (như trong truyền phát MapReduce). Ví dụ: việc kiểm đếm và tổng hợp sẽ đơn giản hơn khi định tuyến tất cả các bản ghi cho cùng một khóa nhất định đến cùng một trình xử lý bản ghi.
- Sắp xếp thứ tự bản ghi. Ví dụ: bạn muốn truyền dữ liệu nhật ký từ máy chủ lưu trữ ứng dụng đến máy chủ xử lý/lưu trữ mà vẫn giữ nguyên thứ tự của các báo cáo nhật ký.
- Khả năng cho phép nhiều ứng dụng tiêu thụ đồng thời cùng một luồng. Ví dụ: bạn có một ứng dụng cập nhật bảng thông tin trong thời gian thực và một ứng dụng khác lưu trữ dữ liệu vào Amazon Redshift. Bạn muốn cả hai ứng dụng tiêu thụ dữ liệu từ cùng một luồng đồng thời và độc lập.
- Khả năng tiêu thụ các bản ghi theo cùng thứ tự trong vài giờ sau đó. Ví dụ: bạn có một ứng dụng thanh toán và một ứng dụng kiểm toán chạy sau ứng dụng thanh toán vài giờ. Vì Kinesis Data Streams lưu trữ dữ liệu trong thời gian lên đến 365 ngày nên bạn có thể chạy ứng dụng kiểm toán sau ứng dụng thanh toán lên đến 365 ngày.
Bạn nên sử dụng Amazon SQS trong những trường hợp có yêu cầu tương tự như sau:
- Ngữ nghĩa gửi tin nhắn (chẳng hạn như ack/fail ở cấp độ tin nhắn) và hết thời gian chờ có khả năng xem được. Ví dụ: bạn có hàng đợi các mục công việc và muốn theo dõi quá trình hoàn tất thành công của từng mục một cách độc lập. Amazon SQS theo dõi ack/fail, nên ứng dụng không phải duy trì điểm kiểm tra/con trỏ cố định. Amazon SQS sẽ xóa các thông điệp đã được xác nhận và phân phối lại các thông điệp bị lỗi sau khi hết thời gian chờ có khả năng xem được đã cấu hình.
- Độ trễ tin nhắn riêng. Ví dụ: bạn có hàng đợi tác vụ và cần lập lịch các tác vụ có độ trễ riêng. Với Amazon SQS, bạn có thể cấu hình từng tin nhắn có độ trễ lên đến 15 phút.
- Tăng linh hoạt khả năng chạy đồng thời/thông lượng ở thời gian đọc. Ví dụ: bạn có một hàng đợi công việc và muốn thêm nhiều trình đọc đến khi hết tồn đọng. Với Kinesis Data Streams, bạn có thể mở rộng quy mô tới đủ số lượng phân đoạn (tuy nhiên, hãy lưu ý rằng bạn sẽ cần cung cấp đủ số phân đoạn từ trước).
- Tận dụng khả năng của Amazon SQS để thay đổi quy mô một cách minh bạch. Ví dụ: bạn lưu bộ đệm các yêu cầu và các thay đổi về tải do các đợt tăng đột biến tải không thường xuyên hoặc sự tăng trưởng tự nhiên trong hoạt động kinh doanh. Vì mỗi yêu cầu đã lưu bộ đệm có thể được xử lý độc lập nên Amazon SQS có thể điều chỉnh quy mô một cách minh bạch để xử lý tải mà không cần cung cấp hướng dẫn từ bạn.