如何在AWS S3和Athena中高效地存储和查询键值对数据?

问题描述 投票:0回答:1

我有一个数据集存储在 AWS S3 中并使用 AWS Athena 进行查询。目前,S3 中的数据结构分为两列,如下所示:

数据集

Customer_ID | Products_csv
C1          | P1, P2, P3
C2          | P2, P4

如果有额外的要求,还需要添加一个字段,即产品数量,这就是我计划存储它的方式:

Customer_ID | Product:Quantity(csv)
C1          | P1:3, P2:1, P3:5
C2          | P2:2, P4:7 

如果athena中的table遵循上述格式,那么对数据进行所需的操作就不会更简单了。例如,如果每个客户只需检索数量 (>=3) 的产品(客户 1 为 P1、P3,客户 2 为 P4),则上述结构的查询将很复杂,或者可能无法扩展以适应大量数据.

数据大小

  1. 客户 ID 的数量(按行)将是几百万
  2. 每个客户 ID 的产品范围为 0-100

任何关于如何以最适合查询的替代格式存储产品和数量列数据的想法将不胜感激。

sql amazon-s3 format schema amazon-athena
1个回答
0
投票

更传统的格式是每个关系单独的行。

例如:

Customer_ID, Product, Quantity
C1, P1, 3
C1, P2, 1
C1, P3, 5
C2, P2, 2
C2, P4, 7

数百万行没有问题。格式越简单,Athena 就越容易处理。

© www.soinside.com 2019 - 2024. All rights reserved.