到Athena的分层SQL查询

问题描述

我正在尝试在Athena中创建一个查询解决此问题:

我有类似这样的记录

{'id': 'a','children': ['b','c']}

创建一个分层结构,就像一棵树,但带有不确定的子代。

我有一个以上的根,也就是说,有多个元素不是任何人的孩子。

我想为其中之一获得完整的结构。如何使用SQL查询做到这一点?我已经看到,雅典娜不允许使用递归查询

解决方法

您要实现的目标称为“递归查询”或“递归CTE”(公用表表达式)。 Presto 340为它们添加了实验性支持,但是Athena基于Presto 0.172,并且没有该功能。不幸的是,该功能没有通用替代品。

在不支持查询引擎功能的情况下,您需要提取父子关系并在应用程序内计算结果。