Nested
Nested(name1 Type1, Name2 Type2, ...)
ネストされたデータ構造は、セル内にテーブルが存在するようなものです。ネストされたデータ構造のパラメータ – カラム名とタイプ – は、CREATE TABLE クエリで指定するのと同じ方法で指定されます。各テーブルの行は、ネストされたデータ構造内の任意の数の行に対応できます。
例:
この例では、変換(目標到達)に関するデータを含むGoals
ネストされたデータ構造を宣言しています。'visits'テーブルの各行は、0回または任意の数の変換に対応できます。
flatten_nestedが0
に設定されている場合(デフォルトではそうではありません)、任意のネストレベルがサポートされます。
ネストされたデータ構造を扱う際には、通常、カラム名をドットで区切って指定します。これらのカラムは同じ型の配列を構成します。単一のネストされたデータ構造のすべてのカラム配列は同じ長さを持っています。
例:
ネストされたデータ構造は、同じ長さの複数のカラム配列のセットとして考えると最も理解しやすいです。
SELECTクエリで、個々のカラムではなくネストされたデータ構造全体の名前を指定できる唯一の場所はARRAY JOIN句です。詳細については、「ARRAY JOIN 句」を参照してください。例:
ネストされたデータ構造全体に対してSELECTを実行することはできません。その一部である個々のカラムを明示的にリストアップする必要があります。
INSERTクエリでは、ネストされたデータ構造のすべてのコンポーネントカラム配列を個別に渡す必要があります(あたかもそれぞれが別のカラム配列のように)。挿入時に、システムはそれらの長さが同じであることをチェックします。
DESCRIBEクエリでは、ネストされたデータ構造のカラムは同じ方法で別々にリストされます。
ネストされたデータ構造の要素に対するALTERクエリには制限があります。