Trong phần trước, bạn đã khám phá cách phân tích dữ liệu bằng cách sử dụng Amazon Athena. Trong phần này, chúng ta sẽ thấy cách thực hiện phân tích thời gian thực của dữ liệu đang truyền bằng cách sử dụng Amazon Kinesis Data Analytics. Điều này có thể được thực hiện theo 2 cách, sử dụng Ứng dụng SQL cũ hoặc sử dụng Sổ ghi Studio mới được khuyến nghị. Trong buổi thực hành này, chúng ta sẽ sử dụng Sổ ghi Studio và tạo Ứng dụng Phân tích Kinesis dựa trên SQL.
Trong bước này, chúng ta sẽ điều hướng đến Bảng điều khiển IAM và tạo một role dịch vụ Amazon Kinesis Data Analytics mới. Điều này cho phép dịch vụ Amazon Kinesis Data Analytics truy cập vào Kinesis Data Streams cũng như AWS Glue Catalog table.
LƯU Ý: Chúng tôi sử dụng quyền truy cập đầy đủ chỉ cho mục đích thực hành. Hãy cấp quyền truy cập cần thiết nếu bạn sử dụng Role này trong môi trường sản xuất.
Kinesis Data Generator là một ứng dụng giúp việc gửi dữ liệu kiểm thử tới luồng Kinesis của Amazon hoặc luồng chuyển phân phối Firehose của Amazon Kinesis trở nên đơn giản. Chúng ta sẽ tạo luồng dữ liệu Kinesis để tiếp nhận dữ liệu từ Kinesis Data Generator. Sổ ghi chú Ứng dụng Kinesis của chúng ta sẽ đọc dữ liệu đang truyền từ luồng dữ liệu Kinesis này.
Kinesis Application Notebook của chúng tôi sẽ lấy thông tin về nguồn dữ liệu từ AWS Glue. Khi bạn tạo Studio notebook, bạn chỉ định AWS Glue database chứa thông tin kết nối của bạn. Khi truy cập vào nguồn dữ liệu của bạn, bạn chỉ định các bảng AWS Glue được chứa trong cơ sở dữ liệu.
Chọn vào Tables in analyticsworkshopdb
Chọn vào menu thả xuống Add tables và sau đó chọn Add table manually
[
{
"Name": "uuid",
"Type": "string",
"Comment": ""
},
{
"Name": "device_ts",
"Type": "timestamp",
"Comment": ""
},
{
"Name": "device_id",
"Type": "int",
"Comment": ""
},
{
"Name": "device_temp",
"Type": "int",
"Comment": ""
},
{
"Name": "track_id",
"Type": "int",
"Comment": ""
},
{
"Name": "activity_type",
"Type": "string",
"Comment": ""
}
]
Chọn vào Next
Kiểm tra rằng tất cả thông tin đều chính xác, sau đó Chọn vào Create
Chọn vào bảng mới tạo raw_stream
Chọn vào Actions và Chọn vào Edit table
Bây giờ chúng ta hãy tạo Kinesis Analytics Streaming Application Studio Notebook của chúng ta trong Kinesis Analytics Studio. Kinesis Analytics Streaming Application Studio Notebook này có thể xử lý dữ liệu luồng từ Kinesis Data Stream và chúng ta có thể viết các truy vấn phân tích SQL để lấy thông tin thời gian thực như số lượng hoạt động hiện tại hoặc nhiệt độ thiết bị.
INFO: Ghi nhật ký hữu ích để hiểu lỗi khi ứng dụng của bạn gặp sự cố. Để thực hiện điều này, cần thêm quyền CLoudwatchFullAccess và CloudwatchLogFullAccess cho role dịch vụ. Chúng ta sẽ bỏ qua phần này vì không cần thiết trong bài thực hành này.
Bỏ qua tất cả mọi thứ và di chuyển xuống dưới cùng
Bây giờ chúng ta đã tạo Notebook, chúng ta có thể chạy nó và thử thực thi một số truy vấn SQL.
Xem danh sách các Notebook trong tab Studio và Chọn vào Notebook mới được tạo AnalyticsWorkshop-KDANotebook của chúng ta.
Chọn vào Run
Chờ cho đến khi Status chuyển sang Running mode. (Việc này sẽ mất khoảng 5-7 phút)
Chọn vào Create new note và đặt tên cho ghi chú là AnalyticsWorkshop-ZeppelinNote.
Dán câu truy vấn SQL này.
%flink.ssql(type=update)
SELECT * FROM raw_stream;
%flink.ssql(type=update)
SELECT activity_type, count(*) as activity_cnt FROM raw_stream group by activity_type;
Để hiển thị dữ liệu từ các truy vấn chạy trong Analytics Streaming notebook, chúng ta phải gửi dữ liệu gốc từ Kinesis Data Generator của chúng ta.
{
"uuid": "{{random.uuid}}",
"device_ts": "{{date.utc("YYYY-MM-DD HH:mm:ss.SSS")}}",
"device_id": {{random.number(50)}},
"device_temp": {{random.weightedArrayElement(
{"weights":[0.30, 0.30, 0.20, 0.20],"data":[32, 34, 28, 40]}
)}},
"track_id": {{random.number(30)}},
"activity_type": {{random.weightedArrayElement(
{
"weights": [0.1, 0.2, 0.2, 0.3, 0.2],
"data": ["\"Running\"", "\"Working\"", "\"Walking\"", "\"Traveling\"", "\"Sitting\""]
}
)}}
}
Trong module này, bạn đã tạo một Kinesis Data Stream để nhận dữ liệu luồng từ Kinesis Data Generator, một bảng Glue lưu trữ thông tin về lược đồ và dữ liệu của Kinesis Data Stream, và một ứng dụng Kinesis Analytics Studio Notebook đọc và phân tích dữ liệu luồng.
Next, chúng ta sẽ tìm hiểu cách xây dựng các biểu đồ/ bảng điều khiển bằng cách sử dụng Amazon Quicksight.