s3中的scala数据分区

qmb5sa22  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(214)

我们将关系数据库中的数据放在一个表中,id和date列如下所示。

productid    date    value1 value2
1         2005-10-26  24    27
1         2005-10-27  22    28
2         2005-10-26  12    18

尝试将它们作为parquet加载到s3,并在配置单元中创建元数据,以便使用athena和redshift查询它们。我们最常见的查询将过滤产品id、日期、月份和年份。因此,尝试加载数据分区以获得更好的查询性能。
据我所知,我可以这样创建分区

s3://my-bucket/my-dataset/dt=2017-07-01/   
...
s3://my-bucket/my-dataset/dt=2017-07-09/   
s3://my-bucket/my-dataset/dt=2017-07-10/

或者像这样,

s3://mybucket/year=2017/month=06/day=01/
s3://mybucket/year=2017/month=06/day=02/
...
s3://mybucket/year=2017/month=08/day=31/

因为我有7年的数据,所以查询速度会更快。
另外,如何在这里为产品id添加分区?这样会更快。
如何使用spark scala创建key=value的(s3://mybucket/year=2017/month=06/day=01/)文件夹结构。?有什么例子吗?

pkwftd7m

pkwftd7m1#

我们就这样分开了,
s3://桶/年/月/年/日/小时/分钟/产品/地区/可用区/
s3://bucketname/2018/03/01/11/30/nest/e1/e1a
分钟四舍五入为30分钟。如果你的流量很大,你可以在几分钟内获得更高的分辨率,或者你可以减少一小时甚至一天。
基于我们想要查询什么样的数据(使用雅典娜或红移光谱)以及什么样的持续时间,它帮助很大。
希望有帮助。

相关问题