Lake Formation Lab

Tạo Glue JDBC connection for RDS

  1. Truy cập AWS Glue console.
  2. Chọn Connections

Clean

  1. Chọn Create connection.
  2. Nhập tên là glue-rds-connection
  3. Chọn JDBC connection type
  4. Nhập miêu tả
  5. Chọn JDBC URL

Clean

  1. Nhập username và password của RDS
  2. Mở rộng Network options - optinoal
  3. Chọn Subnet private
  4. Chọn security groupsgdefault Clean
  5. Chọn Create Connection để hoàn thành glue-rds-connection setup

Clean

Thêm Administrator và start workflows sử dụng Blueprints

Truy cập AWS Lake Formation: Clean

  1. Nếu là lần đầu đăng nhập vào Lake Formation. Đầu tiên chúng ta cần thêm administrators.

  2. Mở Welcome to Lake Formation pop-up. Chọn Add myself checkbox và nhấn Get started Clean

  3. Click chọn Databases. Chọn ticketdata và nhấn Actions -> Grant. Clean

  4. Trao quyền super cho cả 2 Database permissions and Grantable permissions. Clean

  5. Chọn Edit database ticketdata

Clean

  1. Uncheck Use only IAM access control và nhấn Save Clean

  2. Chọn Blueprints và nhấn Use blueprint

Clean

  • Blueprint Type, Chọn Database snapshot

  • Import Source:

    • Database Connection Chọn glue-rds-connection
    • Source Data Path: sportstickets/dms_sample/mlb_data Clean
  • Import Target

    • Target Database: ticketdata
    • Target storage location: xxx-dmslabS3bucket-xxx
    • Thêm /lakeformation vào buckets url, Ví dụ: s3://mod-08b80667356c4f8a-dmslabs3bucketnh54wqg771lk/lakeformation
    • Data Format: Parquet

Clean

  • Các mục còn lại nhập như sau:

Clean

  1. Các options còn lại để mặc định. Nhấn Create
  2. Khi blueprint được tạo thành công. Nhấn Action → Start.. Clean
  3. Bạn sẽ thấy trạng thái thay đổi như sau: Running → Discovering → Importing → Completed Clean

Xem các thành phần bên dưới của một BLueprint

Lake Formation blueprin sẽ tạo Glue Workflow điều phối các công việc của Glue ETL (cả python shell và pyspark), Glue crawlers và triggers. Sẽ mất tầm 20-30 phút để thực thi lần đầu tiên. Chúng ta hãy cùng xem các thành phần mà nó tạo ra:

  1. Tại Lake Formation console, Chọn Blueprints

  2. Tại Workflow section, chọn tên Workflow. CLick vào Run Id. Clean

  3. Tại đây bạn có thể thấy Workflow Run details Clean

  4. Để xem các jobs được tạo. Nhấn AWS Glue và Chọn ETL Jobs. Clean

  5. Xem lịch sử và các thông số liên quan. Clean

Xem kết quả sử dụng Athena

  1. Chọn Database ticketdata tại Lake Formation console và nhấn view Tables.
  2. Chọn tables lakeformation__sportstickets_dms_sample_mlb_data, Action → View Data Clean
  3. Tại Athena console. chạy query: Clean
SELECT * FROM "ticketdata"."lakeformation__sportstickets_dms_sample_mlb_data" limit 10;
SELECT count(*) as recordcount FROM "ticketdata"."lakeformation__sportstickets_dms_sample_mlb_data";

Cấp quyền truy cập ở mức column

  1. Thêm IAM User Clean

  2. Tạo user với tên là: datalake_user Clean

  3. Gán cho User policy AthenaFullAccess

  4. Tạo user

  5. Chọn User datalake_user vừa tạo, Nhấn add inline policy:

Clean

Sử dụng đoạn json sau đây.

{
    "Version": "2012-10-17",
    "Statement": [
        {
        "Effect": "Allow",
        "Action": [
        "s3:Put*",
        "s3:Get*",
        "s3:List*"
        ],
        "Resource": [ "arn:aws:s3:::<your_dmslabs3bucket_unique_name>/*" ]
        }
    ]
}  
  1. Thêm tiếp policy sau và user
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "lakeformation:StartQueryPlanning",
                "lakeformation:GetQueryState",
                "lakeformation:GetWorkUnits",
                "lakeformation:GetWorkUnitResults"
            ],
            "Resource": "*"
        }
    ]
}
  1. Tại Lake Formation console, Permissions, chọn Data lake permissions
  2. chọn Grant
  3. Nhập các thông số sau vào popup:
  • IAM user and roles: datalake_user.
  • Chọn Named data catalog resources
  • Database, choose ticketdata
  • Table: lakeformation__sportstickets_dms_sample_mlb_data.
  • Table permissions, Chọn Select.
  • Data permissions, Chọn Column-based access
  • Columns, Chọn Include Columns và chọn mlb_name, mlb_team_long, mlb_team and mlb_pos
  • Click Grant

Xác minh quyền truy cập dữ liệu theo column sử dụng Athena

  1. Đăng nhập bằng user datalake_user

Clean

  1. Truy cập athena, chọn ticketdata database và chạy query sau:
SELECT * FROM "ticketdata"."lakeformation__sportstickets_dms_sample_mlb_data" limit 10;
  1. Kết quả chỉ hiển thị những column được gán quyền như bên trên: mlb_name, mlb_team_long, mlb_team and mlb_pos

Clean