API de descanso para o Redshift

Estou a pensar numa ideia e a tentar descobrir se é viável ou uma forma melhor de lidar com esta abordagem.

Suponha que tenho uma mesa Redshift e quero expor esta mesa através de uma API de descanso. Por exemplo, há vários clientes que precisam de algum tipo de meta dados desta tabela. Eles vão chamar um serviço de descanso e ele vai executar no Redshift para obter os dados e vai responder ao cliente no formato JSON.

Sou bastante novo na área Redshift / AWS. não tens a certeza se a AWS já tem alguma coisa para isso? Sei que o S3 suporta a API de descanso.

Parece-te viável? Eu definitivamente posso escrever um serviço de descanso típico usando Java enquanto leio dados do Redshift usando JDBC. Mas queria saber se há uma maneira melhor de lidar com isto no mundo AWS.

Author: dreamer, 2016-06-25

1 answers

O Portal da API Amazónica pode expor uma API pública e irá então chamar uma função Lambda após invocação. A função Lambda pode fazer o que quiser!

Para alguns serviços AWS, a API Gateway também pode funcionar como um proxy para as chamadas normais da API (eg criar um Proxy de serviço AWS para a Amazon SNS . No entanto, fazer chamadas SQL para a Amazon Redshift envolve conectar-se ao banco de dados como um cliente, em vez de fazer chamadas API para a AWS.

Por isso, precisarias to:

  • escreva uma função AWS Lambda (em qualquer dos nós.js, Java ou Python)
  • tenha a função ligue-se à base de dados Amazon Redshift {[[14]} e execute uma chamada de SQL
  • defina uma API API Gateway que receba o pedido de resto e a encaminhe para a função Lambda

Pode parecer complexo, mas se deve ser para a frente se você dividi-lo em componentes e fazer cada um trabalhar em turnos.

API Gateway também tem a capacidade de cache responses, que pode fornecer desempenho mais rápido se nem sempre se conectar ao Redshift Amazon (por exemplo, para dados acessados recentemente ou em mudança lenta).

 13
Author: John Rotenstein, 2016-10-07 03:16:36