gpt4 book ai didi

hadoop - Map Reduce - 如何规划数据文件

转载 作者:可可西里 更新时间:2023-11-01 14:41:03 25 4
gpt4 key购买 nike

我想使用 AWS EMR 查询我将写入 S3 的大型日志文件。我可以按照自己喜欢的方式设计文件。数据以 10K 条目/分钟的速率创建。

日志由几十个数据点组成,我想收集很长一段时间(几年)的数据来比较趋势等。

创建将存储在 S3 上并由 AWS EMR 集群查询的此类文件的最佳实践是什么?

最佳文件大小是多少?我是否应该按小时创建单独的文件?

命名文件的最佳方式是什么?

我应该将它们放在每天/每小时的桶中还是都放在同一个桶中?

处理一段时间后添加一些数据或更改我使用的数据结构等事情的最佳方法是什么?

我应该压缩一些东西,例如通过在 url 中省略域名还是保留尽可能多的数据?

是否有分区之类的概念(数据基于 100 个网站,因此我可以使用网站 ID 作为示例)。我必须能够一起或按分区查询所有数据。

谢谢!

最佳答案

在我看来,您应该使用按小时计算的存储桶将数据存储在 s3 中,然后使用管道安排您的 mr 作业来清理数据。
一旦你清理了数据,你就可以将它保存到 s3 中的某个位置,然后你可以每小时运行一个数据管道,相对于你的 MR 管道有 1 小时的滞后,以将这个过程数据放入 redshift。

因此,在一天凌晨 3 点,您将在 s3 中处理 3 小时的数据,并将 2 小时处理为红移 dB。

要做到这一点,您可以拥有一台专用于运行管道的机器,您可以在该机器上定义 shell 脚本/perl/python 等脚本来将数据加载到您的 dB。您可以对年、月、日、小时等使用 AWS 存储桶格式化程序。例如

{format(minusHours(@scheduledStartTime,2),'YYYY')}/mm=#{format(minusHours(@scheduledStartTime,2),'MM')}/dd=#{format(minusHours(@scheduledStartTime,2),'dd')}/hh=#{format(minusHours(@scheduledStartTime,2),'HH')}/*

关于hadoop - Map Reduce - 如何规划数据文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27776450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com