postgresql做了读写分离,两台服务器,用copy命令读取csv文件遇到了难题,求赐教

问题出现的环境背景及自己尝试过哪些方法

现在项目是node搭的服务,两台节点,postgresql做了读写分离,主节点做写操作,由于数据量大需要将数据存为csv文件然后用COPY命令做批量插入,现在问题是前端请求的时候会不定的发请求到两台服务器中的一台,在这台服务器将数据生成csv文件,但是postgresql只会在主节点做写操作,所以会导致如果在从节点上的csv文件,postgresql运行copy命令时会找不到csv文件,请问该怎么解决,找了资料都没找到方案,求赐教

相关代码

node使用Sequelize配的postgresql

let sequelize = new Sequelize(`${postgresql.database}`,null , null, {
    'port': postgresql.port,
    'dialect': 'postgres',
    'protocol': 'postgres',
    'quoteIdentifiers': true,
    'logging': false,
    // 读取分离
    'replication': {
        'read': [
            { host: postgresql.masterHost, username: postgresql.username, password: postgresql.password },
            { host: postgresql.subHost, username: postgresql.username, password: postgresql.password }
        ],
        'write': { host: postgresql.masterHost, username: postgresql.username, password: postgresql.password }
    },
    'pool': {
        'maxConnections': process.env.NODE_ENV !== "PRODUCTION" ?  80 : 120,
        'minConnections': 0,
        'maxIdleTime': 30000
    }
});
阅读 2.5k
2 个回答
如果是用psql命令的话 copy命令换成\copy,\copy是二进制流无需csv在服务器上,远程copy。如果用node的框架的话,找找有没有类似的函数,我平时用python的psycopg2,copy_from就是二进制流。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏