

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

# Lake Formation의 오픈 테이블 스토리지 형식에 대한 권한 설정
<a name="otf-tutorial"></a>

AWS Lake Formation 는 [Apache Iceberg](https://iceberg.apache.org/), [Apache Hudi](https://hudi.incubator.apache.org/), [Linux 파운데이션 Delta Lake](https://delta.io/)와 같은 *오픈 테이블 형식*(OTFs)에 대한 액세스 권한 관리를 지원합니다. 이 자습서에서는를 AWS Glue Data Catalog 사용하여 symlink [매](https://docs.delta.io/latest/presto-integration.html)니페스트 테이블을 사용하여 Iceberg, Hudi 및 Delta Lake를 생성하고 AWS Glue, Lake Formation을 사용하여 세분화된 권한을 설정하고, Amazon Athena를 사용하여 데이터를 쿼리하는 방법을 알아봅니다.

**참고**  
AWS 분석 서비스는 모든 트랜잭션 테이블 형식을 지원하지 않습니다. 자세한 내용은 [다른 AWS 서비스 작업](working-with-services.md) 단원을 참조하십시오. 이 튜토리얼에서는 AWS Glue 작업만 사용하여 데이터 카탈로그에서 수동으로 새 데이터베이스와 테이블을 생성하는 방법을 다룹니다.

이 자습서에는 빠른 설정을 위한 AWS CloudFormation 템플릿이 포함되어 있습니다. 템플릿을 검토한 후 필요에 맞게 사용자 지정할 수 있습니다.

**Topics**
+ [대상 독자](#tut-otf-roles)
+ [사전 조건](#tut-otf-prereqs)
+ [1단계: 리소스 프로비저닝](#set-up-otf-resources)
+ [2단계: Iceberg 테이블에 대한 권한 설정](#set-up-iceberg-table)
+ [3단계: Hudi 테이블에 대한 권한 설정](#set-up-hudi-table)
+ [4단계: Delta Lake 테이블에 대한 권한 설정](#set-up-delta-table)
+ [5단계: AWS 리소스 정리](#otf-tut-clean-up)

## 대상 독자
<a name="tut-otf-roles"></a>

이 자습서는 IAM 관리자, 데이터 레이크 관리자 및 비즈니스 분석가를 대상으로 합니다. 다음 표에는 이 자습서에서 Lake Formation을 사용하여 관리형 테이블을 생성하는 데 사용되는 역할이 나열되어 있습니다.


| Role | 설명 | 
| --- | --- | 
| IAM 관리자 | IAM 사용자와 역할, Amazon S3 버킷을 생성할 수 있는 사용자입니다. AdministratorAccess AWS 관리형 정책이 있습니다. | 
| 데이터 레이크 관리자 | 데이터 카탈로그에 액세스하고, 데이터베이스를 생성하고, Lake Formation 권한을 다른 사용자에게 부여할 수 있는 사용자입니다. IAM 관리자보다 IAM 권한이 적지만 데이터 레이크를 관리하기에는 충분합니다. | 
| 비즈니스 분석가 | 데이터 레이크에 대해 쿼리를 실행할 수 있는 사용자입니다. 쿼리를 실행할 수 있는 권한이 있습니다. | 

## 사전 조건
<a name="tut-otf-prereqs"></a>

이 자습서를 시작하기 전에 올바른 권한을 가진 사용자로 로그인할 수 AWS 계정 있는이 있어야 합니다. 자세한 내용은 [에 가입 AWS 계정](getting-started-setup.md#sign-up-for-aws) 및 [관리자 액세스 권한이 있는 사용자 생성](getting-started-setup.md#create-an-admin) 섹션을 참조하세요.

이 자습서에서는 사용자가 IAM 역할 및 정책에 대해 잘 알고 있다고 가정합니다. IAM에 대한 자세한 내용은 [IAM 사용 설명서](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)를 참조하세요.

 이 자습서를 완료하려면 다음 AWS 리소스를 설정해야 합니다.
+ 데이터 레이크 관리자 사용자
+ Lake Formation 데이터 레이크 설정
+ Amazon Athena 엔진 버전 3

**데이터 레이크 관리자를 생성하려면**

1. Lake Formation 콘솔([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/))에 관리자 사용자로 로그인합니다. 이 튜토리얼에서는 미국 동부(버지니아 북부) 리전에 리소스를 생성합니다.

1. Lake Formation 콘솔 탐색 창의 **권한**에서 **관리 역할 및 작업**을 선택합니다.

1. **데이터 레이크 관리자**에서 **관리자 선택**을 선택합니다.

1.  **데이터 레이크 관리자 관리** 팝업 창의 **IAM 사용자 및 역할**에서 **IAM 관리자 사용자**를 선택합니다.

1. **저장**을 선택합니다.

**데이터 레이크 설정을 활성화하려면**

1. Lake Formation 콘솔([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/))을 엽니다. 탐색 창의 **데이터 카탈로그**에서 **설정**을 선택합니다. 다음을 선택 취소합니다.
   + 새 데이터베이스에 대해 IAM 액세스 제어만 사용
   + 새 데이터베이스의 새 테이블에 대해 IAM 액세스 제어만 사용

1. **교차 계정 버전 설정**에서 교차 버전 계정으로 **버전 3**을 선택합니다.

1. **저장**을 선택합니다.

**Amazon Athena 엔진을 버전 3으로 업그레이드하려면**

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)에서 Athena 콘솔을 엽니다.

1. **작업 그룹**을 선택하고 기본 작업 그룹을 선택합니다.

1. 작업 그룹이 최소 버전 3인지 확인합니다. 그렇지 않은 경우 작업 그룹을 편집하고 **쿼리 엔진 업그레이드**에 대해 **수동**을 선택한 다음 버전 3을 선택합니다.

1. **변경 사항 저장**을 선택합니다.

## 1단계: 리소스 프로비저닝
<a name="set-up-otf-resources"></a>

이 섹션에서는 CloudFormation 템플릿을 사용하여 AWS 리소스를 설정하는 방법을 보여줍니다.

**CloudFormation 템플릿을 사용하여 리소스를 생성하려면**

1. 미국 동부(버지니아 북부) 리전의 IAM 관리자로 [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) AWS CloudFormation 콘솔에 로그인합니다.

1. [스택 시작](https://us-east-1.console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?templateURL=https://lf-public.s3.amazonaws.com/cfn/lfotfsetup.template)을 선택합니다.

1. **스택 생성** 화면에서 **다음**을 선택합니다.

1. **스택 이름**을 입력합니다.

1. **다음**을 선택합니다.

1. 다음 페이지에서 **다음**을 선택합니다.

1. 마지막 페이지의 세부 정보를 검토하고 **이 IAM 리소스를 생성할 AWS CloudFormation 수 있음을 승인합니다를 선택합니다.**

1. **생성(Create)**을 선택합니다.

   스택 생성에는 최대 2분이 걸릴 수 있습니다.

CloudFormation 스택을 시작하면 다음 리소스가 생성됩니다.
+ lf-otf-datalake-123456789012 – 데이터를 저장하기 위한 Amazon S3 버킷
**참고**  
Amazon S3 버킷 이름에 추가된 계정 ID는 사용자의 계정 ID로 대체됩니다.
+ lf-otf-tutorial-123456789012 – 쿼리 결과 및 AWS Glue 작업 스크립트를 저장하는 Amazon S3 버킷
+ lficebergdb – AWS Glue Iceberg 데이터베이스
+ lfhudidb – AWS Glue Hudi 데이터베이스
+ lfdeltadb – AWS Glue 델타 데이터베이스
+ native-iceberg-create – 데이터 카탈로그에 Iceberg 테이블을 생성하는 AWS Glue 작업
+ native-hudi-create – 데이터 카탈로그에 Hudi 테이블을 생성하는 AWS Glue 작업
+ native-delta-create – 데이터 카탈로그에 Delta 테이블을 생성하는 AWS Glue 작업
+ LF-OTF-GlueServiceRole - 작업을 실행하기 AWS Glue 위해 전달하는 IAM 역할입니다. 이 역할에는 데이터 카탈로그, Amazon S3 버킷 등과 같은 리소스에 액세스하는 데 필요한 정책이 연결되어 있습니다.
+ LF-OTF-RegisterRole – Lake Formation에 Amazon S3 위치를 등록하기 위한 IAM 역할. 이 역할에는 `LF-Data-Lake-Storage-Policy`이 연결되어 있습니다.
+ lf-consumer-analystuser – Athena를 사용하여 데이터를 쿼리하는 IAM 사용자
+ lf-consumer-analystuser-credentials –에 저장된 데이터 분석가 사용자의 암호 AWS Secrets Manager

스택 생성이 완료되면 출력 탭으로 이동하여 다음 값을 적업 둡니다.
+ AthenaQueryResultLocation – Athena 쿼리 출력을 위한 Amazon S3 위치
+ BusinessAnalystUserCredentials – 데이터 분석가 사용자의 암호

  암호 값을 가져오려면:

  1. Secrets Manager 콘솔로 이동하여 `lf-consumer-analystuser-credentials` 값을 선택합니다.

  1. **보안 암호 값(Secret value)** 섹션에서 **보안 암호 값 검색(Retrieve secret value)**을 선택합니다.

  1. 암호의 보안 암호 값을 적어 둡니다.

## 2단계: Iceberg 테이블에 대한 권한 설정
<a name="set-up-iceberg-table"></a>

이 섹션에서는에서 Iceberg 테이블을 생성하고 AWS Glue Data Catalog,에서 데이터 권한을 설정하고 AWS Lake Formation, Amazon Athena를 사용하여 데이터를 쿼리하는 방법을 알아봅니다.

**Iceberg 테이블을 생성하려면**

이 단계에서는 데이터 카탈로그에서 Iceberg 트랜잭션 테이블을 생성하는 AWS Glue 작업을 실행합니다.

1. 미국 동부(버지니아 북부) 리전에서 데이터 레이크 관리자 사용자로 AWS Glue 콘솔([https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/))을 엽니다.

1. 왼쪽 탐색 창에서 **작업**을 선택합니다.

1. `native-iceberg-create`을 선택합니다.  
![이미지는 콘솔의 AWS Glue 작업 페이지 스크린샷입니다.](http://docs.aws.amazon.com/ko_kr/lake-formation/latest/dg/images/otf-glu-job-tut.png)

1. **작업**에서 **작업 편집**을 선택합니다.

1. **작업 세부 정보**에서 **고급 속성을** 확장하고 **Hive 메타스토어 AWS Glue Data Catalog 로 사용** 옆의 확인란을 선택하여에 테이블 메타데이터를 추가합니다 AWS Glue Data Catalog. 이는 작업에 사용되는 데이터 카탈로그 리소스의 메타스토어 AWS Glue Data Catalog 로를 지정하고 나중에 카탈로그 리소스에 Lake Formation 권한을 적용할 수 있도록 합니다.

1. **저장**을 선택합니다.

1. **실행**을 선택합니다. 작업이 실행되는 동안 작업의 상태를 볼 수 있습니다.

    AWS Glue 작업에 대한 자세한 내용은 *AWS Glue 개발자 안내서*[의 AWS Glue 콘솔에서 작업 작업을](https://docs.aws.amazon.com/glue/latest/dg/console-jobs.html) 참조하세요.

    이 작업을 수행하면 `lficebergdb` 데이터베이스에 `product`라는 이름의 Iceberg 테이블이 생성됩니다. Lake Formation 콘솔에서 제품 테이블을 확인합니다.

**Lake Formation에 데이터 위치를 등록하려면**

다음으로, Amazon S3 경로를 데이터 레이크의 위치로 등록합니다.

1. [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)에서 데이터 레이크 관리자 사용자로 Lake Formation 콘솔을 엽니다.

1. 탐색 창의 **등록 및 수집**에서 **데이터 위치**를 선택합니다.

1. 콘솔 오른쪽 상단에서 **위치 등록**을 선택합니다.

1. **위치 등록** 페이지에서 다음을 입력합니다.
   +  **Amazon S3 경로** - **찾아보기**를 선택하고 `lf-otf-datalake-123456789012`를 선택합니다. Amazon S3 루트 위치 옆에 있는 오른쪽 화살표(>)를 클릭하여 `s3/buckets/lf-otf-datalake-123456789012/transactionaldata/native-iceberg` 위치로 이동합니다.
   + **IAM 역할** - IAM 역할로 `LF-OTF-RegisterRole`을 선택합니다.
   + **위치 등록**을 선택합니다.  
![콘솔에 있는 Lake Formation 위치 등록 페이지의 스크린샷 이미지입니다.](http://docs.aws.amazon.com/ko_kr/lake-formation/latest/dg/images/otf-register-location-tut.png)

   Lake Formation에 데이터 위치를 등록하는 방법에 대한 자세한 내용은 [데이터 레이크에 Amazon S3 위치 추가](register-data-lake.md) 섹션을 참조하세요.

**Iceberg 테이블에서 Lake Formation 권한을 부여하려면**

이 단계에서는 비즈니스 분석가 사용자에게 데이터 레이크 권한을 부여합니다.

1. **데이터 레이크 권한**에서 **권한 부여**를 선택합니다.

1. **데이터 권한 부여** 화면에서 **IAM 사용자 및 역할**을 선택합니다.

1. 드롭다운 목록에서 `lf-consumer-analystuser`를 선택합니다.  
![콘솔에 있는 Lake Formation 권한 페이지의 스크린샷 이미지입니다.](http://docs.aws.amazon.com/ko_kr/lake-formation/latest/dg/images/otf-lf-perm-role-tut.png)

1. **명명된 데이터 카탈로그 리소스**를 선택합니다.

1. **데이터베이스**에서 `lficebergdb`를 선택합니다.

1. **테이블**에 대해 `product`을 선택합니다.  
![콘솔에 있는 Lake Formation 권한 페이지의 스크린샷 이미지입니다.](http://docs.aws.amazon.com/ko_kr/lake-formation/latest/dg/images/otf-db-tbl-perm-tut.png)

1. 다음으로, 열을 지정하여 열 기반 액세스 권한을 부여할 수 있습니다.

   1. **테이블 권한**에서 **선택**을 선택합니다.

   1. **데이터 권한**에서 **열 기반 액세스**를 선택하고 **열 포함**을 선택합니다.

   1. `product_name`, `price` 및 `category` 열을 선택합니다.

   1. **권한 부여**를 선택합니다.  
![콘솔에 있는 Lake Formation 권한 페이지의 스크린샷 이미지입니다.](http://docs.aws.amazon.com/ko_kr/lake-formation/latest/dg/images/otf-column-perm-tut.png)

**Athena를 사용하여 Iceberg 테이블을 쿼리하려면**

 이제 Athena를 사용하여 생성한 Iceberg 테이블을 쿼리할 수 있습니다. Athena에서 처음으로 쿼리를 실행할 경우 쿼리 결과 위치를 구성해야 합니다. 자세한 내용은 [쿼리 결과 위치 지정](https://docs.aws.amazon.com/athena/latest/ug/querying.html#query-results-specify-location)을 참조하세요.

1. 데이터 레이크 관리자 사용자로 로그아웃하고 CloudFormation 출력에서 앞서 언급한 암호를 사용하여 미국 동부(버지니아 북부) 리전`lf-consumer-analystuser`에서 로 로그인합니다.

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)에서 Athena 콘솔을 엽니다.

1. **설정**을 선택하고 **관리**를 선택합니다.

1. **쿼리 결과 위치** 상자에 CloudFormation 출력에서 생성한 버킷의 경로를 입력합니다. `AthenaQueryResultLocation`(s3://lf-otf-tutorial-123456789012/athena-results/)의 값을 복사하고 **저장**을 선택합니다.

1. 다음 쿼리를 실행하여 Iceberg 테이블에 저장된 10개의 레코드를 미리 봅니다.

   ```
   select * from lficebergdb.product limit 10;
   ```

   Athena를 사용하여 Iceberg 테이블을 쿼리하는 방법에 대한 자세한 내용은 Amazon Athena 사용 설명서의 [Iceberg 테이블 쿼리](https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg-table-data.html)를 참조하세요.**

## 3단계: Hudi 테이블에 대한 권한 설정
<a name="set-up-hudi-table"></a>

이 섹션에서는에서 Hudi 테이블을 생성하고 AWS Glue Data Catalog,에서 데이터 권한을 설정하고 AWS Lake Formation, Amazon Athena를 사용하여 데이터를 쿼리하는 방법을 알아봅니다.

**Hudi 테이블을 생성하려면**

이 단계에서는 데이터 카탈로그에서 Hudi 트랜잭션 테이블을 생성하는 AWS Glue 작업을 실행합니다.

1. 미국 동부(버지니아 북부) 리전에서 AWS Glue 콘솔([https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/))에

    데이터 레이크 관리자 사용자로 로그인합니다.

1. 왼쪽 탐색 창에서 **작업**을 선택합니다.

1. `native-hudi-create`을 선택합니다.

1. **작업**에서 **작업 편집**을 선택합니다.

1. **작업 세부 정보**에서 **고급 속성을** 확장하고 **Hive 메타스토어 AWS Glue Data Catalog 로 사용** 옆의 확인란을 선택하여에 테이블 메타데이터를 추가합니다 AWS Glue Data Catalog. 이는 작업에 사용되는 데이터 카탈로그 리소스의 메타스토어 AWS Glue Data Catalog 로를 지정하고 나중에 카탈로그 리소스에 Lake Formation 권한을 적용할 수 있도록 합니다.

1. **저장**을 선택합니다.

1. **실행**을 선택합니다. 작업이 실행되는 동안 작업의 상태를 볼 수 있습니다.

    AWS Glue 작업에 대한 자세한 내용은 *AWS Glue 개발자 안내서*[의 AWS Glue 콘솔에서 작업 작업을](https://docs.aws.amazon.com/glue/latest/dg/console-jobs.html) 참조하세요.

    이 작업은 데이터베이스 lfhudidb에 Hudi(cow) 테이블을 생성합니다. Lake Formation 콘솔에서 `product` 테이블을 확인합니다.

**Lake Formation에 데이터 위치를 등록하려면**

다음으로, Amazon S3 경로를 데이터 레이크의 루트 위치로 등록합니다.

1. Lake Formation 콘솔([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/))에 데이터 레이크 관리자 사용자로 로그인합니다.

1. 탐색 창의 **등록 및 수집**에서 **데이터 위치**를 선택합니다.

1. 콘솔 오른쪽 상단에서 **위치 등록**을 선택합니다.

1. **위치 등록** 페이지에서 다음을 입력합니다.
   +  **Amazon S3 경로** - **찾아보기**를 선택하고 `lf-otf-datalake-123456789012`를 선택합니다. Amazon S3 루트 위치 옆에 있는 오른쪽 화살표(>)를 클릭하여 `s3/buckets/lf-otf-datalake-123456789012/transactionaldata/native-hudi` 위치로 이동합니다.
   + **IAM 역할** - IAM 역할로 `LF-OTF-RegisterRole`을 선택합니다.
   + **위치 등록**을 선택합니다.

**Hudi 테이블에서 데이터 레이크 권한을 부여하려면**

이 단계에서는 비즈니스 분석가 사용자에게 데이터 레이크 권한을 부여합니다.

1. **데이터 레이크 권한**에서 **권한 부여**를 선택합니다.

1. **데이터 권한 부여** 화면에서 **IAM 사용자 및 역할**을 선택합니다.

1. 드롭다운 목록에서 `lf-consumer-analystuser`를 선택합니다.

1. **명명된 데이터 카탈로그 리소스**를 선택합니다.

1. **데이터베이스**에서 `lfhudidb`를 선택합니다.

1. **테이블**에 대해 `product`을 선택합니다.

1. 다음으로, 열을 지정하여 열 기반 액세스 권한을 부여할 수 있습니다.

   1. **테이블 권한**에서 **선택**을 선택합니다.

   1. **데이터 권한**에서 **열 기반 액세스**를 선택하고 **열 포함**을 선택합니다.

   1. `product_name`, `price` 및 `category` 열을 선택합니다.

   1. **권한 부여**를 선택합니다.

**Athena를 사용하여 Hudi 테이블을 쿼리하려면**

 이제 Athena를 사용하여 생성한 Hudi 테이블에 대한 쿼리를 시작합니다. Athena에서 처음으로 쿼리를 실행할 경우 쿼리 결과 위치를 구성해야 합니다. 자세한 내용은 [쿼리 결과 위치 지정](https://docs.aws.amazon.com/athena/latest/ug/querying.html#query-results-specify-location)을 참조하세요.

1. 데이터 레이크 관리자 사용자로 로그아웃하고 CloudFormation 출력에서 앞서 언급한 암호를 사용하여 미국 동부(버지니아 북부) 리전`lf-consumer-analystuser`에서 로 로그인합니다.

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)에서 Athena 콘솔을 엽니다.

1. **설정**을 선택하고 **관리**를 선택합니다.

1. **쿼리 결과 위치** 상자에 CloudFormation 출력에서 생성한 버킷의 경로를 입력합니다. `AthenaQueryResultLocation`(s3://lf-otf-tutorial-123456789012/athena-results/)의 값을 복사하고 **저장**을 선택합니다.

1. 다음 쿼리를 실행하여 Hudi 테이블에 저장된 10개의 레코드를 미리 봅니다.

   ```
   select * from lfhudidb.product limit 10;
   ```

   Hudi 테이블을 쿼리하는 방법에 대한 자세한 내용은 Amazon Athena 사용 설명서의 [Hudi 테이블 쿼리](https://docs.aws.amazon.com/athena/latest/ug/querying-hudi.html) 섹션을 참조하세요.**

## 4단계: Delta Lake 테이블에 대한 권한 설정
<a name="set-up-delta-table"></a>

이 섹션에서는에서 symlink 매니페스트 파일을 사용하여 Delta Lake 테이블을 생성하고,에서 데이터 권한을 설정하고 AWS Glue Data Catalog, Amazon Athena를 사용하여 데이터를 AWS Lake Formation 쿼리하는 방법을 알아봅니다.

**Delta Lake 테이블을 생성하려면**

이 단계에서는 데이터 카탈로그에서 Delta Lake 트랜잭션 테이블을 생성하는 AWS Glue 작업을 실행합니다.

1. 미국 동부(버지니아 북부) 리전에서 AWS Glue 콘솔([https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/))에

    데이터 레이크 관리자 사용자로 로그인합니다.

1. 왼쪽 탐색 창에서 **작업**을 선택합니다.

1. `native-delta-create`을 선택합니다.

1. **작업**에서 **작업 편집**을 선택합니다.

1. **작업 세부 정보**에서 **고급 속성을** 확장하고 **Hive 메타스토어 AWS Glue Data Catalog 로 사용** 옆의 확인란을 선택하여에 테이블 메타데이터를 추가합니다 AWS Glue Data Catalog. 이는 작업에 사용되는 데이터 카탈로그 리소스의 메타스토어 AWS Glue Data Catalog 로를 지정하고 나중에 카탈로그 리소스에 Lake Formation 권한을 적용할 수 있도록 합니다.

1. **저장**을 선택합니다.

1. **작업**에서 **실행**을 선택합니다.

    이 작업을 수행하면 `lfdeltadb` 데이터베이스에 `product`라는 이름의 Delta Lake 테이블이 생성됩니다. Lake Formation 콘솔에서 `product` 테이블을 확인합니다.

**Lake Formation에 데이터 위치를 등록하려면**

다음으로, Amazon S3 경로를 데이터 레이크의 루트 위치로 등록합니다.

1. [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)에서 데이터 레이크 관리자 사용자로 Lake Formation 콘솔을 엽니다.

1. 탐색 창의 **등록 및 수집**에서 **데이터 위치**를 선택합니다.

1. 콘솔 오른쪽 상단에서 **위치 등록**을 선택합니다.

1. **위치 등록** 페이지에서 다음을 입력합니다.
   +  **Amazon S3 경로** - **찾아보기**를 선택하고 `lf-otf-datalake-123456789012`를 선택합니다. Amazon S3 루트 위치 옆에 있는 오른쪽 화살표(>)를 클릭하여 `s3/buckets/lf-otf-datalake-123456789012/transactionaldata/native-delta` 위치로 이동합니다.
   + **IAM 역할** - IAM 역할로 `LF-OTF-RegisterRole`을 선택합니다.
   + **위치 등록**을 선택합니다.

**Delta Lake 테이블에서 데이터 레이크 권한을 부여하려면**

이 단계에서는 비즈니스 분석가 사용자에게 데이터 레이크 권한을 부여합니다.

1. **데이터 레이크 권한**에서 **권한 부여**를 선택합니다.

1. **데이터 권한 부여** 화면에서 **IAM 사용자 및 역할**을 선택합니다.

1. 드롭다운 목록에서 `lf-consumer-analystuser`를 선택합니다.

1. **명명된 데이터 카탈로그 리소스**를 선택합니다.

1. **데이터베이스**에서 `lfdeltadb`를 선택합니다.

1. **테이블**에 대해 `product`을 선택합니다.

1. 다음으로, 열을 지정하여 열 기반 액세스 권한을 부여할 수 있습니다.

   1. **테이블 권한**에서 **선택**을 선택합니다.

   1. **데이터 권한**에서 **열 기반 액세스**를 선택하고 **열 포함**을 선택합니다.

   1. `product_name`, `price` 및 `category` 열을 선택합니다.

   1. **권한 부여**를 선택합니다.

**Athena를 사용하여 Delta Lake 테이블을 쿼리하려면**

 이제 Athena를 사용하여 생성한 Delta Lake 테이블에 대한 쿼리를 시작합니다. Athena에서 처음으로 쿼리를 실행할 경우 쿼리 결과 위치를 구성해야 합니다. 자세한 내용은 [쿼리 결과 위치 지정](https://docs.aws.amazon.com/athena/latest/ug/querying.html#query-results-specify-location)을 참조하세요.

1. 데이터 레이크 관리자 사용자로 로그아웃하고 CloudFormation 출력에서 앞서 기록한 암호를 사용하여 미국 동부(버지니아 북부) 리전`BusinessAnalystUser`에서 로 로그인합니다.

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)에서 Athena 콘솔을 엽니다.

1. **설정**을 선택하고 **관리**를 선택합니다.

1. **쿼리 결과 위치** 상자에 CloudFormation 출력에서 생성한 버킷의 경로를 입력합니다. `AthenaQueryResultLocation`(s3://lf-otf-tutorial-123456789012/athena-results/)의 값을 복사하고 **저장**을 선택합니다.

1. 다음 쿼리를 실행하여 Delta Lake 테이블에 저장된 10개의 레코드를 미리 봅니다.

   ```
   select * from lfdeltadb.product limit 10;
   ```

   Delta Lake 테이블을 쿼리하는 방법에 대한 자세한 내용은 Amazon Athena 사용 설명서의 [Delta Lake 테이블 쿼리](https://docs.aws.amazon.com/athena/latest/ug/delta-lake-tables.html) 섹션을 참조하세요.**

## 5단계: AWS 리소스 정리
<a name="otf-tut-clean-up"></a>

**리소스를 정리하려면**

에 원치 않는 요금이 부과되지 않도록 하려면이 자습서에서 사용한 AWS 리소스를 AWS 계정삭제합니다.

1. IAM 관리자로 [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) CloudFormation 콘솔에 로그인합니다.

1. [CloudFormation 스택을 삭제합니다](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html). 생성한 테이블은 스택과 함께 자동으로 삭제됩니다.