您过去肯定使用过版本控制系统来管理代码。但是您是否曾经使用过版本控制系统来管理数据?您是否想过与不同的团队协作处理大型数据集,而无需提交大量的代码?想象一下,使用类似 git 的命令来操作类似仓库的生态系统,您可以在其中提交数据、创建分支、查看历史记录并跟踪数据的整个生命周期中的更改。最终,这将确保大型组织中的团队以与他们协作代码相同的方式协作数据。
Pachyderm 的核心是其文件系统 PFS,它本质上构建在 Postgres 和对象存储(如 MinIO)之上。这确保数据在所有请求中都是安全且一致的。这确保用户可以使用分支和提交对数据进行版本控制,以便随着时间的推移管理和跟踪更改。

让我们看一下如何使用 MinIO 企业存储作为其核心来设置 Pachyderm。
MinIO 企业存储和 Pachyderm
您应该已经有一个运行着支持版本的 Kubernetes 集群。
一旦您拥有了它,请继续下载并解压缩 MinIO 企业存储 的 Kubernetes YAML 文件。
启动 MinIO 企业控制台
接下来,让我们安装 Pachyderm。
添加 Helm 图表仓库并更新
helm repo add pachyderm https://helm.pachyderm.com helm repo update |
使用以下步骤创建 MinIO 存储桶
<div> <script async src="https://js.storylane.io/js/v2/storylane.js"></script> <div class="sl-embed" style="position:relative;padding-bottom:calc(79.17% + 25px);width:100%;height:0;transform:scale(1)"> <iframe loading="lazy" class="sl-demo" src="https://app.storylane.io/demo/cesgrcyf9wnq?embed=inline" name="sl-embed" allow="fullscreen" allowfullscreen style="position:absolute;top:0;left:0;width:100%!important;height:100%!important;border:1px solid rgba(63,95,172,0.35);box-shadow: 0px 0px 18px rgba(26, 19, 72, 0.15);border-radius:10px;box-sizing:border-box;"></iframe> </div> </div> |
使用 MinIO 端点、存储桶名称、访问密钥 ID 和密钥更新 Pachyderm Helm 值文件。
pachd storage backend: "AMAZON" storageURL: "s3://pachyderm-test?endpoint=minio.default.svc.cluster.local:9000&disableSSL=true®ion=dummy-region" |
部署 Pachyderm
helm install pachyderm -f values.yaml pachyderm/pachyderm --version <your_chart_version> |
添加和检索数据
有两种方法可以添加和检索数据。
MC
MC 是最好和最简单的方法。
您像添加任何其他 S3 端点一样添加 Pachyderm 端点
mc alias set pachyderm_minio <pachyderm-address> <YOUR-PACHYDERM-AUTH-TOKEN> <YOUR-PACHYDERM-AUTH-TOKEN> |
列出 Pachyderm 仓库和项目的的内容
mc ls local/master.<repo>.<project> |
AWS CLI
您也可以使用 aws cli 将数据放入 MinIO
aws --endpoint-url <pachyderm-address> s3 cp myfile.csv s3://minio.default.svc.cluster.local:9000 |
从 MinIO 企业存储检索数据同样简单
aws --endpoint-url <pachyderm-address> s3 cp s3://minio.default.svc.cluster.local:9000/myfile.csv |
如果您位于 Kubernetes 集群之外,您可以使用端口转发,但我建议将其限制为测试用例。
AI 数据的版本控制
我们对代码进行版本控制,现在很明显我们为什么要这样做。我们对基础设施代码进行版本控制,这以前并不是常态,但即使对于小型设置来说,对基础设施代码进行版本控制也与对应用程序代码一样重要。从根本上说,我们之所以这样做是为了协作。理解大数据和 AI/ML 是同一枚硬币的两面非常重要,你不能没有其中一个,它们都随着模型的演变而相互影响。因此,您希望确保您生成的数据可以被其他团队以有意义的方式处理,而无需重新处理整个数据,想象一下每次有人在没有适当的 git 提交/合并的情况下覆盖您的代码。
在 MinIO,我们不仅关注简单性,还关注在管理基础设施方面的最佳实践,这样您就不会遇到凌晨 3 点的警报呼叫。如果您对 MinIO 企业存储或任何 AI/ML 或大数据主题有任何疑问,请务必通过 Slack 联系我们!