아마존 아테나 데이터를 쉽게 분석할 수 있는 대화형 쿼리 서비스입니다. 아마존 단순 스토리지 서비스 (Amazon S3) 및 SQL 또는 Python을 사용하는 AWS, 온프레미스 또는 기타 클라우드 시스템에 상주하는 데이터 소스. Athena는 프로비저닝이나 구성 작업이 필요하지 않은 오픈 소스 Trino 및 Presto 엔진과 Apache Spark 프레임워크를 기반으로 구축되었습니다. Athena는 서버리스이므로 관리할 인프라가 없으며 실행하는 쿼리에 대해서만 비용을 지불합니다.
아파치 빙산 매우 큰 분석 데이터 세트를 위한 개방형 테이블 형식입니다. 대규모 파일 모음을 테이블로 관리하고 레코드 수준 삽입, 업데이트, 삭제 및 시간 여행 쿼리와 같은 최신 분석 데이터 레이크 작업을 지원합니다. Athena는 데이터에 Apache Parquet 형식을 사용하는 Apache Iceberg 테이블에 대한 읽기, 시간 이동, 쓰기 및 DDL 쿼리를 지원합니다. AWS Glue 데이터 카탈로그 그들의 메타 스토어를 위해.
기능 엔지니어링 원시 데이터(이미지, 텍스트 파일, 동영상 등)를 식별 및 변환하고, 누락된 데이터를 다시 채우고, 기계 학습(ML) 모델이 학습할 수 있도록 컨텍스트를 제공하기 위해 하나 이상의 의미 있는 데이터 요소를 추가하는 프로세스입니다. 데이터 라벨링은 예측, 컴퓨터 비전, 자연어 처리, 음성 인식 등 다양한 사용 사례에 필요합니다.
Athena의 기능과 결합된 Apache Iceberg는 데이터 과학자가 전체 데이터 세트를 복사하거나 다시 생성할 필요 없이 새로운 데이터 기능을 생성할 수 있는 간소화된 워크플로우를 제공합니다. 기능 엔지니어링을 위해 다른 서비스를 사용하지 않고 Athena에서 표준 SQL을 사용하여 기능을 생성할 수 있습니다. 데이터 과학자는 데이터 세트를 준비하고 복사하는 데 소요되는 시간을 줄이고 대신 데이터 기능 엔지니어링, 실험 및 대규모 데이터 분석에 집중할 수 있습니다.
이 게시물에서는 Apache Iceberg 오픈 테이블 형식과 함께 Athena를 사용하는 이점과 데이터 과학자를 위한 일반적인 기능 엔지니어링 작업을 단순화하는 방법을 검토합니다. Athena가 Apache Iceberg 형식의 기존 테이블을 변환한 다음, 열을 추가하고, 열을 삭제하고, 데이터 세트를 다시 생성하거나 복사하지 않고 테이블의 데이터를 수정하고, 이러한 기능을 사용하여 Apache Iceberg 테이블에 새 기능을 생성하는 방법을 보여줍니다.
솔루션 개요
데이터 과학자는 일반적으로 대규모 데이터 세트로 작업하는 데 익숙합니다. 데이터 세트는 일반적으로 JSON, CSV, ORC 또는 아파치 마루 형식 또는 빠른 읽기 성능을 위한 유사한 읽기 최적화 형식. 데이터 과학자는 종종 새로운 데이터 기능을 만들고 이러한 데이터 기능을 집계 및 보조 데이터로 다시 채웁니다. 역사적으로 이 작업은 Apache Parquet 형식의 기본 데이터가 있는 테이블 위에 보기를 생성하여 수행되었습니다. 이러한 열과 데이터는 런타임에 추가되거나 추가 열이 있는 새 테이블을 생성하여 수행되었습니다. 이 워크플로는 많은 사용 사례에 적합하지만 대규모 데이터 세트에는 비효율적입니다. 런타임에 데이터를 생성하거나 데이터 세트를 복사 및 변환해야 하기 때문입니다.
아테나가 소개한 ACID(Atomicity, Consistency, Isolation, Durability) 트랜잭션 INSERT, UPDATE, DELETE, MERGE 및 시간 여행 작업을 추가하는 기능 아파치 아이스버그 테이블. 이러한 기능을 통해 데이터 과학자는 데이터 세트를 복사 또는 변환하거나 보기로 추상화하는 것에 대해 걱정하지 않고 새로운 데이터 기능을 생성하고 기존 데이터 기능을 기존 데이터 세트에 드롭할 수 있습니다. 데이터 과학자는 기능 엔지니어링 작업에 집중하고 데이터 세트 복사 및 변환을 피할 수 있습니다.
Athena Iceberg UPDATE 작업은 Apache Iceberg 위치 삭제 파일과 새로 업데이트된 행을 동일한 트랜잭션의 데이터 파일로 작성합니다. 단일 UPDATE 문을 통해 레코드를 수정할 수 있습니다.
Athena 엔진 버전 3의 출시로 Apache Iceberg 테이블의 기능이 다음과 같은 작업 지원으로 향상되었습니다. SELECT로 테이블 만들기(CTAS) Iceberg 데이터의 수명 주기 관리를 간소화하는 MERGE 명령. CTAS를 사용하면 Apache Paquet과 같은 다른 형식의 테이블을 빠르고 효율적으로 만들 수 있습니다. 병합 조건부 업데이트, 삭제 또는 Iceberg 테이블에 행 삽입. 단일 문은 업데이트, 삭제 및 삽입 작업을 결합할 수 있습니다.
사전 조건
Athena 엔진 버전 3으로 Athena 작업 그룹을 설정하여 Apache Iceberg 테이블에서 CTAS 및 MERGE 명령을 사용합니다. Athena 작업 그룹에서 기존 Athena 엔진을 버전 3으로 업그레이드하려면 다음 지침을 따르십시오. 쿼리 성능을 높이고 더 많은 분석 기능에 액세스하려면 Athena 엔진 버전 3으로 업그레이드하십시오. 또는 참조 Athena 콘솔에서 엔진 버전 변경.
데이터 세트
시연을 위해 S3 버킷에 저장된 지난 몇 년간 무작위로 분산된 가상 판매 데이터 수백만 레코드가 포함된 Apache Parquet 테이블을 사용합니다. 다운로드 데이터 세트를 로컬 컴퓨터에 압축 해제하고 S3 버킷에 업로드합니다. 이 게시물에서는 데이터 세트를 다음 위치에 업로드했습니다. s3://sample-iceberg-datasets-xxxxxxxxxxx/sampledb/orders_and_customers/
.
다음 표는 테이블의 레이아웃을 보여줍니다. customer_orders
.
열 이름 | 데이터 형식 | 상품 설명 |
주문키 | 현 | 주문의 주문 번호 |
커스터키 | 현 | 고객 식별 번호 |
주문 상태 | 현 | 주문 상태 |
총 가격 | 현 | 총 주문 가격 |
주문일 | 현 | 주문 날짜 |
주문 우선 순위 | 현 | 주문 우선순위 |
서기 | 현 | 주문을 처리한 직원의 이름 |
선착순 | 현 | 배송우선 |
name | 현 | 고객 이름 |
주소 | 현 | 고객 주소 |
네이션키 | 현 | 고객 국가 키 |
전화 | 현 | 고객 전화번호 |
액트발 | 현 | 고객 계정 잔액 |
마케팅 세그먼트 | 현 | 고객 시장 부문 |
기능 엔지니어링 수행
데이터 과학자로서 우리는 수행하고자 합니다. 기능 엔지니어링 기존 데이터 세트의 각 고객에 대해 계산된 XNUMX년 총 구매와 XNUMX년 평균 구매를 추가하여 고객 주문 데이터에 데모 목적으로 우리는 customer_orders
에 있는 테이블 sampledb
다음 DDL 명령과 같이 Athena를 사용하는 데이터베이스. (기존 데이터 세트를 사용하고 이 게시물에 언급된 단계를 따를 수 있습니다.) customer_orders
데이터 세트가 생성되어 S3 버킷 위치에 저장됨 s3://sample-iceberg-datasets-xxxxxxxxxxx/sampledb/orders_and_customers/
마루 형식으로. 이 테이블은 Apache Iceberg 테이블이 아닙니다.
쿼리를 실행하여 테이블의 데이터 유효성을 검사합니다.
우리는 이 테이블에 새로운 기능을 추가하여 고객 판매에 대한 더 깊은 이해를 얻어 더 빠른 모델 교육과 더 가치 있는 통찰력을 얻을 수 있기를 원합니다. 데이터 세트에 새 기능을 추가하려면 customer_orders
Athena 테이블에서 Athena의 Apache Iceberg 테이블로. 발행 CTAS Apache Iceberg 형식으로 새 테이블을 생성하는 쿼리 문 customer_orders
테이블. 이때 각 고객별로 지난 XNUMX년(데이터셋의 최대 연도) 총 구매 금액을 가져오는 새로운 기능이 추가됩니다.
다음 CTAS 쿼리에서 이름이 지정된 새 열 one_year_sales_aggregate
기본값은 다음과 같습니다. 0.0
데이터 유형 double
추가되고 table_type
가 ICEBERG
:
다음 쿼리를 실행하여 새 열이 있는 Apache Iceberg 테이블의 데이터를 확인합니다. one_year_sales_aggregate
값 0.0
:
새 기능의 값을 채우고 싶습니다. one_year_sales_aggregate
지난 해(데이터 세트의 최대 연도)의 구매를 기반으로 각 고객의 총 구매 금액을 가져오기 위해 데이터 세트에서. Athena를 사용하여 Apache Iceberg 테이블에 MERGE 쿼리 문을 실행하여 one_year_sales_aggregate
특징 :
다음 쿼리를 실행하여 작년에 각 고객의 총 지출에 대한 업데이트된 값의 유효성을 검사합니다.
기존 Apache Iceberg 테이블에 또 다른 기능을 추가하여 각 고객의 작년 평균 구매 금액을 계산하고 저장하기로 결정했습니다. ALTER 쿼리 문을 실행하여 기능에 대한 기존 테이블에 새 열을 추가합니다. one_year_sales_average
:
이 새 기능에 값을 채우기 전에 기능의 기본값을 설정할 수 있습니다. one_year_sales_average
에 0.0
. Athena에서 동일한 Apache Iceberg 테이블을 사용하여 UPDATE 쿼리 문을 실행하여 새 기능의 값을 다음과 같이 채웁니다. 0.0
:
다음 쿼리를 실행하여 지난 해 각 고객의 평균 지출에 대한 업데이트된 값이 다음으로 설정되어 있는지 확인합니다. 0.0
:
이제 새 기능의 값을 채우고 싶습니다. one_year_sales_average
데이터 세트에서 작년(데이터 세트의 최대 연도)의 구매를 기반으로 각 고객의 평균 구매 금액을 가져옵니다. Athena 엔진을 사용하여 Athena의 기존 Apache Iceberg 테이블에 MERGE 쿼리 문을 실행하여 기능 값을 채웁니다. one_year_sales_average
:
각 고객의 평균 지출에 대한 업데이트된 값을 확인하려면 다음 쿼리를 실행하십시오.
추가 데이터 기능이 데이터 세트에 추가되면 데이터 과학자는 일반적으로 ML 모델 교육을 진행하고 Amazon Sagemaker 또는 동등한 도구 세트를 사용하여 추론합니다.
결론
이 게시물에서는 Apache Iceberg와 함께 Athena를 사용하여 기능 엔지니어링을 수행하는 방법을 시연했습니다. 또한 CTAS 쿼리를 사용하여 Apache Parquet 형식의 기존 데이터 세트에서 Athena에 Apache Iceberg 테이블을 생성하고, ALTER 쿼리를 사용하여 Athena의 기존 Apache Iceberg 테이블에 새 기능을 추가하고, UPDATE 및 MERGE 쿼리 문을 사용하여 기존 열의 기능 값.
CTAS 쿼리를 사용하여 빠르고 효율적으로 테이블을 생성하고 MERGE 쿼리 문을 사용하여 한 단계에서 테이블을 동기화하여 데이터 준비를 간소화하고 Apache Iceberg와 함께 Athena를 사용하여 기능을 변환할 때 작업을 업데이트하는 것이 좋습니다. 의견이나 피드백이 있으면 의견 섹션에 남겨주세요.
저자에 관하여
비벡 고탐 AWS Professional Services에서 데이터 레이크를 전문으로 하는 데이터 설계자입니다. 그는 AWS에서 데이터 제품, 분석 플랫폼 및 솔루션을 구축하는 기업 고객과 함께 일합니다. 최신 데이터 플랫폼을 구축 및 설계하지 않을 때 Vivek은 새로운 여행지를 탐험하고 하이킹을 가는 것을 좋아하는 음식 애호가입니다.
미하일 베인슈타인 Amazon Web Services의 솔루션 아키텍트입니다. Mikhail은 의료 및 생명 과학 고객과 협력하여 환자의 결과를 개선하는 데 도움이 되는 솔루션을 구축합니다. Mikhail은 데이터 분석 서비스를 전문으로 합니다.
나레쉬 고탐 20년의 경험을 가진 AWS의 데이터 분석 및 AI/ML 리더로서 고객이 데이터 기반 의사 결정을 통해 고객의 역량을 강화할 수 있도록 고가용성, 고성능 및 비용 효율적인 데이터 분석 및 AI/ML 솔루션을 설계하도록 돕는 일을 즐깁니다. . 여가 시간에는 명상과 요리를 즐깁니다.
하르샤 타디파르티 AWS에서 분석을 담당하는 수석 솔루션 설계자입니다. 그는 데이터베이스 및 분석에서 복잡한 고객 문제를 해결하고 성공적인 결과를 제공하는 것을 즐깁니다. 직장 밖에서는 가능할 때마다 가족과 시간을 보내고 영화를 보고 여행하는 것을 좋아합니다.
- SEO 기반 콘텐츠 및 PR 배포. 오늘 증폭하십시오.
- EVM 금융. 탈중앙화 금융을 위한 통합 인터페이스. 여기에서 액세스하십시오.
- 퀀텀미디어그룹. IR/PR 증폭. 여기에서 액세스하십시오.
- PlatoAiStream. Web3 데이터 인텔리전스. 지식 증폭. 여기에서 액세스하십시오.
- 출처: https://aws.amazon.com/blogs/big-data/accelerate-data-science-feature-engineering-on-transactional-data-lakes-using-amazon-athena-with-apache-iceberg/
- :있다
- :이다
- :아니
- :어디
- $UP
- 10
- 100
- 12
- 17
- 20
- 20년
- 23
- 27
- 7
- a
- 소개
- 가속
- ACCESS
- 달성
- 계정
- 행위
- 더하다
- 추가
- 첨가
- 추가
- 주소
- AI / ML
- 또한
- 이기는하지만
- 아마존
- 아마존 아테나
- 아마존 세이지 메이커
- Amazon Web Services
- 양
- an
- 분석
- 분석
- 분석
- 분석하다
- 분석하는
- 및
- 다른
- 어떤
- 아파치
- 아파치 스파크
- 있군요
- AS
- At
- 가능
- 평균
- 피하기
- AWS
- AWS 전문 서비스
- 기반으로
- BE
- 때문에
- 된
- 혜택
- 빌드
- 건물
- 내장
- by
- 계산 된
- CAN
- 기능
- 가지 경우
- 분류
- 클라우드
- 컬렉션
- 단
- 열
- 결합
- 댓글
- 공통의
- 복잡한
- 계산
- 컴퓨터
- 컴퓨터 비전
- 구성
- 이 포함되어 있습니다
- 문맥
- 변하게 하다
- 요리
- 사자
- 수정
- 비용 효율적인
- 만들
- 만든
- 만들기
- 고객
- 고객
- 데이터
- 데이터 분석
- 데이터 레이크
- 데이터 과학
- 데이터 과학자
- 데이터 중심
- 데이터베이스
- 데이터베이스
- 데이터 세트
- 날짜
- 결정하다
- 의사 결정
- 깊이
- 태만
- 배달
- 제공
- 보여
- 시연
- 설계
- 목적지
- 분산
- 하기
- 더블
- 드롭
- 내구성
- 마다
- 쉽게
- 효율적인
- 효율적으로
- 노력
- 중
- 요소
- 능력을 키우다
- 가능
- 격려
- 엔진
- 엔지니어링
- 엔진
- 강화
- Enterprise
- 기업 고객
- 매니아
- 전체의
- 동등한
- 에테르 (ETH)
- 현존하는
- 경험
- 탐험
- 외부
- 그릇된
- 가족
- FAST
- 빠른
- 특색
- 특징
- 피드백
- 파일
- 초점
- 따라
- 수행원
- 식품
- 럭셔리
- 체재
- 프레임 워크
- 무료
- 에
- 일반적으로
- 생성
- 얻을
- Go
- 그룹
- 하둡
- 있다
- he
- 건강 관리
- 도움
- 도움이
- 고성능
- 고도로
- 하이킹
- 그의
- 역사적으로
- 하이브
- 방법
- How To
- HTML
- HTTPS
- 식별
- 식별
- if
- 형상
- 개선
- in
- 포함
- 증가
- 비효율적
- 인프라
- 삽입물
- 통찰력
- 를 받아야 하는 미국 여행자
- 명령
- 대화형
- 으로
- 소개
- 격리
- 발행물
- IT
- JPG
- JSON
- 레이블링
- 소금물
- 언어
- 넓은
- 성
- 레이아웃
- 리더
- 배우다
- 배우기
- 휴가
- 생활
- 생명과학
- wifecycwe
- 제한
- 지방의
- 위치
- loves
- 기계
- 기계 학습
- 확인
- 제작
- 관리
- 구축
- 관리하다
- .
- 시장
- 일치하는
- 최대
- 의미있는
- 명상
- 말하는
- 병합
- 백만
- 누락
- ML
- 모델
- 모델
- 현대
- 수정
- 배우기
- 영화 산업
- name
- 이름
- 민족
- 자연의
- 자연어
- 자연 언어 처리
- 필요
- 필요
- 신제품
- 새로운 기능
- 새로운 기능
- 새로운
- 아니
- 번호
- of
- 자주
- on
- ONE
- 만
- 열 수
- 오픈 소스
- 조작
- 행정부
- or
- 명령
- 기타
- 우리의
- 결과
- 외부
- 과거
- 지불
- 수행
- 성능
- 전화
- 플랫폼
- 플라톤
- 플라톤 데이터 인텔리전스
- 플라토데이터
- 부디
- 위치
- 가능한
- 게시하다
- 준비
- 가격
- 교장
- 문제
- 방법
- 처리
- 처리
- 제품
- 링크를
- 제공
- 매수
- 구매
- 목적
- Python
- 쿼리
- 빨리
- 살갗이 벗어 진
- 원시 데이터
- 읽기
- 인식
- 기록
- 기록
- 감소
- 공개
- 필수
- 결과
- 리뷰
- 열
- 달리기
- 달리는
- 현자
- 판매
- 같은
- 규모
- 과학
- 과학
- 과학자
- 과학자
- 섹션
- 서버리스
- 서비스
- 서비스
- 세트
- 몇몇의
- 표시
- 쇼
- 비슷한
- 단순, 간단, 편리
- 단순화
- 단순화
- 단일
- So
- 솔루션
- 해결
- 지우면 좋을거같음 . SM
- 불꽃
- 전문가
- 전문적으로
- 연설
- 음성 인식
- 지출
- 지출
- SQL
- 표준
- 성명서
- 문
- 단계
- 단계
- 저장
- 저장
- 저장
- 유선
- 끈
- 성공한
- 이러한
- SUPPORT
- 지원
- 시스템은
- 테이블
- 태스크
- 작업
- 그
- XNUMXD덴탈의
- 병합
- 그들의
- 그들
- 그때
- 그곳에.
- Bowman의
- 이
- 시간
- 시간 여행
- 에
- 상단
- 금액
- Train
- 트레이닝
- 거래
- 거래상의
- 변환
- 변화
- 여행
- 유형
- 밑에 있는
- 이해
- 업데이트
- 업데이트
- 업데이트
- 업그레이드
- 업로드
- 사용
- 사용
- 보통
- 유효 기간
- 가치 있는
- 가치
- 마케팅은:
- 여러
- 확인
- 버전
- 대단히
- 를 통해
- 동영상
- 관측
- 시력
- 필요
- 였다
- 손목 시계
- we
- 웹
- 웹 서비스
- 했다
- 언제
- 때마다
- 어느
- 동안
- 누구
- 과
- 없이
- 작업
- 워크플로우
- 작업 그룹
- 일하는
- 일
- 겠지
- 쓰다
- year
- 년
- 당신
- 너의
- 제퍼 넷
- 지퍼