猿问

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
    }
});


忽然笑
浏览 1293回答 1
1回答

陪伴而非守候

如果是用psql命令的话 copy命令换成\copy,\copy是二进制流无需csv在服务器上,远程copy。如果用node的框架的话,找找有没有类似的函数,我平时用python的psycopg2,copy_from就是二进制流。
随时随地看视频慕课网APP

相关分类

Node.js
我要回答