嵌套
Nested(name1 Type1, Name2 Type2, ...)
嵌套数据结构就像是单元格中的一个表。嵌套数据结构的参数——列名和类型——以与 CREATE TABLE 查询相同的方式进行指定。每个表行可以对应嵌套数据结构中的任意数量的行。
示例:
该示例声明了 Goals
嵌套数据结构,包含有关转换(达到的目标)的数据。“visits”表中的每一行可以对应零个或任意数量的转换。
当 flatten_nested 设置为 0
(默认不是),则支持任意级别的嵌套。
在大多数情况下,处理嵌套数据结构时,其列以点分隔的列名来指定。这些列组成了匹配类型的数组。单个嵌套数据结构的所有列数组具有相同的长度。
示例:
最简单的理解嵌套数据结构的方法是将其视为相同长度的多个列数组的集合。
SELECT 查询中可以指定整个嵌套数据结构的名称的唯一地方是 ARRAY JOIN 子句。有关更多信息,请参见 “ARRAY JOIN 子句”。示例:
您无法对整个嵌套数据结构执行 SELECT。只能明确列出其所属的单独列。
对于 INSERT 查询,您应该分别传递嵌套数据结构的所有组件列数组(就像它们是单独的列数组一样)。在插入过程中,系统检查它们的长度是否相同。
对于 DESCRIBE 查询,嵌套数据结构中的列以相同方式分别列出。
对嵌套数据结构中元素的 ALTER 查询存在限制。