| アクセサ | メソッド | 説明 |
|---|---|---|
.str | 56 | 文字列操作 |
.dt | 42+ | DateTime 操作 |
.arr | 37 | Array 操作 (ClickHouse 固有) |
.json | 13 | JSON のパース (ClickHouse 固有) |
.url | 15 | URL のパース (ClickHouse 固有) |
.ip | 9 | IP アドレス操作 (ClickHouse 固有) |
.geo | 14 | Geo/距離の操作 (ClickHouse 固有) |
String アクセサ (.str)
.str メソッド全 56 種類に加え、ClickHouse の文字列関数にも対応しています。
大文字・小文字の変換
| Method | ClickHouse | Description |
|---|---|---|
upper() | upper() | 大文字に変換 |
lower() | lower() | 小文字に変換 |
capitalize() | initcap() | 先頭文字を大文字化 |
title() | initcap() | タイトルケースに変換 |
swapcase() | - | 大文字・小文字を反転 |
casefold() | lower() | 大文字・小文字を折りたたむ |
長さとサイズ
| Method | ClickHouse | Description |
|---|---|---|
len() | length() | 文字列の長さ (バイト数) |
char_length() | char_length() | 文字数 |
部分文字列とスライス
| メソッド | ClickHouse | 説明 |
|---|---|---|
slice(start, stop) | substring() | 部分文字列を抽出 |
slice_replace() | - | スライスを置換 |
left(n) | left() | 左端から n 文字 |
right(n) | right() | 右端から n 文字 |
get(i) | - | 指定した位置の文字 |
トリミング
| メソッド | ClickHouse | 説明 |
|---|---|---|
strip() | trim() | 空白文字を削除 |
lstrip() | trimLeft() | 先頭の空白文字を削除 |
rstrip() | trimRight() | 末尾の空白文字を削除 |
検索とマッチング
| Method | ClickHouse | 説明 |
|---|---|---|
contains(pat) | position() | 部分文字列を含む |
startswith(pat) | startsWith() | プレフィックスで始まる |
endswith(pat) | endsWith() | 接尾辞で終わる |
find(sub) | position() | 位置を検索 |
rfind(sub) | - | 末尾側から検索 |
index(sub) | position() | 検索し、見つからなければエラー |
rindex(sub) | - | 末尾側から検索し、見つからなければエラー |
match(pat) | match() | 正規表現に一致 |
fullmatch(pat) | - | 文字列全体が正規表現に一致 |
count(pat) | - | 出現回数を数える |
置換
| メソッド | ClickHouse | 説明 |
|---|---|---|
replace(pat, repl) | replace() | 一致箇所を置換 |
replace(pat, repl, regex=True) | replaceRegexpAll() | 正規表現で置換 |
removeprefix(prefix) | - | プレフィックスを削除 |
removesuffix(suffix) | - | 接尾辞を削除 |
translate(table) | - | 文字を変換 |
分割
| Method | ClickHouse | Description |
|---|---|---|
split(sep) | splitByString() | Arrayに分割 |
rsplit(sep) | - | 右から分割 |
partition(sep) | - | 3つに分割 |
rpartition(sep) | - | 右から3つに分割 |
パディング
| Method | ClickHouse | Description |
|---|---|---|
pad(width) | leftPad() | 左埋め |
ljust(width) | rightPad() | 右寄せ |
rjust(width) | leftPad() | 左寄せ |
center(width) | - | 中央寄せ |
zfill(width) | leftPad(..., '0') | ゼロ埋め |
文字種のテスト
| メソッド | 説明 |
|---|---|
isalpha() | すべて英字 |
isdigit() | すべて数字 |
isalnum() | 英数字 |
isspace() | すべて空白文字 |
isupper() | すべて大文字 |
islower() | すべて小文字 |
istitle() | タイトルケース |
isnumeric() | 数値文字 |
isdecimal() | 10進数字文字 |
その他
| メソッド | 説明 |
|---|---|
repeat(n) | n 回繰り返す |
reverse() | 文字列を反転する |
wrap(width) | テキストを折り返す |
encode(enc) | エンコードする |
decode(enc) | デコードする |
normalize(form) | Unicode 正規化を行う |
extract(pat) | 正規表現のグループを抽出する |
extractall(pat) | 一致したものをすべて抽出する |
cat(sep) | すべてを連結する |
get_dummies(sep) | ダミー変数に変換する |
DateTime アクセサ (.dt)
.dt メソッド (42 種類以上) に加え、ClickHouse の datetime 関数もすべて利用できます。
日付の部分
| プロパティ | ClickHouse | 説明 |
|---|---|---|
year | toYear() | 年 |
month | toMonth() | 月 (1-12) |
day | toDayOfMonth() | 日 (1-31) |
hour | toHour() | 時 (0-23) |
minute | toMinute() | 分 (0-59) |
second | toSecond() | 秒 (0-59) |
millisecond | toMillisecond() | ミリ秒 |
microsecond | toMicrosecond() | マイクロ秒 |
quarter | toQuarter() | 四半期 (1-4) |
dayofweek | toDayOfWeek() | 曜日 (0=月) |
dayofyear | toDayOfYear() | 年内通算日 |
week | toWeek() | 週番号 |
days_in_month | - | 月の日数 |
切り捨て
| Method | ClickHouse | 説明 |
|---|---|---|
to_start_of_day() | toStartOfDay() | 日の始まり |
to_start_of_week() | toStartOfWeek() | 週の始まり |
to_start_of_month() | toStartOfMonth() | 月の始まり |
to_start_of_quarter() | toStartOfQuarter() | 四半期の始まり |
to_start_of_year() | toStartOfYear() | 年の始まり |
to_start_of_hour() | toStartOfHour() | 時間の始まり |
to_start_of_minute() | toStartOfMinute() | 分の始まり |
算術演算
| Method | ClickHouse | Description |
|---|---|---|
add_years(n) | addYears() | 年を加算 |
add_months(n) | addMonths() | 月を加算 |
add_weeks(n) | addWeeks() | 週を加算 |
add_days(n) | addDays() | 日を加算 |
add_hours(n) | addHours() | 時間を加算 |
add_minutes(n) | addMinutes() | 分を加算 |
add_seconds(n) | addSeconds() | 秒を加算 |
subtract_years(n) | subtractYears() | 年を減算 |
subtract_months(n) | subtractMonths() | 月を減算 |
subtract_days(n) | subtractDays() | 日を減算 |
真偽値判定
| メソッド | 説明 |
|---|---|
is_month_start() | 月の初日 |
is_month_end() | 月の末日 |
is_quarter_start() | 四半期の初日 |
is_quarter_end() | 四半期の末日 |
is_year_start() | 年の初日 |
is_year_end() | 年の末日 |
is_leap_year() | うるう年 |
フォーマット
| メソッド | ClickHouse | 説明 |
|---|---|---|
strftime(fmt) | formatDateTime() | 文字列形式でフォーマット |
day_name() | - | 曜日名 |
month_name() | - | 月名 |
タイムゾーン
| メソッド | ClickHouse | 説明 |
|---|---|---|
tz_convert(tz) | toTimezone() | タイムゾーンを変換 |
tz_localize(tz) | - | タイムゾーンを付与 |
Array アクセサ (.arr)
プロパティ
| プロパティ | ClickHouse | 説明 |
|---|---|---|
length | length() | Arrayの長さ |
size | length() | lengthの別名 |
empty | empty() | 空であるか |
not_empty | notEmpty() | 空でないか |
要素アクセス
| Method | ClickHouse | Description |
|---|---|---|
array_first() | arrayElement(..., 1) | 最初の要素 |
array_last() | arrayElement(..., -1) | 最後の要素 |
array_element(n) | arrayElement() | N番目の要素 |
array_slice(off, len) | arraySlice() | 配列のスライス |
集計
| メソッド | ClickHouse | 説明 |
|---|---|---|
array_sum() | arraySum() | 要素の合計 |
array_avg() | arrayAvg() | 平均 |
array_min() | arrayMin() | 最小値 |
array_max() | arrayMax() | 最大値 |
array_product() | arrayProduct() | 要素の積 |
array_uniq() | arrayUniq() | 一意な値の数 |
変換
| Method | ClickHouse | 説明 |
|---|---|---|
array_sort() | arraySort() | 昇順でソート |
array_reverse_sort() | arrayReverseSort() | 降順でソート |
array_reverse() | arrayReverse() | 順序を逆にする |
array_distinct() | arrayDistinct() | 要素を一意化 |
array_compact() | arrayCompact() | 連続する重複を削除 |
array_flatten() | arrayFlatten() | ネストを平坦化 |
変更
| メソッド | ClickHouse | 説明 |
|---|---|---|
array_push_back(elem) | arrayPushBack() | 末尾に追加 |
array_push_front(elem) | arrayPushFront() | 先頭に追加 |
array_pop_back() | arrayPopBack() | 末尾を削除 |
array_pop_front() | arrayPopFront() | 先頭を削除 |
array_concat(other) | arrayConcat() | 連結 |
検索
| メソッド | ClickHouse | 説明 |
|---|---|---|
has(elem) | has() | 要素を含む |
index_of(elem) | indexOf() | 位置を取得 |
count_equal(elem) | countEqual() | 出現回数を数える |
文字列操作
| メソッド | ClickHouse | 説明 |
|---|---|---|
array_string_concat(sep) | arrayStringConcat() | 文字列として連結 |
JSON アクセサ (.json)
| Method | ClickHouse | Description |
|---|---|---|
get_string(path) | JSONExtractString() | 文字列を抽出 |
get_int(path) | JSONExtractInt() | 整数を抽出 |
get_float(path) | JSONExtractFloat() | 浮動小数点数を抽出 |
get_bool(path) | JSONExtractBool() | 真偽値を抽出 |
get_raw(path) | JSONExtractRaw() | 生の JSON を抽出 |
get_keys() | JSONExtractKeys() | キーを取得 |
get_type(path) | JSONType() | 型を取得 |
get_length(path) | JSONLength() | 長さを取得 |
has_key(key) | JSONHas() | キーの存在を確認 |
is_valid() | isValidJSON() | JSON が有効か検証 |
to_json_string() | toJSONString() | JSON 文字列に変換 |
URL アクセサ (.url)
| メソッド | ClickHouse | 説明 |
|---|---|---|
domain() | domain() | ドメインを抽出 |
domain_without_www() | domainWithoutWWW() | www を除いたドメイン |
top_level_domain() | topLevelDomain() | TLD |
protocol() | protocol() | プロトコル (http/https) |
path() | path() | URL パス |
path_full() | pathFull() | クエリ文字列を含むパス |
query_string() | queryString() | クエリ文字列 |
fragment() | fragment() | フラグメント (#…) |
port() | port() | ポート番号 |
extract_url_parameter(name) | extractURLParameter() | クエリパラメータを取得 |
extract_url_parameters() | extractURLParameters() | すべてのパラメータ |
cut_url_parameter(name) | cutURLParameter() | パラメータを削除 |
decode_url_component() | decodeURLComponent() | URL デコード |
encode_url_component() | encodeURLComponent() | URL エンコード |
IP アクセサ (.ip)
| Method | ClickHouse | Description |
|---|---|---|
to_ipv4() | toIPv4() | IPv4 に変換 |
to_ipv6() | toIPv6() | IPv6 に変換 |
ipv4_num_to_string() | IPv4NumToString() | 数値を文字列に変換 |
ipv4_string_to_num() | IPv4StringToNum() | 文字列を数値に変換 |
ipv6_num_to_string() | IPv6NumToString() | IPv6 の数値を文字列に変換 |
ipv4_to_ipv6() | IPv4ToIPv6() | IPv6 に変換 |
is_ipv4_string() | isIPv4String() | IPv4 形式か検証 |
is_ipv6_string() | isIPv6String() | IPv6 形式か検証 |
ipv4_cidr_to_range(cidr) | IPv4CIDRToRange() | CIDR を範囲に変換 |
Geo アクセサ (.geo)
距離関数
| メソッド | ClickHouse | 説明 |
|---|---|---|
great_circle_distance(...) | greatCircleDistance() | 大円距離 |
geo_distance(...) | geoDistance() | WGS-84での距離 |
l1_distance(v1, v2) | L1Distance() | マンハッタン距離 |
l2_distance(v1, v2) | L2Distance() | ユークリッド距離 |
l2_squared_distance(v1, v2) | L2SquaredDistance() | ユークリッド距離の二乗 |
linf_distance(v1, v2) | LinfDistance() | チェビシェフ距離 |
cosine_distance(v1, v2) | cosineDistance() | コサイン距離 |
ベクトル演算
| メソッド | ClickHouse | 説明 |
|---|---|---|
dot_product(v1, v2) | dotProduct() | 内積 |
l2_norm(vec) | L2Norm() | ベクトルのノルム |
l2_normalize(vec) | L2Normalize() | 正規化 |
H3 関数
| メソッド | ClickHouse | 説明 |
|---|---|---|
geo_to_h3(lon, lat, res) | geoToH3() | Geo を H3 index に変換 |
h3_to_geo(h3) | h3ToGeo() | H3 を Geo 座標に変換 |
Point 演算
| Method | ClickHouse | 説明 |
|---|---|---|
point_in_polygon(pt, poly) | pointInPolygon() | Polygon 内の点 |
point_in_ellipses(...) | pointInEllipses() | 楕円内の点 |
アクセサの使用
遅延評価
直ちに実行されるメソッド
.str メソッドがあります:
| メソッド | 戻り値 | 理由 |
|---|---|---|
partition(sep) | DataStore (3 カラム) | 複数のカラムを作成するため |
rpartition(sep) | DataStore (3 カラム) | 複数のカラムを作成するため |
get_dummies(sep) | DataStore (N カラム) | カラム数が動的に決まるため |
extractall(pat) | DataStore | MultiIndex の結果になるため |
cat(sep) | str | 集約 (N 行 → 1) |