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 등의 명령을 호출하고 결과를 일반 파이썬 객체처럼 반환할 수 있게 합니다.

일반적인 워크플로우

  1. 원본 파일 읽기dc.read_storage('s3://bucket/**/*.jpg', anon=True, delta=True)로 파일의 지연 뷰를 생성합니다.
  2. 스키마 정의 – 원하는 컬럼을 설명하는 Pydantic 모델(예: ImageInfo)을 작성합니다.
  3. 매핑/변환 – Python UDF(map(info=get_info))를 적용하여 모델을 반환합니다. DataChain은 결과를 새로운 이름이 지정된 데이터셋(pets_images@1.0.0)으로 저장합니다.
  4. 저장.save('pets_images')로 데이터셋을 데이터셋 DB에 등록하고 자동으로 버전 관리합니다.
  5. 쿼리dc.read_dataset('pets_images').filter(...).to_pandas() 또는 벡터 검색 헬퍼(dc.func.cosine_distance)를 사용하여 행을 검색하거나 순위를 매깁니다.
  6. 인크리멘탈 실행delta=True로 설정하면 새로 추가된 파일만 처리되며, 버전 번호는 증가(@1.0.1, @1.0.2, …)하고 변경되지 않은 행은 건너뜁니다.
  7. 에이전트 기반 파이프라인 – 스킬 설치 후(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에서 가져온 최소한의 "에이전트 기반" 예제:

  1. S3에서 참조 이미지를 복사합니다.
  2. Claude Code(또는 다른 지원 에이전트)를 엽니다.
  3. "이 이미지와 유사한 개를 품종, 마스크 존재 여부, 너비 기준으로 필터링해 찾아줘"라고 프롬프트합니다.
  4. 에이전트는 요청을 분해하고 임베딩을 실행하며, 품종 메타데이터와 조인하고 필터를 적용한 후 순위가 매겨진 테이블을 반환합니다. 모든 작업은 자동으로 버전 관리되고 저장된 데이터셋을 사용합니다.

스튜디오 – 공유 및 클라우드 기반 실행

  • 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에서 직접 인용되었으며, 추가 기능은 추측되지 않았습니다.

관련

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