任何人都试图使用Spark结构化流将数据流式传输到Redshift



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

欣赏!

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

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

命令来维护红移数据。这就是火花流可能的工作方式。

但是,对于较大的卷,您必须始终:1)将数据写入S3,最好分块成1MB到1GB的文件,最好是gzip。2) 运行 Redshift 复制命令以将该 S3 数据加载到Redshift"暂存"区域3) 运行 Redshift SQL 以将暂存数据合并到目标表中。

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

这意味着当然,您确实必须以批处理模式运行。

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

最新更新