任何人都尝试使用火花结构流式传输将数据流式传输到Redshift

时间:2017-10-31 22:24:09

标签: apache-spark spark-streaming amazon-redshift

我试图看看我是否可以使用spark结构流(v2.2)将数据流式传输到Redshift,我找到了spark-redshift库(https://github.com/databricks/spark-redshift)。但是,它仅适用于批处理模式。关于如何使用流数据的任何其他建议? COPY对Redshift的表现如何?

欣赏!

1 个答案:

答案 0 :(得分:1)

对于少量数据(偶尔会有几行数据),可以使用:

insert into table ...
update table ...
delete from table ...

用于维护红移数据的命令。 这就是火花流可能会起作用的方式。

但是,对于较大的卷,您必须始终: 1)将数据写入s3,最好分成1MB到1GB的文件,最好是gzip。 2)运行redshift copy命令将s3数据加载到redshift“staging”区域 3)运行redshift sql将登台数据合并到目标表中。

使用此复制方法的效率可能比单个插入方式高出数百倍。

这当然意味着你必须以批处理模式运行。

您可以每隔几分钟运行一次批量更新,以使红移数据延迟保持较低。