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.

일반적인 워크플로우

  1. 스토리지 읽기 – dc.read_storage('s3://bucket/**/*.jpg', anon=True, delta=True)를 통해 파일의 지연 컬렉션을 생성합니다.
  2. 스키마 정의 – Pydantic 모델을 작성합니다. 매핑 함수의 반환 타입이 데이터셋 스키마가 됩니다.
  3. 매핑 / 변환 – 각 파일에 Python UDF (.map(info=get_info))를 적용합니다. DataChain은 배치 처리, 체크포인팅을 관리하며 새 파일이나 변경된 파일만 다시 처리합니다.
  4. 저장 – .save('pets_images')를 통해 결과를 버전 관리된 데이터셋 (pets_images@1.0.0)으로 등록합니다.
  5. 쿼리 – 유연한 API (filter, mutate, order_by, limit)를 사용하여 Dataset DB에서 직접 빠른 SQL 스타일 작업이나 벡터 유사도 검색을 실행합니다.
  6. 지식 베이스 – dc-knowledge 생성을 실행하여 LLM 에이전트가 읽을 수 있는 markdown을 생성합니다.
  7. 에이전트 주도 파이프라인 – 설치된 스킬을 통해 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 개발자.
  • 클라우드 객체 스토리지에 데이터를 저장하고 경량의 버전 관리 데이터 카탈로그를 원하는 조직.

링크

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트