【问题标题】:How can I connect to my redshift cluster using Node.js?如何使用 Node.js 连接到我的 redshift 集群?
【发布时间】:2019-04-01 09:01:41
【问题描述】:

我正在尝试连接到我的一个 Redshift 集群,以便我可以从那里的一个表中获取数据。我正在使用 Node.js。

我使用createCluster() 方法并创建了一个集群,但我似乎找不到读取/连接它的方法。 aws 文档让我很困惑,因为我是 aws 环境的新手。

如何连接到现有集群并从其中的表中获取一些数据?

谢谢:)

【问题讨论】:

    标签: node.js amazon-web-services cluster-computing aws-sdk amazon-redshift


    【解决方案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年前更新了)

          【讨论】:

            猜你喜欢
            • 2015-10-21
            • 2017-10-07
            • 1970-01-01
            • 2013-02-23
            • 1970-01-01
            • 2014-03-12
            • 1970-01-01
            • 2017-11-04
            • 2019-02-16
            相关资源
            最近更新 更多