メインコンテンツへスキップ

extractKeyValuePairs

導入バージョン: v23.4.0 任意の文字列からキー・バリューペアを抽出します。文字列はキー・バリューペア形式に完全に準拠している必要はありません。 ノイズ (例:ログファイル) を含む場合があります。解釈するキー・バリューペアのフォーマットは、関数の引数を使用して指定する必要があります。 キー・バリューペアは、キーの後に key_value_delimiter と値が続く形式で構成されます。クォートされたキーと値もサポートされています。キー・バリューペアは、ペアの区切り文字で区切る必要があります。 構文
引数
  • data - キー・バリューのペアの抽出元となる文字列。String または FixedString
    • key_value_delimiter - キーと値の間の区切り文字として使用する文字。デフォルトは : です。String または FixedString
    • pair_delimiters - ペア間の区切り文字として使用する文字の集合。デフォルトは \space,; です。String または FixedString
    • quoting_character - クォート文字として使用する文字。デフォルトは " です。String または FixedString
    • unexpected_quoting_character_strategy - read_key フェーズおよび read_value フェーズ中に、想定外の位置に現れたクォート文字を処理するための戦略。設定可能な値: invalidacceptpromoteinvalid はキー/値を破棄し、WAITING_KEY 状態に戻ります。accept はそれを通常の文字として扱います。promoteREAD_QUOTED_{KEY/VALUE} 状態に遷移し、次の文字から開始します。デフォルト値は INVALID です
戻り値
  • Map(String, String) 形式の、抽出されたキー・バリューのペア。
クエリ: シンプルな例
クォート文字としてのシングルクォート
unexpected_quoting_character_strategy の例: unexpected_quoting_character_strategy=invalid
unexpected_quoting_character_strategy=accept
unexpected_quoting_character_strategy=promote
エスケープシーケンス非対応の場合
構文
別名: str_to_map, mapFromString 引数
  • なし。
戻り値

extractKeyValuePairsWithEscaping

導入バージョン: v23.4.0 extractKeyValuePairs と同じですが、エスケープに対応しています。 サポートされるエスケープシーケンス: \x, \N, \a, \b, \e, \f, \n, \r, \t, \v, \0。 標準以外のエスケープシーケンスは、次のいずれかでない限り、バックスラッシュを含めてそのまま返されます。 \\, ', ", backtick, /, = または ASCII 制御文字 (c <= 31)。 この関数は、事前エスケープや事後エスケープが適さないケースで役立ちます。たとえば、次の 入力文字列を考えます: a: "aaaa\"bbb"。期待される出力は a: aaaa\"bbbb です。
  • 事前エスケープ: 事前にエスケープすると、出力は a: "aaaa"bbb" になり、その後 extractKeyValuePairsa: aaaa を出力します
    • 事後エスケープ: extractKeyValuePairsa: aaaa\ を出力し、事後エスケープしてもそのまま保持されます。
先頭のエスケープシーケンスは、キーではスキップされ、値では無効と見なされます。 エスケープシーケンスのサポートを有効にした場合のエスケープシーケンス
構文
引数
  • なし。
戻り値

map

導入バージョン: v21.1.0 キー・バリューのペアから Map(key, value) 型の値を作成します。 構文
引数
  • key_n — map のエントリのキー。Any
  • value_n — map のエントリの値。Any
戻り値 キーと値のペアを含む map を返します。Map(Any, Any) 使用例
Query
Response

mapAdd

導入バージョン: v20.7.0 すべてのキーを集め、対応する値を合計します。 構文
引数
  • arg1[, arg2, ...] — 最初の配列の要素がキーを表し、2 番目の配列に各キーの値が含まれる Map または 2 つの配列からなる Tuple。Map(K, V) または Tuple(Array(T), Array(T))
戻り値 Map、または Tuple を返します。最初の配列にはソートされたキーが、2 番目の配列には値が含まれます。Map(K, V) または Tuple(Array(T), Array(T)) Map 型の場合
Query
Response
tuple を使う場合
Query
Response

mapAll

導入バージョン: v23.4.0 map 内のすべてのキー・バリューの組に対して、条件が成り立つかどうかを判定します。 mapAll は高階関数です。 第 1 引数としてラムダ関数を渡すことができます。 構文
引数 戻り値 すべてのキー・バリューのペアが条件を満たす場合は 1、そうでない場合は 0 を返します。UInt8 使用例
Query
Response

mapApply

導入バージョン: v22.3.0 mapの各要素に関数を適用します。 構文
引数 戻り値 元の Map の各要素に func を適用して得られる新しい Map を返します。Map(K, V) 使用例
Query
Response

mapConcat

導入バージョン: v23.4.0 複数の Map 型の値を、キーの一致に基づいて連結します。 同じキーを持つ要素が複数の入力 Map に含まれている場合、それらの要素はすべて結果の Map に追加されますが、[] 演算子でアクセスできるのは最初の要素だけです。 構文
引数
  • maps — 任意個の map。Map
戻り値 引数として渡された複数の map を連結した map を返します。Map 使用例
Query
Response

mapContainsKey

導入バージョン: v21.2.0 map にキーが含まれているかどうかを判定します。 構文
別名: mapContains 引数
  • map — 検索対象のマップ。Map(K, V)
  • key — 検索するキー。型はマップのキー型と一致している必要があります。Any
戻り値 マップにキーが含まれている場合は 1、含まれていない場合は 0 を返します。UInt8 使用例
Query
Response

mapContainsKeyLike

導入バージョン: v23.4.0 map に、LIKE で指定したパターンに一致するキーが含まれているかどうかを判定します。 構文
引数
  • map — 検索対象の Map。Map(K, V)
  • pattern — キーの照合に使用するパターン。const String
戻り値 mappattern に一致するキーが含まれている場合は 1、それ以外の場合は 0 を返します。UInt8 使用例
Query
Response

mapContainsValue

導入バージョン: v25.6.0 map に値が含まれているかどうかを判定します。 構文
引数
  • map — 検索対象の Map。 Map(K, V)
  • value — 検索する値。型は map の値型と一致している必要があります。 Any
戻り値 map にその値が含まれていれば 1、含まれていなければ 0 を返します。 UInt8 使用例
Query
Response

mapContainsValueLike

導入バージョン: v25.5.0 map に、指定したパターンに LIKE で一致する値が含まれているかどうかを確認します。 構文
引数
  • map — 検索対象の Map。 Map(K, V)
  • pattern — 値を照合するためのパターン。 const String
戻り値 mappattern に一致する値が含まれている場合は 1 を返し、そうでない場合は 0 を返します。 UInt8 使用例
Query
Response

mapExists

導入バージョン: v23.4.0 map 内の少なくとも 1 つのキー・バリューの組について、条件が成り立つかどうかを判定します。 mapExists は高階関数です。 第 1 引数としてラムダ関数を渡せます。 構文
引数 戻り値 少なくとも 1 つのキー・バリューのペアが条件を満たす場合は 1 を返し、それ以外の場合は 0 を返します。UInt8 使用例
Query
Response

mapExtractKeyLike

導入バージョン: v23.4.0 文字列キーを持つ map と LIKE パターンを指定すると、この関数はキーがそのパターンに一致する要素を含む map を返します。 構文
引数
  • map — 抽出元の Map。Map(K, V)
  • pattern — キーとの照合に使用するパターン。const String
戻り値 キーが指定したパターンに一致する要素を含む map を返します。パターンに一致する要素がない場合は、空の map を返します。Map(K, V) 使用例
Query
Response

mapExtractValueLike

導入バージョン: v25.5.0 文字列の値を持つ map と LIKE pattern が与えられると、この関数は、値が pattern に一致する要素を含む map を返します。 構文
引数
  • map — 抽出元の Map。Map(K, V)
  • pattern — 値の照合に使用するパターン。const String
戻り値 値が指定したパターンに一致する要素を含む map を返します。一致する要素がない場合は、空の map を返します。Map(K, V) 使用例
Query
Response

mapFilter

導入バージョン: v22.3.0 マップの各要素に関数を適用して、マップをフィルタリングします。 構文
引数 戻り値 func0 以外の値を返す要素のみを含む Map を返します。Map(K, V) 使用例
Query
Response

mapFromArrays

導入バージョン: v23.3.0 キーの配列またはマップと、値の配列またはマップからマップを生成します。 この関数は、CAST([...], 'Map(key_type, value_type)') 構文の便利な代替手段です。 構文
別名: MAP_FROM_ARRAYS 引数
  • keys — マップの作成元となるキーの Array または Map。Array または Map
  • values — マップの作成元となる値の Array または Map。Array または Map
戻り値 キーの Array と値の Array/Map から構成されるキーと値を持つマップを返します。Map 基本的な使い方
Query
Response
Map型の入力の場合
Query
Response

mapKeys

導入バージョン: v21.2.0 指定された map のキーを返します。 この関数は、設定 optimize_functions_to_subcolumns を有効にすることで最適化できます。 この設定を有効にすると、関数は map 全体ではなく keys サブカラムのみを読み取ります。 クエリ SELECT mapKeys(m) FROM tableSELECT m.keys FROM table に変換されます。 構文
引数
  • map — キーを抽出する対象の Map。Map(K, V)
戻り値 Map に含まれるすべてのキーを格納した配列を返します。Array(T) 使用例
Query
Response

mapPartialReverseSort

導入バージョン: v23.4.0 mapの要素を降順にソートし、追加の limit 引数により部分ソートを可能にします。 func 関数が指定されている場合、ソート順は mapのキーと値に func 関数を適用した結果によって決まります。 構文
引数
  • func — 省略可能。ラムダ関数。Lambda function
  • limit — 範囲 [1..limit] の要素がソートされます。(U)Int*
  • map — ソート対象のマップ。Map(K, V)
戻り値 降順で部分的にソートされたマップを返します。Map(K, V) 使用例
Query
Response

mapPartialSort

導入バージョン: v23.4.0 追加の limit 引数により部分ソートを可能にしつつ、map の要素を昇順にソートします。 func 関数が指定されている場合、ソート順は map のキーと値に func 関数を適用した結果によって決まります。 構文
引数
  • func — 任意。ラムダ関数。Lambda function
  • limit — 範囲 [1..limit] 内の要素がソートされます。(U)Int*
  • map — ソート対象の Map。Map(K, V)
戻り値 部分的にソートされた Map を返します。Map(K, V) 使用例
Query
Response

mapPopulateSeries

導入バージョン: v20.10.0 整数のキーを持つマップで、欠落しているキー・バリューのペアを補完します。 最大値を超えてキーを拡張できるように、最大キーを指定できます。 具体的には、この関数は、キーが最小キーから最大キー (または指定されている場合は max 引数) まで 1 刻みで連続する系列を成し、それに対応する値を持つマップを返します。 キーに対応する値が指定されていない場合は、デフォルト値が使用されます。 キーが重複している場合は、最初の値のみ (出現順) がそのキーに関連付けられます。 構文
引数 戻り値 キーがソート順に並んだ最初の配列と、対応するキーの値を格納した 2 番目の配列からなる Map または 2 つの配列の Tuple を返します。Map(K, V) または Tuple(Array(UInt*), Array(Any)) Map 型の場合
Query
Response
マッピングされた配列の場合
Query
Response

mapReverseSort

導入バージョン: v23.4.0 mapの要素を降順にソートします。 func 関数が指定されている場合、ソート順は map のキーと値に func 関数を適用した結果によって決まります。 構文
引数 戻り値 降順でソートされた Map を返します。Map(K, V) 使用例
Query
Response

mapSort

導入バージョン: v23.4.0 map の要素を昇順にソートします。 func 関数を指定した場合、ソート順は map のキーと値に func 関数を適用した結果によって決まります。 構文
引数 戻り値 昇順にソートされた Map を返します。Map(K, V) 使用例
Query
Response

mapSubtract

導入バージョン: v20.7.0 すべてのキーを収集し、対応する値同士を減算します。 構文
引数
  • arg1[, arg2, ...] — 最初の配列の要素がキーを表し、2 番目の配列に各キーの値が含まれる Map、または 2 つの配列からなる Tuple。Map(K, V) または Tuple(Array(T), Array(T))
戻り値 1 つの Map または Tuple を返します。最初の配列にはソート済みのキーが、2 番目の配列には値が含まれます。Map(K, V) または Tuple(Array(T), Array(T)) Map 型の場合
Query
Response
タプル形式の map を使用
Query
Response

mapUpdate

導入バージョン: v22.3.0 2 つの map に対して、2 番目の map の対応するキーの値で 1 番目の map の値を更新した結果を返します。 構文
引数
  • map1 — 更新対象のマップ。Map(K, V)
  • map2 — 更新に使用するマップ。Map(K, V)
戻り値 map2 内の対応するキーの値で更新された map1 を返します。Map(K, V) 基本的な使い方
Query
Response

mapValues

導入バージョン: v21.2.0 指定したマップの値を返します。 この関数は、設定 optimize_functions_to_subcolumns を有効にすることで最適化できます。 この設定を有効にすると、関数はマップ全体ではなく、values サブカラムのみを読み取ります。 クエリ SELECT mapValues(m) FROM tableSELECT m.values FROM table に変換されます。 Syntax
引数
  • map — 値の抽出元となる Map。Map(K, V)
戻り値 map 内のすべての値を含む配列を返します。Array(T) 使用例
Query
Response
最終更新日 2026年7月2日