Delta Lake 메타데이터 동기화 - Amazon Athena

Delta Lake 메타데이터 동기화

Athena를 사용하여 Delta Lake 테이블을 생성하는 경우 Athena에서는 스키마, 파티션 열 및 테이블 속성을 비롯한 테이블 메타데이터를 AWS Glue에 동기화합니다. 시간이 경과함에 따라 이 메타데이터와 트랜잭션 로그 내 기본 테이블 메타데이터의 동기화가 손실될 수 있습니다. 테이블을 최신 상태로 유지하기 위해 다음 옵션 중 하나를 선택할 수 있습니다.

다음 기능을 사용하려면 AWS Glue 스키마가 항상 트랜잭션 로그와 동일한 스키마를 보유해야 합니다.

  • Lake Formation

  • 보기

  • 행 및 열 필터

워크플로에 이 기능이 필요하지 않고 이러한 호환성을 유지 관리하고 싶지 않은 경우 Athena에서 CREATE TABLE DDL을 사용한 후 AWS Glue에서 Amazon S3 경로를 SerDe 파라미터로 추가하면 됩니다.

다음 절차에 따라 Athena 및 AWS Glue 콘솔을 사용하여 Delta Lake 테이블을 생성할 수 있습니다.

Athena 및 AWS Glue 콘솔을 사용하여 Delta Lake 테이블을 생성하려면
  1. https://console.aws.amazon.com/athena/에서 Athena 콘솔을 엽니다.

  2. Athena 쿼리 편집기에서 다음 DDL을 사용하여 Delta Lake 테이블을 생성합니다. 이 방법을 사용하는 경우 TBLPROPERTIES의 값이 'table_type' = 'delta'가 아닌 'spark.sql.sources.provider' = 'delta'여야 합니다.

    Apache Spark(Athena for Apache Spark) 또는 대부분의 다른 엔진을 사용하여 테이블을 생성하는 경우 이 동일한 스키마(열 이름이 col이고 유형이 array<string>인 단일 열)가 삽입됩니다.

    CREATE EXTERNAL TABLE [db_name.]table_name(col array<string>) LOCATION 's3://amzn-s3-demo-bucket/your-folder/' TBLPROPERTIES ('spark.sql.sources.provider' = 'delta')
  3. https://console.aws.amazon.com/glue/에서 AWS Glue 콘솔을 엽니다.

  4. 탐색 창의 데이터 카탈로그에서 테이블을 선택합니다.

  5. 테이블 목록에서 테이블에 대한 링크를 선택합니다.

  6. 테이블 페이지에서 작업, 테이블 편집을 선택합니다.

  7. Serde 파라미터 섹션에서 값이 s3://amzn-s3-demo-bucket/your-folder/path 키를 추가합니다.

  8. Save(저장)를 선택합니다.

AWS CLI를 사용하여 Delta Lake 테이블을 생성하려면 다음과 같은 명령을 입력합니다.

aws glue create-table --database-name dbname \ --table-input '{"Name" : "tablename", "StorageDescriptor":{ "Columns" : [ { "Name": "col", "Type": "array<string>" } ], "Location" : "s3://amzn-s3-demo-bucket/<prefix>/", "SerdeInfo" : { "Parameters" : { "serialization.format" : "1", "path" : "s3://amzn-s3-demo-bucket/<prefix>/" } } }, "PartitionKeys": [], "TableType": "EXTERNAL_TABLE", "Parameters": { "EXTERNAL": "TRUE", "spark.sql.sources.provider": "delta" } }'