如何使用 Node.js 连接到我的 redshift 集群?
Posted
技术标签:
【中文标题】如何使用 Node.js 连接到我的 redshift 集群?【英文标题】:How can I connect to my redshift cluster using Node.js? 【发布时间】:2019-04-01 09:01:41 【问题描述】:我正在尝试连接到我的一个 Redshift 集群,以便我可以从那里的一个表中获取数据。我正在使用 Node.js。
我使用createCluster()
方法并创建了一个集群,但我似乎找不到读取/连接它的方法。 aws 文档让我很困惑,因为我是 aws 环境的新手。
如何连接到现有集群并从其中的表中获取一些数据?
谢谢:)
【问题讨论】:
【参考方案1】:npm i 节点红移
您可以使用这个 npm 名称 node-redshift 进行连接 https://www.npmjs.com/package/node-redshift
或
关于 AWS,我认为这会对您有所帮助
Trying to Connect to Redshift Over AWS Lambda
【讨论】:
我尝试使用 node-redshift 模块,但它给了我“getaddrinfo ENOTFOUND”错误。你能告诉我是什么原因造成的吗? 另外,我应该提到什么来代替“主机”?是集群端点吗? 我尝试使用集群端点。 “getaddrinfo ENOTFOUND”错误消失了,但我没有得到任何结果。它在几秒钟后显示超时! 这意味着您正在请求连接并且服务器没有响应您的连接,因此为什么它会在几秒钟后向您显示超时,请在下面留下一个提交 你能通过this 代码告诉我有什么问题吗?redshiftClient.connect()
没有被调用。【参考方案2】:
在我在这里问这个问题之前,我试图让“node-redshift”模块工作。我发现我错过了什么。我必须有一个与我的集群关联的安全组。没有在我的区域(亚太地区 - 孟买)创建安全组的选项。我更改了区域并能够创建组,设置适当的端口和 IP 并且它起作用了。
【讨论】:
【参考方案3】:对于使用 node-redshift 的用户,它在 12.13.1 上运行良好,但在 14.15.0 LTS 上没有响应。
也许您可能想检查一次您的 Node 版本。
【讨论】:
【参考方案4】:我能够将 AWS-Lambda 连接到 Redshift,将“node-redshift”模块导入 Lambda 函数。创建 lambda 层时最重要的事情是尝试为版本 nodejs10.x 的“node-redshift”包创建层。我尝试为 nodejs14.x 添加该层,并且正在努力建立与 Redshift 的连接,但没有发生。因此,在将版本从 nodejs14.x 更改为 nodejs10.x 后,它起作用了。此外,感谢 Vijender R,他的回答也给了我改变使用“node-redshift”包的版本控制的方向。
【讨论】:
【参考方案5】:有同样的问题,原因 - 我已经更新了 node.js。回到11.1.0版本后,一切正常。
解决办法是找东西代替node-redshift(因为4年前更新了)
【讨论】:
以上是关于如何使用 Node.js 连接到我的 redshift 集群?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Node.js 服务器连接到 Apache 服务器?