メインコンテンツまでスキップ
メインコンテンツまでスキップ

Map(K, V)

データ型 Map(K, V) はキーとバリューのペアを格納します。

他のデータベースとは異なり、ClickHouseにおいてマップはユニークではありません。つまり、マップは同じキーを持つ2つの要素を含むことができます。 (その理由は、マップが内部的に Array(Tuple(K, V)) として実装されているためです。)

マップ m のキー k に対する値を取得するには、構文 m[k] を使用します。 また、m[k] はマップをスキャンします。つまり、この操作の実行時間はマップのサイズに対して線形です。

パラメータ

  • K — マップのキーの型。 NullableLowCardinality 型がネストした Nullable 型を除いて、任意の型が使用できます。
  • V — マップのバリューの型。任意の型です。

マップ型のカラムを持つテーブルを作成します:

key2 の値を選択するには:

結果:

要求されたキー k がマップに含まれていない場合、m[k] は値の型のデフォルト値、例えば整数型の場合は 0 、文字列型の場合は '' を返します。 マップにキーが存在するかを確認するには、関数 mapContains を使用できます。

結果:

Tuple から Map への変換

Tuple() 型の値は、関数 CAST を使用して Map() 型の値にキャストできます。

クエリ:

結果:

Map のサブカラムの読み取り

マップ全体を読み取ることを避けるために、一部のケースではサブカラム keysvalues を使用できます。

クエリ:

結果:

関連情報