Glue

AWS Glue

  • Dịch vụ ETL (Extract, Transform, Load) được quản lý.
  • Dùng để chuẩn bị và chuyển đổi dữ liệu phục vụ phân tích.
  • Dịch vụ hoàn toàn serverless.
Giải thích sơ đồ:
  • Nguồn dữ liệu đầu vào:
    • S3 Bucket hoặc Amazon RDS
  • Glue ETL:
    • Extract: lấy dữ liệu từ nguồn
    • Transform: xử lý, làm sạch, chuyển đổi cấu trúc dữ liệu
    • Load: ghi dữ liệu đã xử lý vào kho lưu trữ đích
  • Đích đến:
    • Redshift Data Warehouse: nơi lưu trữ dữ liệu phân tích

Chuyển đổi dữ liệu sang định dạng Parquet

  • Input S3 Bucket
    • File CSV được import vào bucket thông qua thao tác S3 Put.
  • Lambda Function
    • Khi có event PUT vào bucket (tức có file mới), Lambda function sẽ được kích hoạt.
    • Lambda này trigger job ETL của AWS Glue.
  • Glue ETL Job
    • Job ETL đọc file CSV từ input bucket.
    • Chuyển đổi dữ liệu sang định dạng Parquet.
    • Ghi dữ liệu đã transform vào Output S3 Bucket.
  • Amazon Athena
    • Từ output bucket, Athena có thể đọc dữ liệu Parquet để thực hiện truy vấn phân tích dữ liệu (analyze).

Glue Data Catalog – Danh mục tập dữ liệu

Luồng hoạt động:
  • Nguồn dữ liệu:
    • Amazon S3
    • Amazon RDS
    • Amazon DynamoDB
    • ...
  • AWS Glue Data Crawler:
    • Tự động quét (crawl) dữ liệu từ các nguồn trên.
    • Sinh metadata (thông tin schema, định nghĩa bảng, loại dữ liệu, etc.).
    • Ghi metadata vào Glue Data Catalog.
  • AWS Glue Data Catalog:
    • Lưu trữ metadata dưới dạng các database và tables.
    • Dùng như 1 centralized metadata store cho toàn bộ hệ thống analytics.
  • Glue Jobs (ETL):
    • ETL job đọc metadata từ Glue Catalog để transform và xử lý dữ liệu.
  • Consumer sử dụng metadata từ Catalog:
    • Amazon Athena: dùng để query trực tiếp dữ liệu trên S3 thông qua schema đã định nghĩa.
    • Amazon Redshift Spectrum: truy vấn dữ liệu ngoài Redshift thông qua Glue Catalog.
    • Amazon EMR: dùng metadata để process với Spark/Hive.

Glue – Những điều cần biết ở mức độ khái quát

  • Glue Job Bookmarks: ngăn việc xử lý lại dữ liệu cũ
  • Glue Elastic Views:
    • Kết hợp và sao chép dữ liệu giữa nhiều kho dữ liệu khác nhau bằng cách sử dụng SQL
    • Không cần viết mã tùy chỉnh, Glue sẽ theo dõi sự thay đổi trong dữ liệu nguồn, hoạt động theo mô hình serverless
    • Tận dụng một “bảng ảo” (virtual table) – tức là materialized view
  • Glue DataBrew: làm sạch và chuẩn hóa dữ liệu bằng cách sử dụng các phép biến đổi dựng sẵn (pre-built transformation)
  • Glue Studio: giao diện GUI mới để tạo, chạy và giám sát các job ETL trong Glue
  • Glue Streaming ETL (xây dựng trên Apache Spark Structured Streaming): tương thích với Kinesis Data Streaming, Kafka, MSK (Managed Kafka)
Bạn thấy bài này thế nào?