【问题标题】:Preferred way of mocking Redshift and S3 locally在本地模拟 Redshift 和 S3 的首选方式
【发布时间】:2022-07-16 07:36:37
【问题描述】:

问题

我有一个希望在本地运行的 Airflow 管道,它执行以下操作:

  1. 将表从 Redshift 下载到 S3 存储桶(基本上是 RedshiftToS3Operator
  2. 将表从 S3 存储桶复制到另一个 Redshift(基本上是S3ToRedshiftOperator

问题

是否可以使用 QA Redshift,然后使用 LocalStack 将这些文件复制到本地模拟的 S3,最后在第二个 Redshift 中使用模拟的 PosgreSQL?这种方法是否利大于弊?

注意:我不想用 LocalStack 在本地模拟 Redshift,因为显然

redshift 服务只模拟 redshift 管理端点(创建集群等),而不是实际的查询引擎。 SO 1st comment

【问题讨论】:

    标签: mocking airflow localstack


    【解决方案1】:

    查看redshift-fake-driver 项目,它允许您通过在 JDBC 数据库驱动程序本身中即时翻译和实现某些特定于 Redshift 的命令来模拟 PostgreSQL 之上的 Redshift,主要是 UNLOADCOPY -将 Redshift 表加载到 S3 和从 S3 加载的命令(我使用 LocalStack 的 S3)。

    您可以使用JayDeBeApi Python 包与Python 中的JDBC 驱动程序交互,这就是我使用它的方式。它工作得非常好,在本地模拟了足够多的 Redshift 功能,结合 LocalStack S3,您可以构建完全本地的 Redshift 和 S3 管道。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-05
      • 1970-01-01
      • 2014-02-01
      • 2011-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-18
      相关资源
      最近更新 更多