+1

[AWS] Export data từ RDS sang S3 sử dụng Glue

AWS Glue

AWS Glue là dịch vụ tích hợp dữ liệu server-less, giúp người dùng dễ dàng tìm kiếm, chuẩn bị và tổng hợp dữ liệu cho hoạt động phân tích, máy học và phát triển ứng dụng. AWS Glue cung cấp tất cả các chức năng cần thiết cho quá trình tích hợp dữ liệu để bạn có thể bắt đầu phân tích và đưa dữ liệu chỉ trong ít phút. Ở đây chúng ra có một database sử dụng dịch vụ RDS của AWS (hoặc Aurora), và sử dụng AWS Glue để đọc, tổng hợp dữ liệu, từ đó có thể gửi các dữ liệu này đến các nơi lưu trữ khác như S3, Redshift,...

1 Xây dựng môi trường chứa RDS database

1.1 Tạo VPC, subnet, internet gateway và route table

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

1.2 Tạo Security group để gắn vào database RDS

image.png

Sau khi tạo sercurity group, thêm một self reference để glue có thể truy cập RDS image.png

2 Tạo database RDS

image.png

  • Chọn VPC và Security Group đã tạo ở mục 1, set public access để phục vụ việc fake data

image.png

  • Tạo dữ liệu mẫu

image.png

  • Tạo một VPC Endpoint với service type là S3 gateway image.png

3 Tạo các service ở AWS Glue

3.1 Tạo Glue database

  • Vào Glue > Databases > Create. Đây sẽ là nơi chứa dữ liệu được craw từ RDS trước khi export sang các service khác như S3, Redshift

image.png

3.2 Tạo Glue connection

  • Tạo connection đến database RDS để Glue có thể truy cập vào và đọc dữ liệu

image.png

  • Data store là RDS instance đã tạo trước đó

image.png

image.png

3.3 Tạo Glue table để lưu dữ liệu bằng Glue crawler

  • Vào Glue > Databases > Tables > Add tables using a arawler

image.png

image.png

image.png

  • Chọn connection là connection đã tạo ở 3.2, include path là <Tên database trong RDS>/< Tên table muốn lấy dữ liệu>

image.png

  • Tạo một IAM role với policy là AmazonS3FullAccess và AWSGlueServiceRole

image.png

  • Đặt lịch chạy cho crawler, có thể đặt Run on demand (khi nào bấm nút thì chạy), custom (cron syntax), hằng ngày, hằng tuần, hằng tháng ... image.png

  • Chọn Glue database

image.png

image.png

  • Nhấn finish và bạn sẽ được chuyển hướng đến trang list crawler, tại đây, nhấn nút Run crawler để chạy crawler

image.png

  • Thông báo chạy thành công

image.png

  • Vào Glue > Databases > Tables sẽ thấy một table đã được tạo với tên là <Tên database RDS> _ <Tên bảng được crawl ở RDS>

image.png

3.4 Tạo S3 Bucket để lưu trữ file export

image.png

3.5 Tạo Glue Job để export dữ liệu từ Glue Database lên S3

  • Vào Glue > Jobs > Add

image.png

  • Chọn data source là Glue table đã tạo bằng crawler trước đó

image.png

image.png

image.png

image.png

  • Chọn các cột cần export

image.png

  • Một script sẽ được sinh ra, nhấn nút Run job để chạy job image.png

  • Trở về màn hình list job để kiểm tra, khi Job chạy thành công thì History sẽ có một record với Status là succeeded image.png

  • Sau khi chạy thành công, kiểm tra trên S3 Bucket sẽ có file dữ liệu image.png

Có thể đặt lịch để chạy Job export bằng Glue Trigger https://docs.aws.amazon.com/glue/latest/dg/about-triggers.html

Nguồn:


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí