티스토리 뷰

데이터 카탈로그

데이터의 스키마 정의

 

서비스

- aws glue

 

AWS Glue

  • AWS 의 ETL서비스
  • 크롤러가 데이터 소스(원본)에서 스키마를 추론하여 정의하고 데이터 카탈로그에 등록(메타데이터 작성)해줌 
    • 크롤러는 S3의 파티션 구조를 자동으로 식별
  • 후처리로 csv파일을 형식이 지정된 데이터인 parquet으로 변환 작업 -> 두 스키마가 함께 존재 가능
    • 열 스토리지 형식으로 스캔  데이터  양을 줄여서 쿼리도 빠르고 비용 절감도 가능

 

AWS Athena

  • presto 기반 SQL 사용
  • S3 데이터 직접 쿼리 가능 => 스캔 비용이 과금되기 때문에 파티셔닝이 중요
  • Redshift 에서도 쿼리 가능

 

S3로 데이터 스토리지등록 및 lake formation 등록 예시

1. S3버킷의 특정경로에 csv 파일이 있음

2. AWS Lake Formation 으로 해당 버킷을 Data lake locations 으로 등록 및 권한부여

3. AWS Lake Formation 으로  Data lake locations  를 이용해 Database 생성

-> Lake Formation은 AWS Glue 데이터 카탈로그를 사용해 데이터 레이크, 데이터 원본, 변환, 대상에 대한 메타데이터를 저장합니다. 데이터 원본과 대상에 대한 메타데이터는 데이터베이스와 테이블의 형태입니다. 테이블에는 스키마 정보, 파티션 정보, 데이터 위치 같은 기본 데이터 관련 정보가 저장됩니다. 데이터베이스는 테이블의 모음입니다.

4. AWS Glue 에 들어가서 Add tables using crawler 를 선택하여 위의 S3버킷등록 및 권한 부여

-> 크롤러는 데이터 스토어에 연결하고 분류자의 우선순위 목록을 통해 진행하여 데이터의 스키마를 결정합니다. 그런 다음 데이터 카탈로그에 메타데이터 테이블을 생성합니다.

5. crawler 실행하여 테이블에 데이터를 추가

6. AWS Athena 에서 AWSDataCatalog 데이터와 해당데이터베이스 이름을 선택하여 데이터 쿼리

 

Parquet 으로 데이터변환 예시

1. AWS Gliue 에서 ETL Jobs 선택후 편집기 실행

  • data source 로 위의 데이터베이스와 table 에는 data 선택
  • data target 을 추가하고, parquet 형식과 압축 타입을 선택
  • job detail 에서 script filename 을  ParquetConversion.py 처럼  선택하고 실행

2. AWS Glue 에 들어가서 해당 크롤러 들어가고 다시한번 크롤러를 돌리기

3. Data catalog 섹션에서 table 을 선택하면 새로운 parquet 테이블이 생겨있음

4. Athena 에서 두 테이블의 성능을 비교

-> 원본의 경우 열 형식 데이터 구조 덕분에 Data scanned 크기가 훨씬 더 작습니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함