AWS Glue Crawler
먼저 간단하게 AWS Glue란 완전 관리형 추출, 변환 및 로드 (ETL) 서비스입니다. 그렇다면 glue crawler는 무엇일까요? glue crawler란 지정한 데이터 스토어를 읽어 Data Catalog에 테이블을 생성합니다. 이렇게 생성된 Data Caralog에서 글루에서 지원하는 ETL작업을 할 수 있습니다. 데이터 스토어로 사용될 수 있는 리소스는 다음과 같습니다.
- 액세스 방식 : 네이티브 클라이언트
- S3
- DynamoDB
- Delta Lake
- JDBC
- Amazon Redshift
- RDS
- Amazon Aurora
- MariaDB
- Microsoft SQL Server
- MySQL
- Oracle
- PostgreSQL
- MongoDB Client
- MongoDB
- Amazon DocumentDB
Glue Crawler의 작동방식
Glue Crawler는 다음과 같은 순서로 정보를 분류합니다.
- 데이터의 포맷과 스키마 속성을 결정한다
- 데이터를 테이블 OR 파티션으로 분류한다
- Data Catalog에 작성한다
이때, 스키마를 추론할 수 있도록 크롤러가 정의될 때 데이터 포맷을 결정하기 위한 분류자를 선택해야 합니다.
Glue에서는 다음과 같은 다양한 기본 분류자들을 가지고 있습니다.
- JSON : json
- Apache Avro : arvo
- Apache ORC : orc
- Apache Parquet : parquet
- XML : xml
- CSV : csv
외에도 DynamoDB, MySQL 등등 여러 가지 형식이 있습니다.
S3와 같이 여러 폴더가 존재하는 경우에는 폴더들의 형식이 비슷하고, 최종적으로 존재하는 파일들이 모두 동일한 포맷이라면 ( ex: parquet ) 폴더 이름에 따른 파티션이 있는 테이블을 생성합니다.
그리고 글루 크롤러는 계속 같은 데이터를 조회하지 않도록 Incremental Crawls이라는 옵션을 제공합니다. 만약 크롤러가 24시간마다 한 번씩 작동한다고 하면 매번 저번에 읽었던 데이터까지 읽고 크롤링을 완료할 것인데. 이러면 시간적으로나 비용적으로나 효율이 좋지 않기 때문에, 새로 추가된 데이터만 읽을 수 있습니다.