Delta Lake 메타데이터 동기화
Athena를 사용하여 Delta Lake 테이블을 생성하는 경우 Athena에서는 스키마, 파티션 열 및 테이블 속성을 비롯한 테이블 메타데이터를 AWS Glue에 동기화합니다. 시간이 경과함에 따라 이 메타데이터와 트랜잭션 로그 내 기본 테이블 메타데이터의 동기화가 손실될 수 있습니다. 테이블을 최신 상태로 유지하기 위해 다음 옵션 중 하나를 선택할 수 있습니다.
-
Delta Lake 테이블에 대해 AWS Glue 크롤러를 사용합니다. 자세한 내용은 AWS 빅 데이터 블로그의 Introducing native Delta Lake table support with AWS Glue crawlers
및 AWS Glue 개발자 안내서의 Scheduling an AWS Glue crawler를 참조하세요. -
Athena에서 테이블을 삭제하고 다시 생성합니다.
-
SDK, CLI 또는 AWS Glue 콘솔을 사용하여 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 테이블을 생성하려면
https://console.aws.amazon.com/athena/
에서 Athena 콘솔을 엽니다. -
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') https://console.aws.amazon.com/glue/
에서 AWS Glue 콘솔을 엽니다. -
탐색 창의 데이터 카탈로그에서 테이블을 선택합니다.
-
테이블 목록에서 테이블에 대한 링크를 선택합니다.
-
테이블 페이지에서 작업, 테이블 편집을 선택합니다.
-
Serde 파라미터 섹션에서 값이
s3://amzn-s3-demo-bucket/
인your-folder
/path
키를 추가합니다. -
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" } }'