gpt4 book ai didi

sql - 迭代大型外部 postgres db,操作行,将输出写入 rails postgres db

转载 作者:搜寻专家 更新时间:2023-10-30 23:07:36 26 4
gpt4 key购买 nike

我有一个大约有 200,000,000 行和 6 列的 postgres 数据库。这些列有 int、date 和 string,但没有主键,也没有作为主键基础的唯一值。

此数据库中的记录包含我的一个 rails postgres 模型所需的原始数据。我想遍历整个外部数据库,对它的每一行执行计算,然后将输出写入我的 Rails 模型。

我在连接到数据库或通过 ActiveRecord 访问记录时没有遇到任何问题,但是我尝试遍历数据库的所有操作都失败了或花费的时间太长了。我尝试了以下方法:

  • ExternalDB.all.each
  • ExternalDB.find_all.each
  • 使用 these instructions 向 ExternalDB 添加“id”列

我认为答案是使用 SQL 进行迭代,但我什至不确定如何开始。

最佳答案

您需要使用游标,协议(protocol)级游标或 an SQL-level cursor with DECLARE and FETCH .

方便地,someone already wrote an ActiveRecord adapter for PostgreSQL cursors ;见rubygems .

您可能还会发现这个问题很有用:Are there any Ruby ORMs which use cursors or smart fetch?

我没有检查源代码/文档以查看 Pg gem 是否支持 PostgreSQL 的协议(protocol)级游标以进行批量读取,但如果已经有工具可以做到这一点(如上链接),则可能不值得探索。

关于sql - 迭代大型外部 postgres db,操作行,将输出写入 rails postgres db,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24688135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com