아파치 빙산 시간이 지남에 따라 진화하고 변경되는 데이터 세트의 상태에 대한 메타데이터 정보를 캡처하는 대규모 분석 데이터 세트를 위한 개방형 테이블 형식입니다. SQL 테이블처럼 작동하는 고성능 테이블 형식을 사용하여 Spark, Trino, PrestoDB, Flink 및 Hive를 포함한 컴퓨팅 엔진에 테이블을 추가합니다. Iceberg는 데이터 레이크의 ACID 트랜잭션 지원과 스키마 및 파티션 진화, 시간 이동 및 롤백과 같은 기능으로 매우 유명해졌습니다.
Apache Iceberg 통합은 다음을 포함한 AWS 분석 서비스에서 지원됩니다. 아마존 EMR, 아마존 아테나및 AWS 접착제. Amazon EMR은 Iceberg를 실행할 수 있는 Spark, Hive, Trino 및 Flink로 클러스터를 프로비저닝할 수 있습니다. Amazon EMR 버전 6.5.0부터 다음을 수행할 수 있습니다. EMR 클러스터와 함께 Iceberg 사용 부트스트랩 작업이 필요하지 않습니다. 2022년 초에 AWS는 Apache Iceberg에서 제공하는 Athena ACID 트랜잭션의 일반 가용성을 발표했습니다. 최근 출시된 Athena 쿼리 엔진 버전 3 Iceberg 테이블 형식과 더 나은 통합을 제공합니다. AWS Glue 3.0 이상 Apache Iceberg 프레임워크를 지원합니다. 데이터 레이크용.
이 게시물에서는 최신 데이터 레이크에서 고객이 원하는 것과 Apache Iceberg가 고객 요구 사항을 해결하는 데 어떻게 도움이 되는지에 대해 논의합니다. 그런 다음 고성능의 진화하는 Iceberg 데이터 레이크를 구축하기 위한 솔루션을 살펴봅니다. 아마존 단순 스토리지 서비스 (Amazon S3) 삽입, 업데이트 및 삭제 SQL 문을 실행하여 증분 데이터를 처리합니다. 마지막으로 프로세스를 성능 조정하여 읽기 및 쓰기 성능을 개선하는 방법을 보여줍니다.
Apache Iceberg가 최신 데이터 레이크에서 고객이 원하는 것을 해결하는 방법
점점 더 많은 고객이 많은 사용자, 애플리케이션 및 분석 도구를 지원하기 위해 정형 및 비정형 데이터로 데이터 레이크를 구축하고 있습니다. ACID 트랜잭션, 레코드 수준 업데이트 및 삭제, 시간 이동 및 롤백과 같은 기능과 같은 데이터베이스를 지원하기 위한 데이터 레이크의 필요성이 증가하고 있습니다. Apache Iceberg는 Amazon S3의 비용 효율적인 페타바이트 규모 데이터 레이크에서 이러한 기능을 지원하도록 설계되었습니다.
Apache Iceberg는 개별 데이터 파일이 생성될 때 데이터 세트에 대한 풍부한 메타데이터 정보를 캡처하여 고객 요구 사항을 해결합니다. Iceberg 테이블의 아키텍처에는 다음 그림( ).
Iceberg 카탈로그는 현재 테이블 메타데이터 파일에 대한 메타데이터 포인터를 저장합니다. 선택 쿼리가 Iceberg 테이블을 읽을 때 쿼리 엔진은 먼저 Iceberg 카탈로그로 이동한 다음 현재 메타데이터 파일의 위치를 검색합니다. Iceberg 테이블이 업데이트될 때마다 테이블의 새 스냅샷이 생성되고 메타데이터 포인터는 현재 테이블 메타데이터 파일을 가리킵니다.
다음은 AWS Glue가 구현된 Iceberg 카탈로그의 예입니다. 데이터베이스 이름, Iceberg 테이블의 위치(S3 경로) 및 메타데이터 위치를 볼 수 있습니다.
메타데이터 계층에는 메타데이터 파일, 매니페스트 목록 및 계층 구조의 매니페스트 파일의 세 가지 유형의 파일이 있습니다. 계층 구조의 맨 위에는 테이블의 스키마, 파티션 정보 및 스냅샷에 대한 정보를 저장하는 메타데이터 파일이 있습니다. 스냅샷은 매니페스트 목록을 가리킵니다. 매니페스트 목록에는 매니페스트 파일의 위치, 매니페스트 파일이 속한 파티션, 추적하는 데이터 파일의 파티션 열에 대한 하한 및 상한과 같이 스냅샷을 구성하는 각 매니페스트 파일에 대한 정보가 있습니다. 매니페스트 파일은 데이터 파일과 파일 형식과 같은 각 파일에 대한 추가 세부 정보를 추적합니다. 세 파일 모두 계층 구조에서 작동하여 Iceberg 테이블의 스냅샷, 스키마, 파티셔닝, 속성 및 데이터 파일을 추적합니다.
데이터 계층에는 Iceberg 테이블의 개별 데이터 파일이 있습니다. Iceberg는 Parquet, ORC 및 Avro를 포함한 다양한 파일 형식을 지원합니다. Iceberg 테이블은 데이터 파일이 있는 파티션 위치만 가리키는 대신 개별 데이터 파일을 추적하기 때문에 쓰기 작업과 읽기 작업을 분리합니다. 언제든지 데이터 파일을 작성할 수 있지만 변경 사항을 명시적으로만 커밋하면 스냅샷 및 메타데이터 파일의 새 버전이 생성됩니다.
솔루션 개요
이 게시물에서는 Amazon S3에서 고성능 Apache Iceberg 데이터 레이크를 구축하는 솔루션을 안내합니다. SQL 문을 삽입, 업데이트 및 삭제하여 증분 데이터를 처리합니다. Iceberg 테이블을 조정하여 읽기 및 쓰기 성능을 향상시킵니다. 다음 다이어그램은 솔루션 아키텍처를 보여줍니다.
이 솔루션을 시연하기 위해 다음을 사용합니다. 아마존 고객 리뷰 S3 버킷의 데이터 세트(s3://amazon-reviews-pds/parquet/
). 실제 사용 사례에서는 S3 버킷에 저장된 원시 데이터입니다. 다음 코드를 사용하여 데이터 크기를 확인할 수 있습니다. AWS 명령 줄 인터페이스 (AWS CLI):
총 개체 수는 430개이고 총 크기는 47.4GiB입니다.
이 솔루션을 설정하고 테스트하기 위해 다음과 같은 고급 단계를 완료합니다.
- 변환된 데이터를 Iceberg 테이블 형식으로 저장하도록 선별된 영역에 S3 버킷을 설정합니다.
- Apache Iceberg에 대한 적절한 구성으로 EMR 클러스터를 시작합니다.
- EMR Studio에서 노트북을 생성합니다.
- Apache Iceberg에 대한 Spark 세션을 구성합니다.
- 데이터를 Iceberg 테이블 형식으로 변환하고 큐레이팅된 영역으로 데이터를 이동합니다.
- Athena에서 삽입, 업데이트 및 삭제 쿼리를 실행하여 증분 데이터를 처리합니다.
- 성능 튜닝을 수행합니다.
사전 조건
이 연습을 수행하려면 다음이 있어야 합니다. AWS 계정 과 AWS 자격 증명 및 액세스 관리 필요한 리소스를 프로비저닝할 수 있는 충분한 액세스 권한이 있는 (IAM) 역할.
데이터 레이크의 선별된 영역에서 Iceberg 데이터용 S3 버킷 설정
S3 버킷을 생성하려는 리전을 선택하고 고유한 이름을 제공합니다.
EMR 클러스터를 시작하여 Spark를 사용하여 Iceberg 작업 실행
다음에서 EMR 클러스터를 생성할 수 있습니다. AWS 관리 콘솔, Amazon EMR CLI 또는 AWS 클라우드 개발 키트 (AWS CDK). 이 게시물에서는 콘솔에서 EMR 클러스터를 생성하는 방법을 안내합니다.
- Amazon EMR 콘솔에서 다음을 선택합니다. 클러스터 생성.
- 왼쪽 메뉴에서 고급 옵션.
- 럭셔리 소프트웨어 구성, 최신 Amazon EMR 릴리스를 선택합니다. 2023년 6.9.0월 현재 최신 릴리스는 6.5.0입니다. Iceberg에는 릴리스 XNUMX 이상이 필요합니다.
- 선택 Jupyter엔터프라이즈 게이트웨이 과 불꽃 설치할 소프트웨어로.
- 럭셔리 소프트웨어 설정 편집, 고르다 구성 입력 들어가서
[{"classification":"iceberg-defaults","properties":{"iceberg.enabled":true}}]
. - 다른 설정은 기본값으로 두고 다음을 선택합니다. 다음 보기.
- 럭셔리 하드웨어, 기본 설정을 사용합니다.
- 왼쪽 메뉴에서 다음 보기.
- 럭셔리 클러스터 이름, 이름을 입력합니다. 우리는 사용
iceberg-blog-cluster
. - 나머지 설정은 변경하지 않고 그대로 두고 다음을 선택합니다. 다음 보기.
- 왼쪽 메뉴에서 클러스터 생성.
EMR Studio에서 노트북 생성
이제 콘솔의 EMR Studio에서 노트북을 생성하는 방법을 안내합니다.
- IAM 콘솔에서 EMR Studio 서비스 역할 생성.
- Amazon EMR 콘솔에서 다음을 선택합니다. EMR 스튜디오.
- 왼쪽 메뉴에서 시작하기.
XNUMXD덴탈의 시작하기 페이지가 새 탭에 나타납니다.
- 왼쪽 메뉴에서 스튜디오 만들기 새 탭에서.
- 이름을 입력하세요. 우리는 iceberg-studio를 사용합니다.
- EMR 클러스터 및 기본 보안 그룹과 동일한 VPC 및 서브넷을 선택합니다.
- 왼쪽 메뉴에서 AWS 자격 증명 및 액세스 관리 (IAM) 인증을 위해 방금 생성한 EMR Studio 서비스 역할을 선택합니다.
- 다음에 대한 S3 경로 선택 작업 공간 백업.
- 왼쪽 메뉴에서 스튜디오 만들기.
- Studio가 생성된 후 Studio 액세스 URL을 선택합니다.
- EMR Studio 대시보드에서 다음을 선택합니다. 작업 공간 만들기.
- 작업 공간의 이름을 입력하십시오. 우리는 사용
iceberg-workspace
. - 펼치기 고급 구성 선택하고 EMR 클러스터에 Workspace 연결.
- 이전에 생성한 EMR 클러스터를 선택합니다.
- 왼쪽 메뉴에서 작업 공간 생성.
- 작업 공간 이름을 선택하여 새 탭을 엽니다.
탐색 창에는 Workspace와 이름이 같은 노트북이 있습니다. 우리의 경우 빙산 작업 공간입니다.
- 노트북을 엽니 다.
- 커널을 선택하라는 메시지가 표시되면 다음을 선택하십시오. 불꽃.
Apache Iceberg에 대한 Spark 세션 구성
다음 코드를 사용하여 고유한 S3 버킷 이름을 제공합니다.
이렇게 하면 다음 Spark 세션 구성이 설정됩니다.
- Spark.sql.catalog.demo – Iceberg Spark 카탈로그 플러그인을 사용하는 demo라는 Spark 카탈로그를 등록합니다.
- Spark.sql.catalog.demo.catalog-impl – 데모 Spark 카탈로그는 AWS Glue를 물리적 카탈로그로 사용하여 Iceberg 데이터베이스 및 테이블 정보를 저장합니다.
- Spark.sql.catalog.demo.warehouse – 데모 Spark 카탈로그는 이 속성으로 정의된 루트 경로 아래에 모든 Iceberg 메타데이터 및 데이터 파일을 저장합니다.
s3://iceberg-curated-blog-data
. - spark.sql.확장 – Iceberg Spark SQL 확장에 대한 지원을 추가하여 Iceberg Spark 프로시저 및 일부 Iceberg 전용 SQL 명령을 실행할 수 있습니다(나중 단계에서 사용).
- Spark.sql.catalog.demo.io-impl – Iceberg는 사용자가 S3FileIO를 통해 Amazon S3에 데이터를 쓸 수 있도록 합니다. AWS Glue 데이터 카탈로그는 기본적으로 이 FileIO를 사용하고 다른 카탈로그는 io-impl 카탈로그 속성을 사용하여 이 FileIO를 로드할 수 있습니다.
데이터를 Iceberg 테이블 형식으로 변환
Amazon EMR의 Spark 또는 Athena를 사용하여 Iceberg 테이블을 로드할 수 있습니다. EMR Studio Workspace 노트북 Spark 세션에서 다음 명령을 실행하여 데이터를 로드합니다.
코드를 실행한 후 데이터 웨어하우스 S3 경로(s3://iceberg-curated-blog-data/reviews.db/all_reviews
): 데이터 및 메타데이터.
Athena에서 삽입, 업데이트 및 삭제 SQL 문을 사용하여 증분 데이터 처리
Athena는 Iceberg 테이블에 대해 읽기, 쓰기, 업데이트 및 최적화 작업을 수행하는 데 사용할 수 있는 서버리스 쿼리 엔진입니다. Apache Iceberg 데이터 레이크 형식이 증분 데이터 수집을 지원하는 방법을 보여주기 위해 데이터 레이크에서 삽입, 업데이트 및 삭제 SQL 문을 실행합니다.
Athena 콘솔로 이동하여 다음을 선택합니다. 쿼리 편집기. Athena 쿼리 편집기를 처음 사용하는 경우 다음을 수행해야 합니다. 쿼리 결과 위치 구성 이전에 생성한 S3 버킷이 됩니다. reviews.all_reviews 테이블이 쿼리에 사용 가능한지 확인할 수 있어야 합니다. 다음 쿼리를 실행하여 Iceberg 테이블을 성공적으로 로드했는지 확인합니다.
삽입, 업데이트 및 삭제 SQL 문을 실행하여 증분 데이터를 처리합니다.
성능 조정
이 섹션에서는 Apache Iceberg 읽기 및 쓰기 성능을 향상시키는 다양한 방법을 살펴봅니다.
Apache Iceberg 테이블 속성 구성
Apache Iceberg는 테이블 형식이며 테이블 속성을 지원하여 읽기, 쓰기 및 카탈로그와 같은 테이블 동작을 구성합니다. 테이블 속성을 조정하여 Iceberg 테이블의 읽기 및 쓰기 성능을 향상시킬 수 있습니다.
예를 들어, Iceberg 테이블에 대해 너무 많은 작은 파일을 쓰는 경우 쓰기 파일 크기를 구성하여 더 적지만 더 큰 크기의 파일을 작성하여 쿼리 성능을 향상시킬 수 있습니다.
비즈니스 재산 | 태만 | 상품 설명 |
write.target-파일-크기-바이트 | 536870912 (512 MB) | 이 바이트에 대해 대상으로 생성되는 파일의 크기를 제어합니다. |
다음 코드를 사용하여 테이블 형식을 변경합니다.
파티셔닝 및 정렬
쿼리를 빠르게 실행하려면 데이터를 적게 읽을수록 좋습니다. Iceberg는 쓰기 시 캡처하는 풍부한 메타데이터를 활용하고 스캔 계획, 파티셔닝, 프루닝, 최소/최대 값과 같은 열 수준 통계와 같은 기술을 활용하여 일치 레코드가 없는 데이터 파일을 건너뜁니다. 쿼리 스캔 계획 및 파티셔닝이 Iceberg에서 작동하는 방식과 이를 사용하여 쿼리 성능을 개선하는 방법을 안내합니다.
쿼리 스캔 계획
지정된 쿼리에 대해 쿼리 엔진의 첫 번째 단계는 쿼리에 필요한 테이블에서 파일을 찾는 프로세스인 검색 계획입니다. Iceberg 테이블에서 계획하는 것은 매우 효율적입니다. Iceberg의 풍부한 메타데이터를 사용하여 일치하는 데이터가 포함되지 않은 데이터 파일을 필터링하는 것 외에도 필요하지 않은 메타데이터 파일을 정리할 수 있기 때문입니다. 테스트에서 우리는 Athena가 Iceberg 형식으로 변환하기 전에 원본 데이터와 비교하여 Iceberg 테이블의 지정된 쿼리에 대해 50% 이하의 데이터를 스캔한 것을 관찰했습니다.
필터링에는 두 가지 유형이 있습니다.
- 메타데이터 필터링 – Iceberg는 스냅샷의 파일을 추적하기 위해 매니페스트 목록과 매니페스트 파일의 두 가지 수준의 메타데이터를 사용합니다. 먼저 매니페스트 파일의 인덱스 역할을 하는 매니페스트 목록을 사용합니다. 계획하는 동안 Iceberg는 모든 매니페스트 파일을 읽지 않고 매니페스트 목록의 파티션 값 범위를 사용하여 매니페스트를 필터링합니다. 그런 다음 선택한 매니페스트 파일을 사용하여 데이터 파일을 가져옵니다.
- 데이터 필터링 – 매니페스트 파일 목록을 선택한 후 Iceberg는 매니페스트 파일에 저장된 각 데이터 파일에 대한 파티션 데이터 및 열 수준 통계를 사용하여 데이터 파일을 필터링합니다. 계획하는 동안 쿼리 술어는 파티션 데이터의 술어로 변환되고 먼저 필터 데이터 파일에 적용됩니다. 그런 다음 열 수준 값 수, null 수, 하한 및 상한과 같은 열 통계를 사용하여 쿼리 술어와 일치할 수 없는 데이터 파일을 필터링합니다. 계획 시 데이터 파일을 필터링하기 위해 상한 및 하한을 사용함으로써 Iceberg는 쿼리 성능을 크게 향상시킵니다.
파티셔닝 및 정렬
파티셔닝은 동일한 키 열 값을 가진 레코드를 서면으로 함께 그룹화하는 방법입니다. 쿼리 스캔 계획: 데이터 필터링에서 이전에 설명한 것처럼 분할의 이점은 데이터의 일부에만 액세스하는 더 빠른 쿼리입니다. Iceberg는 열 값을 선택적으로 변환하여 파티션 값을 생성하는 방식으로 숨겨진 파티셔닝을 지원하여 파티셔닝을 간단하게 만듭니다.
사용 사례에서는 먼저 분할되지 않은 Iceberg 테이블에서 다음 쿼리를 실행합니다. 그런 다음 레코드를 필터링하기 위해 WHERE 조건 쿼리에 사용되는 리뷰 범주별로 Iceberg 테이블을 분할합니다. 파티셔닝을 사용하면 쿼리가 훨씬 적은 데이터를 스캔할 수 있습니다. 다음 코드를 참조하십시오.
분할되지 않은 all_reviews 테이블과 분할된 테이블에서 다음 select 문을 실행하여 성능 차이를 확인합니다.
다음 표는 성능이 약 50% 향상되고 스캔된 데이터가 70% 감소한 데이터 파티셔닝의 성능 향상을 보여줍니다.
데이터 세트 이름 | 분할되지 않은 데이터 세트 | 분할된 데이터 세트 |
런타임(초) | 8.20 | 4.25 |
스캔한 데이터(MB) | 131.55 | 33.79 |
런타임은 테스트에서 여러 번 실행되는 평균 런타임입니다.
파티셔닝 후 좋은 성능 향상을 보았습니다. 그러나 이것은 Iceberg 매니페스트 파일의 열 수준 통계를 사용하여 더 개선할 수 있습니다. 열 수준 통계를 효과적으로 사용하려면 쿼리 패턴을 기반으로 레코드를 추가로 정렬하려고 합니다. 쿼리에서 자주 사용되는 열을 사용하여 전체 데이터 세트를 정렬하면 각 데이터 파일이 특정 열에 대한 고유한 값 범위로 끝나는 방식으로 데이터가 재정렬됩니다. 쿼리 조건에서 이러한 열을 사용하면 쿼리 엔진이 데이터 파일을 추가로 건너뛸 수 있으므로 훨씬 더 빠른 쿼리가 가능합니다.
Copy-on-write 대 read-on-merge
데이터 레이크의 Iceberg 테이블에서 업데이트 및 삭제를 구현할 때 Iceberg 테이블 속성에 정의된 두 가지 접근 방식이 있습니다.
- 기록 중 복사 – 이 접근 방식을 사용하면 업데이트 또는 삭제와 같이 Iceberg 테이블에 변경 사항이 있을 때 영향을 받는 레코드와 연결된 데이터 파일이 복제되고 업데이트됩니다. 레코드는 복제된 데이터 파일에서 업데이트되거나 삭제됩니다. Iceberg 테이블의 새 스냅샷이 생성되고 최신 버전의 데이터 파일을 가리킵니다. 이로 인해 전체 쓰기 속도가 느려집니다. 충돌과 함께 동시 쓰기가 필요한 상황이 있을 수 있으므로 재시도가 발생해야 하며 이로 인해 쓰기 시간이 훨씬 더 늘어납니다. 반면에 데이터를 읽을 때는 별도의 프로세스가 필요하지 않습니다. 쿼리는 최신 버전의 데이터 파일에서 데이터를 검색합니다.
- 읽기 병합 – 이 접근 방식을 사용하면 Iceberg 테이블에 업데이트 또는 삭제가 있을 때 기존 데이터 파일이 다시 작성되지 않습니다. 대신 변경 사항을 추적하기 위해 새 삭제 파일이 생성됩니다. 삭제의 경우 삭제된 레코드로 새 삭제 파일이 생성됩니다. Iceberg 테이블을 읽을 때 삭제 레코드를 필터링하기 위해 검색된 데이터에 삭제 파일이 적용됩니다. 업데이트의 경우 업데이트된 레코드를 삭제된 것으로 표시하기 위해 새 삭제 파일이 생성됩니다. 그런 다음 해당 레코드에 대해 업데이트된 값으로 새 파일이 생성됩니다. Iceberg 테이블을 읽을 때 최신 변경 사항을 반영하고 올바른 결과를 생성하기 위해 검색된 데이터에 삭제 및 새 파일이 모두 적용됩니다. 따라서 후속 쿼리의 경우 데이터 파일을 삭제 및 새 파일과 병합하는 추가 단계가 발생하므로 일반적으로 쿼리 시간이 늘어납니다. 반면에 기존 데이터 파일을 다시 쓸 필요가 없기 때문에 쓰기가 더 빠를 수 있습니다.
두 접근 방식의 영향을 테스트하기 위해 다음 코드를 실행하여 Iceberg 테이블 속성을 설정할 수 있습니다.
Athena에서 업데이트, 삭제 및 SQL 문 선택을 실행하여 기록 중 복사와 읽기 중 병합의 런타임 차이를 보여줍니다.
다음 표에는 쿼리 런타임이 요약되어 있습니다.
질문 | 기록 중 복사 | 읽기 병합 | ||||
UPDATE | 삭제 | SELECT | UPDATE | 삭제 | SELECT | |
런타임(초) | 66.251 | 116.174 | 97.75 | 10.788 | 54.941 | 113.44 |
스캔한 데이터(MB) | 494.06 | 3.07 | 137.16 | 494.06 | 3.07 | 137.16 |
런타임은 테스트에서 여러 번 실행되는 평균 런타임입니다.
테스트 결과에서 알 수 있듯이 두 가지 접근 방식에는 항상 장단점이 있습니다. 사용할 접근 방식은 사용 사례에 따라 다릅니다. 요약하면 고려 사항은 읽기와 쓰기의 대기 시간으로 귀결됩니다. 다음 표를 참조하여 올바른 선택을 할 수 있습니다.
. | 기록 중 복사 | 읽기 병합 |
장점 | 더 빠른 읽기 | 더 빠른 쓰기 |
단점 | 비싼 쓰기 | 읽기 대기 시간 증가 |
언제 사용 하는가? | 빈번한 읽기, 드물게 업데이트 및 삭제 또는 대규모 배치 업데이트에 적합 | 업데이트 및 삭제가 빈번한 테이블에 적합 |
데이터 압축
데이터 파일 크기가 작은 경우 Iceberg 테이블에 수천 또는 수백만 개의 파일이 있을 수 있습니다. 이렇게 하면 I/O 작업이 크게 증가하고 쿼리 속도가 느려집니다. 또한 Iceberg는 데이터 세트의 각 데이터 파일을 추적합니다. 더 많은 데이터 파일은 더 많은 메타데이터로 이어집니다. 그러면 메타데이터 파일 읽기에 대한 오버헤드 및 I/O 작업이 증가합니다. 쿼리 성능을 향상시키려면 작은 데이터 파일을 더 큰 데이터 파일로 압축하는 것이 좋습니다.
Iceberg 테이블에서 레코드를 업데이트하고 삭제할 때 병합 시 읽기 접근 방식을 사용하면 많은 작은 삭제 또는 새 데이터 파일이 생성될 수 있습니다. 압축을 실행하면 이러한 모든 파일이 결합되고 최신 버전의 데이터 파일이 생성됩니다. 이렇게 하면 읽는 동안 조정할 필요가 없습니다. 더 빠른 쓰기 속도를 유지하면서 가능한 한 읽기에 영향을 적게 주기 위해 정기적인 압축 작업을 수행하는 것이 좋습니다.
다음 데이터 압축 명령을 실행한 다음 Athena에서 선택 쿼리를 실행합니다.
다음 표에서는 데이터 압축 전과 후의 런타임을 비교합니다. 약 40%의 성능 향상을 볼 수 있습니다.
질문 | 데이터 압축 전 | 데이터 압축 후 |
런타임(초) | 97.75 | 32.676 초 |
스캔한 데이터(MB) | 137.16 M | 189.19 M |
선택 쿼리는 all_reviews
업데이트 및 삭제 작업 후, 데이터 압축 전후의 테이블. 런타임은 테스트에서 여러 번 실행되는 평균 런타임입니다.
정리
솔루션 연습을 따라 사용 사례를 수행한 후 다음 단계를 완료하여 리소스를 정리하고 추가 비용을 방지하십시오.
- Athena에서 AWS Glue 테이블 및 데이터베이스를 삭제하거나 노트북에서 다음 코드를 실행합니다.
- EMR Studio 콘솔에서 다음을 선택합니다. 워크스페이스 탐색 창에서
- 생성한 Workspace를 선택하고 ..
- EMR 콘솔에서 다음으로 이동합니다. 스튜디오 페이지.
- 생성한 Studio를 선택하고 다음을 선택합니다. ..
- EMR 콘솔에서 다음을 선택합니다. 클러스터 탐색 창에서
- 클러스터를 선택하고 끝내다.
- 이 게시물에 대한 전제 조건의 일부로 생성한 S3 버킷 및 기타 리소스를 삭제합니다.
결론
이 게시물에서는 Apache Iceberg 프레임워크와 이것이 현대 데이터 레이크에서 우리가 안고 있는 몇 가지 문제를 해결하는 데 어떻게 도움이 되는지 소개했습니다. 그런 다음 Apache Iceberg를 사용하여 데이터 레이크에서 증분 데이터를 처리하는 솔루션을 안내했습니다. 마지막으로 사용 사례의 읽기 및 쓰기 성능을 개선하기 위한 성능 조정에 대해 자세히 알아봤습니다.
이 게시물이 데이터 레이크 솔루션에 Apache Iceberg를 채택할지 여부를 결정하는 데 유용한 정보를 제공하기를 바랍니다.
저자에 관하여
플로라 우 AWS Data Lab의 상주 아키텍트입니다. 그녀는 기업 고객이 데이터 분석 전략을 수립하고 솔루션을 구축하여 비즈니스 결과를 가속화하도록 돕습니다. 여가 시간에는 테니스, 살사 춤, 여행을 즐깁니다.
리 다니엘 Amazon Web Services의 선임 솔루션 아키텍트입니다. 그는 고객이 클라우드 서비스 및 전략을 개발, 채택 및 구현하도록 돕는 데 중점을 둡니다. 일하지 않을 때는 가족과 함께 야외에서 시간을 보내는 것을 좋아합니다.
- SEO 기반 콘텐츠 및 PR 배포. 오늘 증폭하십시오.
- 플라토 블록체인. Web3 메타버스 인텔리전스. 지식 증폭. 여기에서 액세스하십시오.
- 출처: https://aws.amazon.com/blogs/big-data/use-apache-iceberg-in-a-data-lake-to-support-incremental-data-processing/
- 10
- 100
- 11
- 2022
- 2023
- 7
- 9
- a
- 할 수 있는
- 소개
- 위의
- 가속
- ACCESS
- 액세스 관리
- 동작
- 행위
- 또한
- 추가
- 주소
- 구애
- 추가
- 채택
- 이점
- 후
- 반대
- All
- 수
- 항상
- 아마존
- 아마존 EMR
- Amazon Web Services
- 분석
- 분석
- 과
- 발표
- 아파치
- 어플리케이션
- 적용된
- 접근
- 구혼
- 적당한
- 아키텍처
- 관련
- 인증
- 유효성
- 가능
- 평균
- 피하기
- AWS
- AWS 접착제
- 기반으로
- 때문에
- 가
- 전에
- 이익
- 더 나은
- 사이에
- 더 큰
- 부트 스트랩
- 빌드
- 건물
- 사업
- 캡처
- 캡처
- 케이스
- 가지 경우
- 목록
- 카탈로그
- 범주
- 과제
- 이전 단계로 돌아가기
- 변경
- 검사
- 선택
- 왼쪽 메뉴에서
- 분류
- 클라우드
- 클라우드 서비스
- 클러스터
- 암호
- 단
- 열
- 결합
- 왔다
- 범하다
- 비교
- 완전한
- 계산
- 병발 사정
- 조건
- 구성
- 고려 사항
- 콘솔에서
- 매출 상승
- 변환
- 비용 효율적인
- 비용
- 수
- 만들
- 만든
- 생성
- 기획
- Current
- 고객
- 고객
- 댄스
- 계기반
- 데이터
- 데이터 분석
- 데이터 레이크
- 데이터 처리
- 데이터웨어 하우스
- 데이터베이스
- 데이터 세트
- 깊은
- 심해 잠수
- 태만
- 한정된
- Rescale과 함께 비즈니스를 가속화하는 방법에 대해 알아보세요.
- 보여
- 따라
- 설계
- 세부설명
- 개발
- 개발
- 차이
- 다른
- 토론
- 말라
- 아래 (down)
- 극적으로
- 드롭
- ...동안
- 마다
- 이전
- 초기의
- 편집자
- 효과적으로
- 효율적인
- 중
- 거림
- 사용 가능
- 가능
- 종료
- 엔진
- 엔진
- 엔터 버튼
- Enterprise
- 기업 고객
- 에테르 (ETH)
- 조차
- 진화
- 진화시키다
- 진화하는
- 예
- 현존하는
- 존재
- 설명
- 확장
- 여분의
- 을 용이하게
- 가족
- FAST
- 빠른
- 특징
- 그림
- 입양 부모로서의 귀하의 적합성을 결정하기 위해 미국 이민국에
- 파일
- 필터링
- 필터링
- 필터
- 최종적으로
- Find
- 먼저,
- 처음으로
- 집중
- 따라
- 수행원
- 체재
- 뼈대
- 빈번한
- 에
- 추가
- 게다가
- 일반
- 생성
- 얻을
- 주어진
- 간다
- 좋은
- 매우
- 그룹
- 손
- 발생
- 도움
- 도움이
- 도움이
- 숨겨진
- 계층
- 고수준
- 고성능
- 고성능
- 하이브
- 기대
- 방법
- How To
- 그러나
- HTML
- HTTPS
- IAM
- 통합 인증
- 신원 및 액세스 관리
- 영향
- 영향
- 구현
- 이행
- 구현
- 개선
- 개선하는
- 개량
- 향상
- in
- 포함
- 증가
- 증가
- 증가
- 색인
- 개인
- 정보
- 설치
- 를 받아야 하는 미국 여행자
- 완성
- 소개
- 격리
- IT
- 일월
- 작업
- 키
- 실험실
- 소금물
- 넓은
- 큰
- 숨어 있음
- 최근
- 최신 릴리스
- 층
- 레이어
- 리드
- 레벨
- 제한
- 라인
- 명부
- 작은
- 하중
- 위치
- 확인
- 제작
- 구축
- .
- 표
- 시장
- 경기
- 어울리는
- 병합
- 메타 데이터
- 수도
- 수백만
- 현대
- 배우기
- 움직임
- 여러
- name
- 이름
- 이동
- 카테고리
- 필요
- 필요
- 요구
- 신제품
- 수첩
- 대상
- 열 수
- 조작
- 행정부
- 최적화
- 최적화
- 주문
- 실물
- 기타
- 야외에서
- 전체
- 자신의
- 빵
- 부품
- 통로
- 패턴
- 수행
- 성능
- 물리적
- 계획
- 플라톤
- 플라톤 데이터 인텔리전스
- 플라토데이터
- 연주
- 플러그인
- 전철기
- 인기 문서
- 가능한
- 게시하다
- powered
- 전제 조건
- 절차
- 방법
- 처리
- 생산
- 속성
- 재산
- 제공
- 제공
- 제공
- 규정
- 범위
- 살갗이 벗어 진
- 원시 데이터
- 읽기
- 읽기
- 현실
- 최근에
- 추천
- 기록
- 반영
- 지방
- 레지스터들
- 정규병
- 공개
- 출시
- 나머지
- 필수
- 필요
- 자료
- 결과
- 결과
- 리뷰
- 풍부한
- 직위별
- 뿌리
- 달리기
- 달리는
- 같은
- 주사
- 초
- 섹션
- 보안
- 선택된
- 선택
- 서버리스
- 서비스
- 서비스
- 세션
- 세트
- 설정
- 설정
- 설정
- 영상을
- 표시
- 쇼
- 단순, 간단, 편리
- 상황
- 크기
- 느리게
- 작은
- 스냅 사진
- So
- 소프트웨어
- 해결책
- 솔루션
- 일부
- 불꽃
- 구체적인
- 속도
- 지출
- SQL
- 시작 중
- 주 정부
- 성명서
- 문
- 통계
- 단계
- 단계
- 아직도
- 저장
- 저장
- 저장
- 상점
- 전략들
- 전략
- 구조화
- 정형 및 비정형 데이터
- 스튜디오
- 서브넷
- 후속의
- 성공적으로
- 이러한
- 충분한
- 개요
- SUPPORT
- 지원
- 지원
- 지원
- 테이블
- 소요
- 복용
- 목표
- 작업
- 기법
- 테니스
- test
- 지원
- 테스트
- XNUMXD덴탈의
- 정보
- 국가
- 그들의
- 그것에 의하여
- 수천
- 세
- 을 통하여
- 시간
- 시간 여행
- 에
- 함께
- 너무
- 검색을
- 상단
- 금액
- 선로
- 거래 내역
- 변화
- 여행
- 여행
- 회전
- 유형
- 아래에
- 유일한
- 업데이트
- 업데이트
- 업데이트
- 업데이트
- URL
- 사용
- 유스 케이스
- 사용자
- 보통
- VAL
- 가치
- 마케팅은:
- 확인
- 버전
- 걸었다
- 연습
- 창고
- 시계
- 방법
- 웹
- 웹 서비스
- 뭐
- 여부
- 어느
- 동안
- 넓은
- 넓은 범위
- 의지
- 없이
- 작업
- 일하는
- 일
- 겠지
- 쓰다
- 쓰기
- 너의
- 제퍼 넷