우리는 최근에 발표 에 대한 지원 AWS Lake 형성 세분화된 액세스 제어 정책 아마존 아테나 Apache Iceberg, Apache Hudi 및 Apache Hive와 같은 테이블 형식을 사용하여 지원되는 모든 파일 형식으로 저장된 데이터를 쿼리합니다. AWS Lake Formation을 사용하면 Amazon S3에 저장된 Iceberg 테이블을 쿼리하기 위해 데이터베이스, 테이블 및 열 수준 액세스 정책을 정의하고 적용할 수 있습니다. Lake Formation은 Amazon S3에 저장된 데이터에 대한 권한 부여 및 거버넌스 계층을 제공합니다. 이 기능을 사용하려면 다음으로 업그레이드해야 합니다. 아테나 엔진 버전 3.
대규모 조직에는 비즈니스 데이터를 자율적으로 관리하는 LOB(사업 부문)가 있는 경우가 많습니다. 이는 LoB 간에 데이터를 공유하는 것을 중요하게 만듭니다. 이러한 조직은 연합 모델을 채택했으며 각 LoB는 데이터에 대한 의사 결정을 자율적으로 수행합니다. 액세스 제어를 시행하는 데 사용되는 중앙 집중식 거버넌스 계층과 함께 게시자/소비자 모델을 사용합니다. 데이터 메시 아키텍처에 대해 자세히 알아보려면 다음 사이트를 방문하십시오. AWS Lake Formation 및 AWS Glue를 사용하여 데이터 메시 아키텍처 설계. Athena 엔진 버전 3을 통해 고객은 Apache Iceberg, Apache Hudi 및 Apache Hive와 같은 개방형 데이터 프레임워크에 동일한 세분화된 컨트롤을 사용할 수 있습니다.
이 게시물에서는 소비자가 쿼리할 수 있는 Apache Iceberg 테이블에 대한 제한된 액세스를 제공하기 위해 데이터 공유가 활성화된 생산자/소비자 모델이 있는 사용 사례에 대해 자세히 살펴봅니다. 특정 행을 제한하는 열 필터링, 열 수준 액세스를 제한하는 필터링, 스키마 진화 및 시간 여행에 대해 설명합니다.
솔루션 개요
Athena 및 Lake Formation을 사용하여 Apache Iceberg 테이블에 대한 세분화된 권한 기능을 설명하기 위해 다음 구성 요소를 설정했습니다.
- 생산자 계정에서:
- An AWS 접착제 Apache Iceberg 형식으로 테이블의 스키마를 등록하는 Data Catalog
- 소비자 계정에 대한 세분화된 액세스를 제공하는 Lake Formation
- 생산자 계정의 데이터를 확인하는 Athena
- 소비자 계정에서:
- AWS 리소스 액세스 관리자 (AWS RAM) 생산자 Data Catalog와 소비자 간에 핸드셰이크 생성
- 소비자 계정에 대한 세분화된 액세스를 제공하는 Lake Formation
- 생산자 계정의 데이터를 확인하는 Athena
다음 다이어그램은 아키텍처를 보여줍니다.
사전 조건
시작하기 전에 다음이 있는지 확인하십시오.
데이터 생산자 설정
이 섹션에서는 데이터 생산자를 설정하는 단계를 제시합니다.
테이블 데이터를 저장할 S3 버킷 생성
테이블의 데이터를 저장하기 위해 새 S3 버킷을 생성합니다.
- Amazon S3 콘솔에서 S3 버킷 생성 고유한 이름으로(이 게시물에서는
iceberg-athena-lakeformation-blog
). - 테이블에 사용할 버킷 내부에 생산자 폴더를 생성합니다.
Lake Formation을 사용하여 테이블을 저장하는 S3 경로 등록
Lake Formation에 S3 전체 경로를 등록합니다.
- Lake Formation 콘솔로 이동합니다.
- 처음 로그인하는 경우 관리 사용자를 생성하라는 메시지가 표시됩니다.
- 탐색 창의 등록 및 수집선택한다. 데이터 레이크 위치.
- 왼쪽 메뉴에서 위치 등록, 이전에 생성한 S3 버킷 경로를 제공합니다.
- 왼쪽 메뉴에서
AWSServiceRoleForLakeFormationDataAccess
for IAM 역할.
역할에 대한 추가 정보는 다음을 참조하십시오. 위치 등록에 사용되는 역할에 대한 요구 사항.
S3 버킷의 암호화를 활성화한 경우 Lake Formation이 암호화 및 암호 해독 작업을 수행할 수 있는 권한을 제공해야 합니다. 인용하다 암호화된 Amazon S3 위치 등록 안내를 위해.
- 왼쪽 메뉴에서 위치 등록.
Athena를 사용하여 Iceberg 테이블 생성
이제 Apache Iceberg 형식으로 지원되는 Athena를 사용하여 테이블을 생성해 보겠습니다.
- Athena 콘솔에서 쿼리 편집기 탐색 창에서
- Athena를 처음 사용하는 경우 아래에서 설정선택한다.
관리 이전에 생성한 S3 버킷 위치를 입력합니다(
iceberg-athena-lakeformation-blog/producer
). - 왼쪽 메뉴에서 찜하기.
- 쿼리 편집기에서 다음 쿼리를 입력합니다(위치를 Lake Formation에 등록한 S3 버킷으로 바꿉니다). 기본 데이터베이스를 사용하지만 다른 데이터베이스를 사용할 수 있습니다.
- 왼쪽 메뉴에서 달리기.
소비자 계정과 테이블 공유
기능을 설명하기 위해 다음 시나리오를 구현합니다.
- 선택한 열에 대한 액세스 제공
- 필터를 기반으로 선택한 행에 대한 액세스 제공
다음 단계를 완료하십시오.
- Lake Formation 콘솔의 탐색 창에서 데이터 카탈로그선택한다. 데이터 필터.
- 왼쪽 메뉴에서 새 필터 만들기.
- 럭셔리 데이터 필터 이름, 입력
blog_data_filter
. - 럭셔리 대상 데이터베이스, 입력
lf-demo-db
. - 럭셔리 대상 테이블, 입력
consumer_iceberg
. - 럭셔리 열 수준 액세스, 고르다 열 포함.
- 소비자와 공유할 열을 선택합니다.
country, address, contactfirstname, city, customerid,
과customername
. - 럭셔리 행 필터 표현식, 필터 입력
country='France'
. - 왼쪽 메뉴에서 필터 만들기.
이제 다음에서 소비자 계정에 대한 액세스 권한을 부여해 보겠습니다. consumer_iceberg
테이블.
- 탐색 창에서 테이블.
- consumer_iceberg 테이블을 선택하고 부여 를 시청하여 이에 대해 더 많은 정보를 얻을 수 있습니다. 행위 메뉴를 선택합니다.
- 선택 외부 계정.
- 외부 계정 ID를 입력합니다.
- 선택 명명된 데이터 카탈로그 리소스.
- 데이터베이스와 테이블을 선택하십시오.
- 럭셔리 데이터 필터, 생성한 데이터 필터를 선택합니다.
- 럭셔리 데이터 필터 권한 과 부여 가능한 권한, 고르다 선택.
- 왼쪽 메뉴에서 부여.
데이터 소비자 설정
데이터 소비자를 설정하기 위해 리소스 공유를 수락하고 AWS RAM 및 Lake Formation을 사용하여 테이블을 생성합니다. 다음 단계를 완료하십시오.
- 소비자 계정에 로그인하고 AWS RAM 콘솔로 이동합니다.
- $XNUMX Million 미만 나와 공유 함 탐색 창에서 자원 공유.
- 리소스 공유를 선택합니다.
- 왼쪽 메뉴에서 리소스 공유 수락.
- 다음 단계에서 사용할 리소스 공유의 이름을 기록해 둡니다.
- Lake Formation 콘솔로 이동합니다.
- 처음 로그인하는 경우 관리 사용자를 생성하라는 메시지가 표시됩니다.
- 왼쪽 메뉴에서 데이터베이스 탐색 창에서 데이터베이스를 선택합니다.
- 에 행위 메뉴, 선택 리소스 링크 만들기.
- 럭셔리 리소스 링크 이름, 리소스 링크의 이름을 입력합니다(예:
consumer_iceberg
). - 데이터베이스와 공유 테이블을 선택하십시오.
- 왼쪽 메뉴에서 만들기.
솔루션 검증
이제 테이블에서 다양한 작업을 실행하여 세분화된 액세스 제어의 유효성을 검사할 수 있습니다.
삽입 작업
에 데이터를 삽입하자 consumer_iceberg
데이터 필터링이 소비자 계정에서 예상대로 작동하는지 확인합니다.
- 생산자 계정에 로그인합니다.
- Athena 콘솔에서 쿼리 편집기 탐색 창에서
- 다음 SQL을 사용하여 Iceberg 테이블에 데이터를 쓰고 삽입합니다. 쿼리 편집기를 사용하여 한 번에 하나의 쿼리를 실행합니다. 한 번에 하나의 쿼리를 강조 표시/선택하고 "실행"/"다시 실행"을 클릭할 수 있습니다.
- 다음 SQL을 사용하여 Iceberg 테이블에서 데이터를 읽고 선택합니다.
- 소비자 계정에 로그인합니다.
- Athena 쿼리 편집기에서 공유 테이블에 대해 다음 SELECT 쿼리를 실행합니다.
필터를 기반으로 소비자는 열의 하위 집합과 국가가 프랑스인 행을 볼 수 있습니다.
업데이트/삭제 작업
이제 행 중 하나를 업데이트하고 소비자와 공유된 데이터 세트에서 하나를 삭제하겠습니다.
- 업데이트 및 삭제된 데이터세트를 확인합니다.
- 소비자 계정에 로그인합니다.
- Athena 쿼리 편집기에서 공유 테이블에 대해 다음 SELECT 쿼리를 실행합니다.
하나의 행만 사용할 수 있고 도시가 파리로 업데이트된 것을 볼 수 있습니다.
스키마 진화: 새 열 추가
행 중 하나를 업데이트하고 소비자와 공유된 데이터 세트에서 하나를 삭제하겠습니다.
- 생산자 계정에 로그인합니다.
- 라는 새 열을 추가합니다.
geo_loc
빙산 테이블에서. 쿼리 편집기를 사용하여 한 번에 하나의 쿼리를 실행합니다. 한 번에 하나의 쿼리를 강조 표시/선택하고 "실행"/"다시 실행"을 클릭할 수 있습니다.
새로 추가된 항목에 대한 가시성을 제공하기 위해 geo_loc
열에서 Lake Formation 데이터 필터를 업데이트해야 합니다.
- Lake Formation 콘솔에서 데이터 필터 탐색 창에서
- 데이터 필터를 선택하고 편집.
- $XNUMX Million 미만 열 수준 액세스, 새 열(
geo_loc
). - 왼쪽 메뉴에서 찜하기.
- 소비자 계정에 로그인합니다.
- Athena 쿼리 편집기에서 다음을 실행합니다.
SELECT
공유 테이블에 대한 쿼리:
새로운 칼럼 geo_loc
표시되고 추가 행이 있습니다.
스키마 진화: 열 삭제
행 중 하나를 업데이트하고 소비자와 공유된 데이터 세트에서 하나를 삭제하겠습니다.
- 생산자 계정에 로그인합니다.
- Iceberg 테이블에서 주소 열을 삭제하도록 테이블을 변경하십시오. 쿼리 편집기를 사용하여 한 번에 하나의 쿼리를 실행합니다. 한 번에 하나의 쿼리를 강조 표시/선택하고 "실행"/"다시 실행"을 클릭할 수 있습니다.
열 주소가 테이블에 없는 것을 볼 수 있습니다.
- 소비자 계정에 로그인합니다.
- Athena 쿼리 편집기에서 공유 테이블에 대해 다음 SELECT 쿼리를 실행합니다.
열 주소가 테이블에 없습니다.
시간 여행
우리는 이제 Iceberg 테이블을 여러 번 변경했습니다. Iceberg 테이블은 스냅샷을 추적합니다. 시간 여행 기능을 탐색하려면 다음 단계를 완료하십시오.
- 생산자 계정에 로그인합니다.
- 시스템 테이블을 쿼리합니다.
여러 개의 스냅샷을 생성했음을 알 수 있습니다.
- 중 하나를 메모
committed_at
다음 단계에서 사용할 값(이 예에서는2023-01-29 21:35:02.176 UTC
). - 시간 여행을 사용하여 테이블 스냅샷을 찾습니다. 쿼리 편집기를 사용하여 한 번에 하나의 쿼리를 실행합니다. 한 번에 하나의 쿼리를 강조 표시/선택하고 "실행"/"다시 실행"을 클릭할 수 있습니다.
정리
향후 비용이 발생하지 않도록 하려면 다음 단계를 완료하십시오.
- Amazon S3 콘솔에서 테이블 스토리지 버킷(이 게시물의 경우 iceberg-athena-lakeformation-blog)을 삭제합니다.
- Athena 콘솔의 생산자 계정에서 다음 명령을 실행하여 생성한 테이블을 삭제합니다.
결론
교차 계정에 대한 지원을 통해 Iceberg와 같은 형식에 대한 세분화된 액세스 제어 정책을 통해 Athena에서 지원하는 모든 형식으로 유연하게 작업할 수 있습니다. Athena에서 지원하는 모든 테이블 및 형식에 대한 Lake Formation 세분화된 액세스 제어와 결합된 S3 데이터 레이크의 데이터에 대해 CRUD 작업을 수행하는 기능은 데이터 전략을 혁신하고 단순화할 수 있는 기회를 제공합니다. 여러분의 피드백을 듣고 싶습니다!
저자 소개
키쇼어 다모다란 AWS의 수석 솔루션 아키텍트입니다. Kishore는 다년간의 업계 및 클라우드 경험을 활용하여 클라우드 엔터프라이즈 전략 및 마이그레이션 여정을 통해 전략적 고객을 지원합니다.
잭 예 AWS Athena Data Lake 및 Storage 팀의 소프트웨어 엔지니어입니다. 그는 Apache Iceberg 커미터이자 PMC 회원입니다.
크리스 올슨 AWS의 소프트웨어 개발 엔지니어입니다.
리 샤오쉬안 AWS의 소프트웨어 개발 엔지니어입니다.
라훌 소나와 네 AI/ML 및 분석을 전문 분야로 하는 AWS의 수석 분석 솔루션 설계자입니다.
- SEO 기반 콘텐츠 및 PR 배포. 오늘 증폭하십시오.
- 플라토 블록체인. Web3 메타버스 인텔리전스. 지식 증폭. 여기에서 액세스하십시오.
- 출처: https://aws.amazon.com/blogs/big-data/interact-with-apache-iceberg-tables-using-amazon-athena-and-cross-account-fine-grained-permissions-using-aws-lake-formation/
- :이다
- $UP
- 1
- 10
- 100
- 7
- a
- 능력
- 소개
- 수락
- ACCESS
- 계정
- 가로질러
- 추가
- 추가
- 추가 정보
- 주소
- 관리자
- 채택
- 반대
- AI / ML
- All
- 수
- 아마존
- 아마존 아테나
- 분석
- 과
- 아파치
- 아키텍처
- 있군요
- 지역
- 미술
- AS
- At
- 권한 부여
- 가능
- 피하기
- AWS
- AWS Lake 형성
- 뒷받침 된
- 기반으로
- 사이에
- 사업
- 사업
- by
- 라는
- CAN
- 목록
- 중앙
- 어떤
- 이전 단계로 돌아가기
- 요금
- 왼쪽 메뉴에서
- City
- 클릭
- 클라우드
- 단
- 열
- COM
- 결합 된
- 완전한
- 구성 요소들
- 콘솔에서
- 소비자
- 제어
- 컨트롤
- 국가
- 만들
- 만든
- 만들기
- 창조
- Cross
- 고객
- 데이터
- 데이터 레이크
- 데이터 공유
- 데이터 전략
- 데이터베이스
- 결정
- 깊은
- 심해 잠수
- 태만
- 개발
- 다른
- 토론
- 아래 (down)
- 드롭
- 마다
- 이전
- 편집자
- 이메일
- EMEA
- 사용 가능
- 암호화
- 암호화
- 엔진
- 기사
- 엔터 버튼
- Enterprise
- 에테르 (ETH)
- 진화
- 예
- 기대하는
- 경험
- 탐험
- 외부
- 입양 부모로서의 귀하의 적합성을 결정하기 위해 미국 이민국에
- 필터링
- 필터링
- 필터
- Find
- 먼저,
- 처음으로
- 유연성
- 수행원
- 럭셔리
- 체재
- 형성
- 프레임 워크
- 프랑스
- 에
- 가득 찬
- 기능
- 미래
- 생성
- 얻을
- 주기
- 통치
- 부여
- 지도
- 있다
- 데
- 듣다
- 도움이
- 하이브
- HTML
- HTTP
- HTTPS
- ID
- 구현
- in
- 주식 회사
- 산업
- 정보
- 받아 들여 쓰다
- 상호 작용하는
- 관심있는
- IT
- 여행
- JPG
- 소금물
- 땅
- 층
- 배우기
- 레벨
- 레버리지
- 제한
- 라인
- LINK
- 위치
- 애정
- 리옹
- 확인
- 제작
- 관리
- 회원
- 메뉴
- 이주
- 모델
- 배우기
- 여러
- name
- 이동
- 카테고리
- 필요
- 신제품
- 다음 것
- NYC
- 관찰
- of
- on
- ONE
- 열 수
- 오픈 데이터
- 운영
- 행정부
- 기회
- 조직
- 기타
- 빵
- 파리
- 통로
- 수행
- 권한
- 플라톤
- 플라톤 데이터 인텔리전스
- 플라토데이터
- 정책
- 게시하다
- 제시
- 교장
- 제작자
- 제공
- 제공
- 램
- 읽기
- 최근에
- 반영
- 회원가입
- 등록된
- 교체
- 필요
- 의지
- 얽매다
- 한정된
- 결과
- 직위별
- 역할
- 열
- 달리기
- 같은
- 찜하기
- 시나리오
- 섹션
- 선택된
- 연장자
- 세트
- 공유
- 공유
- 공유
- 단순화
- 스냅 사진
- 소프트웨어
- 소프트웨어 개발
- 소프트웨어 엔지니어
- 솔루션
- 스페셜티
- SQL
- 시작
- 단계
- 저장
- 저장
- 저장
- 전략의
- 전략
- 끈
- 이러한
- SUPPORT
- 지원
- 체계
- 테이블
- 팀
- 그
- XNUMXD덴탈의
- 그들의
- Bowman의
- 시간
- 시간 여행
- 시대
- 따라서 오른쪽 하단에
- 에
- 선로
- 여행
- 아래에
- 유일한
- 업데이트
- 업데이트
- 업그레이드
- USA
- 사용
- 사용자
- 세계 협정시
- 유효 기간
- 마케팅은:
- 확인
- 버전
- 가시성
- 눈에 보이는
- 방문
- 과
- 작업
- 일
- 쓰다
- 년
- 너의
- 제퍼 넷