その他の関数
以下の関数のドキュメントは、system.functions システムテーブルから生成されています。
FQDN
導入バージョン: v20.1
ClickHouse サーバーの FQDN(完全修飾ドメイン名)を返します。
構文
別名: fullHostName
引数
- なし。
戻り値
ClickHouse サーバーの完全修飾ドメイン名を返します。String
例
使用例
MACNumToString
導入バージョン: v1.1
UInt64 型の数値をビッグエンディアン形式の MAC アドレスとして解釈します。
対応する MAC アドレスを、AA:BB:CC:DD:EE:FF(16 進数表記の値をコロンで区切った形式)の文字列として返します。
構文
引数
num— UInt64 型の整数値。UInt64
戻り値
AA:BB:CC:DD:EE:FF という形式の MAC アドレスを返します。String
例
使用例
MACStringToNum
導入バージョン: v1.1
MACNumToString の逆関数です。MAC アドレスの形式が不正な場合は 0 を返します。
構文
引数
s— MAC アドレスを表す文字列。String
返り値
UInt64 型の数値を返します。UInt64
例
使用例
MACStringToOUI
導入バージョン: v1.1
AA:BB:CC:DD:EE:FF 形式(16進数表記でコロン区切り)の MAC アドレスを受け取り、先頭の 3 オクテットを UInt64 型の数値として返します。MAC アドレスの形式が不正な場合は 0 を返します。
構文
引数
s— MAC アドレス文字列。String
返される値
先頭 3 オクテットを UInt64 型の数値として返します。UInt64
例
使用例
__applyFilter
導入: v25.10
JOIN の実行時フィルタリング用の専用関数です。
構文
引数
filter_name— ランタイムフィルターの内部名。BuildRuntimeFilterStep によって構築されます。Stringkey— フィルター内に含まれているかどうかを検査される、任意の型の値
戻り値
そのキーをフィルタリングすべき場合は False を返します。Bool
例
例
__patchPartitionID
導入バージョン: v25.5
内部関数です。パーツ名と、パッチパーツのカラム名のハッシュ値を受け取り、パッチパーツのパーティション名を返します。引数は正しいパーツ名でなければならず、それ以外の場合の動作は未定義です。
構文
引数
- なし。
戻り値
例
authenticatedUser
導入バージョン: v25.11
EXECUTE AS コマンドを使用してセッションのユーザーが切り替えられている場合、この関数は認証およびセッション作成に使用された元のユーザー名を返します。
エイリアス: authUser()
構文
別名: authUser
引数
- なし。
戻り値
認証されたユーザーの名前。String
例
使用例
bar
導入バージョン: v1.1
棒グラフを作成します。 幅が (x - min) に比例し、x = max のとき width 文字分となるバーを描画します。 バーは 1 文字を 1/8 単位に分割した精度で描画されます。
構文
引数
x— 表示するサイズ。(U)Int*またはFloat*またはDecimalmin— 最小値。(U)Int*またはFloat*またはDecimalmax— 最大値。(U)Int*またはFloat*またはDecimalwidth— オプション。バーの幅(文字数)。デフォルトは80。const (U)Int*またはconst Float*またはconst Decimal
戻り値
Unicode アートによるバー文字列を返します。String
例
使用例
blockNumber
導入バージョン: v1.1
行を含むブロックに対して、単調増加するシーケンス番号を返します。 ブロック番号の更新はベストエフォートで行われるため、完全に正確でない場合があります。
構文
引数
- なし。
戻り値
行が含まれているデータブロックのシーケンス番号。 UInt64
例
基本的な使い方
blockSerializedSize
導入バージョン: v20.3
ディスク上にある値ブロックの非圧縮サイズ(バイト単位)を返します。
構文
引数
x1[, x2, ...]— 非圧縮サイズを取得する対象となる、任意個の値。Any
返り値
圧縮なしで値のブロックとしてディスクに書き込まれるバイト数を返します。UInt64
例
使用例
blockSize
導入バージョン: v1.1
ClickHouse では、クエリは blocks(chunk)単位で処理されます。 この関数は、この関数が呼び出されるブロックのサイズ(行数)を返します。
構文
引数
- なし。
戻り値
現在のブロック内の行数を返します。UInt64
例
使用例
buildId
導入バージョン: v20.5
実行中の ClickHouse サーバー バイナリに対して、コンパイラによって生成されたビルド ID を返します。 分散テーブルのコンテキストで実行された場合、この関数は各分片に対応する値を持つ通常のカラムを生成します。 それ以外の場合は、定数値を返します。
構文
引数
- なし。
戻り値
ビルド ID を返します。String
例
使用例
byteSize
導入バージョン: v21.1
引数のメモリ上での非圧縮バイトサイズの推定値を返します。
String 型の引数に対しては、文字列長 + 8(文字列長)を返します。
関数が複数の引数を取る場合は、それぞれのバイトサイズを合計します。
構文
引数
arg1[, arg2, ...]— 非圧縮時のバイトサイズを見積もる対象となる、任意のデータ型の値。Any
戻り値
引数のメモリ上でのバイトサイズの推定値を返します。UInt64
例
使用例
複数の引数
catboostEvaluate
導入バージョン: v22.9
外部 catboost モデルを評価します。CatBoost は、Yandex が機械学習向けに開発したオープンソースの勾配ブースティングライブラリです。 catboost モデルへのパスと、モデル引数(特徴量)を受け取ります。
前提条件
- catboost 評価用ライブラリをビルドする
catboost モデルを評価する前に、libcatboostmodel.<so|dylib> ライブラリを使用可能な状態にしておく必要があります。コンパイル手順については CatBoost のドキュメント を参照してください。
次に、ClickHouse の設定で libcatboostmodel.<so|dylib> へのパスを指定します。
セキュリティおよび分離の観点から、モデルの評価はサーバープロセス内ではなく、clickhouse-library-bridge プロセス内で実行されます。
catboostEvaluate() が最初に実行されたとき、ライブラリブリッジプロセスがまだ起動していなければ、サーバーがそのプロセスを起動します。両プロセスは
HTTP インターフェイスを介して通信します。デフォルトでは、ポート 9012 が使用されます。別のポートを指定することも可能で、ポート
9012 がすでに他のサービスに割り当てられている場合に便利です。
- libcatboost を使用して catboost モデルを学習させる
トレーニングデータセットから catboost モデルを学習させる方法については、モデルの学習と適用を参照してください。
構文
引数
path_to_model— CatBoost モデルのパス。const Stringfeature— 1つ以上のモデル特徴量/引数。Float*
戻り値
モデルの評価結果を返します。Float64
使用例
catboostEvaluate
colorOKLCHToSRGB
導入バージョン: v25.7
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 への変換
2 番目の引数 gamma は、最後の段階で使用されます。
OKLCH 空間における色の一覧と、それらが sRGB の色とどのように対応するかについては、https://oklch.com/ を参照してください。
構文
引数
tuple— 数値L,C,Hの 3 要素からなるタプル。Lは範囲[0...1]、C >= 0、Hは範囲[0...360]。Tuple(Float64, Float64, Float64)gamma— 省略可能。リニア sRGB を、各チャネルxに対して(x ^ (1 / gamma)) * 255を適用することで sRGB に戻す際に使用される指数。デフォルト値は2.2。Float64
戻り値
sRGB の色値を表すタプル (R, G, B) を返します。Tuple(Float64, Float64, Float64)
例
OKLCH を sRGB に変換
colorSRGBToOKLCH
導入バージョン: v25.7
sRGB カラースペースでエンコードされた色を、知覚的に一様な OKLCH カラースペースへ変換します。
いずれかの入力チャネルが [0...255] の範囲外である場合、またはガンマ値が正でない場合、その挙動は実装依存です。
OKLCH は OKLab カラースペースの円筒座標版です。
3 つの座標は、それぞれ L(明度で、範囲は [0...1])、C(クロマで、>= 0)、H(色相で、度数法による [0...360] の範囲)です。
OKLab/OKLCH は、計算コストを低く抑えつつ知覚的に一様になるよう設計されています。
変換は次の 3 段階で構成されます:
- sRGB から Linear sRGB への変換
- Linear sRGB から OKLab への変換
- OKLab から OKLCH への変換
OKLCH 空間における色の例と、それらが sRGB の色にどのように対応するかについては、https://OKLCH.com/ を参照してください。
構文
引数
tuple—[0...255]の範囲にある R, G, B の 3 つの値からなるタプル。Tuple(UInt8, UInt8, UInt8)gamma— オプション。各チャネルxに対して(x / 255)^gammaを適用することで sRGB を線形化する際に使用する指数。デフォルト値は2.2。Float64
返り値
OKLCH 色空間の値を表すタプル (L, C, H) を返します。Tuple(Float64, Float64, Float64)
使用例
sRGB を OKLCH に変換する
connectionId
導入: v21.3
現在のクエリを送信したクライアントの接続 ID を返します。
この関数はデバッグの場面で最も有用です。
MySQL の CONNECTION_ID 関数との互換性のために作成されました。
本番環境のクエリで使用されることはあまりありません。
構文
引数
- なし。
戻り値
現在のクライアントの接続IDを返します。UInt64
例
使用例
countDigits
導入バージョン: v20.8
値を表現するのに必要な10進数の桁数を返します。
この関数は10進数値のスケールを考慮します。つまり、内部の整数型((value * scale))に対して桁数を計算します。
たとえば:
countDigits(42) = 2countDigits(42.000) = 5countDigits(0.04200) = 4
Decimal64 のオーバーフローは countDigits(x) > 18 で検査できますが、
isDecimalOverflow よりも低速です。
構文
引数
戻り値
x を表現するのに必要な桁数を返します。UInt8
例
使用例
currentDatabase
導入バージョン: v1.1
現在のデータベース名を返します。
データベースを指定する必要がある CREATE TABLE クエリのテーブルエンジンのパラメータで便利です。
SET 文 も参照してください。
構文
別名: current_database, SCHEMA, DATABASE
引数
- なし。
戻り値
現在のデータベース名を返します。String
例
使用例
currentProfiles
導入バージョン: v21.9
現在のユーザーの設定プロファイルの配列を返します。
構文
引数
- なし
返り値
現在のユーザーの SETTINGS プロファイルの配列を返します。Array(String)
例
使用例
currentQueryID
導入バージョン: v
現在のクエリ ID を返します。
構文
別名: current_query_id
引数
- なし。
戻り値
例
例
currentRoles
導入バージョン: v21.9
現在のユーザーに割り当てられているロールの配列を返します。
構文
引数
- なし
戻り値
現在のユーザーに割り当てられているロールの配列を返します。Array(String)
例
使用例
currentSchemas
導入バージョン: v23.7
関数 currentDatabase と同じですが、以下の違いがあります。
- 無視される boolean 引数を受け取ります
- データベース名を単一要素の配列として返します。
関数 currentSchemas は PostgreSQL との互換性のためにのみ存在します。
代わりに currentDatabase を使用してください。
SET 文 も参照してください。
構文
別名: current_schemas
引数
bool— 無視されるブール値。Bool
返り値
現在のデータベース名のみを含む 1 要素の配列を返します。Array(String)
例
使用例
currentUser
導入バージョン: v20.1
現在のユーザー名を返します。 分散クエリの場合は、そのクエリを開始したユーザーの名前を返します。
構文
別名: current_user, user
引数
- なし。
返される値
現在のユーザー名があればそれを、なければクエリを開始したユーザーのログイン名を返します。 String
例
使用例
defaultProfiles
導入バージョン: v21.9
現在のユーザーに対してデフォルトで適用される設定プロファイル名の配列を返します。
構文
引数
- なし。
戻り値
現在のユーザーのデフォルト設定プロファイル名の配列を返します。Array(String)
例
使用例
defaultRoles
導入バージョン: v21.9
現在のユーザーに設定されているデフォルトロールの配列を返します。
構文
引数
- なし。
返される値
現在のユーザーのデフォルトロールを表す配列を返します。Array(String)
例
使用例
defaultValueOfArgumentType
導入バージョン: v1.1
指定されたデータ型のデフォルト値を返します。 ユーザーが設定したカスタムカラムのデフォルト値は含まれません。
構文
引数
expression— 任意の型の値、または任意の型の値を返す式。Any
戻り値
数値に対しては 0、文字列に対しては空文字列、Nullable 型に対しては NULL を返します。戻り値の型は UInt8 または String または NULL です。
例
使用例
Nullable の使用例
defaultValueOfTypeName
導入バージョン: v1.1
指定された型名のデフォルト値を返します。
構文
引数
type— 型名を表す文字列。String
戻り値
指定された型名に対応するデフォルト値を返します。数値型の場合は 0、文字列型の場合は空文字列、Nullable 型の UInt8 または String の場合、あるいは NULL の場合は NULL を返します。
例
使用例
Nullable の例
displayName
導入バージョン: v22.11
config の display_name の値、または設定されていない場合はサーバーの完全修飾ドメイン名 (FQDN) を返します。
構文
引数
- なし。
返される値
設定の display_name の値を返します。設定されていない場合はサーバーの FQDN を返します。String
例
使用例
dumpColumnStructure
導入バージョン: v1.1
カラムの内部構造およびデータ型の詳細な説明を出力します。
構文
引数
x— 説明を取得する対象となる値。Any
返り値
値を表現するために使用されるカラム構造の説明を返します。String
例
使用例
enabledProfiles
導入バージョン: v21.9
現在のユーザーに対して有効な設定プロファイル名の配列を返します。
構文
引数
- なし。
戻り値
現在のユーザーに対して有効になっている設定プロファイル名の配列を返します。Array(String)
例
使用例
enabledRoles
導入バージョン: v21.9
現在のユーザーに対して有効なロールを配列で返します。
構文
引数
- なし。
返り値
現在のユーザーに対して有効なロール名を要素とする配列を返します。Array(String)
例
使用例
errorCodeToName
導入: v20.12
数値の ClickHouse エラーコードに対応するテキスト形式の名称を返します。 数値エラーコードからエラー名へのマッピングはこちらで参照できます。
構文
引数
戻り値
error_code に対応するテキスト名を返します。String
例
使用例
file
導入: v21.3
ファイルを文字列として読み取り、指定したカラムにデータを読み込みます。 ファイルの内容は解釈されません。
file テーブル関数も参照してください。
構文
引数
path— ファイルのパス(user_files_pathからの相対パス)。ワイルドカード*,**,?,{abc,def}および{N..M}をサポートします。ここでN,Mは数値で、'abc', 'def'は文字列です。Stringdefault— ファイルが存在しないか、アクセスできない場合に返される値。StringまたはNULL
返される値
ファイルの内容を文字列として返します。String
例
ファイルの内容をテーブルに挿入する
filesystemAvailable
導入バージョン: v20.1
データベースの永続データを格納しているファイルシステム上の空き容量を返します。
オペレーティングシステム用に一部の領域が予約されているため、返される値は常にファイルシステム上の合計空き容量(filesystemUnreserved)より小さくなります。
構文
引数
disk_name— 省略可能。空き容量を確認する対象のディスク名。省略した場合はデフォルトのディスクが使用されます。StringまたはFixedString
戻り値
利用可能な残り容量をバイト単位で返します。UInt64
例
使用例
filesystemCapacity
導入: v20.1
ファイルシステムの容量(バイト単位)を返します。 データディレクトリへのパスを設定しておく必要があります。
構文
引数
disk_name— 省略可。容量を取得する対象のディスク名。省略した場合はデフォルトのディスクが使用されます。StringまたはFixedString
戻り値
ファイルシステムの容量をバイト単位で返します。UInt64
例
使用例
filesystemUnreserved
導入バージョン: v22.12
データベースの永続データを保持しているファイルシステム上の、空き領域の合計量を返します(以前は filesystemFree)。
filesystemAvailable も参照してください。
構文
引数
disk_name— 省略可。空き容量の合計を取得するディスクの名前。省略時はデフォルトのディスクを使用します。StringまたはFixedString
返り値
空き容量のバイト数を返します。UInt64
例
使用例
finalizeAggregation
導入バージョン: v1.1
集約状態を受け取り、この関数は集約結果(または -State コンビネータを使用している場合はファイナライズされた状態)を返します。
構文
引数
state— 集約の状態。AggregateFunction
戻り値
集約の最終結果を返します。Any
例
使用例
initializeAggregation と組み合わせて使用する
flipCoordinates
導入バージョン: v25.10
Point、Ring、Polygon、または MultiPolygon の座標を反転します。Point の場合は座標値を入れ替えます。配列の場合は、各座標ペアに対して同じ変換を再帰的に適用します。
構文
引数
geometry— 変換するジオメトリ。サポートされる型: Point (Tuple(Float64, Float64))、Ring (Array(Point))、Polygon (Array(Ring))、MultiPolygon (Array(Polygon))。
戻り値
座標が反転されたジオメトリ。型は入力と同じです。Point または Ring または Polygon または MultiPolygon。
例
basic_point
リング
多角形
formatQuery
導入バージョン: v
指定された SQL クエリを、必要に応じて複数行になるよう整形した形式で返します。パースエラーが発生した場合は例外をスローします。 [example:multiline]
構文
引数
query— 整形する対象の SQL クエリ。String
戻り値
整形されたクエリを表す String
例
複数行
formatQueryOrNull
導入バージョン: v
指定された SQL クエリを、必要に応じて複数行になる書式化済みの形式で返します。パースエラーが発生した場合は NULL を返します。 [example:multiline]
構文
引数
query— 整形する SQL クエリ。String
戻り値
整形後のクエリ String
例
multiline
formatQuerySingleLine
導入バージョン: v
formatQuery() と同様ですが、返されるフォーマット済み文字列には改行が含まれません。構文解析エラーが発生した場合は例外をスローします。 [example:multiline]
構文
引数
query— フォーマットする SQL クエリ。String
戻り値
フォーマットされたクエリ String
例
multiline
formatQuerySingleLineOrNull
導入バージョン: v
formatQuery() と同様ですが、返される整形済み文字列には改行が含まれません。パースエラーが発生した場合は NULL を返します。 [example:multiline]
構文
引数
query— フォーマットする SQL クエリ。String
戻り値
フォーマットされたクエリ String
使用例
複数行
formatReadableDecimalSize
導入バージョン: v22.11
サイズ(バイト数)を指定すると、この関数は接尾辞(KB、MB など)付きの、人間に読みやすいように丸められたサイズを文字列として返します。
この関数の逆の処理を行うのは parseReadableSize です。
構文
引数
x— バイト数。UInt64
戻り値
読みやすいように丸めたサイズにサフィックスを付けた文字列を返します。String
例
ファイルサイズのフォーマット
formatReadableQuantity
導入バージョン: v20.10
数値を渡すと、この関数は四捨五入した数値に接尾辞(千、百万、十億など)を付けた文字列を返します。
この関数は入力として任意の数値型を受け付けますが、内部的にはそれらを Float64 にキャストします。
大きな値では最適でない結果になる場合があります。
構文
引数
x— フォーマットする数値。UInt64
返り値
サフィックスを付けた丸め済みの数値を文字列として返します。String
例
サフィックス付きで数値をフォーマットする
formatReadableSize
導入バージョン: v1.1
サイズ(バイト数)を指定すると、この関数は読みやすい形式に丸めたサイズに、接尾辞(KiB、MiB など)を付けた文字列を返します。
この関数の逆操作にあたるのは、parseReadableSize、parseReadableSizeOrZero、および parseReadableSizeOrNull です。
この関数は任意の数値型を入力として受け取りますが、内部的にはそれらを Float64 にキャストします。非常に大きな値では、結果が最適でない可能性があります。
構文
別名: FORMAT_BYTES
引数
x— バイト単位のサイズ。UInt64
戻り値
読みやすいように丸めたサイズに接尾辞を付けて、文字列として返します。String
例
ファイルサイズをフォーマットする
formatReadableTimeDelta
導入バージョン: v20.12
秒数で表された時間間隔(デルタ)を指定すると、この関数は年/月/日/時/分/秒/ミリ秒/マイクロ秒/ナノ秒単位を含む時間差を文字列として返します。
この関数は任意の数値型を入力として受け付けますが、内部的には Float64 にキャストします。非常に大きな値の場合、結果が十分に最適にならない可能性があります。
構文
引数
column— 数値の時間差を含むカラム。Float64maximum_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
例
使用例
最大単位を使用
generateRandomStructure
導入バージョン: v23.5
column1_name column1_type, column2_name column2_type, ... という形式のランダムなテーブル構造を生成します。
構文
引数
number_of_columns— 生成されるテーブル構造における希望するカラム数。0 またはNullに設定した場合、カラム数は 1 から 128 の範囲でランダムに決定されます。デフォルト値:Null。UInt64seed— 安定した結果を得るための乱数シード。seedが指定されていないかNullに設定されている場合は、ランダムに生成されます。UInt64
戻り値
ランダムに生成されたテーブル構造。String
例
使用例
指定した数のカラムを使用
指定したシード値で
generateSerialID
導入バージョン: v25.1
直前のカウンター値から連番を生成して返します。
この関数は、文字列引数(シリーズ識別子)と任意の開始値を取ります。
サーバーは Keeper を用いて構成されている必要があります。
シリーズは Keeper ノード内のパス配下に保存され、このパスはサーバー設定の series_keeper_path で設定できます。
構文
引数
series_identifier— シリーズ識別子const Stringstart_value— 省略可能。カウンターの開始値。デフォルトは 0。注: この値は新しいシリーズを作成する場合にのみ使用され、シリーズがすでに存在する場合は無視されます。UInt*
返り値
直前のカウンター値から始まる連番を返します。 UInt64
例
最初の呼び出し
2回目の呼び出し
カラムの呼び出し
開始値あり
開始値付き 2 回目の呼び出し
getClientHTTPHeader
導入バージョン: v24.5
HTTP ヘッダーの値を取得します。
そのようなヘッダーが存在しない場合、または現在のリクエストが HTTP インターフェイス経由で実行されていない場合、この関数は空文字列を返します。
特定の HTTP ヘッダー(例: Authentication や X-ClickHouse-*)は制限されています。
allow_get_client_http_header の設定が必須この関数を使用するには、allow_get_client_http_header 設定を有効にする必要があります。
Cookie などの一部のヘッダーには機密情報が含まれる可能性があるため、この設定はデフォルトでは有効になっていません。
この関数では、HTTP ヘッダー名の大文字・小文字は区別されます。
関数が分散クエリのコンテキストで使用される場合、イニシエーターノード上でのみ空でない結果を返します。
構文
引数
name— HTTP ヘッダー名。String
戻り値
ヘッダーの値を返します。String
例
使用例
getMacro
導入バージョン: v20.1
サーバーの設定ファイルで定義されたマクロの値を返します。
マクロは設定ファイルの <macros> セクションで定義され、ホスト名が複雑な場合でも、サーバーをわかりやすい名前で区別するために使用できます。
この関数を分散テーブルのコンテキストで実行した場合、各分片に対応する値を持つ通常のカラムを生成します。
構文
引数
name— 取得するマクロの名前。const String
戻り値
指定したマクロの値を返します。String
例
基本的な使い方
getMaxTableNameLengthForDatabase
導入バージョン: v
指定したデータベースでサポートされるテーブル名の最大長を返します。
構文
引数
database_name— 指定されたデータベースの名前。String
返り値
テーブル名の最大長を Integer 型で返します。
使用例
典型的な例
getMergeTreeSetting
導入バージョン: v25.6
現在の MergeTree 設定値を返します。
構文
引数
setting_name— 設定名。String
戻り値
MergeTree の設定の現在値を返します。
例
使用例
getOSKernelVersion
導入バージョン: v21.11
OS カーネルのバージョンを表す文字列を返します。
構文
引数
- なし。
戻り値
現在の OS カーネルバージョンを返します。String
例
使用例
getServerPort
導入バージョン: v21.10
指定されたプロトコルに対するサーバーのポート番号を返します。
構文
引数
port_name— ポート名。String
戻り値
サーバーのポート番号を返します。UInt16
例
使用例
getServerSetting
導入バージョン: v25.6
サーバー設定名を指定して、その現在の値を返します。
構文
引数
setting_name— サーバー設定の名前。String
戻り値
サーバー設定の現在の値を返します。Any
例
使用例
getSetting
導入バージョン: v20.7
現在の設定値を返します。
構文
引数
setting_Name— 設定名。const String
返される値
設定の現在の値を返します。Any
例
使用例
getSettingOrDefault
導入バージョン: v24.10
指定した設定の現在の値を返します。現在のプロファイルでその設定が設定されていない場合は、第 2 引数で指定されたデフォルト値を返します。
構文
引数
setting_name— 設定名。Stringdefault_value—custom_settingが設定されていない場合に返される値。値は任意のデータ型または Null を指定できます。
戻り値
指定された設定の現在の値、またはその設定が設定されていない場合は default_value を返します。
例
使用例
getSizeOfEnumType
導入されたバージョン: v1.1
指定された Enum 型のフィールド数を返します。
構文
引数
x— 型Enumの値。Enum
返される値
Enum 型の入力値を取るフィールド数を返します。UInt8/16
例
使用例
getSubcolumn
導入バージョン: v
式または識別子と、サブカラム名を表す定数文字列を引数に取ります。
式から指定されたサブカラムを抽出して返します。
構文
引数
- なし
返り値
例
getSubcolumn
getTypeSerializationStreams
導入バージョン: v22.6
データ型のシリアライズストリームのパスを列挙します。 この関数は開発用途での利用を想定しています。
構文
引数
col— データ型を検出するための対象となるカラム、またはデータ型の文字列表現。Any
戻り値
すべてのシリアライズサブストリームのパスを含む配列を返します。Array(String)
例
tuple
map
globalVariable
導入: v20.5
定数の文字列引数を受け取り、その名前を持つグローバル変数の値を返します。この関数は MySQL との互換性のために用意されており、通常の ClickHouse の運用上は必要なく、有用でもありません。ごく少数のダミーのグローバル変数のみが定義されています。
構文
引数
name— グローバル変数の名前。String
戻り値
変数 name の値を返します。Any
例
globalVariable
hasColumnInTable
導入バージョン: v1.1
指定したカラムがデータベーステーブルに存在するかどうかをチェックします。
ネストされたデータ構造内の要素に対しては、そのカラムが存在するかどうかを関数がチェックします。
ネストされたデータ構造そのものに対しては、関数は 0 を返します。
構文
引数
database— データベース名。const Stringtable— テーブル名。const Stringcolumn— カラム名。const Stringhostname— 省略可能。チェックを実行するリモートサーバー名。const Stringusername— 省略可能。リモートサーバーのユーザー名。const Stringpassword— 省略可能。リモートサーバーのパスワード。const String
戻り値
指定したカラムが存在する場合は 1、それ以外の場合は 0 を返します。UInt8
例
既存のカラムをチェックする
存在しないカラムを確認する
hasThreadFuzzer
導入バージョン: v20.6
スレッドファザーが有効になっているかどうかを返します。 この関数はテストやデバッグの目的にのみ使用されます。
構文
引数
- なし。
戻り値
Thread Fuzzer が有効かどうかを返します。UInt8
例
Thread Fuzzer のステータスを確認
hostName
導入バージョン: v20.5
この関数が実行されたホストの名前を返します。 関数がリモートサーバー(分散処理)上で実行される場合は、そのリモートサーバーの名前が返されます。 関数が分散テーブルのコンテキストで実行される場合、それぞれの分片に対応する値を持つ通常のカラムを生成します。 それ以外の場合は定数値を返します。
構文
エイリアス: hostname
引数
- なし。
戻り値
ホスト名を返します。String
例
使用例
icebergBucket
導入バージョン: v25.5
iceberg bucket transform の処理を実装します。
構文
引数
N— バケット数(モジュロ)。const (U)Int*value— 変換対象の値。(U)Int*またはBoolまたはDecimalまたはFloat*またはStringまたはFixedStringまたはUUIDまたはDateまたはTimeまたはDateTime
戻り値
入力値の 32 ビットハッシュを返します。Int32
例
使用例
icebergTruncate
導入バージョン: v25.3
Apache Iceberg の truncate 変換ロジックを実装します: https://iceberg.apache.org/spec/#truncate-transform-details。
構文
引数
戻り値
引数と同じ型です
使用例
例
identity
導入バージョン: v1.1
この関数は渡された引数をそのまま返します。デバッグやテストに有用です。索引の使用を回避して、フルスキャン時のパフォーマンスを確認することができます。クエリアナライザは、使用する索引を探す際に identity 関数内の内容を無視し、さらに定数畳み込みも無効化します。
Syntax
引数
x— 入力値。Any
戻り値
入力値をそのまま返します。Any
例
使用例
ignore
導入: v1.1
任意の引数を受け取り、常に 0 を返します。
構文
引数
x— 構文エラーを回避するためだけに渡される、使用されない入力値。Any
戻り値
常に 0 を返します。UInt8
例
使用例
indexHint
導入バージョン: v1.1
この関数はデバッグおよび内部動作の調査用途を想定しています。 引数を無視し、常に 1 を返します。 引数は評価されません。
ただしインデックス解析時には、この関数の引数は indexHint でラップされていないものとして扱われます。
これにより、対応する条件を用いてインデックス範囲でデータを選択しつつ、その条件によるそれ以上のフィルタリングを行わないようにできます。
ClickHouse におけるインデックスはスパースであり、indexHint を使用すると、同じ条件を直接指定した場合よりも多くのデータが返されます。
構文
引数
expression— インデックス範囲選択のための任意の式。Expression
戻り値
常に 1 を返します。UInt8
例
日付フィルタリングを用いた使用例
initialQueryID
導入バージョン: v1.1
現在実行中の初期クエリの ID を返します。
クエリの他のパラメータは、system.query_log の initial_query_id フィールドから取得できます。
queryID 関数とは異なり、initialQueryID は異なる分片間でも同じ結果を返します。
構文
別名: initial_query_id
引数
- なし。
戻り値
現在のクエリに対応する初期クエリの ID を返します。String
例
使用例
initialQueryStartTime
導入バージョン: v25.4
最初の(起点となる)現在のクエリの開始時刻を返します。
initialQueryStartTime は、分片が異なっても同じ結果を返します。
構文
エイリアス: initial_query_start_time
引数
- なし。
戻り値
現在の初期クエリの開始時刻を返します。 DateTime
例
使用例
initializeAggregation
導入バージョン: v20.6
単一の値に基づいて集約関数の結果を計算します。
この関数は、コンビネータ -State を持つ集約関数を初期化するために使用できます。
集約関数の状態 (state) を作成して AggregateFunction 型のカラムに挿入したり、初期化された集約結果をデフォルト値として使用したりできます。
構文
引数
返り値
関数に渡された各行に対する集約結果を返します。戻り値の型は、initializeAggregation が最初の引数として受け取る関数の戻り値の型と同じです。Any
例
uniqState を用いた基本的な使い方
sumState と finalizeAggregation の使用方法
isConstant
導入バージョン: v20.3
引数が定数式かどうかを返します。 定数式とは、クエリ解析の段階、すなわち実行前に結果がわかっている式です。 たとえば、リテラル を用いた式は定数式です。 この関数は主に開発、デバッグ、およびデモ用途を想定しています。
構文
引数
x— 判定対象の式。Any
戻り値
x が定数の場合は 1、x が非定数の場合は 0 を返します。戻り値の型は UInt8 です。
例
定数式
関数を含む定数
非定数式
now() 関数の挙動
isDecimalOverflow
導入バージョン: v20.8
10進数値が、指定した精度を持つ Decimal データ型に正しく収まる桁数を超えているかどうかを判定します。
構文
引数
返り値
Decimal 値がその精度で許容される桁数を超えている場合は 1、指定された精度を満たしている場合は 0 を返します。UInt8
例
使用例
joinGet
導入バージョン: v18.16
Dictionary と同様の方法でテーブルからデータを抽出できます。 指定された結合キーを使用して Join テーブルからデータを取得します。
ENGINE = Join(ANY, LEFT, <join_keys>) ステートメント で作成されたテーブルのみをサポートします。
構文
引数
join_storage_table_name— 検索を実行する場所を示す識別子。識別子はデフォルトのデータベース内で検索されます(設定ファイルのパラメータdefault_databaseを参照)。デフォルトのデータベースを変更するには、USE database_nameクエリを使用するか、database_name.table_nameのようにドット区切りでデータベース名とテーブル名を指定します。Stringvalue_column— 必要なデータを含むテーブルのカラム名。const Stringjoin_keys— join キーのリスト。Any
戻り値
キーのリストに対応する値のリストを返します。Any
例
使用例
現在のデータベース内のテーブルを使用する場合
配列を結合キーとして使用する
joinGetOrNull
導入: v20.4
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— JOIN キーのリストです。Any
戻り値
キーのリストに対応する値のリスト、またはキーが見つからない場合は NULL を返します。Any
例
使用例
lowCardinalityIndices
導入されたバージョン: v18.12
LowCardinality カラムの Dictionary 内での値の位置を返します。位置は 1 から始まります。LowCardinality カラムはパーツごとに Dictionary を持つため、この関数は同じ値であっても、異なるパーツでは異なる位置を返す場合があります。
構文
引数
col— 低カーディナリティのカラム。LowCardinality
戻り値
現在のパーツにおける Dictionary 内での値の位置。UInt64
例
使用例
lowCardinalityKeys
導入: v18.12
LowCardinality カラムの辞書値を返します。 ブロックのサイズが辞書のサイズより小さいまたは大きい場合、結果は切り詰められるか、デフォルト値で拡張されます。 LowCardinality はパーツごとに辞書を持つため、この関数はパーツごとに異なる辞書値を返す場合があります。
構文
引数
col— 低カーディナリティのカラム。LowCardinality
戻り値
Dictionary のキーを返します。UInt64
例
lowCardinalityKeys
materialize
導入バージョン: v1.1
定数を、同一の値だけを含む通常のカラムへ変換します。 通常のカラムと定数は、メモリ上では異なる形式で表現されます。 関数は通常、通常の引数と定数引数に対して異なるコードを実行しますが、結果は通常同じになるはずです。 この関数は、この挙動をデバッグするために使用できます。
構文
引数
x— 定数です。Any
戻り値
定数値を含むカラム全体を返します。Any
例
使用例
minSampleSizeContinuous
導入バージョン: v23.10
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*
戻り値
3 要素からなる名前付き Tuple を返します: minimum_sample_size, detect_range_lower, detect_range_upper。それぞれ、必要なサンプルサイズ、返された必要サンプルサイズでは検出できない値の範囲の下限 (baseline * (1 - mde) で計算)、および返された必要サンプルサイズでは検出できない値の範囲の上限 (baseline * (1 + mde) で計算) です (Float64)。Tuple(Float64, Float64, Float64)
使用例
minSampleSizeContinuous
minSampleSizeConversion
導入バージョン: v22.6
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*
返される値
3 要素を持つ名前付き Tuple を返します: minimum_sample_size, detect_range_lower, detect_range_upper。これらはそれぞれ、必要なサンプルサイズ、このサンプルサイズでは検出できない値の範囲の下限(baseline - mde として計算)、このサンプルサイズでは検出できない値の範囲の上限(baseline + mde として計算)です。Tuple(Float64, Float64, Float64)
使用例
minSampleSizeConversion
neighbor
導入: v20.1
現在の行から指定したオフセットだけ離れた行のカラム値を返します。 この関数は、データブロックの物理的な順序に基づいて動作し、ユーザーが想定する論理的な順序と一致しない場合があるため、非推奨でありエラーを招きやすいものです。 代わりに適切なウィンドウ関数の利用を検討してください。
この関数は、allow_deprecated_error_prone_window_functions = 1 を設定することで有効化できます。
構文
引数
column— 入力となるカラム。Anyoffset— 現在の行からのオフセット。正の値は後続の行、負の値は前方の行を参照します。Integerdefault_value— 省略可能。オフセットがデータ範囲外になった場合に返す値。指定されていない場合は、そのカラム型のデフォルト値が使用されます。Any
戻り値
指定されたオフセット位置の値、または範囲外の場合はデフォルト値を返します。Any
例
使用例
デフォルト値がある場合
nested
導入バージョン: v
これは ClickHouse エンジン内部で使用される関数であり、直接使用することを想定していません。
複数の配列からタプルの配列を返します。
最初の引数は、結果の Tuple の要素名を決定する定数の文字列配列でなければなりません。 その他の引数は、同じサイズの配列でなければなりません。
構文
引数
- なし。
戻り値
例
ネスト
normalizeQuery
導入バージョン: v20.8
リテラル、連続したリテラル、そして複雑なエイリアス(空白を含むもの、2 桁を超える数字を含むもの、または UUID のように長さが少なくとも 36 バイトのもの)を、プレースホルダー ? に置き換えます。
構文
引数
x— 文字列。String
戻り値
指定された文字列をプレースホルダー付きで返します。String
例
使用例
normalizeQueryKeepNames
導入バージョン: v21.2
リテラルおよび連続したリテラルの並びをプレースホルダー ? に置き換えますが、複雑なエイリアス(空白を含むもの、3 桁以上の数字を含むもの、または UUID のように少なくとも 36 バイトの長さを持つもの)は置き換えません。
これにより、複雑なクエリログをより適切に分析できるようになります。
構文
引数
x— 文字列。String
戻り値
指定されたプレースホルダ付き文字列を返します。String
例
使用例
normalizedQueryHash
導入バージョン: v20.8
類似したクエリに対して、リテラル値を無視して同一の 64 ビットハッシュ値を返します。 クエリログの分析に役立ちます。
構文
引数
x— 文字列。String
戻り値
64 ビットのハッシュ値を返します。UInt64
例
使用例
normalizedQueryHashKeepNames
導入バージョン: v21.2
normalizedQueryHash と同様に、類似したクエリに対してリテラル値を除いた同一の 64 ビットのハッシュ値を返しますが、ハッシュ化の前に、複雑なエイリアス(空白を含むもの、2 桁を超える数字を含むもの、または UUID のように少なくとも 36 バイトの長さを持つもの)をプレースホルダーに置き換える処理は行いません。
クエリログの分析に役立ちます。
構文
引数
x— 文字列。String
戻り値
64 ビットのハッシュ値を返します。UInt64
例
使用例
parseReadableSize
導入バージョン: v24.6
バイト数を表す文字列と、その単位として B、KiB、KB、MiB、MB など(すなわち ISO/IEC 80000-13 に準拠したバイト単位、または10進バイト単位)が与えられた場合、この関数は対応するバイト数を返します。
関数が入力値を解析できない場合は、例外をスローします。
この関数の逆変換を行う関数は formatReadableSize と formatReadableDecimalSize です。
構文
引数
x— ISO/IEC 80000-13 または 10 進バイト単位で表された、人間が読みやすい形式のサイズ。String
返り値
バイト数を切り上げた整数値を返します。UInt64
例
使用例
parseReadableSizeOrNull
導入バージョン: v24.6
B、KiB、KB、MiB、MB など(ISO/IEC 80000-13 に準拠した単位、または 10 進バイト単位)付きのバイトサイズを表す文字列を与えると、この関数は対応するバイト数を返します。
入力値を解析できない場合、この関数は NULL を返します。
この関数の逆演算は formatReadableSize と formatReadableDecimalSize です。
構文
引数
x— ISO/IEC 80000-13 または 10進バイト単位で表現された読みやすい形式のサイズ。String
戻り値
バイト数を最も近い整数に切り上げた値、または入力を解析できない場合は NULL を返します。Nullable(UInt64)
例
使用例
parseReadableSizeOrZero
導入バージョン: v24.6
バイト数を表す文字列と、その単位として B、KiB、KB、MiB、MB など(すなわち ISO/IEC 80000-13 由来の 2 進接頭辞または 10 進バイト単位)を受け取り、そのサイズに対応するバイト数を返します。
入力値を解析できない場合、この関数は 0 を返します。
この関数の逆変換に相当する操作は formatReadableSize と formatReadableDecimalSize です。
構文
引数
x— ISO/IEC 80000-13 または 10 進バイト単位で表された、人間にとって読みやすいサイズ。String
戻り値
バイト数を最も近い整数に切り上げた値、または入力をパースできない場合は 0 を返します。UInt64
例
使用例
parseTimeDelta
導入バージョン: v22.7
数値の並びに、時間単位を表す文字列が続く形式をパースします。
時間差を表す文字列では、次の時間単位表記を使用できます:
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
複数の時間単位は、区切り文字(スペース、;、-、+、,、:)で組み合わせることができます。
年と月の長さは近似です。年は 365 日、月は 30.5 日として扱います。
構文
引数
timestr— 数値の並びと、それに続く時間単位を表す文字列。String
戻り値
秒数。Float64
例
使用例
複合時間単位
partitionId
導入バージョン: v21.4
パーティション ID を計算します。
この関数は処理が遅いため、大量の行に対しては呼び出さないでください。
構文
別名: partitionID
引数
column1, column2, ...— パーティション ID を返す対象のカラム。
戻り値
行が属するパーティション ID を返します。String
例
使用例
queryID
導入バージョン: v21.9
現在のクエリの ID を返します。
クエリのその他のパラメータは、system.query_log テーブルの query_id フィールドから取得できます。
initialQueryID 関数とは対照的に、queryID は分片ごとに異なる結果を返す場合があります。
構文
別名: query_id
引数
- なし
戻り値
現在のクエリ ID を返します。String
例
使用例
revision
導入バージョン: v22.7
現在の ClickHouse サーバーのリビジョン番号を返します。
構文
引数
- なし。
戻り値
現在の ClickHouse サーバーのリビジョンを返します。UInt32
例
使用例
rowNumberInAllBlocks
導入バージョン: v1.1
処理される各行に対して、一意の行番号を返します。
構文
引数
- なし。
返される値
データブロック内の行の番号を、0 から始めて返します。UInt64
例
使用例
rowNumberInBlock
導入: v1.1
rowNumberInBlock によって処理される各ブロック内で、現在の行の番号を返します。
返される番号は、各ブロックごとに 0 から始まります。
構文
引数
- なし。
戻り値
データブロック内の行番号を 0 からの連番で返します。 UInt64
例
使用例
runningAccumulate
導入バージョン: v1.1
データブロック内の各行について、集約関数の状態を累積します。
状態は新しいデータブロックごとにリセットされます。
このようなエラーを招きやすい挙動のため、この関数は非推奨となっており、代わりにウィンドウ関数を使用することを推奨します。
この関数の使用を許可するには、allow_deprecated_error_prone_window_functions 設定を使用できます。
構文
引数
agg_state— 集約関数の状態。AggregateFunctiongrouping— 省略可能。グルーピングキー。groupingの値が変化すると関数の状態はリセットされます。等価演算子が定義されているサポート対象の任意のデータ型を使用できます。Any
戻り値
各行に対して蓄積された結果を返します。Any
例
initializeAggregation を用いた例
runningConcurrency
導入バージョン: v21.3
同時に発生しているイベントの数を計算します。 各イベントは開始時刻と終了時刻を持ちます。 開始時刻はイベントに含まれますが、終了時刻は含まれません。 開始時刻と終了時刻を格納するカラムは、同じデータ型でなければなりません。 この関数は、各イベントの開始時刻ごとにアクティブ(同時に発生している)イベントの総数を計算します。
イベントは開始時刻で昇順に並んでいる必要があります。 この要件が満たされない場合、関数は例外をスローします。 各データブロックは個別に処理されます。 異なるデータブロックに属するイベントが重なっている場合、それらは正しく処理できません。
代わりに window functions を使用することを推奨します。
構文
引数
start— イベントの開始時刻を含むカラム。DateまたはDateTimeまたはDateTime64end— イベントの終了時刻を含むカラム。DateまたはDateTimeまたはDateTime64
戻り値
各イベントの開始時刻における同時発生イベント数を返します。UInt32
例
使用例
runningDifference
導入バージョン: v1.1
データブロック内で、連続する2つの行の値の差分を計算します。
最初の行には 0 を返し、2行目以降には直前の行との差分を返します。
現在処理中のデータブロック内でのみ差分を返します。 このようなエラーを招きやすい動作のため、この関数は非推奨です。 代わりに window functions の使用が推奨されます。
この関数の使用を許可するには、設定 allow_deprecated_error_prone_window_functions を有効にします。
この関数の結果は、対象となるデータブロックおよびブロック内のデータの順序に依存します。
runningDifference() の計算時の行の順序は、ユーザーに返される行の順序と異なる場合があります。
これを防ぐには、ORDER BY を含むサブクエリを作成し、そのサブクエリの外側から関数を呼び出します。
ブロックサイズが結果に影響することに注意してください。
runningDifference の内部状態は、新しいブロックごとにリセットされます。
構文
引数
x— ランニング差分を計算する対象のカラム。Any
返される値
連続する値同士の差分を返します。最初の行には 0 を返します。
例
使用例
ブロックサイズが与える影響の例
runningDifferenceStartingWithFirstValue
導入バージョン: v1.1
データブロック内の連続する行の値の差分を計算しますが、runningDifference と異なり、最初の行の値については 0 ではなく実際の値を返します。
現在処理中のデータブロック内での差分のみを返します。 このようにエラーを招きやすい挙動であるため、この関数は非推奨です。 代わりに window functions の使用が推奨されます。
この関数の使用を許可するには、設定 allow_deprecated_error_prone_window_functions を使用できます。
構文
引数
x— ランニング差分を計算する対象のカラム。Any
戻り値
連続する値同士の差分を返します。先頭行については、その行自体の値を返します。Any
例
使用例
serverUUID
導入バージョン: v20.1
サーバーが最初に起動されたときに生成される、ランダムな一意の UUID (v4) を返します。 この UUID は永続化されるため、2 回目、3 回目以降のサーバー起動でも同じ UUID が返されます。
構文
引数
- なし。
返り値
サーバーのランダムな UUID を返します。UUID
例
使用例
shardCount
導入: v21.9
分散クエリにおける分片の総数を返します。
クエリが分散されていない場合は、定数値 0 が返されます。
構文
引数
- なし
返り値
分片の総数、または 0 を返します。UInt32
例
使用例
shardNum
導入バージョン: v21.9
分散クエリでデータの一部を処理する分片のインデックス(番号)を返します。
インデックスは 1 から始まります。
クエリが分散でない場合は、定数値 0 が返されます。
構文
引数
- なし。
戻り値
分片の索引、または定数 0 を返します(UInt32)。
例
使用例
showCertificate
導入バージョン: v22.6
現在のサーバーで構成されている Secure Sockets Layer (SSL) 証明書に関する情報を表示します。 ClickHouse を OpenSSL 証明書を使用して接続を検証するように構成する方法については、Configuring SSL-TLS を参照してください。
構文
引数
- なし。
返り値
設定済み SSL 証明書に関するキーと値のペアからなるマップを返します。Map(String, String)
例
使用例
sleep
導入バージョン: v1.1
指定した秒数だけクエリの実行を一時停止します。 この関数は主にテストおよびデバッグ目的で使用されます。
sleep() 関数は、クエリのパフォーマンスやシステムの応答性に悪影響を与える可能性があるため、本番環境での使用は通常推奨されません。
ただし、次のようなシナリオでは有用な場合があります。
- テスト: ClickHouse のテストやベンチマークを行う際に、遅延をシミュレートしたり一時停止を挿入して、特定の条件下でシステムがどのように動作するかを観察したい場合があります。
- デバッグ: ある時点でのシステムの状態やクエリ実行状況を確認する必要がある場合、
sleep()を使用して一時停止を挿入し、その間に関連情報を調査または収集できます。 - シミュレーション: ネットワーク遅延や外部システム依存など、現実のシナリオで発生する遅延や一時停止をシミュレートしたい場合があります。
sleep() 関数は、ClickHouse システム全体のパフォーマンスおよび応答性に影響を与える可能性があるため、必要な場合に限り慎重に使用することが重要です。
セキュリティ上の理由から、この関数はデフォルトのユーザープロファイル(allow_sleep が有効な状態)でのみ実行できます。
構文
引数
seconds— クエリの実行を最大 3 秒間一時停止する時間(秒単位)。小数秒を指定するために浮動小数点値を使用できます。const UInt*またはconst Float*
戻り値
0 を返します。UInt8
例
使用例
sleepEachRow
導入バージョン: v1.1
結果セット内の各行に対して、指定された秒数だけクエリの実行を一時停止します。
sleepEachRow() 関数は、主に sleep() 関数と同様にテストおよびデバッグ目的で使用されます。
各行の処理に遅延をシミュレートしたり、一時停止を挿入したりできるため、次のようなシナリオで有用です:
- テスト: 特定の条件下での ClickHouse のパフォーマンスをテストまたはベンチマークする際に、
sleepEachRow()を使用して処理される各行に対して遅延や一時停止をシミュレートできます。 - デバッグ: 処理される各行についてシステムの状態やクエリの実行状況を確認する必要がある場合、
sleepEachRow()を使用して一時停止を挿入し、関連情報を検査または収集できるようにします。 - シミュレーション: 外部システムやネットワーク遅延を扱う場合のように、各行の処理ごとに遅延や一時停止が発生する実運用シナリオをシミュレートしたいケースがあります。
sleep() 関数と同様に、sleepEachRow() は注意して、本当に必要な場合にのみ使用することが重要です。特に大きな結果セットを扱う場合、ClickHouse システム全体のパフォーマンスや応答性に大きな影響を与える可能性があります。
構文
引数
seconds— 結果セット内の各行に対してクエリ実行を一時停止する秒数で、最大 3 秒まで指定できます。浮動小数点値を指定することで、秒未満の値も指定できます。const UInt*またはconst Float*
戻り値
各行に対して 0 を返します。UInt8
例
使用例
structureToCapnProtoSchema
導入バージョン: v
ClickHouse のテーブル構造を CapnProto 形式のスキーマに変換する関数
構文
引数
- なし。
戻り値
例
random
structureToProtobufSchema
導入バージョン: v23.8
ClickHouse のテーブル構造を Protobuf 形式のスキーマに変換します。
この関数は、ClickHouse のテーブル構造の定義を受け取り、それを Protocol Buffers (Protobuf) の proto3 構文によるスキーマ定義に変換します。これは、データ交換のために ClickHouse のテーブル構造と一致する Protobuf スキーマを生成する際に有用です。
構文
引数
structure— ClickHouse のテーブル構造定義を文字列で指定します(例: 'column1 Type1, column2 Type2')。Stringmessage_name— 生成されるスキーマ内の Protobuf メッセージ型の名前。String
返り値
入力された ClickHouse テーブル構造に対応する、proto3 構文の Protobuf スキーマ定義を返します。String
例
ClickHouse のテーブル構造を Protobuf スキーマに変換する
tcpPort
導入バージョン: v20.12
サーバーが待ち受けている native interface の TCP ポート番号を返します。 分散テーブルのコンテキストで実行された場合、この関数は各分片に対応する値を持つ通常のカラムを生成します。 それ以外の場合は、定数値を生成します。
構文
引数
- なし。
戻り値
TCP ポート番号を返します。UInt16
例
使用例
throwIf
導入バージョン: v1.1
引数 x が true の場合、例外をスローします。
error_code 引数を使用するには、設定パラメータ allow_custom_error_code_in_throw を有効にする必要があります。
構文
引数
x— 検査する条件。Anymessage— 省略可能。カスタムエラーメッセージ。const Stringerror_code— 省略可能。カスタムエラーコード。const Int8/16/32
戻り値
条件が偽の場合は 0 を返し、条件が真の場合は例外をスローします。UInt8
例
使用例
toColumnTypeName
導入バージョン: v1.1
指定された値のデータ型の内部名を返します。
関数 toTypeName と異なり、返されるデータ型には Const や LowCardinality のような内部ラッパーカラムが含まれる可能性があります。
構文
引数
value— 内部データ型を取得する対象の値。Any
返り値
値を表現するために使用される内部データ型を返します。String
例
使用例
toTypeName
導入: v1.1
引数として渡された値の型名を返します。
NULL が渡された場合、この関数は ClickHouse の内部的な NULL 表現に対応する型 Nullable(Nothing) を返します。
構文
引数
x— 任意の型の値。Any
戻り値
入力値のデータ型名を返します。String
例
使用例
transactionID
導入バージョン: v22.6
トランザクションの ID を返します。
この関数は実験的機能セットの一部です。 トランザクションの実験的サポートを有効にするには、設定ファイル に次の設定を追加します。
詳細については、Transactional (ACID) support を参照してください。
構文
引数
- なし。
戻り値
start_csn、local_tid、host_id から成るタプルを返します。
start_csn: このトランザクションの開始時点で確認された、最新のコミットタイムスタンプを表すグローバルな連番。local_tid: 特定のstart_csn内で、このホストによって開始された各トランザクションに対して一意なローカル連番。host_id: このトランザクションを開始したホストの UUID。
Tuple(UInt64, UInt64, UUID)
例
使用例
transactionLatestSnapshot
導入バージョン: v22.6
読み取り可能なトランザクションの最新スナップショット(Commit Sequence Number)を返します。
この関数は実験的な機能セットの一部です。実験的なトランザクションサポートを有効にするには、次の設定を設定に追加してください。
詳細については、Transactional (ACID) support ページを参照してください。
構文
引数
- なし。
戻り値
トランザクションの最新スナップショット(CSN)を返します。型は UInt64 です。
例
使用例
transactionOldestSnapshot
導入バージョン: v22.6
実行中のいずれかのトランザクションから参照可能な、最も古いスナップショット(Commit Sequence Number)を返します。
この関数は実験的な機能セットの一部です。実験的なトランザクションサポートを有効にするには、次の設定を構成に追加してください。
詳しくは、Transactional (ACID) support のページを参照してください。
構文
引数
- なし。
戻り値
トランザクションの最も古いスナップショット(CSN)を表す値を返します。型は UInt64 です。
例
使用例
transform
導入バージョン: v1.1
明示的に定義された「ある要素から別の要素への」マッピングに従って、値を変換します。
この関数には 2 つのバリエーションがあります:
transform(x, array_from, array_to, default)-xをマッピング用配列に基づいて変換し、一致しない要素にはdefault値を使用しますtransform(x, array_from, array_to)- 同じ変換を行いますが、一致が見つからない場合は元のxを返します
関数は array_from 内で x を検索し、同じインデックス位置にある array_to の要素を返します。
x が array_from に存在しない場合、4 パラメータ版では default 値を返し、3 パラメータ版では元の x を返します。
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 が指定されていれば default を、指定されていなければ x を返します。Any
例
transform(T, Array(T), Array(U), U) -> U
transform(T, Array(T), Array(T)) -> T
uniqThetaIntersect
導入バージョン: v22.9
2 つの uniqThetaSketch オブジェクトの積集合(集合演算 ∩)を計算し、その結果として新しい uniqThetaSketch を返します。
構文
引数
uniqThetaSketch— uniqThetaSketch オブジェクト。TupleまたはArrayまたはDateまたはDateTimeまたはStringまたは(U)Int*またはFloat*またはDecimal
戻り値
共通部分の結果を含む新しい uniqThetaSketch。UInt64
例
使用例
uniqThetaNot
導入バージョン: v22.9
2 つの uniqThetaSketch オブジェクトに対して a_not_b(集合演算 ×)を計算し、その結果として新しい uniqThetaSketch を生成します。
構文
引数
uniqThetaSketch— uniqThetaSketch オブジェクト。TupleまたはArrayまたはDateまたはDateTimeまたはStringまたは(U)Int*またはFloat*またはDecimal
戻り値
a_not_b の結果を保持する新しい uniqThetaSketch オブジェクトを返します。UInt64
例
使用例
uniqThetaUnion
導入バージョン: v22.9
2 つの uniqThetaSketch オブジェクトに対して和集合(集合演算 ∪)を計算し、その結果として新しい uniqThetaSketch を返します。
構文
引数
uniqThetaSketch— uniqThetaSketch オブジェクト。Tuple、Array、Date、DateTime、String、(U)Int*、Float*、またはDecimal
返される値
和集合の結果を含む新しい uniqThetaSketch を返します。UInt64
例
使用例
uptime
導入: v1.1
サーバーの稼働時間を秒単位で返します。 分散テーブル上で実行した場合、この関数は各分片ごとに対応する値を持つ通常のカラムを生成します。 それ以外の場合は定数値を返します。
構文
引数
- なし。
戻り値
サーバーの稼働時間を秒単位で返します。 UInt32
例
使用例
variantElement
導入バージョン: v25.2
Variant カラムから指定した型のカラムを抽出します。
構文
引数
variant— Variant カラム。Varianttype_name— 抽出する Variant 型の名前。Stringdefault_value— Variant 値に指定した型の値が含まれていない場合に使用されるデフォルト値。任意の型を指定可能。省略可。Any
戻り値
Variant カラムから指定した Variant 型を抽出したカラムを返します。Any
例
使用例
variantType
導入バージョン: v24.2
Variant 型カラムの各行に対して、対応するバリアント型名を返します。行に NULL が含まれている場合、その行には 'None' を返します。
構文
引数
variant— Variant 型のカラム。Variant
返される値
各行の Variant 型名を持つ Enum 型のカラムを返します。Enum
例
使用例
version
導入バージョン: v1.1
major_version.minor_version.patch_version.number_of_commits_since_the_previous_stable_release の形式で、現在の ClickHouse のバージョンを文字列として返します。
分散テーブルのコンテキストで実行する場合、この関数は各分片に対応する値を持つ通常のカラムを生成します。
それ以外の場合は、定数値を返します。
構文
引数
- なし。
戻り値
現在のClickHouseのバージョンを返します。String
例
使用例
visibleWidth
導入: v1.1
値をテキスト形式(タブ区切り)でコンソールに出力する際の、おおよその表示幅を計算します。
この関数は、Pretty 形式の実装にシステム側で使用されます。
NULL は、Pretty 形式における NULL に対応する文字列として表現されます。
構文
引数
x— 任意のデータ型の値。Any
戻り値
値をテキスト形式で表示したときのおおよその表示幅を返します。UInt64
例
NULL の表示幅を計算する
zookeeperSessionUptime
導入: v21.11
現在の ZooKeeper セッションの稼働時間を秒単位で返します。
構文
引数
- なし。
戻り値
現在の ZooKeeper セッションの稼働時間を秒単位で返します。戻り値の型は UInt32 です。
例
使用例