本地嘲笑Redshift和S3的首选方式



问题

我有一个气流管道,我想在本地运行,它执行以下操作:

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

问题

是否可以使用QA Redshift,然后使用LocalStack将这些文件复制到本地模拟的S3,最后使用模拟的PosgreSQL进行第二次Redshift?这种方法的优点会多于缺点吗?

注意:我不想用LocalStack在本地嘲笑Redshift,因为显然是

红移服务只模拟红移管理端点(创建集群等(,而不是实际的查询引擎。SO第一条评论

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

您可以使用JayDeBeApi Python包与来自Python的JDBC驱动程序接口,这就是我使用它的方式。它工作得很好,在本地模拟了足够多的Redshift功能,并与LocalStack S3相结合,您可以构建完全本地的Redshight和S3管道。

最新更新