Delta Lake 및 Lake Formation - 아마존 EMR

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Delta Lake 및 Lake Formation

Amazon EMR 릴리스 6.15.0 이상에는 AWS Lake Formation Spark로 데이터를 읽고 쓸 때 Delta Lake를 기반으로 세분화된 액세스 제어를 지원하는 기능이 포함되어 있습니다. SQL EMRAmazon은 Delta Lake를 통해 표, 행, 열 및 셀 수준의 액세스 제어를 지원합니다. 이 기능을 사용하면 copy-on-write 테이블에서 스냅샷 쿼리를 실행하여 지정된 커밋 또는 압축 인스턴트에서 테이블의 최신 스냅샷을 쿼리할 수 있습니다.

델타 레이크와 Lake Formation을 함께 사용하려면 다음 명령을 실행합니다.

spark-sql \ --conf spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension,com.amazonaws.emr.recordserver.connector.spark.sql.RecordServerSQLExtension \ --conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog \ --conf spark.sql.catalog.spark_catalog.lf.managed=true

Lake Formation이 레코드 서버를 사용하여 Spark 카탈로그를 관리하도록 spark.sql.catalog.<managed_catalog_name>.lf.managed 하려면 true로 설정하십시오.

다음 지원 매트릭스에는 Lake Formation을 포함하는 Delta Lake의 몇 가지 핵심 기능이 나열되어 있습니다.

쓸 때 복사 읽을 때 병합

스냅샷 쿼리 - Spark SQL

읽기 최적화 쿼리 - Spark SQL

증분 쿼리

지원되지 않음

지원되지 않음

시간 이동 쿼리

지원되지 않음

지원되지 않음

메타데이터 테이블

DMLINSERT명령

DDL명령

Spark 데이터 소스 쿼리

Spark 데이터 소스 쓰기

AWS Glue 데이터 카탈로그에서 델타 레이크 테이블 생성

Lake EMR Formation을 지원하는 Amazon은 DDL 명령 및 델타 테이블 생성을 지원하지 않습니다. 다음 단계에 따라 AWS Glue 데이터 카탈로그에 테이블을 생성하십시오.

  1. 다음 예제를 사용하여 델타 테이블을 생성합니다. S3 위치가 존재하는지 확인하세요.

    spark-sql \ --conf "spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension" \ --conf "spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog" > CREATE DATABASE if not exists <DATABASE_NAME> LOCATION 's3://<S3_LOCATION>/transactionaldata/native-delta/<DATABASE_NAME>/'; > CREATE TABLE <TABLE_NAME> (x INT, y STRING, z STRING) USING delta; > INSERT INTO <TABLE_NAME> VALUES (1, 'a1', 'b1');
  2. 테이블의 세부 정보를 보려면 로 이동하십시오 https://console.aws.amazon.com/glue/.

  3. 왼쪽 탐색 영역에서 데이터 카탈로그를 펼치고 테이블을 선택한 다음, 생성한 테이블을 선택합니다. 스키마에서 Spark로 만든 델타 테이블이 모든 열을 AWS InGlue의 array<string> 데이터 유형으로 저장하는 것을 볼 수 있습니다.

  4. Lake Formation에서 열 및 셀 수준 필터를 정의하려면 스키마에서 col 열을 제거한 다음 테이블 스키마에 있는 열을 추가합니다. 이 예제에서는, 및 열을 x 추가합니다. y z