Amazon DEA-C01: 데이터 카탈로깅 및 메타데이터 관리 — 학습 가이드
다음의 일부입니다: Amazon Data Engineer Associate DEA-C01 — 학습 가이드. 검증된 답안으로 연습하기: Amazon 시험 허브, 또는 다음에서 시간 제한 모의고사 풀기: ExamRoll.io.
이 도메인은 AWS 데이터 플랫폼 전반에서 데이터를 검색, 쿼리, 거버넌스할 수 있게 해주는 메타데이터 계층을 다룹니다. 효과적인 카탈로깅 및 메타데이터 관리는 분석의 마찰을 줄이고 다운스트림 소비자가 스키마, 파티션, 액세스 정책, 리니지를 찾을 수 있도록 보장합니다. 이 영역의 AWS 서비스인 Glue Data Catalog, Glue Schema Registry, Lake Formation, Athena 통합, DataBrew는 검색, 스키마 진화, 거버넌스, 프로파일링을 위한 상호 보완적인 도구를 제공합니다. 이러한 서비스들이 어떻게 상호 작용하는지, 구성 세부 정보, 일반적인 장애 모드를 이해하는 것은 운영 안정성과 보안에 필수적입니다.
AWS Glue Data Catalog 구조 및 운영
Glue Data Catalog는 데이터베이스, 테이블, 파티션, 연결, 사용자 정의 분류자를 위한 리전별 중앙 집중식 메타데이터 리포지토리입니다. 핵심 기본 요소는 다음과 같습니다:
- Database: 논리적 컨테이너 (aws cli 사용:
undefined
).
- Table: 데이터셋을 설명합니다 (serde, 입출력 형식, 열, tableType
undefined
). 콘솔, Glue API 또는 CloudFormation을 통해 생성/업데이트할 수 있습니다. 예:
undefined
.
- Partition: 파티션 키 값과 S3 접두사 간의 매핑. 파티션은 Glue 크롤러(
undefined
)로 관리하거나 명시적으로 추가(
undefined
)할 수 있습니다.
운영 패턴:
- 검색을 위한 크롤러: 변화하는 S3 레이아웃에 맞춰 크롤러를 예약하고, 분류자 순서(CSV/JSON/Parquet)를 선택하며, 증분 업데이트를 위한 크롤러 정책을 설정합니다.
- 프로그래밍 방식 제어: 이벤트 기반 S3 도착 데이터가 있을 경우, 크롤러에만 의존하기보다는 Glue API나 Lambda를 사용하여 파티션을 추가하는 것을 선호합니다.
- 카탈로그 복제: Glue Data Catalog는 리전별 서비스입니다. 다중 리전 읽기를 고려할 경우, 각 리전에서 크롤러를 실행하거나, 메타데이터 복제 자동화를 구축하거나, 리소스 연결 패턴을 사용하는 것을 고려합니다. 설계 결정은 비용, 일관성 요구 사항, 리전 간 쿼리 패턴에 따라 달라집니다.
결정 기준:
- 스키마 감지가 필요하고 데이터 형식이 이기종인 경우 크롤러를 사용합니다. 스키마가 엄격하고 예측 가능한 대용량 데이터셋의 경우 명시적인 테이블 생성을 사용합니다.
- 작은 파일이 높은 빈도로 도착하는 경우, 크롤러 지연을 피하고 Glue API 비용을 줄이기 위해
undefined
또는 Lambda 기반 파티션 관리를 사용합니다.
스키마 검색 및 진화
Schema Registry와 Glue 스키마는 스트리밍 및 장기적인 생산자-소비자 계약을 위해 Avro, JSON, Protobuf를 지원합니다. 주요 기능:
- 콘솔 또는 CLI를 통해 스키마를 등록합니다 (
undefined
).
- 호환성 모드: BACKWARD (소비자가 새 데이터를 읽을 수 있음), FORWARD (새 소비자가 이전 데이터를 읽을 수 있음), FULL (둘 다 가능). 소비자 배포 패턴에 따라 선택합니다.
- 스키마 강제 적용: 스트리밍의 경우, 레지스트리를 Kinesis Data Streams, MSK 또는 Kafka 클라이언트 및 AWS SDK와 통합하여 내장된 스키마 버전 및 유효성 검사를 통해 직렬화/역직렬화합니다.
실용적인 구성 및 진화 패턴:
- 소비자가 많은 Avro의 경우, BACKWARD 호환성을 사용하여 기본값이 있는 새 필드를 추가할 수 있도록 허용하고, 호환성을 깨는 삭제는 피합니다.
- 팀 간의 엄격한 계약 진화를 위해, 전체 호환성을 요구하고 스키마 유효성 검사를 실행하는 CI 단계를 통해 스키마 변경을 제어합니다.
- 필드가 선택 사항이고 스키마가 유동적인 JSON의 경우, 허용적인 기본값을 가진 스키마 진화를 사용하되, 소비자가 조용히 깨지는 것을 방지하기 위해 카탈로그에 메타데이터를 버전 관리합니다.
결정 기준:
- 스트리밍 이벤트와 여러 소비자가 표준 스키마를 필요로 할 때 Schema Registry를 사용합니다. 형식(Parquet/ORC)이 읽기 시 스키마를 제공하는 배치 데이터셋의 경우 Glue 테이블 스키마를 사용합니다.
- 모든 소비자를 제어할 수 있는지(FORWARD를 조정할 수 있는지) 또는 안전한 추가적 변경이 필요한지(BACKWARD를 선택)를 평가하여 호환성 모드를 선택합니다.
Lake Formation을 사용한 데이터 리니지 및 거버넌스
Lake Formation은 Glue Data Catalog를 기반으로 세분화된 액세스 제어, 감사, 리니지 제어 기능을 제공합니다. 핵심 기능:
- LF-Tags: 데이터베이스, 테이블, 열에 적용되는 태그 기반 액세스 제어. Lake Formation에서 LF-Tags를 생성하고, 키:값 쌍을 할당한 다음, 리소스 기반 권한 부여 대신 태그 기반 권한 부여를 통해 IAM 보안 주체에게 권한을 부여합니다.
- 열 수준 제어: LF-Tags를 사용하여 열을 마스킹하거나 제한합니다. Lake Formation 콘솔 또는
undefined
을 사용하여 열 수준 권한을 구성합니다.
- 리니지 및 감사: CloudTrail 및 Glue 작업 지표를 활성화하여 ETL 작업의 리니지를 캡처합니다. 카탈로그의 Glue 작업 북마크 및 작업 북마크 메타데이터를 사용하여 처리된 데이터를 추적합니다.
구성 패턴:
- 작고 일관된 LF-Tag 키 세트(예: sensitivity:public/private/PII)를 정의하고, 크롤러 구성이나 후처리 코드를 사용하여 테이블 생성 시 또는 Glue 크롤러를 통해 태그 지정을 자동화합니다.
- Lake Formation 위임된 관리자 역할을 통해 관리를 위임하고, IAM 수준의 S3 액세스를 제한하면서 분석 팀에 Lake Formation 권한을 부여합니다.
결정 기준:
- 많은 소비자에 걸쳐 중앙 집중식, 열 수준, 태그 기반 제어가 필요하고 거버넌스/감사 기능이 필수일 때 Lake Formation을 사용합니다.
- 액세스 제어 요구 사항이 단순하다면(버킷 수준), IAM+S3 정책으로 충분할 수 있습니다. 세분화된 카탈로그 통합 제어를 위해서는 Lake Formation을 사용합니다.
Athena와 Glue 카탈로그 통합
Athena는 메타데이터를 위해 Glue 데이터 카탈로그에 의존합니다. 일반적인 통합 지점 및 운영 관련 조정 사항은 다음과 같습니다.
- 파티션 처리: Athena는 Glue 카탈로그에서 파티션을 읽습니다. 새로운 S3 파티션이 추가되면 카탈로그를 업데이트해야 합니다. 옵션:
- Athena에서
undefined
을 실행하거나, 해당 SQL과 함께
undefined
를 사용하여 테이블 위치 아래에서 발견된 파티션을 새로고침합니다.
- S3 PUT 이벤트 발생 시 프로그래밍 방식으로 파티션을 추가하려면
undefined
를 사용합니다(이벤트 기반 흐름에 권장).
undefined
,
undefined
,
undefined
,
undefined
와 같은 테이블 속성을 설정하여 파티션 프로젝션을 사용합니다. 이는 Glue 조회를 완전히 피할 수 있게 해주며, 파티션 수가 매우 많을 때 필수적입니다.
- 쿼리 성능 및 비용 트레이드오프:
- 파티션 프로젝션은 Glue API 호출을 제거하고 작은 파티션이 많을 때 지연 시간을 크게 줄여주지만, 결정적인(deterministic) 파티션 명명 규칙이 필요합니다.
undefined
은 가끔 발생하는 애드혹(ad-hoc) 데이터 도착 시 간단하게 사용할 수 있지만, 대규모 데이터 세트에서는 느릴 수 있습니다.
Glue DataBrew 보완:
- 코드 없는 프로파일링 및 변환을 위해 DataBrew를 사용합니다. DataBrew가 Glue 카탈로그 테이블이나 S3 경로를 가리키게 하고, 프로파일링 작업을 실행하고, 레시피를 생성한 후, 출력을 다시 S3나 새로운 Glue 테이블로 게시합니다.
- 탐색적 품질 검사를 위해 DataBrew를 사용하고, 복잡한 Spark 로직이 필요한 경우 나중에 Glue ETL에서 프로덕션화할 변환을 생성합니다.
결정 기준:
- 파티션이 많고 예측 가능한 스키마(날짜 기반/숫자 기반)를 따를 때 파티션 프로젝션을 사용합니다.
- 이벤트 기반의 거의 실시간 수집을 위해 프로그래밍 방식의 Glue 파티션 업데이트를 사용합니다.
undefined
은 가끔 발생하는 백필(backfill)이나 자동화를 사용할 수 없을 때만 실행합니다.
일반적인 함정과 결정 기준
- S3에 데이터가 도착한 후 Glue 파티션이 업데이트되지 않아 Athena 쿼리가 실패함: 크롤러에만 의존하는 것을 피해야 합니다. 가끔 업데이트가 필요할 때는
undefined
를 실행하거나, S3 이벤트 발생 시
undefined
을 호출하거나, 예측 가능한 대규모 파티션 세트에는 파티션 프로젝션을 구현합니다.
- 잘못된 스키마 레지스트리 호환성 모드 선택으로 소비자(consumer)가 손상됨: 추가적인 변경과 소비자 안정성을 위해서는 BACKWARD를 선택하고, 생산자(producer)가 이전 소비자와 호환되어야 할 때는 FORWARD를, 양방향 모두 안전해야 할 때는 FULL을 선택합니다. CI에서 소비자 스키마에 대해 변경 사항을 검증합니다.
- Glue 데이터 카탈로그가 글로벌이라고 가정함: 카탈로그는 리전별로 존재합니다. 리전 간 액세스를 위해서는 복제를 설계하거나 대상 리전에서 카탈로그를 운영해야 합니다. Glue 메타데이터가 자동으로 여러 리전에서 사용 가능하다고 가정해서는 안 됩니다.
- Lake Formation 권한 없이 IAM S3 액세스만 부여함: Athena와 Lake Formation은 카탈로그 수준 권한을 강제합니다. 항상 IAM 정책 외에 Lake Formation 권한(그리고 LF-Tag가 사용되는 경우 LF-Tag 권한)을 부여해야 합니다.
- 과도한 파티션 세분화: 너무 작은 파티션을 많이 사용하면 쿼리 계획 및 메타데이터 오버헤드에 해를 끼칩니다. 더 큰 단위의 파티션(분 단위 대신 일 단위)을 선호하거나 파티션 프로젝션을 사용합니다.
- DataBrew 역할 권한 무시: DataBrew 작업에는 Glue 및 S3 권한이 있는 서비스 역할이 필요합니다. 데이터 세트가 암호화된 경우 역할에 Glue:GetTable, S3 읽기/쓰기, kms:Decrypt 권한이 있는지 확인합니다.
실용적인 문제: 사용 사례 시나리오
Acme Retail은 시간별 판매 파일을 S3에 날짜/시간 파티션으로 수신하며, 분석가들은 Athena에서 이 데이터를 쿼리합니다. 로드 후, Glue 데이터 카탈로그에 파티션이 보이지 않아 사용자는 쿼리 실패와 오래된 결과를 보게 됩니다.
- S3 PUT 이벤트 알림을 구현하여 새 파티션을 즉시 등록하는
undefined
을 호출하는 Lambda 함수를 실행합니다. 2. 오래된 데이터나 백필(backfill)의 경우,
undefined
을 실행하는 Athena 쿼리를 예약하거나, 알려진 범위에 대해
undefined
을 실행합니다. 3. 파티션이 엄격한 날짜/시간 명명 규칙을 따르는 경우, Glue 테이블에서 파티션 프로젝션을 활성화하여(
undefined
로 설정하고 year/month/day/hour 속성 정의) 카탈로그 새로고침 비용을 제거합니다. 4. 민감도에 따라 테이블에 LF-Tag를 추가하고 분석가에게 Lake Formation 권한을 부여하여 Athena 쿼리가 허용되고 관리되도록 합니다. 5. Glue DataBrew를 사용하여 스테이징 환경에서 새로운 시간별 파일을 프로파일링하여 스키마 드리프트를 감지합니다. 스키마 변경이 발견되면 Glue 스키마 레지스트리에 새 스키마 버전을 등록하고 프로덕션 배포 전에 호환성을 검증합니다.
근거: 자동 파티션 등록 또는 프로젝션은 Athena 쿼리를 중단시키는 메타데이터 지연을 제거합니다. 이를 Lake Formation 거버넌스와 결합하면 안전한 액세스를 보장하고, DataBrew 기반 프로파일링은 스키마 드리프트를 조기에 발견하며, Glue 스키마 레지스트리는 스트리밍 및 배치 소비자를 호환되지 않는 스키마 변경으로부터 보호합니다.
← 데이터 저장 및 레이크 아키텍처 · 모든 도메인 · 데이터 변환 및 처리 →
이 문제 연습하기 → · ExamRoll.io에서 시간 제한 연습 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
시험 합격하기 →