以下の関数ドキュメントは、
system.functions システムテーブルから生成されています。FQDN
導入バージョン: v20.1.0 ClickHouseサーバーの完全修飾ドメイン名を返します。この関数は非決定論的です。同じ引数に対して異なる結果を返す場合があります。
fullHostName
引数
- なし。
String
例
使用例
Query
Response
MACNumToString
導入バージョン: v1.1.0UInt64 型の数値を、ビッグエンディアン形式の MAC アドレスとして解釈します。
対応する MAC アドレスを、AA:BB:CC:DD:EE:FF フォーマット (コロン区切りの16進数表記) の文字列として返します。
構文
num— UInt64 型の数値。UInt64
String
例
使用例
Query
Response
MACStringToNum
導入バージョン: v1.1.0 MACNumToString の逆関数です。MAC アドレスの形式が不正な場合は、0 を返します。 構文s— MACアドレスの文字列。String
UInt64 型の数値を返します。UInt64
例
使用例
Query
Response
MACStringToOUI
導入バージョン: v1.1.0 AA:BB:CC:DD:EE:FF 形式の MAC アドレス (コロン区切りの16進数表記) を受け取り、先頭 3 オクテットを UInt64 値として返します。MAC アドレスの形式が無効な場合は 0 を返します。 構文s— MAC アドレスの文字列。String
UInt64
例
使用例
Query
Response
authenticatedUser
導入バージョン: v25.11.0 セッションユーザーが EXECUTE AS コマンドで切り替えられている場合、この関数は、認証とセッションの作成に使われた元のユーザー名を返します。 別名: authUser()この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
authUser
引数
- なし。
String
例
使用例
Query
Response
bar
導入バージョン: v1.1.0 棒グラフを生成します。 x = max の場合はwidth 文字幅となる、(x - min) に比例した幅の帯を描画します。
帯は 1 文字の 8 分の 1 の精度で描画されます。
構文
x— 表示するサイズ。(U)Int*またはFloat*またはDecimalmin— 最小値。(U)Int*またはFloat*またはDecimalmax— 最大値。(U)Int*またはFloat*またはDecimalwidth— オプション。バーの幅 (文字数) です。既定値は80です。const (U)Int*またはconst Float*またはconst Decimal
String
例
使用例
Query
Response
blockNumber
導入バージョン: v1.1.0 その行を含むブロックの単調増加するシーケンス番号を返します。 返される ブロック 番号はベストエフォートで更新されるため、完全に正確でない場合があります。この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
- なし。
UInt64
例
基本的な使い方
Query
Response
blockSerializedSize
導入バージョン: v20.3.0 ディスク上にある値ブロックの非圧縮サイズを、バイト単位で返します。この関数は非決定論的です。同じ引数に対しても、異なる結果を返すことがあります。
x1[, x2, ...]— ブロックの非圧縮サイズを取得する対象となる、任意の数の値。Any
UInt64
例
使用例
Query
Response
blockSize
導入バージョン: v1.1.0 ClickHouse では、クエリは ブロック (chunk) 単位で処理されます。 この関数は、呼び出し対象のブロックのサイズ (行数) を返します。この関数は非決定論的です。同じ引数でも異なる結果を返すことがあります。
- なし。
UInt64
例
使用例
Query
Response
buildId
導入バージョン: v20.5.0 実行中の ClickHouseサーバー バイナリについて、コンパイラが生成したビルド ID を返します。 分散テーブルのコンテキストで実行した場合、この関数は各分片に対応する値を持つ通常のカラムを返します。 それ以外の場合は、定数値を返します。この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
- なし
String
例
使用例
Query
Response
byteSize
導入バージョン: v21.1.0 メモリ内における引数の非圧縮バイトサイズの推定値を返します。String 型の引数の場合、この関数は文字列の長さ + 8 (長さ) を返します。
この関数に複数の引数がある場合、それらのバイトサイズの合計を返します。
構文
arg1[, arg2, ...]— 非圧縮時のバイトサイズを推定する対象となる、任意のデータ型の値。Any
UInt64
例
使用例
Query
Response
Query
Response
colorOKLABToSRGB
導入バージョン: v26.2.0 色を OKLab 知覚色空間から sRGB 色空間に変換します。 入力色は OKLab 色空間で指定します。入力値が 一般的な OKLab の範囲外にある場合、結果は実装依存になります。 OKLab は 3 つの部分を使用します。- L: 知覚的な明度 (通常は [0..1] の範囲)
- a: 緑-赤の対立軸
- b: 青-黄の対立軸
- OKLab から Linear sRGB への変換。
- Linear sRGB からガンマエンコードされた sRGB への変換。
tuple— 3 つの数値L、a、bからなるタプルです。Lの範囲は[0...1]です。Tuple(Float64, Float64, Float64)gamma— 省略可能です。各チャネルxに(x ^ (1 / gamma)) * 255を適用して、Linear sRGB を sRGB に戻す際に使用する指数です。既定値は2.2です。Float64
(R, G, B) を返します。Tuple(Float64, Float64, Float64)
例
OKLAB を sRGB (Float) に変換
Query
Response
Query
Response
colorOKLCHToSRGB
導入バージョン: v25.7.0 色を OKLCH 知覚色空間から、一般的な sRGB 色空間に変換します。L が範囲 [0...1] 外にある場合、C が負の場合、または H が範囲 [0...360] 外にある場合、結果は実装依存です。
OKLCH は、OKLab 色空間の円筒座標表現です。
3 つの座標は、
L (範囲 [0...1] の明度) 、C (彩度 >= 0) 、H ([0...360] の範囲の度数による色相) です。
OKLab/OKLCH は、知覚的に均一でありながら、計算コストを低く抑えられるよう設計されています。colorSRGBToOKLCH の逆変換です。
- OKLCH から OKLab へ。
- OKLab から Linear sRGB へ
- Linear sRGB から sRGB へ
tuple— 3 つの数値L、C、Hから成るタプル。Lは範囲[0...1]、C >= 0、Hは範囲[0...360]です。Tuple(Float64, Float64, Float64)gamma— 任意。各チャネルxに(x ^ (1 / gamma)) * 255を適用して、線形 sRGB を sRGB に変換する際に使用する指数です。デフォルトは2.2です。Float64
Tuple(Float64, Float64, Float64)
例
OKLCH を sRGB に変換する
Query
Response
Query
Response
colorSRGBToOKLAB
導入バージョン: v26.2.0 sRGB 色空間でエンコードされた色を、知覚的に均一な OKLAB 色空間に変換します。 いずれかの入力チャネルが[0...255] の範囲外にある場合、またはガンマ値が 0 以下の場合の動作は実装依存です。
OKLAB は知覚的に均一な色空間です。
その 3 つの座標は、
L ([0...1] の範囲の明度) 、a(緑-赤軸)、b(青-黄軸) です。
OKLab は、計算コストを抑えつつ知覚的に均一になるよう設計されています。- sRGB から Linear sRGB
- Linear sRGB から OKLab
tuple— 範囲[0...255]の 3 つの値 R、G、B からなるタプル。Tuple(UInt8, UInt8, UInt8)gamma— オプション。各チャネルxに(x / 255)^gammaを適用して sRGB を線形化するために使用する指数です。デフォルトは2.2です。Float64
(L, a, b) を返します。Tuple(Float64, Float64, Float64)
例
sRGB を OKLAB に変換する
Query
Response
colorSRGBToOKLCH
導入バージョン: v25.7.0 sRGB 色空間でエンコードされた色を、知覚的に均一な OKLCH 色空間に変換します。 いずれかの入力チャネルが[0...255] の範囲外であるか、ガンマ値が 0 以下の場合の動作は実装依存です。
OKLCH は、OKLab 色空間の円筒座標表現です。
その 3 つの座標は、
L ([0...1] の範囲の明度) 、C (>= 0 の彩度) 、H ([0...360] の範囲の度数で表した色相) です。
OKLab/OKLCH は、計算コストを抑えつつ知覚的に均一になるよう設計されています。- sRGB から Linear sRGB
- Linear sRGB から OKLab
- OKLab から OKLCH。
tuple— 範囲[0...255]の 3 つの値 R、G、B からなるタプル。Tuple(UInt8, UInt8, UInt8)gamma— 省略可。各チャネルxに(x / 255)^gammaを適用して sRGB を線形化する際に使う指数。既定値は2.2です。Float64
Tuple(Float64, Float64, Float64)
例
sRGB を OKLCH に変換
Query
Response
connectionId
導入バージョン: v21.3.0 現在のクエリを送信したクライアントの接続 ID を返します。 この関数は、デバッグ時に特に有用です。 これは、MySQL のCONNECTION_ID 関数との互換性を保つために作成されました。
通常、本番環境のクエリでは使用されません。
この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
- ありません。
UInt64
例
使用例
Query
Response
countDigits
導入バージョン: v20.8.0 値の表現に必要な10進数の桁数を返します。この関数は10進数値の scale を考慮します。つまり、基になる整数型
(value * scale) に対して結果を計算します。例:countDigits(42) = 2countDigits(42.000) = 5countDigits(0.04200) = 4
x の表現に必要な桁数を返します。UInt8
例
使用例
Query
Response
currentDatabase
導入バージョン: v1.1.0 現在のデータベース名を返します。 データベースを指定する必要があるCREATE TABLE クエリのテーブルエンジンパラメータで便利です。
SETステートメント も参照してください。
この関数は非決定論的です。同じ引数でも異なる結果を返すことがあります。
current_database, DATABASE, SCHEMA
引数
- ありません。
String
例
使用例
Query
Response
Query
Response
currentHandler
導入バージョン: v26.6.0 クエリを呼び出した、SQL で定義された HTTP ハンドラー (CREATE HANDLER で作成) の名前を返します。
このようなハンドラー経由でクエリが呼び出されなかった場合は、空文字列を返します。
呼び出されたハンドラーに応じてクエリの動作をカスタマイズする場合に役立ちます。
この関数は非決定論的です。同じ引数に対しても異なる結果を返すことがあります。
- なし。
String
例
使用例
Query
currentProfiles
導入バージョン: v21.9.0 現在のユーザーに設定されている設定プロファイルの Array を返します。この関数は非決定論的です。同じ引数に対しても、異なる結果を返すことがあります。
- ありません。
Array(String)
例
使用例
Query
Response
currentQueryID
導入バージョン: v25.2.0 現在の Query id を返します。この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
current_query_id
引数
- なし。
Query
Response
currentRequestURL
導入バージョン: v26.6.0 クエリを実行した HTTP リクエストの URL (パスおよびクエリ文字列) を返します。 クエリが HTTP 経由で実行されなかった場合は、空文字列を返します。 SQL で定義された HTTP ハンドラー (CREATE HANDLER) と組み合わせることで、リクエストパスに
埋め込まれたパラメータを抽出できます。
この関数は非決定論的です。同じ引数に対して異なる結果を返す場合があります。
- なし。
String
例
使用例
Query
currentRoles
導入バージョン: v21.9.0 現在のユーザーに付与されているロールの Array を返します。この関数は非決定論的です。同じ引数に対して、異なる結果を返すことがあります。
- なし。
Array(String)
例
使用例
Query
Response
currentSchemas
導入バージョン: v23.7.0 関数currentDatabase と同じですが、次の点が異なります。
- 無視される真偽値の引数を受け取ります
- データベース名を、単一の値を含む Array として返します。
currentSchemas は、PostgreSQL との互換性のためにのみ存在します。
代わりに currentDatabase を使用してください。
SET ステートメント も参照してください。
この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
current_schemas
引数
bool— 無視されるブール値。Bool
Array(String)
例
使用例
Query
Response
currentUser
導入バージョン: v20.1.0 現在のユーザー名を返します。 分散クエリの場合は、クエリを開始したユーザー名が返されます。この関数は非決定論的です。同じ引数に対して、異なる結果を返すことがあります。
session_user, current_user, user
引数
- なし。
String
例
使用例
Query
Response
Query
Response
defaultProfiles
導入バージョン: v21.9.0 現在のユーザーに対するデフォルトの設定プロファイル名の Array を返します。この関数は非決定論的です。同じ引数でも異なる結果を返すことがあります。
- なし
Array(String)
例
使用例
Query
Response
defaultRoles
導入バージョン: v21.9.0 現在のユーザーに設定されているデフォルトロールの Array を返します。この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
- なし。
Array(String)
例
使用例
Query
Response
defaultValueOfArgumentType
導入バージョン: v1.1.0 指定されたデータ型のデフォルト値を返します。 ユーザーが設定したカスタムカラムのデフォルト値は含まれません。 構文expression— 任意の型の値、または任意の型の値になる式。Any
0、文字列型の場合は空文字列、Nullable 型の場合は NULL を返します。UInt8 または String または NULL
例
使用例
Query
Response
Query
Response
defaultValueOfTypeName
導入バージョン: v1.1.0 指定された型名のデフォルト値を返します。 構文type— 型名を表す文字列。String
0、文字列型の場合は空文字列、Nullable UInt8 または String、あるいは NULL の場合は NULL です。
例
使用例
Query
Response
Query
Response
digits
導入バージョン: v26.7.0 指定した位置offset から始まる数値 n の桁を返します。
数え始めは 1 で、ルールは次のとおりです。
offsetが0の場合、offsetは 1-based であるため、例外がスローされます。offsetが負の値の場合、数値の先頭ではなく末尾からoffset桁分の位置を起点に数えます。offsetがnの桁数より大きい場合は、0が返されます。
length には、次のルールが適用されます。
lengthが正の値の場合、offsetから取得する桁数を意味しますlengthが負の値の場合、数値の右側から除外する桁数を意味します
substring 関数も参照してください。
構文
n— 桁を取り出す元となる数値。(U)Int8または(U)Int16または(U)Int32または(U)Int64offset—n内での桁の開始位置。(U)Int8または(U)Int16または(U)Int32または(U)Int64length— 任意。桁数の最大長。(U)Int8または(U)Int16または(U)Int32または(U)Int64
n の桁を UInt64 として解釈した値。選択範囲が空の場合は 0 を返します。先頭のゼロは保持されません。UInt64
例
正のオフセット
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
displayName
導入バージョン: v22.11.0 config のdisplay_name の値を返します。設定されていない場合は、サーバーの完全修飾ドメイン名 (FQDN) を返します。
この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
- なし。
display_name の値を返します。設定されていない場合は、サーバーの FQDN を返します。String
例
使用例
Query
Response
dumpColumnStructure
導入バージョン: v1.1.0 カラムの内部構造とそのデータ型について、詳細な説明を出力します。この関数は非決定論的です。同じ引数でも異なる結果を返すことがあります。
x— 説明を取得する対象の値。Any
String
例
使用例
Query
Response
enabledProfiles
導入バージョン: v21.9.0 現在のユーザーで有効な設定プロファイル名の Array を返します。この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
- なし。
Array(String)
例
使用例
Query
Response
enabledRoles
導入バージョン: v21.9.0 現在のユーザーで有効になっているロールの Array を返します。この関数は非決定論的であり、同じ引数に対して異なる結果を返すことがあります。
- なし。
Array(String)
例
使用例
Query
Response
errorCodeToName
導入バージョン: v20.12.0 数値の ClickHouse エラーコードに対応するエラー名のテキストを返します。 数値のエラーコードとエラー名の対応はこちらで確認できます。 構文error_code のテキスト形式の名前を返します。String
例
使用例
Query
Response
file
導入バージョン: v21.3.0 ファイルを文字列として読み取り、その内容を指定したカラムに読み込みます。 ファイルの内容は解釈されません。file テーブル関数も参照してください。
この関数は非決定論的です。同じ引数でも異なる結果を返すことがあります。
path—user_files_pathからの相対パス。ワイルドカード*、**、?、{abc,def}、{N..M}をサポートします。ここで、NとMは数値、'abc'と'def'は文字列です。Stringdefault— ファイルが存在しない場合、またはアクセスできない場合に返される値。StringまたはNULL
String
例
ファイルをテーブルに挿入
Query
Response
filesystemAvailable
導入バージョン: v20.1.0 データベースの永続化先があるファイルシステムの空き容量を返します。 オペレーティングシステム用に一部の領域が予約されているため、戻り値は常に合計の空き容量 (filesystemUnreserved) よりも小さくなります。
この関数は非決定論的です。同じ引数でも異なる結果を返すことがあります。
disk_name— 任意。空き容量を取得する対象のディスク名です。省略した場合は、デフォルトのディスクが使用されます。StringまたはFixedString
UInt64
例
使用例
Query
Response
filesystemCapacity
導入バージョン: v20.1.0 ファイルシステムの容量をバイト単位で返します。 データディレクトリへの path を設定しておく必要があります。この関数は非決定論的です。同じ引数でも異なる結果を返す場合があります。
disk_name— 任意。容量を取得する対象のディスク名です。省略した場合は、デフォルトのディスクが使用されます。StringまたはFixedString
UInt64
例
使用例
Query
Response
filesystemUnreserved
導入バージョン: v22.12.0 データベースの永続化ストレージをホストするファイルシステム上の空き容量の総量を返します (以前の名前はfilesystemFree) 。
関連項目: filesystemAvailable。
この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
disk_name— 省略可能。空き容量の合計を取得する対象のディスク名です。省略した場合は、デフォルトのディスクが使用されます。StringまたはFixedString
UInt64
例
使用例
Query
Response
finalizeAggregation
導入バージョン: v1.1.0 集約状態を受け取り、この関数は集約結果を返します (-State コンビネータを使用している場合は、確定された状態を返します) 。 構文state— 集約状態。AggregateFunction
Any
例
使用例
Query
Response
Query
Response
flipCoordinates
導入バージョン: v25.11.0 ジオメトリオブジェクトの x 座標と y 座標を入れ替えます。この操作では緯度と経度が入れ替わるため、異なる座標系間の変換や座標順序の修正に役立ちます。 Point では x 座標と y 座標を入れ替えます。複雑なジオメトリ (MultiPoint、LineString、Polygon、MultiPolygon、Ring、MultiLineString) では、各座標ペアにこの変換が再帰的に適用されます。 この関数は、個別のジオメトリ型 (Point、MultiPoint、Ring、Polygon、MultiPolygon、LineString、MultiLineString) と Geometry Variant 型の両方をサポートします。 構文geometry— 変換対象のジオメトリ。対応する型: Point (Tuple(Float64, Float64)), MultiPoint (Array(Point)), Ring (Array(Point)), Polygon (Array(Ring)), MultiPolygon (Array(Polygon)), LineString (Array(Point)), MultiLineString (Array(LineString)), または Geometry (これらのいずれかの型を含むバリアント)。
Point または MultiPoint または Ring または Polygon または MultiPolygon または LineString または MultiLineString または Geometry
例
basic_point
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
formatQuery
導入バージョン: v23.10.0 指定された SQL クエリを整形して返します。出力は複数行になる場合があります。パースエラーが発生した場合は例外をスローします。 [example:multiline] 構文query— フォーマットする SQL クエリ。 String
String
例
複数行
Query
Response
formatQueryFromJSON
導入バージョン: v26.8.0 SQL AST (parseQueryToJSON によって生成される) のJSON表現を受け取り、SQLクエリ文字列として再フォーマットします。
引数が1つの場合は、正規化された形式のSQLを生成します。
引数が2つの場合 (json, original_query) は、元のクエリのコメント、空白、インデントを可能な限り保持します。
デシリアライズされたASTは、現在のセッションの max_ast_depth および max_ast_elements 設定による制限を受けます。
この関数を parseQueryToJSON と組み合わせることで、JSON AST形式を介してクエリを
プログラムから検査および変換できます。
構文
String
例
往復変換
Query
Response
Query
Response
formatQueryOrNull
導入バージョン: v23.11.0 指定されたSQLクエリを整形したものを返します。結果は複数行になる場合があります。パースエラーの場合はNULLを返します。 [example:multiline] 構文query— 整形する対象のSQLクエリ。String
String
例
複数行
Query
Response
formatQuerySingleLine
導入バージョン: v23.10.0 formatQuery() と同様ですが、返される整形済み文字列には改行が含まれません。パースエラーが発生した場合は例外をスローします。 [example:multiline] 構文query— フォーマット対象のSQLクエリ。String
String
例
複数行
Query
Response
formatQuerySingleLineOrNull
導入バージョン: v23.11.0 formatQuery() と同様ですが、返されるフォーマット済み文字列には改行が含まれません。パース エラーが発生した場合は NULL を返します。 [example:multiline] 構文query— フォーマット対象のSQLクエリ。String
String
例
複数行
Query
Response
formatReadableDecimalSize
導入バージョン: v22.11.0 サイズ (バイト数) を受け取り、接尾辞 (KB、MB など) 付きの、読みやすく丸められたサイズを文字列として返します。 この関数の逆の操作はparseReadableSize です。
構文
value— バイト単位のサイズ。Int8またはInt16またはInt32またはInt64またはUInt8またはUInt16またはUInt32またはUInt64またはFloat32またはFloat64またはDecimalprecision— 任意。精度。デフォルトは 2 です。const UInt8
String
例
ファイルサイズを見やすい形式で表示する
Query
Response
Query
Response
formatReadableQuantity
導入バージョン: v20.10.0 数値を指定すると、この関数は接尾辞 (thousand、million、billion など) を付けた丸め後の数値を文字列として返します。 この関数は入力として任意の数値型を受け付けますが、内部的にはそれらをFloat64 にキャストします。
値が大きい場合、結果が不正確になることがあります。
構文
value— フォーマットする数値です。Int8またはInt16またはInt32またはInt64またはUInt8またはUInt16またはUInt32またはUInt64またはFloat32またはFloat64またはDecimalprecision— 任意です。精度を指定します。デフォルトは 2 です。const UInt8
String
例
数値を接尾辞付きでフォーマットする
Query
Response
Query
Response
formatReadableSize
導入バージョン: v1.1.0 サイズ (バイト数) を指定すると、この関数は接尾辞 (KiB、MiB など) 付きの、読みやすく丸められたサイズを文字列で返します。 この関数の逆の処理を行うのはparseReadableSize、parseReadableSizeOrZero、および parseReadableSizeOrNull です。
この関数は入力として任意の数値型を受け付けますが、内部ではそれらを Float64 にキャストします。値が大きい場合、結果が最適にならないことがあります。
構文
FORMAT_BYTES
引数
value— バイト単位のサイズ。Int8またはInt16またはInt32またはInt64またはUInt8またはUInt16またはUInt32またはUInt64またはFloat32またはFloat64またはDecimalprecision— 任意です。精度です。デフォルトは 2 です。const UInt8
String
例
ファイルサイズのフォーマット
Query
Response
Query
Response
formatReadableTimeDelta
導入バージョン: v20.12.0 秒単位の時間間隔 (delta) またはINTERVAL 式が与えられると、この関数は年/月/日/時/分/秒/ミリ秒/マイクロ秒/ナノ秒を含む時間差を文字列で返します。
この関数は任意の数値型を入力として受け付けますが、内部的にはそれらを Float64 にキャストします。値が大きい場合、結果が最適でないことがあります。
INTERVAL 式が渡されると、その値は秒に変換されます。MONTH 以上の interval 単位 (MONTH、QUARTER、YEAR) は、秒単位で固定長の間隔を表さないため、サポートされていません。
構文
column— 数値の時間差を表すカラム、またはINTERVAL式。MONTH以上の Interval 単位はサポートされていません。Float64またはIntervalmaximum_unit— 任意。表示する最大の単位。有効な値:nanoseconds、microseconds、milliseconds、seconds、minutes、hours、days、months、years。デフォルト値:years。const Stringminimum_unit— 任意。表示する最小の単位。これより小さい単位はすべて切り捨てられます。有効な値:nanoseconds、microseconds、milliseconds、seconds、minutes、hours、days、months、years。明示的に指定した値がmaximum_unitより大きい場合は、例外がスローされます。デフォルト値:maximum_unitがseconds以上の場合はseconds、それ以外の場合はnanoseconds。const String
String
例
使用例
Query
Response
Query
Response
Query
Response
fuzzQuery
導入バージョン: v26.2.0 指定されたクエリ文字列を解析し、ランダムな AST ミューテーション (ファジング) を適用します。ファジングされたクエリを文字列として返します。非決定論的で、呼び出すたびに異なる結果になる場合があります。allow_fuzz_query_functions = 1 が必要です。
構文
query— ファズ対象の SQL クエリ。String
String
例
基本的な例
Query
generateRandomStructure
導入バージョン: v23.5.0column1_name column1_type, column2_name column2_type, ... の形式でランダムなテーブルの構造を生成します。
この関数は非決定論的です。同じ引数でも異なる結果を返すことがあります。
number_of_columns— 生成されるテーブル構造のカラム数。0 またはNullに設定すると、カラム数は 1〜128 の範囲でランダムに決まります。デフォルト値:Null。UInt64seed— 再現可能な結果を得るための乱数シード。seed が指定されていないかNullに設定されている場合は、ランダムに生成されます。UInt64
String
例
使用例
Query
Response
Query
Response
Query
Response
generateSerialID
導入バージョン: v25.1.0 前回のカウンター値に続く連番を生成して返します。 この関数は、文字列の引数 (シリーズ識別子) と、省略可能な開始値を受け取ります。 サーバーは Keeper を使用するように設定する必要があります。 シリーズはパス配下の Keeper ノードに保存され、このパスはサーバー設定のseries_keeper_path で設定できます。
この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
series_identifier— シリーズ識別子const Stringstart_value— 任意。カウンターの開始値です。デフォルトは 0 です。注意: この値が使用されるのは新しいシリーズを作成する場合のみで、シリーズがすでに存在する場合は無視されますUInt*
UInt64
例
最初の呼び出し
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
getClientHTTPHeader
導入バージョン: v24.5.0 HTTP ヘッダーの値を取得します。 該当するヘッダーが存在しない場合、または現在のリクエストが HTTP インターフェイス経由で実行されていない場合、この関数は空文字列を返します。 一部の HTTP ヘッダー (例:Authorization、Authentication および X-ClickHouse-*) には制限があります。
この関数を使用するには、設定
allow_get_client_http_header を有効にする必要があります。
Cookie などの一部のヘッダーには機密情報が含まれる可能性があるため、セキュリティ上の理由からこの設定はデフォルトで無効になっています。getClientHTTPHeader は現在のリクエストのヘッダーを読み取るため、クエリが HTTP インターフェイス経由で送信された場合にのみ空でない値を返します。
たとえば、リクエストにヘッダーを付与し、HTTP 経由でその値を読み取れます。
application/x-www-form-urlencoded が返されます。
構文
name— HTTP ヘッダー名。String
String
例
使用例
Query
getMacro
導入バージョン: v20.1.0 サーバー設定ファイルからマクロの値を返します。 マクロは設定ファイルの<macros>セクションで定義され、ホスト名が複雑な場合でも、わかりやすい名前でサーバーを識別するために使用できます。
この関数を分散テーブルのコンテキストで実行すると、各分片に対応する値を持つ通常のカラムが生成されます。
そのテーブルを読み取る場合と同様に、system.macros に対する SELECT 権限が必要です。
この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
name— 取得するマクロの名前。const String
String
例
基本的な使い方
Query
Response
getMaxTableNameLengthForDatabase
導入バージョン: v25.1.0 指定したデータベース内のテーブル名の最大長を返します。 構文database_name— 指定したデータベースの名前。String
Query
Response
getMergeTreeSetting
導入バージョン: v25.6.0 MergeTree設定の現在の値を返します。 このテーブルを読み取る場合と同様に、system.merge_tree_settings に対する SELECT 権限が必要です。
この関数は非決定論的です。同じ引数でも異なる結果を返すことがあります。
setting_name— 設定名。String
Query
Response
getOSKernelVersion
導入バージョン: v21.11.0 OS カーネルのバージョンを含む文字列を返します。この関数は非決定論的です。同じ引数でも異なる結果を返すことがあります。
- なし
String
例
使用例
Query
Response
getServerPort
導入バージョン: v21.10.0 指定したプロトコルのサーバーのポート番号を返します。この関数は非決定論的です。同じ引数でも異なる結果を返すことがあります。
port_name— ポート名。String
UInt16
例
使用例
Query
Response
getServerSetting
導入バージョン: v25.6.0 サーバー設定名を指定すると、現在設定されている値を返します。 このテーブルを直接読み取る場合と同様に、system.server_settings に対する SELECT 権限が必要です。
この関数は非決定論的です。同じ引数でも異なる結果を返すことがあります。
setting_name— サーバー設定名。String
Any
例
使用例
Query
Response
getSetting
導入バージョン: v20.7.0 設定の現在の値を返します。この関数は非決定論的です。同じ引数でも異なる結果を返すことがあります。
setting_Name— 設定名。const String
Any
例
使用例
Query
Response
getSettingOrDefault
導入バージョン: v24.10.0 設定の現在の値を返します。現在のプロファイルでその設定が指定されていない場合は、2 番目の引数で指定されたデフォルト値を返します。この関数は非決定論的です。同じ引数でも、異なる結果を返すことがあります。
setting_name— 設定名。Stringdefault_value— custom_setting が設定されていない場合に返される値。値には任意のデータ型または Null を指定できます。
default_value を返します。
例
使用例
Query
Response
getSizeOfEnumType
導入バージョン: v1.1.0 指定されたEnumに含まれるフィールドの数を返します。
構文
x—Enum型の値。Enum
Enum 型の入力値を持つフィールドの数を返します。UInt8/16
例
使用例
Query
Response
getSubcolumn
導入バージョン: v23.3.0 式または識別子と、サブカラム名を表す定数文字列を受け取ります。 式から抽出した指定のサブカラムを返します。 構文- なし。
Query
Response
getTypeSerializationStreams
導入バージョン: v22.6.0 データ型のストリームパスを列挙します。 この関数は開発目的での使用を想定しています。 構文col— データ型を検出する対象の、カラム、またはデータ型の文字列表現。Any
Array(String)
例
tuple
Query
Response
Query
Response
globalVariable
導入バージョン: v20.5.0 定数の文字列引数を受け取り、その名前を持つグローバル変数の値を返します。この関数は MySQL との互換性のためのもので、ClickHouse の通常の運用では必要でも有用でもありません。定義されているダミーのグローバル変数はごくわずかです。 構文name— グローバル変数の名前。String
name の値を返します。Any
例
globalVariable
Query
Response
hasColumnInTable
導入バージョン: v1.1.0 データベース内のテーブルに特定のカラムが存在するかどうかを確認します。 ネストされたデータ構造内の要素については、この関数はカラムの存在を確認します。 ネストされたデータ構造そのものに対しては、この関数は0 を返します。
この関数を使用するには、ターゲットテーブルに対する
SHOW COLUMNS 権限が必要です (DESCRIBE および SHOW CREATE TABLE に必要な権限と同じです) 。
この権限がない場合、呼び出しは 1 または 0 を返すのではなく ACCESS_DENIED で失敗するため、アクセス権がない状態でカラム名の有無を調べることはできません。この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
database— データベース名。const Stringtable— テーブル名。const Stringcolumn— カラム名。const String
1、存在しない場合は 0 を返します。UInt8
例
既存のカラムを確認する
Query
Response
Query
Response
hasThreadFuzzer
導入バージョン: v20.6.0 thread fuzzer が有効になっているかどうかを返します。 この関数は、テストとデバッグにのみ有用です。 構文- なし。
UInt8
例
Thread Fuzzer の状態を確認する
Query
Response
highlightQuery
導入バージョン: v26.5.0 ClickHouse SQLのクエリ文字列を解析し、構文ハイライト用の範囲の配列を返します。 各範囲は、開始位置 (バイト単位) 、終了位置、ハイライトの種類を含む名前付きタプルです。 ハイライトの種類は、その部分の構文上の役割 (キーワード、識別子、関数など) を表し、 UIで色を割り当てるために使用できます。LIKE および REGEXP の文字列パターン内では、メタ文字 とエスケープ文字は個別にハイライトされます。 構文query— ClickHouse SQLのクエリ文字列。String。
(begin UInt64, end UInt64, type Enum8(...)) の配列。Array(Tuple(begin UInt64, end UInt64, type Enum8(...)))
例
シンプル
Query
Response
hostName
導入バージョン: v20.5.0 この関数が実行されたホスト名を返します。 関数がリモートサーバー上で実行される場合 (分散処理) 、そのリモートサーバー名が返されます。 関数が分散テーブルのコンテキストで実行される場合は、各分片に対応する値を持つ通常のカラムを生成します。 それ以外の場合は、定数値を返します。この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
hostname
引数
- ありません。
String
例
使用例
Query
Response
icebergBucket
導入バージョン: v25.5.0 iceberg bucket transformのロジックを実装しています。 構文N— バケット数 (法) 。const (U)Int*value— 変換元の値。(U)Int*またはBoolまたはDecimalまたはFloat*またはStringまたはFixedStringまたはUUIDまたはDateまたはTimeまたはDateTime
Int32
例
例
Query
Response
icebergDay
導入バージョン: v26.9.0 Iceberg のday パーティション変換を実装します。UTC で計算した、1970-01-01 からの日数を返します。
https://iceberg.apache.org/spec/#partition-transforms を参照してください。
構文
value— 変換する値。Date、Date32、DateTime、またはDateTime64
Int32
例
例
Query
Response
icebergHour
導入バージョン: v26.9.0 Iceberg のhour パーティション変換を実装します。1970-01-01 00:00:00 からの経過時間数 (UTC で計算) を返します。
https://iceberg.apache.org/spec/#partition-transforms を参照してください。
構文
value— 変換する値。DateTimeまたはDateTime64
Int32
例
例
Query
Response
icebergMonth
導入バージョン: v26.9.0 Iceberg のmonth パーティション変換を実装します。1970-01-01 からの月数を UTC で計算します。
https://iceberg.apache.org/spec/#partition-transforms を参照してください。
構文
value— 変換する値。Date、Date32、DateTime、またはDateTime64
Int32
例
例
Query
Response
icebergTruncate
導入バージョン: v25.3.0 Iceberg の truncate transform のロジックを実装しています: https://iceberg.apache.org/spec/#truncate-transform-details. 構文Query
Response
icebergYear
導入バージョン: v26.9.0 Iceberg のyear パーティション変換を実装します。UTC で計算した、1970 年からの経過年数を返します。
https://iceberg.apache.org/spec/#partition-transforms を参照してください。
構文
value— 変換する値。Date、Date32、DateTime、またはDateTime64
Int32
例
例
Query
Response
identity
導入バージョン: v1.1.0 この関数は、渡された引数をそのまま返します。デバッグやテストに便利です。これを使うと、索引の使用を回避して、代わりにフルスキャンのパフォーマンスを確認できます。クエリアナライザは、使用する索引を探す際にidentity 関数内の内容をすべて無視し、定数畳み込みも無効にします。
構文
x— 入力値。Any
Any
例
使用例
Query
Response
ignore
導入バージョン: v1.1.0 任意の引数を受け取り、常に0 を返します。
構文
x— 構文エラーを回避するためだけに渡され、実際には使用されない入力値です。Any
0 を返します。UInt8
例
使用例
Query
Response
indexHint
導入バージョン: v1.1.0 この関数は、デバッグと内部診断を目的としています。 引数は無視され、常に 1 を返します。 引数は評価されません。 索引解析では、この関数の引数はindexHint でラップされていないものとして扱われます。
これにより、対応する条件に基づいて索引範囲内のデータを選択できますが、その条件による追加の絞り込みは行われません。
ClickHouse の索引はスパースであるため、indexHint を使用すると、同じ条件を直接指定した場合よりも多くのデータが返されます。
説明
説明
次を実行すると:ClickHouse は次の 2 つを行います:ClickHouse が行うのは 1 つだけです:
- 索引を使って、
key = 123を含む可能性のあるグラニュール (約 8192 行のブロック) を見つける - それらのグラニュールを読み取り、
key = 123の行だけを返すように行ごとにフィルタする
indexHint を使って次を実行すると:- 索引を使って key = 123 を含む可能性のあるグラニュールを見つけ、それらのグラニュールから フィルタせずに すべての行を返す
key = 456 や key = 789 などの行も含め、8,192 行すべてが返されます。 (同じグラニュールにたまたま格納されていたものがすべて返されます。)
indexHint() はパフォーマンスのためのものではありません。これは、ClickHouse の索引がどのように機能するかをデバッグし、理解するためのものです:- 自分の条件はどのグラニュールを選択しているか
- それらのグラニュールには何行あるか
- 自分の索引は効果的に使われているか
indexHint 関数を使ってクエリを最適化することはできません。indexHint 関数はクエリ分析に追加情報を与えないため、クエリを最適化しません。indexHint 関数の中に式を入れても、indexHint 関数を使わない場合と比べて何ら有利ではありません。indexHint 関数は内部診断とデバッグの目的でのみ使用でき、パフォーマンスを改善するものではありません。ClickHouse のコントリビューター以外が indexHint を使っているのを見かけた場合、それはおそらく誤りなので削除すべきです。
構文
expression— 索引範囲の選択に使用する任意の式。式
1 を返します。UInt8
例
日付でフィルタリングする使用例
Query
Response
initialQueryID
導入バージョン: v1.1.0 現在の初期クエリの ID を返します。 クエリのその他のパラメータは、system.query_log の initial_query_id フィールドから取得できます。
queryID 関数とは異なり、initialQueryID は異なる分片でも同じ結果を返します。
この関数は非決定論的です。同じ引数に対しても異なる結果を返す場合があります。
initial_query_id
引数
- なし。
String
例
使用例
Query
Response
initialQueryStartTime
導入バージョン: v25.4.0 現在の初期クエリの開始時刻を返します。initialQueryStartTime は、異なる分片でも同じ結果を返します。
この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
initial_query_start_time
引数
- なし。
DateTime
例
使用例
Query
Response
initializeAggregation
導入バージョン: v20.6.0 単一の値に基づいて、集約関数の結果を計算します。 この関数は、-State コンビネータを持つ集約関数を初期化するために使用できます。 集約関数の状態を作成して、それをAggregateFunction 型のカラムに挿入したり、初期化された集約をデフォルト値として使用したりできます。
Syntax
initializeAggregation の第1引数として指定する関数の戻り値の型と同じです。 Any
例
uniqState を使った基本的な使い方
Query
Response
Query
Response
isConstant
導入バージョン: v20.3.0 引数が定数式であるかどうかを返します。 定数式とは、その結果がクエリ分析中、つまり実行前に確定している式です。 たとえば、リテラルからなる式は定数式です。 この関数は主に、開発、デバッグ、デモンストレーションを目的としています。この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
x— 確認する式。Any
x が定数であれば 1、定数でなければ 0 を返します。UInt8
例
定数式
Query
Response
Query
Response
Query
Response
Query
Response
isDecimalOverflow
導入バージョン: v20.8.0 10進数が、指定された精度の Decimal データ型に収まるには桁数が多すぎるかどうかを判定します。 構文1、指定された精度を満たしている場合は 0 を返します。UInt8
例
使用例
Query
Response
joinGet
導入バージョン: v18.16.0 Dictionary と同様に、テーブルからデータを取得できます。 指定した結合キーを使って Join テーブルからデータを取得します。ENGINE = Join(ANY, LEFT, <join_keys>) ステートメント で作成されたテーブルのみサポートしています。この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
join_storage_table_name— 検索対象を示す識別子です。この識別子はデフォルトデータベース内で検索されます (設定ファイルのパラメータdefault_databaseを参照) 。デフォルトデータベースを変更するには、USE database_nameクエリを使用するか、database_name.table_nameのようにデータベース名とテーブル名をドットで指定します。Stringvalue_column— 必要なデータを含むtableのカラム名です。const Stringjoin_keys— 結合キーのリストです。Any
Any
例
使用例
Query
Response
Query
Response
Query
Response
joinGetOrNull
導入バージョン: v20.4.0 Dictionary と同様の方法で、テーブルからデータを取得できます。 指定した結合キーを使用して Join テーブルからデータを取得します。joinGet とは異なり、キーが存在しない場合は NULL を返します。
ENGINE = Join(ANY, LEFT, <join_keys>) ステートメント で作成されたテーブルのみサポートします。この関数は非決定論的です。同じ引数でも異なる結果を返すことがあります。
join_storage_table_name— 検索を実行する場所を指定する識別子です。この識別子はデフォルトデータベース内で検索されます (設定ファイルの default_database パラメータを参照) 。デフォルトデータベースを変更するには、USE database_nameクエリを使用するか、database_name.table_nameのようにドット区切りでデータベース名とテーブル名を指定します。Stringvalue_column— 必要なデータを含むテーブルのカラム名です。const Stringjoin_keys— 結合キーのリストです。Any
NULL を返します。Any
例
使用例
Query
Response
lowCardinalityIndices
導入バージョン: v18.12.0 LowCardinality カラムのDictionary内での値の位置を返します。位置は 1 から始まります。LowCardinality ではパーツごとにDictionaryが作成されるため、この関数はパーツが異なると同じ値に対しても異なる位置を返す場合があります。この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
col— 低カーディナリティのカラム。LowCardinality
UInt64
例
使用例
Query
Response
lowCardinalityKeys
導入バージョン: v18.12.0 LowCardinality カラムのDictionary値を返します。 ブロックがDictionaryサイズより小さい、または大きい場合、結果は切り詰められるか、デフォルト値で拡張されます。 LowCardinality はパーツごとにDictionaryを持つため、この関数はパーツによって異なるDictionary値を返す場合があります。この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
col— 低カーディナリティのカラムです。LowCardinality
UInt64
例
lowCardinalityKeys
Query
Response
materialize
導入バージョン: v1.1.0 定数を、単一の値を含むフルカラムに変換します。 フルカラムと定数は、メモリ内では異なる形で表現されます。 関数は通常、通常の引数と定数引数に対して異なるコードを実行しますが、結果は一般に同じになるはずです。 この関数は、この動作をデバッグするために使用できます。 構文x— 定数。Any
Any
例
使用例
Query
Response
Query
Response
minSampleSizeContinuous
導入バージョン: v23.10.0 2 つのサンプルにおける連続値メトリクスの平均を比較する A/B テストに必要な最小サンプルサイズを計算します。 この記事で説明されている式を使用します。 介入群と対照群のサイズが等しいことを前提としています。 1 グループあたりに必要なサンプルサイズを返します (つまり、実験全体で必要なサンプルサイズは戻り値の 2 倍です) 。 また、テスト対象メトリクスの分散が介入群と対照群で等しいことも前提としています。 構文minSampleSizeContinous
引数
baseline— メトリックのベースライン値。(U)Int*またはFloat*sigma— メトリックのベースライン標準偏差。(U)Int*またはFloat*mde— ベースライン値に対する割合としての最小検出効果 (MDE) (例: ベースライン値が 112.25 の場合、MDE が 0.03 であれば、112.25 ± 112.25*0.03 への変化を想定します) 。(U)Int*またはFloat*power— テストに必要な統計的検出力 (1 - 第 II 種過誤の確率) 。(U)Int*またはFloat*alpha— テストに必要な有意水準 (第 I 種過誤の確率) 。(U)Int*またはFloat*
minimum_sample_size、detect_range_lower、detect_range_upper を持つ名前付き Tuple を返します。これらはそれぞれ、必要なサンプルサイズ、返される必要サンプルサイズでは検出できない値の範囲の下限 (baseline * (1 - mde) として計算) 、および返される必要サンプルサイズでは検出できない値の範囲の上限 (baseline * (1 + mde) として計算) です (Float64) 。 Tuple(Float64, Float64, Float64)
例
minSampleSizeContinuous
Query
Response
minSampleSizeConversion
導入バージョン: v22.6.0 2 つのサンプルにおけるコンバージョン率 (比率) を比較する A/B テストで、必要な最小サンプルサイズを計算します。 この記事で説明されている式を使用します。介入群と対照群のサイズが等しいことを前提としています。戻り値は一方のグループに必要なサンプルサイズです (つまり、実験全体に必要なサンプルサイズはこの戻り値の 2 倍です) 。 構文baseline— ベースラインのコンバージョン率。Float*mde— パーセンテージポイントで表した最小検出可能効果 (MDE) 。 (例: ベースラインのコンバージョン率が 0.25 の場合、MDE が 0.03 であれば、0.25 ± 0.03 への変化を想定します。)Float*power— テストで必要な統計的検出力 (1 - 第 II 種過誤の確率) 。Float*alpha— テストで必要な有意水準 (第 I 種過誤の確率) 。Float*
minimum_sample_size、detect_range_lower、detect_range_upper を持つ名前付きTupleを返します。これらはそれぞれ、必要なサンプルサイズ、返される必要サンプルサイズでは検出できない値の範囲の下限 (baseline - mde として計算) 、返される必要サンプルサイズでは検出できない値の範囲の上限 (baseline + mde として計算) を表します。Tuple(Float64, Float64, Float64)
例
minSampleSizeConversion
Query
Response
neighbor
導入バージョン: v20.1.0 現在の行から指定したオフセット位置にあるカラムの値を返します。 この関数は非推奨です。data block の物理的な順序に基づいて動作するため、ユーザーが想定する論理的な順序と一致しない可能性があり、エラーを引き起こしやすくなっています。
代わりに、適切なウィンドウ関数の使用を検討してください。
この関数は、allow_deprecated_error_prone_window_functions = 1 を設定することで有効にできます。
構文
column— 対象のカラム。Anyoffset— 現在の行からのオフセット。正の値は後方を、負の値は前方を参照します。Integerdefault_value— 任意。オフセットがデータ範囲外になった場合に返す値です。指定しない場合は、カラム型のデフォルト値が使用されます。Any
Any
例
使用例
Query
Response
Query
Response
normalizeQuery
導入バージョン: v20.8.0 リテラル、リテラルの並び、および複雑な別名 (空白を含むもの、3 桁以上の数字を含むもの、または UUID のように 36 バイト以上の長さを持つもの) をプレースホルダー? に置き換えます。
構文
x— 文字列。String
String
例
使用例
Query
Response
normalizeQueryKeepNames
導入バージョン: v21.2.0 リテラルおよびリテラルの並びをプレースホルダー? に置き換えますが、複雑な別名 (空白を含むもの、3 桁以上の数字を含むもの、または UUID などのように 36 バイト以上の長さを持つもの) は置き換えません。
これにより、複雑なクエリログをより適切に分析しやすくなります。
構文
x— 文字列。String
String
例
使用例
Query
Response
normalizedQueryHash
導入バージョン: v20.8.0 類似したクエリに対して、リテラル値を除外した同一の64ビットハッシュ値を返します。 クエリログの分析に役立ちます。 構文x— 文字列。String
UInt64
例
使用例
Query
Response
normalizedQueryHashKeepNames
導入バージョン: v21.2.0normalizedQueryHash と同様に、類似したクエリに対してはリテラル値を除いた同一の64ビットのハッシュ値を返しますが、ハッシュ化の前に複雑な別名 (空白を含む、3桁以上の数字を含む、または UUID のように36バイト以上の長さがあるもの) をプレースホルダーに置き換えることはありません。
クエリログの分析に役立ちます。
構文
x— 文字列。String
UInt64
例
使用例
Query
Response
obfuscateQuery
導入バージョン: v26.4.0 識別子をランダムな単語に、リテラルをランダムな値に置き換えつつ、クエリ構造を維持したまま SQL クエリを難読化します。 この関数は、デバッグ目的でクエリをログに記録したり共有したりする前に、クエリを匿名化するのに役立ちます。 同じ入力クエリであっても、行が異なれば異なる難読化結果が生成されるため、 複数のクエリを扱う際のプライバシー保護に役立ちます。 オプションのtag パラメータは、同じ関数呼び出しが
1 つのクエリ内で複数回使われる場合に、共通部分式除去を防ぎます。これにより、呼び出しごとに異なる難読化結果が生成されます。
特長:
- テーブル名、カラム名、別名をランダムな単語に置き換えます
- 数値リテラルと文字列リテラルをランダムな値に置き換えます
- クエリ全体の構造と SQL 構文を保持します
- 行ごとに異なる結果を生成します
この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
query— 難読化する SQL クエリ。Stringtag— 任意。同じ関数呼び出しが複数回使用される場合に、共通部分式除去を防ぐための値です。
String
例
基本的な使い方
Query
Response
Query
Response
Query
Response
obfuscateQueryWithSeed
導入バージョン: v26.4.0 指定した seed を使って SQL クエリを難読化し、決定論的な結果を得られます。obfuscateQuery() とは異なり、この関数は同じ seed を指定すると常に同じ結果を返します。
そのため、複数回の実行にわたって一貫した難読化が必要な場合や、
テストやデバッグのために同じ難読化済みクエリを再現したい場合に役立ちます。
特徴:
- 指定した seed に基づく決定論的な難読化
- 同じ seed からは常に同じ難読化結果を生成
- 異なる seed からは異なる結果を生成
obfuscateQuery()と同様にクエリの構造を保持
- 再現可能なテストケース
- 複数回の実行で一貫した匿名化
- 一貫した難読化済みクエリを用いたデバッグ
String
例
整数シードを使用した決定論的な難読化
Query
Response
Query
Response
Query
Response
parseISO8601Duration
導入バージョン: v26.9.0 ISO 8601 duration 文字列を解析し、秒数を返します。 期間はP で始まり、その後に任意の日付部分が続き、さらに T で始まる任意の時刻セクションが続きます。
W- 週D- 日T- 時刻セクションの開始H- 時M- 分 (Tの後のみ)S- 秒
PT0.5H は有効で、1800 を返します。
指示子は上記の順序で記述する必要があり、それぞれ最大 1 回までしか使用できません。ISO 8601:2004 では週の指示子は排他的ですが、ここでは他の指示子と組み合わせられます。
年 (Y) の指示子と、T より前の月 (M) の指示子は拒否されます。年も月も秒数として固定の長さを持たないためです。こうした期間は、基準日を用いて変換してください。
規格およびその拡張機能では許容されている次の 2 つの形式は受け付けられません。
PT1,5Sのように小数点の区切りにカンマを使う形式 - ピリオドを使用してください-PT1Sのような先頭の符号。これはコア文法ではなく RFC 3339 および XML Schema に由来するものです
duration— ISO 8601 形式の期間文字列。String
Float64
Examples
Usage example
Query
Response
Query
Response
parseQueryToJSON
導入バージョン: v26.8.0 SQLクエリ文字列をAST (Abstract Syntax Tree) にパースし、そのツリーのJSON表現を返します。 生成されたJSONは、formatQueryFromJSONに渡してSQLクエリを再構築したり、dialect設定にclickhouse_jsonを指定して直接サーバーに送信したりできます
(enable_json_ast_dialectによって制御されます) 。
これは、SQL文法を介さずにプログラムからクエリを検査または変換したいツールで役立ちます。
すべてのSQLクエリが忠実なJSON表現を持つわけではありません。JSON形式では再現できないデータを含むクエリ
(たとえばインラインのINSERT ... VALUES / INSERT ... FORMATデータ) や、JSONシリアライゼーションがまだ実装されていない
ASTノード型は、formatQueryFromJSONで読み戻せないJSONを生成するのではなく、BAD_ARGUMENTSで拒否されます。
パース制限 (max_query_size、max_parser_depth、max_parser_backtracks) は、現在の
セッション設定から取得されます。
構文
sql— 解析するSQLクエリ文字列。String
String
例
単純なSELECT
Query
Response
parseReadableSize
導入バージョン: v24.6.0 バイトサイズを表す文字列と、その単位としてB、KiB、KB、MiB、MB など (つまり ISO/IEC 80000-13 または 10 進バイト単位) が与えられると、この関数は対応するバイト数を返します。
この関数が入力値を解析できない場合は、例外をスローします。
この関数の逆演算は formatReadableSize と formatReadableDecimalSize です。
構文
x— ISO/IEC 80000-13 または 10 進のバイト単位を使用した、読みやすいサイズ表記。String
UInt64
例
使用例
Query
Response
parseReadableSizeOrNull
導入バージョン: v24.6.0 バイトサイズを表す文字列と、その単位としてB、KiB、KB、MiB、MB など (つまり ISO/IEC 80000-13 または10進のバイト単位) を受け取り、対応するバイト数を返します。
入力値を解析できない場合、この関数は NULL を返します。
この関数の逆演算は formatReadableSize と formatReadableDecimalSize です。
構文
x— ISO/IEC 80000-13 または 10 進バイト単位で表された、人が読みやすい形式のサイズ。String
NULL を返します。Nullable(UInt64)
例
使用例
Query
Response
parseReadableSizeOrZero
導入バージョン: v24.6.0 バイトサイズを表す文字列を受け取り、単位としてB、KiB、KB、MiB、MB など (つまり ISO/IEC 80000-13 または 10 進バイト単位) を含む場合、この関数は対応するバイト数を返します。
この関数が入力値を解析できない場合は、0 を返します。
この関数の逆関数にあたるのは formatReadableSize と formatReadableDecimalSize です。
構文
x— ISO/IEC 80000-13 または 10 進のバイト単位による、人間が読みやすいサイズ。String
0 を返します。UInt64
例
使用例
Query
Response
parseTimeDelta
導入バージョン: v22.7.0 数値の並びの後に時間単位に類する文字列が続く値を解析します。 time delta 文字列では、次の時間単位指定を使用できます。years,year,yr,ymonths,month,moweeks,week,wdays,day,dhours,hour,hr,hminutes,minute,min,mseconds,second,sec,smilliseconds,millisecond,millisec,msmicroseconds,microsecond,microsec,μs,µs,usnanoseconds,nanosecond,nanosec,ns
;、-、+、,、:) を使って組み合わせることができます。
年と月の長さは概算です。1 年は 365 日、1 か月は 30.5 日として扱います。
構文
timestr— 数字の並びに、時間の単位を表す文字列が続く値。String
Float64
例
使用例
Query
Response
Query
Response
partitionId
導入バージョン: v21.4.0 パーティション IDを計算します。この関数は低速なため、大量の行に対しては呼び出さないでください。
partitionID
引数
column1, column2, ...— パーティション ID を返す対象となるカラム。
String
例
使用例
Query
Response
pgGetUserById
導入バージョン: v26.8.0 PostgreSQL ワイヤプロトコルの互換性関数であり、pg_catalog.pg_get_userbyid に相当します。
PostgreSQL クライアント (たとえば、psql の \d コマンド) は、テーブルの所有者を表示するためにこの関数を使用します。
ClickHouse はテーブルの所有者を管理しないため、この関数は引数を無視し、現在のユーザー名を返します。
この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
pg_get_userbyid
引数
oid— ロールのオブジェクト識別子。値は無視されます。UInt32
String
例
使用例
Query
Response
pgTableIsVisible
導入バージョン: v26.8.0 PostgreSQL ワイヤプロトコルとの互換性関数で、pg_catalog.pg_table_is_visible に相当します。
PostgreSQL クライアント (たとえば psql の \d コマンド) は、検索パス内で可視のテーブルを絞り込むためにこの関数を使用します。
ClickHouse がエミュレートする pg_class ビューには、すべて可視である現在のデータベースのテーブルのみが含まれるため、この関数は常に 1 を返します。
構文
pg_table_is_visible
引数
oid— エミュレートされたpg_classビューで公開されるテーブルのオブジェクト識別子。この値は無視されます。UInt32
1 を返します。UInt8
例
使用例
Query
Response
queryID
導入バージョン: v21.9.0 現在のクエリの ID を返します。 クエリの他のパラメータは、system.query_log テーブルの query_id フィールドから取得できます。
initialQueryID 関数とは異なり、queryID は分片ごとに異なる結果を返す場合があります。
この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
query_id
引数
- なし。
String
例
使用例
Query
Response
リビジョン
導入バージョン: v22.7.0 現在の ClickHouseサーバー のリビジョン番号を返します。この関数は非決定論的です。同じ引数でも異なる結果を返すことがあります。
- なし。
UInt32
例
使用例
Query
Response
rowNumberInAllBlocks
導入バージョン: v1.1.0 処理される各行に対して一意の行番号を返します。この関数は非決定論的です。同じ引数に対しても異なる結果を返すことがあります。
- なし。
0 から始まる序数で返します。UInt64
例
使用例
Query
Response
rowNumberInBlock
導入バージョン: v1.1.0rowNumberInBlock は、処理対象の各ブロックについて、現在の行の番号を返します。
返される番号は、各ブロックごとに 0 から始まります。
この関数は非決定論的です。同じ引数に対して、異なる結果を返すことがあります。
- なし。
0 から始まるデータブロック内の行の序数を返します。UInt64
例
使用例
Query
Response
runningAccumulate
導入バージョン: v1.1.0 データブロックの各行について、集約関数の状態を累積します。 構文agg_state— 集約関数の状態。AggregateFunctiongrouping— 任意。グループ化キー。groupingの値が変わると、関数の状態はリセットされます。等価演算子が定義されている任意のサポート対象データ型を指定できます。Any
Any
例
initializeAggregation を使用した使用例
Query
Response
runningConcurrency
導入バージョン: v21.3.0 同時実行されているイベント数を計算します。 各イベントには開始時刻と終了時刻があります。 開始時刻はイベントに含まれますが、終了時刻は含まれません。 開始時刻と終了時刻のカラムは、同じデータ型である必要があります。 この関数は、各イベントの開始時刻ごとに、アクティブな (同時実行中の) イベントの総数を計算します。この関数は非決定論的です。同じ引数に対して異なる結果を返す場合があります。
start— イベントの開始時刻を表すカラム。DateまたはDateTimeまたはDateTime64end— イベントの終了時刻を表すカラム。DateまたはDateTimeまたはDateTime64
UInt32
例
使用例
Query
Response
runningDifference
導入バージョン: v1.1.0 データブロック内で連続する2つの行の値の差を計算します。 最初の行には0 を返し、2 行目以降は直前の行との差を返します。
この関数の結果は、対象となるデータブロックと、そのブロック内でのデータの順序に依存します。
runningDifference() の計算時の行の順序は、ユーザーに返される行の順序と異なる場合があります。
これを防ぐには、ORDER BY を含むサブクエリを作成し、その外側でこの関数を呼び出します。
ブロックサイズが結果に影響する点に注意してください。
runningDifference の内部状態は、新しいブロックごとにリセットされます。
構文
x— 連続する値の差分を計算する対象のカラム。Any
Query
Response
Query
Response
runningDifferenceStartingWithFirstValue
導入バージョン: v1.1.0 データブロック内で連続する行の値の差を計算しますが、runningDifference とは異なり、最初の行については 0 ではなく実際の値を返します。
構文
x— 連続する値の差分を計算する対象のカラム。Any
Any
例
使用例
Query
Response
serverUUID
導入バージョン: v20.1.0 server の初回起動時に生成される、ランダムで一意な UUID (v4) を返します。 この UUID は永続化されるため、2 回目、3 回目以降に server を起動しても、同じ UUID が返されます。この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
- なし。
UUID
例
使用例
Query
Response
shardCount
導入バージョン: v21.9.0 分散クエリにおける分片の総数を返します。 クエリが分散されていない場合は、定数値0 が返されます。
この関数は非決定論的です。同じ引数に対しても異なる結果を返すことがあります。
- なし。
0 を返します。UInt32
例
使用例
Query
Response
shardNum
導入バージョン: v21.9.0 分散クエリでデータの一部を処理する分片の番号を返します。 番号は1 から始まります。
クエリが分散クエリでない場合は、定数値 0 が返されます。
この関数は非決定論的です。同じ引数でも異なる結果を返すことがあります。
- なし。
0 を返します。UInt32
例
使用例
Query
Response
showCertificate
導入バージョン: v22.6.0 設定されている場合は、現在のサーバーの Secure Sockets Layer (SSL) 証明書に関する情報を表示します。 サーバーに証明書がない場合は空のマップを返します。たとえば、証明書が ACME によってプロビジョニングされており、まだ発行されていない場合です。 接続の検証に OpenSSL 証明書を使用するように ClickHouse を設定する方法について詳しくは、TLS の設定 を参照してください。この関数は非決定論的です。同じ引数に対して異なる結果を返す可能性があります。
- なし。
Map(String, String)
例
使用例
Query
Response
sleep
導入バージョン: v1.1.0 指定した秒数だけクエリの実行を一時停止します。 この関数は主に、テストやデバッグのために使用されます。sleep() 関数は、クエリのパフォーマンスやシステムの応答性に悪影響を及ぼす可能性があるため、通常、本番環境では使用すべきではありません。
ただし、次のような場面では有用です。
- テスト: ClickHouse のテストやベンチマークを行う際に、遅延をシミュレートしたり一時停止を挟んだりして、特定の条件下でシステムがどのように動作するかを観察したい場合があります。
- デバッグ: 特定の時点におけるシステムの状態やクエリの実行状況を確認する必要がある場合は、
sleep()を使って一時停止を入れることで、関連情報を調査または収集できます。 - シミュレーション: ネットワークレイテンシーや外部システムへの依存関係など、遅延や一時停止が発生する実際の状況をシミュレートしたい場合があります。
allow_sleep が有効な場合) のみです。
構文
seconds— クエリの実行を最大 3 秒まで一時停止する秒数です。小数秒を指定するには、浮動小数点値も使用できます。const UInt*またはconst Float*
0 を返します。UInt8
例
使用例
Query
Response
sleepEachRow
導入バージョン: v1.1.0 結果セットの各行ごとに、指定した秒数だけクエリの実行を一時停止します。sleepEachRow() 関数は、sleep() 関数と同様に、主にテストやデバッグのために使用されます。
この関数を使うと、各行の処理ごとに遅延や一時停止を発生させることができ、次のような場面で役立ちます。
- テスト: 特定の条件下で ClickHouse の性能をテストまたはベンチマークする際に、
sleepEachRow()を使って、処理される各行ごとに遅延や一時停止を発生させることができます。 - デバッグ: 処理される各行について、システムの状態やクエリの実行状況を確認する必要がある場合は、
sleepEachRow()で一時停止を入れることで、関連情報を調査したり収集したりできます。 - シミュレーション: 場合によっては、外部システムやネットワーク遅延を扱うケースのように、処理される各行ごとに遅延や一時停止が発生する実運用に近い状況をシミュレートしたいことがあります。
seconds— 結果セットの各行に対して、クエリの実行を最大 3 秒まで一時停止する秒数です。小数秒を指定するには浮動小数点値を使用できます。const UInt*またはconst Float*
0 を返します。UInt8
例
使用例
Query
Response
structureToCapnProtoSchema
導入バージョン: v23.8.0 ClickHouseのテーブル構造をCapnProtoフォーマットのスキーマに変換する関数 構文- なし。
Query
Response
structureToProtobufSchema
導入バージョン: v23.8.0 ClickHouseのテーブル構造をProtobufフォーマットのスキーマに変換します。 この関数は、ClickHouseのテーブル構造定義を受け取り、proto3構文の Protocol Buffers (Protobuf) スキーマ定義に変換します。これは、データ交換用にClickHouseの テーブル構造に対応したProtobufスキーマを生成する際に役立ちます。 構文structure— 文字列で指定する ClickHouse テーブルの構造定義です (例: ‘column1 Type1, column2 Type2’) 。Stringmessage_name— 生成されるスキーマ内の Protobuf メッセージ型の名前です。String
String
例
ClickHouse テーブル構造を Protobuf スキーマに変換する
Query
Response
tcpPort
導入バージョン: v20.12.0 サーバーが待ち受けているネイティブインターフェイスのTCPポート番号を返します。 分散テーブルに対して実行された場合、この関数は各分片に対応する値を持つ通常のカラムを生成します。 それ以外の場合は、定数値を返します。この関数は非決定論的です。同じ引数に対しても異なる結果を返すことがあります。
- ありません。
UInt16
例
使用例
Query
Response
throwIf
導入バージョン: v1.1.0 引数 x が true の場合、例外をスローします。error_code 引数を使用するには、設定パラメータ allow_custom_error_code_in_throw を有効にする必要があります。
構文
x— 確認する条件。Anymessage— 任意。カスタムエラーメッセージ。const Stringerror_code— 任意。カスタムエラーコード。const Int8/16/32
false の場合は 0 を返し、条件が true の場合は例外がスローされます。UInt8
例
使用例
Query
Response
toColumnTypeName
導入バージョン: v1.1.0 指定された値のデータ型の内部名を返します。 関数toTypeName とは異なり、返されるデータ型には Const や LowCardinality などの内部ラッパーのカラムが含まれる場合があります。
この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
value— 内部データ型を返す対象となる値。Any
String
例
使用例
Query
Response
toTypeName
導入バージョン: v1.1.0 渡された引数の型名を返します。NULL が渡された場合、この関数は型 Nullable(Nothing) を返します。これは ClickHouse の内部的な NULL 表現に対応します。
構文
x— 任意の型の値。Any
String
例
使用例
Query
Response
tokenizeQuery
導入バージョン: v26.5.0 ClickHouse SQL のクエリ文字列をトークン化し、トークンの配列を返します。 各トークンは、開始位置 (バイト単位) 、終了位置、およびトークンの型を持つ名前付きタプルです。 構文query— ClickHouse SQLクエリの文字列。String。
(begin UInt64, end UInt64, type Enum8(...)) の配列。Array(Tuple(begin UInt64, end UInt64, type Enum8(...)))
例
シンプル
Query
Response
transactionID
導入バージョン: v22.6.0 トランザクションの ID を返します。この関数は実験的機能セットの一部です。
実験的なトランザクションサポートを有効にするには、次の設定を 設定 に追加してください。詳しくは、Transactional (ACID) support のページを参照してください。
この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
- なし。
start_csn、local_tid、host_id、session_node_version で構成されるタプルを返します。
start_csn: グローバルな連番。このトランザクションの開始時点で確認されていた最新のコミットタイムスタンプです。local_tid: ローカルな連番。特定の start_csn 内で、このホストによって開始された各トランザクションごとに一意です。host_id: このトランザクションを開始したホストの UUID。session_node_version: トランザクション開始時点におけるホストの session znode のバージョン。これにより、ピアはレプリカ間で終了済みセッションの TID を検出できます。Tuple(UInt64, UInt64, UUID, Int64)
Query
Response
transactionLatestSnapshot
導入バージョン: v22.6.0 読み取りに利用可能なトランザクションの最新のスナップショット (Commit Sequence Number) を返します。この関数は実験的機能セットの一部です。実験的なトランザクションサポートを有効にするには、設定に次の項目を追加してください。詳細については、Transactional (ACID) supportのページを参照してください。
- なし。
UInt64
例
使用例
Query
Response
transactionOldestSnapshot
導入バージョン: v22.6.0 実行中のトランザクションから参照可能な、最も古いスナップショット (Commit Sequence Number) を返します。この関数は実験的機能セットの一部です。以下の設定を構成に追加して、実験的なトランザクションサポートを有効にしてください。詳細については、Transactional (ACID) support のページを参照してください。
- なし。
UInt64
例
使用例
Query
Response
transform
導入バージョン: v1.1.0 明示的に定義された要素間のマッピングに基づいて、値を変換します。 この関数には 2 つのバリエーションがあります。transform(x, array_from, array_to, default)- マッピング用の配列を使ってxを変換し、一致しない要素にはデフォルト値を返しますtransform(x, array_from, array_to)- 同じ変換を行いますが、一致する要素が見つからない場合は元のxを返します
array_from 内で x を検索し、同じ索引の array_to にある対応する要素を返します。
x が array_from 内で見つからない場合は、default の値 (4 パラメータ版) または元の x (3 パラメータ版) を返します。
array_from に一致する要素が複数ある場合は、最初の一致に対応する要素を返します。
要件:
array_fromとarray_toは同じ数の要素を持っている必要があります- 4 パラメータ版:
transform(T, Array(T), Array(U), U) -> U- ここでTとUには、互換性のある異なる型を使用できます - 3 パラメータ版:
transform(T, Array(T), Array(T)) -> T- ここですべての型は同じである必要があります
x— 変換対象の値。(U)Int*またはDecimalまたはFloat*またはStringまたはDateまたはDateTimearray_from— 一致する値を検索する対象の定数配列。Array((U)Int*)またはArray(Decimal)またはArray(Float*)またはArray(String)またはArray(Date)またはArray(DateTime)array_to—array_from内で対応する一致が見つかった場合に返される値の定数配列。Array((U)Int*)またはArray(Decimal)またはArray(Float*)またはArray(String)またはArray(Date)またはArray(DateTime)default— 任意。xがarray_from内に見つからない場合に返す値。省略した場合は、xをそのまま返します。(U)Int*またはDecimalまたはFloat*またはStringまたはDateまたはDateTime
x が array_from の要素に一致する場合は array_to の対応する値を返し、それ以外の場合は default (指定されている場合) または x (default が指定されていない場合) を返します。Any
例
transform(T, Array(T), Array(U), U) -> U
Query
Response
Query
Response
uniqThetaIntersect
導入バージョン: v22.9.0 2 つの uniqThetaSketch オブジェクト に対して積集合の計算 (集合演算 ∩) を行い、その結果として新しい uniqThetaSketch を返します。 構文uniqThetaSketch— uniqThetaSketch オブジェクト。TupleまたはArrayまたはDateまたはDateTimeまたはStringまたは(U)Int*またはFloat*またはDecimal
UInt64
例
使用例
Query
Response
uniqThetaNot
導入バージョン: v22.9.0 2 つの uniqThetaSketch オブジェクトに対して a_not_b 計算 (集合演算 ×) を実行し、その結果として新しい uniqThetaSketch を返します。 構文uniqThetaSketch— uniqThetaSketch オブジェクト。TupleまたはArrayまたはDateまたはDateTimeまたはStringまたは(U)Int*またはFloat*またはDecimal
UInt64
例
使用例
Query
Response
uniqThetaUnion
導入バージョン: v22.9.0 2 つの uniqThetaSketch オブジェクトに対してユニオン計算 (集合演算 ∪) を行い、結果として新しい uniqThetaSketch を返します。 構文uniqThetaSketch— uniqThetaSketch オブジェクト。TupleまたはArrayまたはDateまたはDateTimeまたはStringまたは(U)Int*またはFloat*またはDecimal
UInt64
例
使用例
Query
Response
稼働時間
導入バージョン: v1.1.0 サーバーの稼働時間を秒単位で返します。 分散テーブルに対して実行すると、この関数は各分片に対応する値を持つ通常のカラムを生成します。 それ以外の場合は、定数値を生成します。この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
- ありません。
UInt32
例
使用例
Query
Response
variantElement
導入バージョン: v25.2.0Variant カラムから、指定した型のカラムを抽出します。
構文
variant— Variant カラム。Varianttype_name— 抽出する Variant 型の名前。Stringdefault_value—variantに指定した型の値がない場合に使用されるデフォルト値。任意の型を指定できます。省略可能です。Any
Any
例
使用例
Query
Response
variantType
導入バージョン: v24.2.0Variant カラムの各行について、Variant 型名を返します。行に NULL が含まれている場合、その行については ‘None’ を返します。
構文
variant— Variant カラム。Variant
Enum
例
使用例
Query
Response
version
導入バージョン: v1.1.0 ClickHouse の現在のバージョンを、major_version.minor_version.patch_version.number_of_commits_since_the_previous_stable_release 形式の文字列として返します。
分散テーブル上で実行された場合、この関数は各分片に対応する値を持つ通常のカラムを生成します。
それ以外の場合は、定数値を返します。
この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
- ありません。
String
例
使用例
Query
Response
visibleWidth
導入バージョン: v1.1.0 値をテキスト形式 (タブ区切り) でコンソールに出力する際の、おおよその幅を計算します。 この関数は、システムが Pretty フォーマットを実装するために使用されます。NULL は、Pretty フォーマットでは NULL に対応する文字列として表現されます。
構文
x— 任意のデータ型の値。Any
UInt64
例
NULL の表示幅を計算
Query
Response
zookeeperSessionUptime
導入バージョン: v21.11.0 現在のZooKeeperセッションの稼働時間を秒単位で返します。この関数は非決定論的なため、同じ引数でも異なる結果を返すことがあります。
- なし。
UInt32
例
使用例
Query
Response