728x90
이 글에서는 RAG 시스템의 실제 적용 대상인 Apache Iceberg의 개념과 구조를 살펴보고,
그 안의 핵심 파일인 metadata.json이 RAG의 문서 임베딩 대상으로 왜 적합한지를 설명드립니다.
❄️ Iceberg란 무엇인가요?
Apache Iceberg는 대규모 테이블을 데이터 레이크 상에서 관리하기 위한 테이블 포맷입니다.
Parquet, ORC와 같은 파일을 하나의 테이블처럼 관리할 수 있도록 해주는 메타데이터 기반 시스템이에요.
🧩 Iceberg 테이블의 구조
Iceberg는 물리적인 데이터 파일 외에도 다음과 같은 메타데이터 파일을 사용합니다.
구성 요소 | 설명 |
metadata.json | 테이블 스키마, 스냅샷 정보, 파티션 구조 등을 포함한 중심 메타정보 |
manifest.list | 어떤 데이터 파일이 존재하는지에 대한 목록 |
manifest 파일들 | 개별 파일들의 경로, 파티션 정보 등 세부 정보 |
💡 RAG 시스템에서 가장 유용한 것은 metadata.json입니다.
📄 metadata.json 안에는 어떤 정보가 있나요?
{
"format-version": 2,
"table-uuid": "1234-5678",
"schema": {
"fields": [
{ "id": 1, "name": "id", "type": "long" },
{ "id": 2, "name": "product_name", "type": "string" }
]
},
"partition-spec": [
{ "source-id": 2, "field-id": 1000, "name": "product_name", "transform": "identity" }
]
}
✅ 위 내용을 기반으로, 우리는 아래처럼 텍스트 문서로 가공할 수 있습니다.
📂 Table: product_info
🧬 Columns: id (long), product_name (string)
🧩 Partitioned by: product_name
이런 형태로 변환된 문서를 벡터화하여 RAG에 사용할 수 있습니다.
🔗 Iceberg 메타데이터와 RAG의 연결
Iceberg 역할 | RAG 활용 방식 |
테이블 스키마 | 컬럼 기반 검색, 테이블 추천 |
파티션 정보 | 필터 조건 안내, 쿼리 자동 생성 기초 |
snapshot 정보 | 변경 이력 안내, 데이터 최신성 파악 |
➡️ 결국 Iceberg의 구조는 “테이블 설명서” 역할을 하며, RAG에 매우 적합한 문서입니다.
🎯 왜 metadata.json을 문서로 임베딩하는가?
이유 | 설명 |
✅ 구조가 명확하다 | 테이블 이름, 컬럼, 파티션이 명시적으로 기록됨 |
✅ 문서화하기 쉽다 | JSON → 자연어로 쉽게 가공 가능 |
✅ 검색 가치가 높다 | 사용자의 질문과 매우 높은 관련성 |
🛠️ 실전 준비: 다음 단계에서 할 일
- Iceberg metadata.json을 불러오기
- 컬럼/테이블 정보를 자연어 텍스트로 가공하기
- 이 텍스트를 벡터로 변환하여 Chroma에 저장하기
이렇게 하면, 사용자의 질문(“고객 정보를 담은 테이블은?”)에
→ RAG가 metadata.json 기반으로 정확히 응답할 수 있습니다.
📎 요약 및 핵심 정리
- Iceberg는 데이터 레이크의 테이블 메타데이터 관리 시스템입니다.
- 중심 파일인 metadata.json은 테이블 구조, 컬럼, 파티션 정보를 포함하고 있습니다.
- 이 파일을 문서로 가공하여 벡터화하면 RAG 시스템에 활용할 수 있습니다.
728x90
'LLM & Generative AI > RAG in Practice' 카테고리의 다른 글
[LangChain RAG 구축 시리즈 Ep.06] 📝 텍스트 vs 구조형 데이터: 어떻게 임베딩할까? (1) | 2025.04.05 |
---|---|
[LangChain RAG 구축 시리즈 Ep.05] 🧩 왜 metadata.json을 문서처럼 다뤄야 할까? (1) | 2025.04.05 |
[LangChain RAG 구축 시리즈 Ep.03] 🧠 LLM은 어디까지 알고 있을까? 외부 지식의 필요성 (1) | 2025.04.05 |
[LangChain RAG 구축 시리즈 Ep.02] 📦 Embedding의 원리와 벡터의 의미 (1) | 2025.04.05 |
[LangChain RAG 구축 시리즈 Ep.01] 🔍 RAG를 구성하는 핵심 컴포넌트 4가지 (1) | 2025.04.05 |