본문으로 건너뛰기
김신건의 로그

[AWS] Glue DataBrew: 시각적 데이터 준비

· 수정 · 📖 약 3분 · 1,175자/단어 #aws #cloud #glue #databrew #data-prep #no-code #etl
AWS Glue DataBrew, Glue DataBrew, DataBrew, data preparation, no-code ETL, 데이터 준비

정의

AWS Glue DataBrew데이터 분석가와 데이터 사이언티스트를 위한 시각적 (no-code) 데이터 준비 도구. AWS Glue 제품군의 일부지만 별도 UI 를 갖고 SQL/Spark 코드 없이 250+ 개 사전 정의 변환으로 데이터를 클리닝, 정규화, 변환.

대상 사용자: 데이터 사이언티스트, 애널리스트, 비즈니스 사용자 (엔지니어 아님).

Glue Studio vs Glue DataBrew

같은 Glue 제품군이지만 목적이 다름.

Glue StudioGlue DataBrew
대상 사용자데이터 엔지니어데이터 분석가, 사이언티스트
UI 방식노드 그래프 (source → transform → sink)스프레드시트 (컬럼별 조작)
변환 표현Spark 코드 생성 (Python/Scala)Recipe (선언형 스텝)
탐색성낮음 (파이프라인 실행 후 확인)높음 (실시간 프리뷰)
변환 수임의 (Spark)250+ 사전 정의
머신러닝별도이상값/PII 자동 감지, 통계 프로파일
적합대규모 배치 ETL데이터 탐색 + 소규모 정제

핵심 개념

Dataset

DataBrew 가 참조하는 데이터 소스.

Project

Dataset + Recipe 조합의 작업 공간. 인터랙티브 편집.

Recipe

순서대로 실행되는 변환 스텝의 집합. JSON 으로 저장, 버전 관리, 재사용 가능.

[
  {
    "Action": {
      "Operation": "REMOVE_MISSING",
      "Parameters": {"sourceColumn": "email"}
    }
  },
  {
    "Action": {
      "Operation": "CHANGE_DATA_TYPE",
      "Parameters": {"sourceColumn": "amount", "targetDataType": "double"}
    }
  },
  {
    "Action": {
      "Operation": "STANDARDIZE_TEXT",
      "Parameters": {"sourceColumn": "country", "standardizeMode": "UPPERCASE"}
    }
  }
]

Job

Recipe 를 dataset 에 적용해 실제 결과를 저장.

Job 유형:

  • Recipe Job: Recipe 를 데이터에 적용, 결과를 S3 등에 저장
  • Profile Job: 데이터 통계 (min, max, null, distinct, 히스토그램, 이상값) 생성

변환 종류 (250+ 개)

카테고리예시
Cleaning공백 제거, null 처리, 중복 제거, 특수문자 제거
Format대소문자 변환, 날짜 포맷, 통화, 전화번호
Structural컬럼 분할/합치기, pivot/unpivot, transpose
CombineJoin, Union
StatisticalStandardize, normalize (z-score, min-max), outliers
Text정규식 추출, translate, tokenize
Date/TimeParse, format, extract components, timezone
Math사칙연산, 통계 함수, 조건부
PII자동 감지, mask, hash, delete
NLP감정 분석 (일부), 언어 감지

데이터 프로파일링

Profile Job 을 실행하면 데이터 품질 리포트 자동 생성.

포함:

  • 컬럼별 통계 (min, max, mean, median, stddev)
  • Null / distinct / duplicate 카운트
  • 값 분포 히스토그램
  • 상관관계 (correlation matrix)
  • 이상치 (outlier) 감지
  • PII 감지 (이름, 이메일, 주소, 신용카드 등)
  • 데이터 품질 규칙 (Data Quality Rules) 결과

아키텍처

flowchart LR
    subgraph Sources["소스"]
        S3In[("S3 파일")]
        Cat[("Glue Data Catalog")]
        RDS[("RDS/Redshift")]
        SaaS[SaaS 커넥터]
    end

    Sources --> DS[Dataset]
    DS --> Proj[Project]
    Proj -->|"인터랙티브<br/>편집"| Rec[Recipe]

    Rec --> RJ[Recipe Job]
    DS --> PJ[Profile Job]

    RJ --> Out[("S3 출력<br/>CSV/Parquet/JSON")]
    PJ --> Report[("S3 프로파일 리포트")]

요금

  • Interactive Session: $1.00 / 30분 세션 (Project 편집)
  • Recipe Job: $0.48 / node-hour
  • Profile Job: $0.48 / node-hour

계산 예:

매일 recipe job 10분 실행 (2 nodes):
  2 × (10/60) × $0.48 = $0.16 /일
  = ~$5 /월

Glue Spark ETL 대비 저렴 (단순 정제 용도).

실전 예제

1. CSV 를 정제해 Parquet 로

Dataset: s3://raw/customer.csv (100 GB)
Recipe:
  1. REMOVE_DUPLICATES on customer_id
  2. STANDARDIZE_TEXT on country (UPPERCASE)
  3. CHANGE_DATA_TYPE on signup_date (STRING -> DATE)
  4. REPLACE_MISSING on email with 'unknown@domain'
  5. DELETE_COLUMN ssn                      // PII 제거
  6. HASH_STRING on phone_number             // PII masking
Job:
  Output: s3://curated/customer/ (Parquet, SNAPPY)

2. 데이터 품질 리포트 (Profile Job)

Dataset: s3://raw/orders.parquet
Profile Job:
  Output: s3://profiles/orders/report.json
  Includes:
    - order_amount: min=0, max=1M, mean=50, stddev=100
    - Outliers: 12 rows (amount > $10K)
    - customer_email: PII detected
    - country: 32 distinct values

3. 여러 소스 조인

Dataset A: s3://sales/orders.csv
Dataset B: Glue Catalog 의 customers 테이블
Recipe:
  1. JOIN on customer_id
  2. AGGREGATE by country: SUM(amount)
  3. TOP_N n=10 by revenue
Job: Redshift 로 적재

Glue DataBrew 언제 쓰나

적합:

  • 데이터 사이언티스트가 Jupyter 로 데이터 탐색 (대안: pandas)
  • 애널리스트가 원본 CSV 를 BI 용으로 정제
  • 데이터 품질 감사 (Profile Job)
  • PII 감지 자동화 (한 번)
  • 프로토타이핑, 파일럿

부적합:

  • 대규모 배치 ETL (수 TB / 시간) - Glue SparkEMR
  • 실시간 스트리밍 - Managed Flink / Firehose
  • 복잡한 커스텀 로직 - Glue Spark
  • 프로덕션 grade CI/CD - 코드 기반 (dbt / Glue)

다른 도구 비교

도구사용자강점약점
DataBrew애널리스트No-code, 시각적, PII 감지규모/커스터마이징 제한
Glue Studio데이터 엔지니어Spark 파워학습 곡선
dbt애널리틱스 엔지니어SQL + 테스트 + lineageELT 만
Trifacta애널리스트DataBrew 원류, 성숙유료
pandas / polars개발자유연, 코드규모

함정

WARNING

DataBrew 는 대규모 ETL 아님. 100 GB 이상 반복 정제는 Glue SparkEMR 이 저렴/빠름.

CAUTION

Interactive Session 을 켜두고 idle = 세션당 $1/30분 계속 청구. 사용 후 반드시 종료.

WARNING

Recipe 는 순서 의존. 스텝 순서 바꾸면 결과 달라짐. Version 관리 필수.

IMPORTANT

Recipe 는 Spark 로 변환 실행. 매우 큰 데이터에는 partition/parallel 튜닝 불가.

CAUTION

Profile Job 도 유료 (node-hour). 매일 실행하면 비용 누적. 필요할 때만.

WARNING

CI/CD 자동화 어려움. Recipe JSON 을 Git 관리 하되, 배포는 AWS SDK 로 직접 스크립팅 필요.

관련 위키

이 글의 용어 (13개)
[AWS] Amazon RDS (Relational Database Service)cloud
정의 Amazon RDS (Relational Database Service) 는 AWS 가 관리하는 관계형 데이터베이스 서비스 입니다. 6개 엔진 (MySQL, PostgreS…
[AWS] Amazon Redshiftcloud
정의 Amazon Redshift 는 AWS 가 관리하는 페타바이트 규모 컬럼형 데이터 웨어하우스 입니다. 2012년 PostgreSQL 8.0.2 를 기반으로 시작해 MPP (…
[AWS] Athena: 서버리스 SQL on S3cloud
정의 Amazon Athena 는 S3 에 있는 데이터를 서버 없이 SQL 로 쿼리 하는 서비스. 클러스터 프로비저닝, 스키마 로딩, 인덱스 생성 없이 데이터 파일 (Parque…
[AWS] Data Firehose: 서버리스 스트림 적재cloud
정의 Amazon Data Firehose (구 Kinesis Data Firehose, 2024-02 이름 변경) 는 스트리밍 데이터를 받아 S3/Redshift/OpenSea…
[AWS] EMR: 관리형 빅데이터 클러스터cloud
정의 Amazon EMR (Elastic MapReduce) 은 Hadoop / Spark 등 오픈소스 빅데이터 프레임워크를 관리형 클러스터로 제공 하는 AWS 서비스. AWS …
[AWS] Glue: 서버리스 ETL + Data Catalogcloud
정의 AWS Glue 는 서버리스 ETL + 통합 메타데이터 카탈로그 플랫폼. Apache Spark 로 데이터 변환을 실행하고, Hive 호환 Data Catalog 로 스키마…
[AWS] Managed Service for Apache Flink (구 Kinesis Data Analytics)cloud
정의 Amazon Managed Service for Apache Flink (구 Amazon Kinesis Data Analytics) 는 스트리밍 데이터를 실시간으로 처리 (…
[AWS] S3: object storage, storage classes, lifecyclecloud
정의 S3 = AWS 의 object storage. bucket + key + object. 11 9's durability (99.999999999%), 무한 확장. 2026…
[DB] DynamoDB: PK + SK, single-table design, GSI / LSIdatabase-internals
정의 DynamoDB 는 AWS 의 fully managed key-value + document NoSQL. low-latency, infinite scale, schemale…
데이터 레이크data-engineering
정의 데이터 레이크 (Data Lake) 는 구조 여부와 무관하게 모든 종류의 데이터를 원본 형식 그대로 저장하는 중앙 저장소. 스키마를 미리 강제하지 않고 (schema-on-…
데이터 웨어하우스data-engineering
정의 데이터 웨어하우스 (Data Warehouse, DW) 는 여러 운영 시스템에서 흘러 들어온 이력 데이터를 통합해, 대규모 분석 쿼리를 빠르게 실행하도록 최적화된 중앙 저장…
Apache Parquetdata-engineering
정의 Apache Parquet 은 분석 쿼리에 최적화된 오픈소스 컬럼형 이진 파일 포맷. 2013년 Twitter + Cloudera 가 Google Dremel 논문 (201…
ETL / ELTdata-engineering
정의 ETL = Extract (추출) + Transform (변환) + Load (적재). 여러 소스에서 데이터를 뽑아 정제한 뒤 데이터 웨어하우스 에 저장하는 파이프라인. E…

💬 댓글

사이트 검색 / 명령어

검색

스크롤 = 확대/축소 · 드래그 = 이동 · 0 = 원래 크기 · ESC = 닫기