datachain-ai/datachain
The Context Layer for unstructured data: typed, versioned datasets over S3, GCS, Azure
DataChain – 비구조화 데이터를 위한 "컨텍스트 계층"
무엇인가요 – S3, Google Cloud Storage, Azure Blob 또는 로컬 파일 시스템에 저장된 파일을 형식 지정되고 버전 관리되는 데이터셋으로 변환하는 파이썬 라이브러리입니다. 데이터웨어하우스처럼 쿼리할 수 있는 데이터셋으로 변환하며, LLM 기반 에이전트(Claude, Cursor, Codex, Copilot, Pi)가 원본 파일을 이동하지 않고도 데이터셋을 이해하고 조작할 수 있도록 하는 가벼운 "데이터 하네스"를 추가합니다.
핵심 구성 요소
| 구성 요소 | 기능 |
|---|---|
| 컴퓨트 엔진 | 파일 위에서 병렬 및 비동기 파이썬 실행을 지원하며, 체크포인트, 인크리멘탈(델타) 실행, DataChain Studio를 통한 분산 실행을 지원합니다. |
| 데이터셋 DB | SQLite 기반 저장소로 각 데이터셋에 대한 Pydantic 스키마, 버전, 라인리지, 파일 포인터를 기록합니다. 필터, 조인, 그룹화, 벡터 검색 등의 쿼리는 수백만 행 이상의 데이터에서도 서브초 단위로 데이터베이스에서 직접 실행됩니다. |
| 지식 기반 (선택 사항) | 자동 생성된 마크다운으로 모든 데이터셋과 스키마를 설명하며, 인간과 LLM 에이전트 모두가 읽을 수 있습니다. |
| 에이전트 하네스 (선택 사항) | 세 계층을 LLM 코드 생성 에이전트에 연결하는 스킬로, read_storage, map, save 등의 명령을 호출하고 결과를 일반 파이썬 객체처럼 반환할 수 있게 합니다. |
일반적인 워크플로우
- 원본 파일 읽기 –
dc.read_storage('s3://bucket/**/*.jpg', anon=True, delta=True)로 파일의 지연 뷰를 생성합니다. - 스키마 정의 – 원하는 컬럼을 설명하는 Pydantic 모델(예:
ImageInfo)을 작성합니다. - 매핑/변환 – Python UDF(
map(info=get_info))를 적용하여 모델을 반환합니다. DataChain은 결과를 새로운 이름이 지정된 데이터셋(pets_images@1.0.0)으로 저장합니다. - 저장 –
.save('pets_images')로 데이터셋을 데이터셋 DB에 등록하고 자동으로 버전 관리합니다. - 쿼리 –
dc.read_dataset('pets_images').filter(...).to_pandas()또는 벡터 검색 헬퍼(dc.func.cosine_distance)를 사용하여 행을 검색하거나 순위를 매깁니다. - 인크리멘탈 실행 –
delta=True로 설정하면 새로 추가된 파일만 처리되며, 버전 번호는 증가(@1.0.1,@1.0.2, …)하고 변경되지 않은 행은 건너뜁니다. - 에이전트 기반 파이프라인 – 스킬 설치 후(
datachain skill install --target claude), LLM에 전체 파이프라인을 구축하고 지식 기반을 생성하며, 저장된 데이터셋을 사용해 후속 질문에 답변하도록 프롬프트할 수 있습니다.
README에서 강조된 주요 기능
- 버전 관리 및 형식 지정된 데이터셋 – 각 파이프라인 단계에서 재현 가능한 이름이 지정된 데이터셋이 생성되며, 스키마는 SQLite에 저장됩니다.
- 빠른 서브초 쿼리 – 파일을 로드하지 않고 메타데이터 위에서 필터, 조인, 집계, 벡터 유사성 검색이 실행됩니다.
- 체크포인트 인식 파이프라인 – 크래시나 버그 발생 시 전체 재실행을 강제하지 않고, 마지막 성공한 배치에서 재개됩니다.
- 에이전트 통합 – Claude, Cursor, Codex, Copilot, Pi용 스킬을 통해 LLM이 지식 기반을 읽고 DataChain 작업을 네이티브 함수처럼 호출할 수 있습니다.
- 확장 가능한 컴퓨팅 – 로컬 멀티코어 비동기 실행 또는 DataChain Studio를 통한 분산 작업(GPU 클러스터, 온프레미스 K8s, 모든 클라우드).
- 데이터 이동 없음 – 원본 버킷에 원본 파일을 그대로 유지하며, 로컬에 저장되는 것은 가벼운 메타데이터와 선택적 임베딩만입니다.
- 지식 기반 – 인간이 탐색할 수 있는(markdown 형식, Obsidian 호환) 데이터셋 표현과 에이전트가 사용 가능한 데이터를 탐지할 수 있도록 합니다.
설치 및 빠른 시작
pip install datachain # 핵심 라이브러리
# 선택적 LLM 스킬 (예: Claude용)
datachain skill install --target claude
README에서 가져온 최소한의 "에이전트 기반" 예제:
- S3에서 참조 이미지를 복사합니다.
- Claude Code(또는 다른 지원 에이전트)를 엽니다.
- "이 이미지와 유사한 개를 품종, 마스크 존재 여부, 너비 기준으로 필터링해 찾아줘"라고 프롬프트합니다.
- 에이전트는 요청을 분해하고 임베딩을 실행하며, 품종 메타데이터와 조인하고 필터를 적용한 후 순위가 매겨진 테이블을 반환합니다. 모든 작업은 자동으로 버전 관리되고 저장된 데이터셋을 사용합니다.
스튜디오 – 공유 및 클라우드 기반 실행
datachain auth login→ 호스팅된 UI에 인증합니다.datachain job run --workers 20 --cluster gpu-pool script.py로 분산 작업을 제출합니다.- UI에서는 라인리지 그래프, 데이터셋 레지스트리, 접근 제어를 표시하며, 대규모 의료 포맷(DICOM, NIfTI, 포인트 클라우드)도 지원합니다.
누가 사용할 수 있나요
- 대규모 이미지/비디오/오디오 컬렉션에 대해 재현 가능한 데이터 파이프라인을 필요로 하는 머신러닝 팀.
- 별도의 벡터 스토어로 복사하지 않고도 자체 데이터를 쿼리할 수 있는 LLM 증강 에이전트를 구축하는 기업.
- 십억 개 이상의 파일 수준 메타데이터와 임베딩을 빠르게 SQL 유사 탐색하고자 하는 연구자.
- 버전 관리 및 형식 지정된 데이터셋, 내장된 라인리지, 인크리멘탈 업데이트를 원하는 모든 조직.
더 알아보기
- 전체 문서: https://docs.datachain.ai/
- 아키텍처 다이어그램:
docs/assets/harness.svg - 커뮤니티: GitHub 이슈, 이메일 지원, Twitter @datachain_ai.
모든 문장은 리포지토리의 README에서 직접 인용되었으며, 추가 기능은 추측되지 않았습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트