使用lambda函数nodejs从Amazon Redshift查询select



我需要从我们的dw对亚马逊红移表查询。我一直在阅读,但找不到一种方法来查询表在那里,我通常这样做使用sequelize连接。

const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
const basename = path.basename(__filename);
const db = {};
const sequelize = new Sequelize(
process.env.DB_REDSHIFT,
process.env.DB_USER,
process.env.DB_PASS,
{
host: process.env.DB_HOST,
dialect: 'postgres',
...process.env.NODE_ENV !== 'dev' && {
logging: false,
},
define: {
underscored: true,
},
dialectOptions: {
multipleStatements: true,
dateStrings: true,
typeCast: (field, next) => {
if (field.type === 'DATETIME' || field.type === 'TIMESTAMP') {
return field.string();
}
return next();
},
},
pool: {
max: 1,
min: 0,
idle: 10000,
},
},
);
fs.readdirSync(__dirname).filter((file) => {
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
}).forEach((file) => {
const model = sequelize.import(path.join(__dirname, file));
db[model.name] = model;
});
Object.keys(db).forEach((modelName) => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;

但我得到SequelizeHostNotFoundError: getaddrinfo ENOTFOUND,我已经尝试使用端点,jdbc和odbc,我真的是新的,所以任何东西都会有所帮助。

Amazon Redshift公开了一个允许您执行CRUD操作的数据客户端。看到:

Redshift Client - AWS SDK for JavaScript v3

您可以在Lambda函数中使用该客户端对Redshift表执行CRUD操作。不需要使用JDBC、ODBC等。

最新更新