如果我每隔几秒钟就有KBs的数据,那么是否使用带有Lambda函数的Kinesis来执行转换,并且使用Redshift作为目标,肯定比只做相同的操作更好,除了使用S3而不是Kinesis吗?我知道Kinesis是用于实时处理的,但是使用它是否有好处,而不仅仅是使用S3和将文件放入S3触发用于处理和存储到Redshift中的lambda函数?它们似乎是等价的,而不是与实时处理相关,而S3不是。
发布于 2022-09-30 18:25:03
AmazonKinsisDataFire浩可以根据大小或时间将数据流组合成更少、更大的亚马逊S3对象。这使得在S3中存储并加载到Redshift中更加容易。
Amazon 的性能很差,如果您继续在几行数据上使用INSERT
,而在更大的数据集中使用COPY
(这也允许并行加载)。
将负责整个接收数据的过程,并将其插入Redshift。如果您想自己动手,您可能会为每个对象触发一个AWS函数,您需要编写代码将其插入Redshift并处理错误。这实际上是一个平衡成本与方便的问题。
发布于 2022-09-30 18:35:30
最大的一件事是火龙软管的功能。本部分将Kinesis打包到大小合理的S3文件中。将许多小文件加载到Redshift中可能效率很低。因此,您的Lambda进程还需要绑定到Redshift可加载的文件中。
发布于 2022-10-02 23:58:12
问得好。
如果你不使用防火墙,真正的问题将是、cost和performance。
成本
S3的存储成本较低,但对于put请求也有成本。如果有很多小文件,那么存储成本就会更低,但是你会有更多的存档请求成本。因此,您不希望创建大文件并将其放入S3 .In --在这种情况下,您必须积累许多文件,然后放入s3 .Firehose,为您做这件事。否则,你需要写一些东西,然后跑到某个地方。
性能
当插入次数较少时,几乎所有的数据池都有更好的性能。就像明智的红移。因此,您将再次希望将所有小文件组合起来,创建一个大文件,然后将/insert加载到Redshift中。福尔豪斯又为你做了一次。
如果累积小文件,则创建更大的文件。
https://stackoverflow.com/questions/73914996
复制相似问题