大家好!我们是来自 Ardent 的 Vikram 和 Evan(<a href="https://tryardent.com">https://tryardent.com</a>)。我们正在为你和你的编码代理构建数据库沙盒。
在过去两年里,编码代理在处理复杂工程任务方面的能力显著提升。但如果没有一个真实的数据库层沙盒进行测试,他们所交付的代码可能会出现问题,甚至导致生产数据库崩溃。我花了一年多的时间构建一个 AI 数据工程师,但正是因为缺乏这样的沙盒而失败。Evan 在数据工程领域工作了12年,在他上一家公司构建代理时也遇到了同样的瓶颈。
Ardent 的目标是让编码代理能够几乎即时访问类似生产环境的沙盒,以便他们测试自己的工作。为此,我们从目标数据库中写出一个复制流,通过 Kafka 扩展到一个启用了写时复制和自动扩展计算的只读副本(目前我们更倾向于使用 Neon 作为主要的分支引擎,因为它实现了这些特性)。
我们的复制流使用逻辑复制和 DDL 触发器,使其可以在任何托管的 Postgres 数据库上使用,因为大多数平台不允许传统上用于创建副本的物理复制。
这带来了几个主要好处:
1. 不需要将平台迁移到像 Neon 这样的数据库提供商,从而实现生产和开发关注点的强分离。
2. 对生产数据库的影响最小,同时允许在不到 6 秒内启动克隆,即使在 TB 规模下也能实现写时复制。
安全性在克隆生产数据库时至关重要,因此我们运行一个代理层来生成自定义的 Postgres URL,并路由所有连接,以实现对克隆的更细粒度访问控制,防止凭证泄露,并遵循分离平面架构,以便通过 BYOC 实现数据的完全驻留在你的云上。
我们还支持通过在返回之前注册运行在分支上的 SQL 来实现匿名化。这已被用于个人身份信息(PII)的删除和分支修改。
我们的目标是让每个平台的数据基础设施在一个地方“可克隆”,这样代理就可以在没有风险的情况下,充分测试他们的更改对类似生产环境数据的影响。
这是一个演示:<a href="https://youtu.be/5S1kwPtiRU0" rel="nofollow">https://youtu.be/5S1kwPtiRU0</a>
我们希望了解你们在数据库上如何与编码代理合作,如果你尝试使用 Ardent(开始是免费的),请告诉我们哪些有效,哪些出现了问题,以及还有什么缺失。
返回首页
最新
Reddit 正在积极阻止所有自动访问(请参见他们的 robots.txt),并使用大量启发式方法来阻止不遵守该规定的爬虫。<p>然而,与此同时,所有 Reddit 的 URL 通过在末尾添加 .json 可以变得可机器读取。<p>有人能解释一下这样做的意义吗?
有一些明显的做法,比如添加最小发布年龄(min-release-age)、忽略脚本(ignore-scripts)和保存精确版本(save-exact)。还有哪些其他的实践可以遵循,以确保我们在处理链式依赖时尽量减少损害呢?
数字扭蛋是一款半恶搞、半真实的扭蛋游戏,玩家可以进行抽取、拆包和数字对战。为了获得最佳体验,请在桌面设备上游玩!