AWS Redshift:用于模拟/镜像redshift的库

时间:2015-05-21 21:26:10

标签: java amazon-web-services automated-tests amazon-redshift

是否有用于模拟/镜像Redshift SQL接口的库,以便在隔离的开发环境中运行测试?

如果没有,请指出此类测试的建议最佳做法?

3 个答案:

答案 0 :(得分:4)

Amazon Redshift专门用于在AWS基础架构上运行。它不能下载。 (有趣的是,Amazon DynamoDB确实有一个可下载的版本用于开发目的。)

最便宜的选择可能是关闭你的Dev&每晚测试实例和周末。在删除群集之前拍摄快照,然后根据快照在第二天早上创建群集。这可以通过AWS命令行界面(CLI)自动完成,从而可以轻松地使用cron或计划任务进行计划。

您还可以拥有测试数据的快照并每天早上恢复该快照,这意味着测试数据库不会填满测试用例。

另一项成本节省可能是减少非生产系统的节点数。查询将运行得更慢,存储总量将减少,但它可能更具成本效益。甚至使用"密集存储" 2TB节点而不是几个"密集计算" SSD实例 - 它们将在更少的节点上提供更多存储。

答案 1 :(得分:1)

Redshift SQL嘎嘎主要像PostgreSQL一样,而且我有一些'一些'成功的模拟数据库只是postgres。 TBH我最终把它撕掉了,主要是因为窗口功能在两者之间变得非常不同。

答案 2 :(得分:1)

如果您的应用程序是用Java编写的,则可以通过自定义JDBC驱动程序拦截和模拟Redshift特定命令。

自定义JDBC驱动程序的工作方式如下。

  • 解析给定的陈述。
  • 如果声明为COPY,请从S3下载数据,然后插入。
  • 如果语句是UNLOAD,请从目标表中选择,然后上传到S3。

我刚刚发布redshift-fake-driver,JDBC驱动程序模拟Redshift特定命令。 我希望这会对你有所帮助。