0
0
Lập trình
Sơn Tùng Lê
Sơn Tùng Lê103931498422911686980

AWS Glue: Kiến trúc Serverless cho Data Lake của bạn

Đăng vào 5 tháng trước

• 5 phút đọc

Giới thiệu về AWS Glue

Trong thế giới dữ liệu lớn, thông tin thô giống như gỗ và đá. Nó có tiềm năng, nhưng không thể sử dụng trong trạng thái tự nhiên. Trước khi bạn có thể xây dựng bất cứ thứ gì có giá trị như bảng điều khiển, mô hình máy học, báo cáo, bạn phải cắt, định hình và chuẩn bị nó. Quá trình chuẩn bị này được gọi là ETL (Extract, Transform, Load), và trong nhiều năm, nó đã là một gánh nặng phức tạp và tốn tài nguyên cho các kỹ sư dữ liệu.

AWS Glue là câu trả lời của Amazon cho vấn đề này: một dịch vụ ETL hoàn toàn không cần máy chủ giúp đơn giản hóa công việc t tedious của việc khám phá, chuẩn bị và di chuyển dữ liệu giữa các nguồn. Đây là nhà máy tự động hóa biến dữ liệu thô thành các vật liệu sẵn sàng xây dựng, tất cả mà bạn không cần phải quản lý bất kỳ máy móc nào.

AWS Glue là gì? Bộ ba dịch vụ

AWS Glue không phải là một công cụ đơn lẻ mà là một bộ các dịch vụ tích hợp được thiết kế để xử lý toàn bộ quy trình chuẩn bị dữ liệu:

  1. AWS Glue Data Catalog: Kho lưu trữ metadata trung tâm. Đây là một metastore tồn tại vĩnh viễn chứa thông tin cấu trúc (định nghĩa bảng, sơ đồ) về dữ liệu của bạn. Nó giống như một bộ não biết dữ liệu của bạn trông như thế nào và ở đâu, giúp nó có thể truy vấn bởi các dịch vụ như Amazon Athena và Redshift Spectrum.

  2. AWS Glue Crawlers: Những bot khám phá tự động. Bạn chỉ cần chỉ định một crawler vào một nguồn dữ liệu (như Amazon S3), và nó tự động suy diễn sơ đồ, xác định định dạng dữ liệu (JSON, CSV, Parquet) và điền thông tin vào Data Catalog với các định nghĩa bảng. Nó giống như có một thủ thư quét sách mới và thêm chúng vào danh sách mà không cần bạn làm gì.

  3. AWS Glue ETL Jobs: Những cỗ máy làm việc. Đây là nơi logic biến đổi thực sự chạy. Bạn có thể tạo các jobs theo ba cách:

    • Trình chỉnh sửa hình ảnh: Giao diện kéo và thả với mã thấp cho các biến đổi đơn giản.
    • Spark Script (Python/Scala): Các jobs dựa trên mã tận dụng toàn bộ sức mạnh của Apache Spark để xử lý dữ liệu phức tạp. Đây là phương pháp phổ biến và mạnh mẽ nhất.
    • Glue Studio: Một giao diện kết hợp mới giúp việc tạo và theo dõi các jobs Spark dễ dàng hơn rất nhiều.

Điều kỳ diệu là tất cả điều này chạy trên một động cơ Apache Spark không cần máy chủ. Bạn định nghĩa công việc, và AWS Glue sẽ xử lý việc cung cấp, quản lý và mở rộng các cụm Spark ở phía sau. Bạn chỉ trả tiền cho các tài nguyên mà job của bạn tiêu thụ.

Cách thức hoạt động: Vũ điệu ETL không cần máy chủ

Hãy cùng đi qua một kịch bản phổ biến: chuẩn bị dữ liệu clickstream JSON thô trong S3 để phân tích trong kho dữ liệu.

  1. Khám phá (Crawl): Một Glue Crawler quét bucket S3 của bạn chứa các nhật ký JSON thô. Nó xác định cấu trúc (ví dụ: user_id, page_url, timestamp) và tạo một bảng có tên raw_clickstream trong Glue Data Catalog.

  2. Tạo (Author): Bạn viết một job Glue ETL (trong Python hoặc trình chỉnh sửa hình ảnh). Kịch bản của job:

    • Đọc từ bảng raw_clickstream trong Data Catalog.
    • Biến đổi dữ liệu: làm sạch các bản ghi không hợp lệ, chuyển đổi dấu thời gian sang định dạng chuẩn, lọc ra lưu lượng bot, và có thể kết hợp nó với một bảng thông tin người dùng.
    • Ghi dữ liệu đã biến đổi trở lại S3 trong định dạng cột tối ưu như Apache Parquet, được phân vùng theo ngày để truy vấn hiệu quả.
  3. Chạy (Run): Bạn chạy job. AWS Glue:

    • Cung cấp một cụm Spark ở phía sau.
    • Thực thi logic biến đổi của bạn.
    • Tự động mở rộng cụm lên hoặc xuống dựa trên khối lượng dữ liệu.
    • Hủy bỏ cụm ngay khi job hoàn tất.
  4. Khám phá lại (Crawl Again): Một crawler thứ hai chạy trên vị trí đầu ra mới trong S3 và tạo một bảng mới trong Data Catalog, cleaned_clickstream. Bảng này hiện đã được tối ưu và sẵn sàng để các nhà phân tích truy vấn với Amazon Athena.

Tính năng nổi bật: Glue DataBrew

Đối với các nhà phân tích dữ liệu có thể không thành thạo Spark, AWS cung cấp Glue DataBrew. Đây là một công cụ chuẩn bị dữ liệu hình ảnh cho phép người dùng làm sạch và chuẩn hóa dữ liệu với hơn 250 biến đổi đã được xây dựng trước mà không cần mã. Nó giống như có một trình biên tập bảng tính mạnh mẽ hoạt động trên các tập dữ liệu lớn được lưu trữ trong S3.

Tại sao chọn AWS Glue? Lợi ích

  • Không cần máy chủ: Không cần hạ tầng để cung cấp hoặc quản lý. Đây là lợi ích lớn nhất, loại bỏ gánh nặng hoạt động của việc chạy các cụm Spark.
  • Tích hợp: Tích hợp bản địa với toàn bộ hệ sinh thái AWS (S3, Redshift, RDS, Athena, v.v.). Glue Data Catalog là cái kết nối (pun intended) các dịch vụ phân tích của AWS lại với nhau.
  • Trả theo mức sử dụng: Bạn chỉ trả tiền cho thời gian mà các job ETL của bạn đang chạy. Không có chi phí khi các job ngừng hoạt động.
  • Năng suất: Các crawler tự động hóa phần nhàm chán nhất của kỹ thuật dữ liệu (khám phá sơ đồ), giải phóng thời gian cho công việc có giá trị cao hơn.

Kết luận

AWS Glue giúp công việc xử lý dữ liệu lớn trở nên dễ dàng hơn. Nó giảm bớt rào cản để thực hiện ETL phức tạp bằng cách trừu tượng hóa công việc nặng nề của quản lý hạ tầng.

Nó là dịch vụ nền tảng cho kiến trúc data lake hiện đại trên AWS, hiệu quả biến dữ liệu thô, không cấu trúc thành tài sản có tổ chức và sẵn sàng cho phân tích. Đối với bất kỳ tổ chức nào muốn thực sự trở nên dựa vào dữ liệu, AWS Glue không chỉ là sự thuận tiện; đó là một nhu cầu thiết yếu.

Tiếp theo: Bây giờ chúng ta đã có một công cụ để chuẩn bị dữ liệu, làm thế nào để chúng ta truy vấn nó trực tiếp từ nơi nó ngồi? Bài viết tiếp theo trong chuỗi Dữ liệu & Phân tích của chúng tôi sẽ khám phá Amazon Athena, dịch vụ truy vấn tương tác biến hồ dữ liệu S3 của bạn thành một cơ sở dữ liệu.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào