【问题标题】:AWS Redshift : libraries for mock/mirror redshiftAWS Redshift:模拟/镜像红移的库
【发布时间】:2015-08-03 18:21:07
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    Amazon Redshift 专为在 AWS 基础设施上运行而创建。它不可下载。 (有趣的是,Amazon DynamoDB 确实有用于开发目的的可下载版本。)

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

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

    另一个成本节约可能是减少非生产系统的节点数量。查询运行速度会变慢,存储总量会减少,但它可能更具成本效益。或者甚至使用“密集存储”2TB 节点而不是多个“密集计算”SSD 实例——它们将在更少的节点上提供更多的存储。

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        【解决方案3】:

        Redshift SQL 庸医大多像 PostgreSQL,我在一个只是 postgres 的模拟数据库上取得了“一些”成功。 TBH 我最终把它撕掉了,主要是因为两者之间的窗口函数是如此的不同。

        【讨论】:

          猜你喜欢
          • 2018-08-20
          • 1970-01-01
          • 1970-01-01
          • 2022-07-21
          • 2021-10-06
          • 2018-06-10
          • 2021-03-21
          • 2018-02-05
          • 1970-01-01
          相关资源
          最近更新 更多