Вложенные
Вложенные(name1 Type1, Name2 Type2, ...)
Вложенная структура данных подобна таблице внутри ячейки. Параметры вложенной структуры данных — имена колонок и типы — указываются так же, как в запросе CREATE TABLE. Каждая строка таблицы может соответствовать любому количеству строк во вложенной структуре данных.
Пример:
В этом примере объявляется вложенная структура данных Goals
, которая содержит данные о конверсиях (достигнутых целях). Каждая строка в таблице 'visits' может соответствовать нулю или любому количеству конверсий.
Когда flatten_nested установлено в 0
(что не является значением по умолчанию), поддерживаются произвольные уровни вложенности.
В большинстве случаев, работая с вложенной структурой данных, ее колонки указываются с перечислением имен колонок, разделенных точкой. Эти колонки составляют массив соответствующих типов. Все массивы колонок одной вложенной структуры данных имеют одинаковую длину.
Пример:
Легче всего представлять вложенную структуру данных как набор нескольких массивов колонок одинаковой длины.
Единственное место, где запрос SELECT может указать имя всей вложенной структуры данных вместо отдельных колонок, — это оператор ARRAY JOIN. Для получения дополнительной информации смотрите "Оператор ARRAY JOIN". Пример:
Вы не можете выполнять SELECT для всей вложенной структуры данных. Вы можете только явно перечислять отдельные колонки, которые являются ее частью.
Для запроса INSERT вы должны передать все компонентные массивы колонок вложенной структуры данных отдельно (как если бы это были индивидуальные массивы колонок). Во время вставки система проверяет, что они имеют одинаковую длину.
Для запроса DESCRIBE колонки во вложенной структуре данных перечисляются отдельно таким же образом.
Запрос ALTER для элементов во вложенной структуре данных имеет ограничения.