Bài này chúng ta và cafedev sẽ tìm hiểu về API Kinesis là gì? trong AWS, trước khi chúng ta bắt đầu sử dụng AWS một cách dễ dàng hơn.

Hiểu về Kinesis

Trước khi biết về Kinesis, bạn nên biết về dữ liệu phát trực tuyến.

1. Truyền dữ liệu là gì?

Dữ liệu truyền trực tuyến là dữ liệu được tạo liên tục từ hàng nghìn nguồn dữ liệu và các nguồn dữ liệu này có thể gửi các bản ghi dữ liệu đồng thời với kích thước nhỏ.

1.1 Sau đây là các ví dụ về dữ liệu truyền trực tuyến:

  • Mua hàng từ các cửa hàng trực tuyến(Purchases from online stores)
    Mọi người mua hàng trên amazon.com và tạo dữ liệu phát trực tuyến và dữ liệu truyền trực tuyến có thể là giao dịch, sản phẩm, v.v.
  • Giá(Stock prices)
    cổ phiếu Giá cổ phiếu cũng là một ví dụ về truyền dữ liệu.
  • Dữ liệu trò chơi(Game data)
    Giả sử người dùng đang chơi trò chơi chim nổi giận và ứng dụng đang tạo dữ liệu truyền trực tuyến trở lại máy chủ trung tâm. Dữ liệu phát trực tuyến này có thể là “người dùng đang làm gì”, “điểm số là bao nhiêu”.
  • Dữ liệu mạng xã hội Dữ liệu mạng(Social network data)
    xã hội cũng là một ví dụ khác về dữ liệu truyền trực tuyến. Giả sử bạn truy cập trên Facebook, cập nhật trạng thái của mình và đăng một bài đăng trên tường của bạn bè. Tất cả những dữ liệu này sau đó sẽ được truyền trực tuyến.
  • Dữ liệu không gian địa lý(Geospatial data)
    Khi bạn đang sử dụng uber và thiết bị của bạn được kết nối với internet. Ứng dụng Uber liên tục thông báo rằng tài xế uber đang ở đâu, bạn đang ở đâu và nó đang thẩm vấn bản đồ để cung cấp cho bạn tuyến đường tốt nhất có thể đến điểm đến của bạn. Đây cũng là một ví dụ điển hình về truyền dữ liệu.
  • Dữ liệu cảm biến iOT(iOT Sensor Data)
    Nó cảm nhận nhiệt độ giám sát trên toàn thế giới.

2. Kinesis là gì?

Kinesis là một nền tảng trên AWS gửi dữ liệu phát trực tuyến của bạn. Nó giúp bạn dễ dàng phân tích dữ liệu phát trực tuyến tải và cũng cung cấp khả năng để bạn xây dựng các ứng dụng tùy chỉnh dựa trên nhu cầu kinh doanh của mình.

3. Dịch vụ cốt lõi của Kinesis

  • Kinesis Streams
  • Kinesis Firehose
  • Kinesis Analytics

3.1 Kinesis Streams

  • Các luồng Kinesis bao gồm các mảnh.
  • Shards cung cấp 5 giao dịch mỗi giây để đọc, lên đến tổng tốc độ đọc dữ liệu tối đa là 2MB mỗi giây và lên đến 1.000 bản ghi mỗi giây để ghi lên đến tổng tốc độ ghi dữ liệu tối đa là 1MB mỗi giây.
  • Dung lượng dữ liệu của luồng của bạn là một hàm của số lượng phân đoạn mà bạn chỉ định cho luồng dữ liệu. Tổng dung lượng của luồng Kinesis là tổng dung lượng của tất cả các phân đoạn.

Kiến trúc của Kinesis Stream

Giả sử chúng ta có EC2, điện thoại di động, máy tính xách tay, IOT đang tạo ra dữ liệu. Họ được gọi là nhà sản xuất khi họ tạo ra dữ liệu. Dữ liệu được chuyển đến các luồng Kinesis và được lưu trữ trong phân đoạn. Theo mặc định, dữ liệu được lưu trữ trong các phân đoạn trong 24 giờ. Bạn có thể tăng thời gian lưu giữ lên 7 ngày. Khi dữ liệu được lưu trữ trong các phân đoạn, thì bạn có các cá thể EC2 được gọi là người tiêu dùng. Họ lấy dữ liệu từ các mảnh và biến nó thành dữ liệu hữu ích. Khi người tiêu dùng đã thực hiện tính toán của nó, thì dữ liệu hữu ích sẽ được chuyển đến một trong các dịch vụ AWS, tức là DynamoDB, S3, EMR, Redshift.

3.2 Kinesis Firehouse

  • Kinesis Firehose là một dịch vụ được sử dụng để cung cấp dữ liệu trực tuyến đến các điểm đến như Amazon S3, Amazon Redshift, Amazon Elasticsearch.
  • Với Kinesis Firehouse, bạn không phải quản lý tài nguyên.

Kiến trúc của Kinesis Firehose

Giả sử bạn có EC2, điện thoại di động, máy tính xách tay, IOT đang tạo ra dữ liệu. Họ còn được gọi là nhà sản xuất. Các nhà sản xuất gửi dữ liệu đến Kinesis Firehose. Kinesis Firehose không phải quản lý các tài nguyên như phân đoạn, bạn không phải lo lắng về các luồng, bạn không phải lo lắng về việc chỉnh sửa thủ công các phân đoạn để theo kịp dữ liệu, v.v. Nó hoàn toàn tự động. Bạn không phải lo lắng ngay cả về người tiêu dùng. Dữ liệu có thể được phân tích bằng cách sử dụng một hàm Lambda. Khi dữ liệu đã được phân tích, dữ liệu sẽ được gửi trực tiếp đến S3. Việc phân tích dữ liệu là tùy chọn. Một điều quan trọng về Kinesis Firehouse là không có cửa sổ lưu giữ tự động, nhưng luồng Kinesis có cửa sổ lưu giữ tự động với thời gian mặc định là 24 giờ và có thể kéo dài lên đến 7 ngày. Kinesis Firehose không hoạt động như thế này.Về cơ bản, nó phân tích hoặc gửi dữ liệu trực tiếp đến S3 hoặc vị trí khác.

Vị trí còn lại có thể là Dịch chuyển đỏ. Đầu tiên, bạn phải ghi vào S3 và sau đó sao chép nó vào Redshift.

Nếu vị trí là cụm tìm kiếm Elastic, thì dữ liệu được gửi trực tiếp đến cụm tìm kiếm Elastic.

3.4 Kinesis Analytics

Kinesis Analytics là một dịch vụ của Kinesis, trong đó dữ liệu truyền trực tuyến được xử lý và phân tích bằng cách sử dụng SQL chuẩn.

Kiến trúc của Kinesis Analytics

Chúng ta đã có được kinesis firehose và kinesis stream. Kinesis Analytics cho phép bạn chạy các Truy vấn SQL của dữ liệu tồn tại trong kinesis firehose. Bạn có thể sử dụng Truy vấn SQL để lưu trữ dữ liệu trong cụm S3, Redshift hoặc Elasticsearch. Về cơ bản, dữ liệu được phân tích bên trong kinesis bằng ngôn ngữ truy vấn kiểu SQL.

4. Sự khác biệt b / w Kinesis Streams & Kinesis Firehose

  • Luồng Kinesis được quản lý thủ công trong khi Kinesis Firehose được quản lý hoàn toàn tự động.
  • Luồng Kinesis gửi dữ liệu đến nhiều dịch vụ trong khi Kinesis Firehose chỉ gửi dữ liệu đến S3 hoặc Redshift.
  • Luồng Kinesis bao gồm một cửa sổ lưu giữ tự động có thời gian mặc định là 24 giờ và có thể được kéo dài đến 7 ngày trong khi Kinesis Firehose không có cửa sổ lưu giữ tự động.
  • Các luồng Kinesis gửi dữ liệu đến người tiêu dùng để phân tích và xử lý trong khi kinesis firehose không phải lo lắng về người tiêu dùng vì kinesis firehose tự phân tích dữ liệu bằng cách sử dụng hàm lambda.

Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.

Tài liệu từ cafedev:

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!