Redshift的REST API

dre*_*mer 5 rest amazon-ec2 amazon-web-services restful-architecture amazon-redshift

我目前正在集思广益,并试图弄清楚这是否可行或更好的方法来处理这种方法.

假设我有一个Redshift表,我想通过REST API公开这个表.例如,有几个客户需要此表中的某种元数据.他们将调用REST服务,它将在Redshift上执行以获取数据,并以JSON格式响应客户端.

我在Redshift/AWS领域相当新,所以不确定AWS是否已经有了这方面的东西?我知道S3支持REST API.

这听起来可行吗?我绝对可以使用Java编写典型的RESTful服务,同时使用JDBC从Redshift读取数据.但是想知道在AWS世界中是否有更好的方法来处理这个问题.

Joh*_*ein 17

亚马逊的API网关可以公开公共API,然后将呼吁调用lambda函数.Lambda函数可以做任何你想做的事情!

对于某些AWS服务,API Gateway还可以充当普通API调用的代理(例如,为Amazon SNS创建AWS服务代理.但是,对Amazon Redshift进行SQL调用涉及作为客户端连接到数据库,而不是创建API调用AWS.

因此,您需要:

  • 编写AWS Lambda函数(在Node.js,Java或Python中)
  • 让该功能连接到Amazon Redshift数据库并执行SQL调用
  • 定义接收REST请求的API网关API,并将其转发给Lambda函数

它可能看起来很复杂,但如果你把它分解成组件并让每个组件轮流工作,那么应该是直截了当的.

API网关还具有缓存响应的能力,通过不总是连接到Amazon Redshift(例如,最近访问或缓慢变化的数据),可以提供更快的性能.