S3 호환 오브젝트 스토리지 위에 스키마-온-리드로 원본을 보존하고, 필요 시 테이블 포맷(예: Iceberg/Delta 유사)을 적용해 ACID·타임트래블을 확보합니다.
솔루션데이터 레이크 · 피처 스토어요금: 별도문의
데이터 레이크 · 피처 스토어
오브젝트 스토리지 기반 데이터 레이크와 피처 스토어를 한 번에. 배치/스트리밍 수집, 거버넌스, 비용 최적화, 오프라인·온라인 일관성까지 운영에 필요한 모든 요소를 표준 방식으로 제공합니다.
CDC/파일/NFS/스트리밍(Kafka·MQTT)까지 표준 커넥터로 ELT/ETL을 자동화합니다.
오프라인(학습)과 온라인(추론) 피처를 단일 정의로 관리. 포인트-인-타임 조인, 백필, TTL 지원.
카탈로그/계보/품질검사, IAM·암호화, 행/열 단위 접근제어로 컴플라이언스를 충족합니다.
Spark/Trino/DuckDB, Airflow/dbt 유사 워크플로와 손쉽게 연동.
수명주기/티어링(핫·웜·콜드), 파케/지노 압축, 지능형 샘플링으로 저장·쿼리 비용을 절감.
참고 아키텍처(요약)
Storage Layer
오브젝트 스토리지(레이크), 파일/NFS(존재 시), 카탈로그 메타스토어.
Ingest Layer
DB CDC, 파일 드랍, 로그/이벤트 스트림(Kafka/MQTT), 배치 업로드.
Transform Layer
ELT/ETL 파이프라인, 스키마 진화, 품질검사/검증, 테이블 포맷 커밋.
Serve Layer
BI/SQL, 데이터 제품, 피처 스토어(오프라인·온라인), 벡터/검색.
예시: 배치 적재 스크립트
# 가상 예시: 파케(Parquet)로 변환 후 레이크에 업로드 python transform.py --input nfs://logs/app/*.json --out /tmp/app.parquet cli storage cp /tmp/app.parquet s3://lake/raw/app/ingest_date=2025-09-01/ # 스키마 등록/검증 (옵션) cli catalog register s3://lake/raw/app/ --table app_raw --format parquet
예시: 스트리밍 머저(업서트)
# 스트림 -> 테이블 포맷으로 MERGE(업서트) (의사 코드)
stream = read_stream("kafka://topic=events").withWatermark("ts", "10m")
merge_into(
target="s3://lake/bronze/events_table",
source=stream,
keys=["user_id","event_id"],
when_matched="update",
when_not_matched="insert"
)수집 커넥터/패턴
| 소스 | 방식 | 주기 | 비고 |
|---|---|---|---|
| RDBMS | CDC(Log-based)/스냅샷 | 실시간~시간별 | PK/증분 칼럼, 재처리/백필 지원 |
| 파일/NFS | 드랍 폴더 감시 | 분/시간별 | 스키마 진화, 파티션(날짜/지역) |
| 스트리밍 | Kafka/MQTT/웹훅 | 실시간 | Exactly-once(옵션), 딜리버리 보장 |
| 앱/로그 | 에이전트/수집기 | 실시간~분 | JSON/Parquet 전처리 |
피처 스토어 구성
| 영역 | 설명 | 비고 |
|---|---|---|
| Feature Registry | 피처/엔티티/소스 정의의 단일 진실(메타) | 버전/상태/소유자 |
| Offline Store | 데이터 레이크 상 테이블(학습용) | 대량 스캔/타임트래블 |
| Online Store | 저지연 K/V 또는 캐시 | 수 ms 응답, TTL |
| PIT Join | 포인트-인-타임 조인 | 누수 방지 |
| Backfill | 과거 기간 피처 재계산 | 재현성 |
| 모니터링 | 드리프트/결측/범위 체크 | 품질지표 |
예시: 피처 정의(YAML)
project: retail
entities:
- name: user
join_key: user_id
features:
- name: user_txn_amt_7d
dtype: float
source: s3://lake/silver/transactions/
transform: rollup(sum(amount), window=7d, by=user_id)
- name: user_last_visit
dtype: timestamp
source: s3://lake/bronze/events/
transform: last(ts, by=user_id)
materialization:
offline: table://lake/gold/features/
online: kv://feature-online/예시: 온라인 적재(의사 코드)
# 배치 계산된 오프라인 피처 -> 온라인 K/V로 머티리얼라이즈
features = read_table("table://lake/gold/features/")
write_online(features.select("user_id","user_txn_amt_7d","user_last_visit"))
# 추론 시 조회
f = online_get(keys=[{"user_id": 123}])
model.predict(features=f)거버넌스/보안(요약)
| 영역 | 내용 |
|---|---|
| 카탈로그/계보 | 데이터셋/피처 메타, 데이터 라인리지 시각화 |
| 품질/검증 | 스키마 검사, 분포/범위/결측 체크, 경보 |
| 보안/IAM | 역할·정책 기반 접근제어, 키 관리, 서명 URL |
| 암호화 | 전송/저장 암호화, 버킷 정책 |
| RLS/CLS | 행/열 수준 마스킹, 민감정보 태깅 |
| 감사로그 | 읽기/쓰기/정책 변경 추적, 장기 보관 |
운영 지표
수집 지연 — 랙/토픽별 LAG, 워터마크
잡 신뢰도 — 성공률·재시도·처리량
스토리지 — 버킷/테이블 크기, 콜드 비중
피처 신선도 — 머티리얼라이즈 지연
운영 팁
티어링 — 핫(최근 30일)·웜·콜드로 비용 절감
스키마 진화 — 추가 칼럼은 허용·중단 칼럼은 마이그레이션
샘플링 — 개발/QA는 샘플·프로드는 전체
DR — 교차 리전 복제, 버킷 버저닝/락
요금 안내
요금: 별도문의
저장 용량/요청 수(읽기·쓰기), 전송량, 카탈로그/검증/라인리지 옵션, 온라인 스토어 QPS/레플리카 등 지표로 산정됩니다.
데이터 레이크와 피처 스토어를 한 번에 시작하세요
소스·보존 정책·예상 쿼리/추론 QPS를 알려주시면 아키텍처와 견적을 드립니다.
데이터 레이크·피처 스토어 문의
ℹ️
개인정보 처리 안내
문의 응대를 위해서만 사용되며 일정 기간 후 파기됩니다.