datachain-ai/datachain

The Context Layer for unstructured data: typed, versioned datasets over S3, GCS, Azure

DataChain – 非结构化数据的「上下文层」

是什么 – 一个将存储在 S3、Google Cloud Storage、Azure Blob 或本地文件系统中的文件转换为 类型化、版本控制的数据集 的 Python 库。这些数据集可像数据仓库一样进行查询。它添加了一个轻量级的「数据 harness」,使 LLM 驱动的代理(Claude、Cursor、Codex、Copilot、Pi)能够在不移动原始文件的情况下理解并操作这些数据集。

核心组件

组件 功能
计算引擎 在文件上并行、异步执行 Python;支持检查点、增量(delta)运行,以及通过 DataChain Studio 实现的分布式执行。
数据集 DB 基于 SQLite 的存储,记录每个数据集的 Pydantic 模式、版本、血缘关系和文件指针。即使在数亿行数据上,过滤、连接、分组、向量搜索等查询也能在亚秒级时间内直接在该数据库上运行。
知识库 (可选) 自动生成的 markdown,描述每个数据集及其模式;可供人类和 LLM 代理阅读。
代理 harness (可选) 一个技能,将三层结构接入 LLM 代码生成代理,使其可以发出 read_storagemapsave 等指令,并将结果作为普通 Python 对象获取。

典型工作流

  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. 代理将请求分解,运行嵌入,连接品种元数据,应用过滤器,并返回一个排序的表格——所有操作均使用自动版本化并存储的数据集完成。

Studio – 共享、云后端执行

  • 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 issues、邮件支持、Twitter @datachain_ai。

所有陈述均直接取自仓库的 README;未推断额外功能。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目