开发者社区 > 大数据与机器学习 > 大数据计算 MaxCompute > 正文

在大数据计算MaxCompute如有个设计要存储用户的下单所有产品,一般这种字段要使用哪个好?

在大数据计算MaxCompute如果我这边有个设计要存储用户的下单所有产品,然后查询时要进行产品分组的,一般这种字段要使用ARRAY还是MAP比较好?是不是查询时使用WM_CONCAT进行分组?

展开
收起
三分钟热度的鱼 2023-12-28 14:45:50 66 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在大数据计算MaxCompute中,如果您需要存储用户的下单所有产品并进行产品分组查询,建议使用ARRAY或MAP来存储这些信息。具体选择哪种数据结构取决于您的需求和查询方式。

    1. ARRAY:如果您需要对每个用户的产品进行单独的分组,并且每个用户可能有多个产品,那么使用ARRAY可能更合适。在这种情况下,您可以将每个用户的所有产品存储在一个ARRAY中,然后使用WM_CONCAT函数将这些数组连接起来以进行分组查询。

    2. MAP:如果您需要对每个用户的产品进行单独的分组,并且每个用户只有一个产品,那么使用MAP可能更合适。在这种情况下,您可以将每个用户的产品作为键值对存储在一个MAP中,其中键是用户ID,值是一个包含该用户所有产品的ARRAY。然后,您可以使用GROUP BY语句对每个用户的产品进行分组查询。

    2023-12-28 16:12:17
    赞同 展开评论 打赏
  • 在大数据计算MaxCompute中存储用户的下单所有产品,一般可以使用一个复合字段来表示。例如,你可以创建一个结构化类型(如ARRAY或MAP)的字段来存储产品信息,每个产品作为一个子项。以下是一个示例:

       CREATE TABLE orders (
           order_id BIGINT,
           user_id BIGINT,
           products ARRAY<STRUCT<
               product_id BIGINT,
               product_name STRING,
               quantity INT
           >>
       );
    

    在这个例子中,products字段是一个数组,每个元素是一个结构体,包含产品的ID、名称和数量。这种方式可以方便地存储和查询用户下单的所有产品信息。

    2023-12-28 15:13:44
    赞同 展开评论 打赏
  • 如果有产品有额外的键值对,就用map。此回答整理自钉群“MaxCompute开发者社区1群”

    2023-12-28 15:02:42
    赞同 展开评论 打赏

MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 相关电子书

    更多
    Data+AI时代大数据平台应该如何建设 立即下载
    大数据AI一体化的解读 立即下载
    极氪大数据 Serverless 应用实践 立即下载