datachain-ai/datachain
The Context Layer for unstructured data: typed, versioned datasets over S3, GCS, Azure
DataChain – 비정형 데이터를 위한 버전 관리 및 쿼리 가능한 데이터셋용 Python 라이브러리
개요
- S3, GCS, Azure 또는 로컬 디스크에 저장된 파일을 타입이 지정되고 버전 관리되는 데이터셋으로 처리하는 Python 패키지입니다.
- 경량 SQLite 기반 Dataset DB를 구축하여 스키마(Pydantic 사용), 파일 포인터, 리니지, 벡터 임베딩을 저장함으로써 원본 파일을 이동하지 않고도 1초 미만의 필터링, 조인, 집계 및 유사도 검색을 가능하게 합니다.
- 선택적 Knowledge Base 계층은 이 메타데이터를 인간과 LLM 에이전트가 읽을 수 있는 markdown으로 내보내며, Skill을 통해 Claude, Cursor, Codex, GitHub Copilot 또는 Pi를 위한 데이터 인식 에이전트 하네스를 설치할 수 있습니다.
주요 구성 요소
| 구성 요소 | 역할 |
|---|---|
| Compute Engine | 파일에 대한 병렬 Python 처리 (비동기 I/O, 체크포인팅, 증분 업데이트). |
| Dataset DB | Pydantic 스키마, 버전 관리된 데이터셋 정의 및 벡터 저장; 쿼리는 SQLite에서 직접 실행됩니다. |
| Knowledge Base | 에이전트와 문서화에 유용한 데이터셋을 설명하는 자동 생성 markdown. |
| Agent Harness / Skill | read_storage, map, save 등을 LLM 에이전트에 노출하여 데이터에 대해 추론하고 조작할 수 있게 합니다. |
| Studio (cloud service) | 공유 데이터셋 레지스트리, 분산 컴퓨팅, 액세스 제어 및 리니지 시각화를 위한 선택적 호스팅 UI. |
일반적인 워크플로우
- 스토리지 읽기 –
dc.read_storage('s3://bucket/**/*.jpg', anon=True, delta=True)를 통해 파일의 지연 컬렉션을 생성합니다. - 스키마 정의 – Pydantic 모델을 작성합니다. 매핑 함수의 반환 타입이 데이터셋 스키마가 됩니다.
- 매핑 / 변환 – 각 파일에 Python UDF (
.map(info=get_info))를 적용합니다. DataChain은 배치 처리, 체크포인팅을 관리하며 새 파일이나 변경된 파일만 다시 처리합니다. - 저장 –
.save('pets_images')를 통해 결과를 버전 관리된 데이터셋 (pets_images@1.0.0)으로 등록합니다. - 쿼리 – 유연한 API (
filter,mutate,order_by,limit)를 사용하여 Dataset DB에서 직접 빠른 SQL 스타일 작업이나 벡터 유사도 검색을 실행합니다. - 지식 베이스 –
dc-knowledge생성을 실행하여 LLM 에이전트가 읽을 수 있는 markdown을 생성합니다. - 에이전트 주도 파이프라인 – 설치된 스킬을 통해 LLM(예: Claude Code)이 자연어 프롬프트에서 전체 파이프라인을 생성할 수 있습니다.
중요한 이유
- 데이터 복사 불필요 – 데이터셋은 메타데이터와 포인터일 뿐이며, 원본 파일은 클라우드 버킷에 그대로 유지됩니다.
- 버전 관리 및 재현성 – 모든 파이프라인 단계는 이름이 지정된 불변의 데이터셋 버전이므로 롤백하거나 결과를 재사용하기 쉽습니다.
- 확장 가능한 쿼리 – SQLite 기반 엔진은 수백만 개의 행을 밀리초 단위로 필터링하고 조인할 수 있어 메모리 내 pandas보다 훨씬 강력합니다.
- 에이전트 준비 완료 – 스킬이 LLM 에이전트와 데이터를 연결하여 데이터셋 스키마를 이해하고, 조인을 수행하며, 코드를 자동으로 생성할 수 있게 합니다.
설치
pip install datachain
# optional agent skill
# datachain skill install --target claude # also cursor, codex, copilot, pi
예시 (품종, 마스크, 크기별로 필터링된 참조 이미지와 유사한 개 찾기) – README는 Claude Code가 작업을 분해하고, 중간 데이터셋을 구축하며, 순위가 매겨진 일치 목록을 반환하는 프롬프트에서 결과까지의 전체 흐름을 보여줍니다.
대상 사용자
- 대규모 비정형 미디어 컬렉션에 대해 재현 가능한 파이프라인이 필요한 데이터 엔지니어 및 ML 팀.
- 데이터를 이동하지 않고 실제 데이터와 상호 작용해야 하는 LLM 기반 에이전트를 구축하는 AI 개발자.
- 클라우드 객체 스토리지에 데이터를 저장하고 경량의 버전 관리 데이터 카탈로그를 원하는 조직.
링크
- PyPI: https://pypi.org/project/datachain/
- Docs: https://www.datachain.ai/docs
- Studio (hosted UI): https://studio.datachain.ai
- GitHub: https://github.com/datachain-ai/datachain
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트