gpt4 book ai didi

scala - s3中的数据分区

转载 作者:行者123 更新时间:2023-12-01 03:14:48 24 4
gpt4 key购买 nike

我们将关系数据库中的数据放在单个表中,列 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 并在 hive 中创建元数据以使用 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/) 文件夹结构。?有什么例子吗?
  • 最佳答案

    我们是这样划分的,

    s3://bucket/year/month/year/day/hour/minute/product/region/availabilityzone/



    s3://bucketname/2018/03/01/11/30/nest/e1/e1a

    分钟四舍五入为 30 分钟。如果您的流量很高,您可以在几分钟内获得更高的分辨率,或者您可以按小时甚至按天减少。

    根据我们要查询的数据(使用 Athena 或 Redshift Spectrum)和持续时间,它有很大帮助。

    希望能帮助到你。

    关于scala - s3中的数据分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49396628/

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