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フェーズ中に、想定外の位置に現れたクォート文字を処理するための戦略。設定可能な値:invalid、accept、promote。invalidはキー/値を破棄し、WAITING_KEY状態に戻ります。acceptはそれを通常の文字として扱います。promoteはREAD_QUOTED_{KEY/VALUE}状態に遷移し、次の文字から開始します。デフォルト値はPROMOTEです
- Map(String, String) 形式の、抽出されたキー・バリューのペア。
mapFromString, str_to_map
引数
- なし。
extractKeyValuePairsWithEscaping
導入バージョン: v23.4.0extractKeyValuePairs と同じですが、エスケープに対応しています。
サポートされるエスケープシーケンス: \x, \N, \a, \b, \e, \f, \n, \r, \t, \v, \0。
標準以外のエスケープシーケンスは、次のいずれかでない限り、バックスラッシュを含めてそのまま返されます。
\\, ', ", backtick, /, = または ASCII 制御文字 (c <= 31)。
この関数は、事前エスケープや事後エスケープが適さないケースで役立ちます。たとえば、次の
入力文字列を考えます: a: "aaaa\"bbb"。期待される出力は a: aaaa\"bbbb です。
- 事前エスケープ: 事前にエスケープすると、出力は
a: "aaaa"bbb"になり、その後extractKeyValuePairsはa: aaaaを出力します - 事後エスケープ:
extractKeyValuePairsはa: aaaa\を出力し、事後エスケープしてもそのまま保持されます。
- なし。
map
導入バージョン: v21.1.0 キー・バリューのペアからMap(key, value) 型の値を作成します。
構文
Map(Any, Any)
例
使用例
Query
Response
mapAdd
導入バージョン: v20.7.0 すべてのキーを集め、対応する値を合計します。 構文arg1[, arg2, ...]— 最初の配列の要素がキーを表し、2 番目の配列に各キーの値が含まれる Map または 2 つの配列からなる Tuple。Map(K, V)またはTuple(Array(T), Array(T))
Map(K, V) または Tuple(Array(T), Array(T))
例
Map 型の場合
Query
Response
Query
Response
mapAll
導入バージョン: v23.4.0 map 内のすべてのキー・バリューの組に対して、条件が成り立つかどうかを判定します。mapAll は高階関数です。
第 1 引数としてラムダ関数を渡すことができます。
構文
func— ラムダ関数。Lambda functionmap— 判定対象の Map。Map(K, V)
1、そうでない場合は 0 を返します。UInt8
例
使用例
Query
Response
mapApply
導入バージョン: v22.3.0 mapの各要素に関数を適用します。 構文func— ラムダ関数。Lambda functionmap— 関数の適用対象となる Map。Map(K, V)
func を適用して得られる新しい Map を返します。Map(K, V)
例
使用例
Query
Response
mapConcat
導入バージョン: v23.4.0 複数のMap 型の値を、キーの一致に基づいて連結します。
同じキーを持つ要素が複数の入力 Map に含まれている場合、それらの要素はすべて結果の Map に追加されますが、[] 演算子でアクセスできるのは最初の要素だけです。
構文
maps— 任意個の map。Map
Map
例
使用例
Query
Response
mapContainsKey
導入バージョン: v21.2.0map にキーが含まれているかどうかを判定します。
構文
mapContains
引数
戻り値
マップにキーが含まれている場合は 1、含まれていない場合は 0 を返します。UInt8
例
使用例
Query
Response
mapContainsKeyLike
導入バージョン: v23.4.0 map に、LIKE で指定したパターンに一致するキーが含まれているかどうかを判定します。
構文
map— 検索対象の Map。Map(K, V)pattern— キーの照合に使用するパターン。const String
map に pattern に一致するキーが含まれている場合は 1、それ以外の場合は 0 を返します。UInt8
例
使用例
Query
Response
mapContainsKeyValue
導入バージョン: v26.9.0 Map に指定されたキーと値の組を持つエントリが含まれるかどうかを返します。 引数がNULL でない場合、これは
arrayExists((k, v) -> k = key AND v = value, mapKeys(map), mapValues(map)) と同等です。
mapContainsKey や mapContainsValue と同様に、NULL は別の NULL とのみ一致します。
= による比較のように、結果が不明になることはありません。
map[key] = value は最初に出現する key の値だけを比較しますが、この関数は
すべてのエントリを対象とします。
keyValuePairs トークナイザーを使用したテキスト索引がある場合、この関数は索引から結果を取得します。
構文
map— 検索対象のMap。Map(K, V)key— 検索するキー。型はMapのキーの型と一致する必要があります。Anyvalue— 検索する値。型はMapの値の型と一致する必要があります。Any
1、含まれない場合は0を返します。 UInt8
例
基本的な使い方
Query
Response
Query
Response
Query
Response
mapContainsValue
導入バージョン: v25.6.0 map に値が含まれているかどうかを判定します。 構文1、含まれていなければ 0 を返します。 UInt8
例
使用例
Query
Response
mapContainsValueLike
導入バージョン: v25.5.0 map に、指定したパターンにLIKE で一致する値が含まれているかどうかを確認します。
構文
map— 検索対象の Map。Map(K, V)pattern— 値を照合するためのパターン。const String
map に pattern に一致する値が含まれている場合は 1 を返し、そうでない場合は 0 を返します。 UInt8
例
使用例
Query
Response
mapEntries
導入バージョン: v26.10.0 Map のキー・バリューのペアを、key と value のフィールドを持つ名前付きタプルの Array として返します。
重複するキーはそのまま保持されます。
構文
map— エントリの抽出元となる Map。Map(K, V)
Array(Tuple(key K, value V))
例
使用例
Query
Response
mapExists
導入バージョン: v23.4.0 map 内の少なくとも 1 つのキー・バリューの組について、条件が成り立つかどうかを判定します。mapExists は高階関数です。
第 1 引数としてラムダ関数を渡せます。
構文
func— 任意。ラムダ関数。Lambda functionmap— チェック対象の Map。Map(K, V)
1 を返し、それ以外の場合は 0 を返します。UInt8
例
使用例
Query
Response
mapExtractKeyLike
導入バージョン: v23.4.0 文字列キーを持つ map とLIKE パターンを指定すると、この関数はキーがそのパターンに一致する要素を含む map を返します。
構文
map— 抽出元の Map。Map(K, V)pattern— キーとの照合に使用するパターン。const String
Map(K, V)
例
使用例
Query
Response
mapExtractValueLike
導入バージョン: v25.5.0 文字列の値を持つ map とLIKE pattern が与えられると、この関数は、値が pattern に一致する要素を含む map を返します。
構文
map— 抽出元の Map。Map(K, V)pattern— 値の照合に使用するパターン。const String
Map(K, V)
例
使用例
Query
Response
mapFilter
導入バージョン: v22.3.0 マップの各要素に関数を適用して、マップをフィルタリングします。 構文func— ラムダ関数。Lambda functionmap— フィルタリング対象の Map。Map(K, V)
func が 0 以外の値を返す要素のみを含む Map を返します。Map(K, V)
例
使用例
Query
Response
mapFromArrays
導入バージョン: v23.3.0 キーの配列またはマップと、値の配列またはマップからマップを生成します。 この関数は、CAST([...], 'Map(key_type, value_type)') 構文の便利な代替手段です。
構文
MAP_FROM_ARRAYS
引数
戻り値
キーの Array と値の Array/Map から構成されるキーと値を持つマップを返します。Map
例
基本的な使い方
Query
Response
Query
Response
mapKeys
導入バージョン: v21.2.0 指定された map のキーを返します。 この関数は、設定optimize_functions_to_subcolumns を有効にすることで最適化できます。
この設定を有効にすると、関数は map 全体ではなく keys サブカラムのみを読み取ります。
クエリ SELECT mapKeys(m) FROM table は SELECT m.keys FROM table に変換されます。
構文
map— キーを抽出する対象の Map。Map(K, V)
Array(T)
例
使用例
Query
Response
mapPartialReverseSort
導入バージョン: v23.4.0 mapの要素を降順にソートし、追加の limit 引数により部分ソートを可能にします。 func 関数が指定されている場合、ソート順は mapのキーと値に func 関数を適用した結果によって決まります。 構文func— 省略可能。ラムダ関数。Lambda functionlimit— 範囲[1..limit]の要素がソートされます。(U)Int*map— ソート対象のマップ。Map(K, V)
Map(K, V)
例
使用例
Query
Response
mapPartialSort
導入バージョン: v23.4.0 追加の limit 引数により部分ソートを可能にしつつ、map の要素を昇順にソートします。 func 関数が指定されている場合、ソート順は map のキーと値に func 関数を適用した結果によって決まります。 構文func— 任意。ラムダ関数。Lambda functionlimit— 範囲[1..limit]内の要素がソートされます。(U)Int*map— ソート対象の Map。Map(K, V)
Map(K, V)
例
使用例
Query
Response
mapPopulateSeries
導入バージョン: v20.10.0 整数のキーを持つマップで、欠落しているキー・バリューのペアを補完します。 最大値を超えてキーを拡張できるように、最大キーを指定できます。 具体的には、この関数は、キーが最小キーから最大キー (または指定されている場合はmax 引数) まで 1 刻みで連続する系列を成し、それに対応する値を持つマップを返します。
キーに対応する値が指定されていない場合は、デフォルト値が使用されます。
キーが重複している場合は、最初の値のみ (出現順) がそのキーに関連付けられます。
構文
map— 整数キーを持つ Map。Map((U)Int*, V)keys— キーの Array。Array(T)values— 値の Array。Array(T)max— オプション。キーの最大値。Int8またはInt16またはInt32またはInt64またはInt128またはInt256
Map(K, V) または Tuple(Array(UInt*), Array(Any))
例
Map 型の場合
Query
Response
Query
Response
mapRemove
導入バージョン: v26.10.0 Map から、キーが指定したキーと等しいエントリをすべて削除します。同じキーを持つエントリが複数ある場合は、一致するエントリがすべて削除されます。 NULL は値として比較されます。つまり、削除キーが NULL の場合は非 NULL のキーには一致せず、複合キー内の NULL 部分は他の NULL 部分と一致します。 共通の上位型を持つキー型では、NaN キーは Map のルックアップと同じセマンティクスに従います。そのため、削除キーが NaN の場合は Map 内の NaN キーに一致します。 構文Map(K, V)
例
使用例
Query
Response
mapReverseSort
導入バージョン: v23.4.0 mapの要素を降順にソートします。 func 関数が指定されている場合、ソート順は map のキーと値に func 関数を適用した結果によって決まります。 構文Map(K, V)
例
使用例
Query
Response
mapSort
導入バージョン: v23.4.0map の要素を昇順にソートします。
func 関数を指定した場合、ソート順は map のキーと値に func 関数を適用した結果によって決まります。
構文
Map(K, V)
例
使用例
Query
Response
mapSubtract
導入バージョン: v20.7.0 すべてのキーを収集し、対応する値同士を減算します。 構文arg1[, arg2, ...]— 最初の配列の要素がキーを表し、2 番目の配列に各キーの値が含まれる Map、または 2 つの配列からなる Tuple。Map(K, V)またはTuple(Array(T), Array(T))
Map(K, V) または Tuple(Array(T), Array(T))
例
Map 型の場合
Query
Response
Query
Response
mapUpdate
導入バージョン: v22.3.0 2 つの map に対して、2 番目の map の対応するキーの値で 1 番目の map の値を更新した結果を返します。 構文map2 内の対応するキーの値で更新された map1 を返します。Map(K, V)
例
基本的な使い方
Query
Response
mapValues
導入バージョン: v21.2.0 指定したマップの値を返します。 この関数は、設定optimize_functions_to_subcolumns を有効にすることで最適化できます。
この設定を有効にすると、関数はマップ全体ではなく、values サブカラムのみを読み取ります。
クエリ SELECT mapValues(m) FROM table は SELECT m.values FROM table に変換されます。
Syntax
map— 値の抽出元となる Map。Map(K, V)
map 内のすべての値を含む配列を返します。Array(T)
例
使用例
Query
Response