从localhost Web应用程序查询Redshift数据库?

时间:2016-06-16 00:56:37

标签: php database amazon-web-services amazon-redshift

我试图将我的localhost上的html / css / js web应用程序连接到一个单独的redshift数据库。我无法访问密钥/密钥,因此SDK for PHP不会为我工作。

有其他选择吗?我觉得我走错了路。我试图查询redshift数据库并在我的localhost上构建一些html / css图形。

根据Ketan尝试的代码

$dbconn = pg_connect("host=endpoint dbname=name user=UN password=PW") or die('Could not connect: ' . pg_last_error());

错误......

警告:pg_connect():无法连接到PostgreSQL服务器:无法连接到服务器:连接超时(0x0000274C / 10060)服务器是否在主机上运行"端点"并接受端口####上的TCP / IP连接?在第38行的results.php中

2 个答案:

答案 0 :(得分:0)

您不需要任何密钥/秘密来查询Redshift群集。

将其视为通常基于PostgreSQL的数据库。您所需要的只是以下内容:

  • Redshift群集网址和端口
  • 包含表格的数据库的名称,用户名和密码

答案 1 :(得分:0)

您可以在AWS lambda中使用redshift-sql。然后你可以从web应用程序调用lambda。

@Test
public void performsSaveAsWhenNetHasNoFile() {
    SaveAsAction saveAsAction = new SaveAsAction(null, null);
    FileDialog mockFileDialog = mock(FileDialog.class);
    Controller mockController = mock(Controller.class);
    Net mockNet = mock(Net.class);

    NetName normalName = new NormalNetName("");
    when(mockNet.getName()).thenReturn(normalName);

    File file = new File("test.xml");
    when(mockFileDialog.getFiles()).thenReturn(new File[]{file});

    // these steps are crucial
    saveAsAction.setFileDialog(mockFileDialog);
    saveAsAction.setController(mockController);

    // test
    saveAsAction.actionPerformed(null);

    verify(mockController).saveAsFile(file);
}