''で囲む必要があります。記号で囲まれていない文字、または二重引用符""で囲まれた文字は、フィールドまたは列名を表します。例えば、'status'は文字列statusを表し、statusまたは"status"はログフィールドstatusを表します。'が含まれる場合は、''(2つの一重引用符)を使用して一重引用符そのものを表す必要があります。例えば、'{''version'': ''1.0''}'は元の文字列{'version': '1.0'}を表します。文字列内に二重引用符"が含まれる場合は、特別な処理は不要です。関数名 | 説明 | 例 |
chr (number) | 入力パラメータで指定されたASCIIコード位置に対応する文字を返します。戻り値はvarchar型です。 | 77番目のASCIIコードに一致する文字値を返します。
* | SELECT chr(77) |
codepoint (string) | ASCIIコード形式のフィールド値をBigInt型に変換します。戻り値はinteger型です。 | ASCIIコード内の文字値を対応する位置に変換します。
* | SELECT codepoint('M') |
concat (key1, ..., keyN) | 文字列key1、key2、...keyNを連結します。これは||連結子と同じ効果です。戻り値はvarchar型です。注意:いずれかの文字列がnullの場合、戻り値はnullです。nullをスキップするには、concat_wsを使用します。 | 複数の文字列を1つの文字列に連結します: * | SELECT concat(remote_addr, host, time_local)2つの文字列を1つの文字列に連結し、改行します: * | SELECT concat('第一行', chr(10), '第二行')説明: ここで、 chr(10)はASCIIコードを使用して改行文字を表します。 |
concat_ws (split_string,key0, ..., keyN) | split_stringを区切り文字として文字列key1、key2、...keyNを連結します。split_stringには文字列または変数を指定できます。split_stringがnullの場合、結果はnullとなり、key1、key2、...keyN内のnull値はスキップされます。戻り値はvarchar型です。 | /を区切り文字として文字列間の連結を行います。* | SELECT concat_ws('/', remote_addr,host,time_local) |
concat_ws (split_string, array(varchar)) | split_stringを区切り文字として配列内の要素を1つの文字列に連結します。split_stringがnullの場合、結果はnullとなり、配列内のnull値はスキップされます。戻り値はvarchar型です。
注意:この関数のarray(varchar)パラメータは配列であり、文字列ではありません。 | #を区切り文字として文字列間の連結を行います。この例では、split関数の出力はarrayです。* | select concat_ws('#',split('cloud.tencent.com/product/cls', '/')) |
format (format、args...) | フォーマットformatを使用してパラメータargsをフォーマット出力します。戻り値はvarchar型です。 | format形式「IP アドレス: %s, ドメイン: %s」を使用して、パラメータ remote_addr とパラメータ host をフォーマットして出力します。
* | SELECT format('IP地址: %s, 域名: %s', remote_addr, host) |
hamming_distance (key1, key2) | key1文字列とkey2文字列のハミング距離を返します。注意:2つの文字列の長さは一致している必要があります。戻り値はbigint型です。 | remote_addr文字列とremote_addr文字列のハミング距離を返します。
* | SELECT hamming_distance(remote_addr, remote_addr) |
length (key) | 文字列の長さを計算します。戻り値はbigint型です。 | http_user_agent の文字列の長さを返します。
* | SELECT length(http_user_agent) |
levenshtein_distance (key1, key2) | 文字列key1とkey2の編集距離を返します。戻り値はbigint型です。 | remote_addr文字列とhttp_protocol文字列の編集距離を返します。
* | SELECT levenshtein_distance(remote_addr, http_protocol) |
lower (key) | 文字列を小文字に変換します。戻り値はvarchar型の小文字形式です。 | http_protocol文字列を小文字に変換します。
* | SELECT lower(http_protocol) |
lpad (key, size, padstring) | padstringを使用して文字列を左側にsizeの長さまで埋めます。sizeがkeyの長さより小さい場合、文字列をsizeの長さに切り詰めます。sizeは非負である必要があり、padstringは空であってはなりません。戻り値はvarchar型です。 | 「0」を使用してremote_addr文字列を左側に32文字まで補完します。
* | SELECT lpad(remote_addr, 32, '0') |
ltrim (key) | 文字列の左側にある空白文字を削除します。戻り値はvarchar型です。 | http_user_agent文字列の左側にある空白文字を削除します。
* | SELECT ltrim(http_user_agent) |
position (substring IN key) | substringが文字列内で最初に出現する位置を返します。位置は1から始まります。見つからない場合は0を返します。この関数は特別な構文としてINをパラメータに使用します。また、strpos()も参照してください。戻り値はbigint型です。 | http_method における 'G' 文字の位置を返します。
* | select position('G' IN http_method) |
replace (key, substring) | 文字列keyからすべてのsubstring文字列を削除します。戻り値はvarchar型です。 | time_local文字列からすべての「Oct」を削除します。
* | select replace(time_local, 'Oct') |
replace (key, substring, replace) | 文字列内のすべてのsubstringをreplaceの文字列に置き換えます。戻り値はvarchar型です。 | time_local文字列内のすべての「Oct」を「10」に置き換えます。
* | select replace(time_local,'Oct','10') |
reverse (key) | 文字列keyを反転します。戻り値はvarchar型です。 | host文字列を反転します。
* | select reverse(host) |
rpad (key, size, padstring) | padstringを使用して文字列を右側にsizeの長さまで埋めます。sizeがkeyの長さより小さい場合、文字列をsizeの長さに切り詰めます。sizeは非負である必要があり、padstringは空であってはなりません。戻り値はvarchar型です。 | 「0」を使用してremote_addr文字列を右側に32文字まで補完します。
* | select rpad(remote_addr, 32, '0') |
rtrim (key) | 文字列の右側にあるすべての空白文字を削除します。戻り値はvarchar型です。 | http_user_agent文字列の右側にあるすべての空白文字を削除します。
* | select rtrim(http_user_agent) |
split (key, delimiter) | 指定された区切り文字を使用して文字列を分割し、文字列配列を返します。 | 指定された「/」区切り文字を使用してhttp_user_agent文字列を分割し、文字列配列を返します。
* | SELECT split(http_user_agent, '/') |
split (key, delimiter, limit) | 指定された区切り文字を使用して文字列を分割し、文字列配列を返します。配列の長さは最大でlimitです。配列の最後の要素は常にkey内の残りすべての部分です。limitは正の数である必要があります。 | 指定された「/」区切り文字を使用してhttp_user_agent文字列を分割し、配列長が10の文字列配列を返します。
* | SELECT split(http_user_agent, '/', 10) |
split_part (key, delimiter, index) | 指定された区切り文字を使用して文字列を分割し、配列内のindex番目の文字列を返します。indexは1から始まります。indexが配列の長さより大きい場合、nullを返します。戻り値はvarchar型です。 | 指定された「/」区切り文字を使用してhttp_user_agent文字列を分割し、1番目の文字列を返します。
* | SELECT split_part(http_user_agent, '/', 1) |
strpos (key, substring) | substringが文字列内で最初に出現する位置を返します。位置は1から始まります。見つからない場合は0を返します。戻り値はbigint型です。 | 「org」文字列のhost文字列内での位置を返します。
* | SELECT strpos(host, 'org') |
strpos (key, substring, instance) | substringで分割された文字列内のinstance番目のインスタンスのstring内での位置を返します。instanceが負の数の場合、末尾から数えます。位置は1から始まり、見つからない場合は0を返します。戻り値はbigint型です。 | 「g」で分割した後の1番目のインスタンスのhost文字列内での位置を返します。
* | SELECT strpos(host, 'g', 1) |
substr (key, start) | 文字列内のstart位置から始まる残りすべての文字を返します。位置は1から数えます。startが負の数の場合、末尾から数えます。例:[...]戻り値はvarchar型です。 | remote_user文字列の2番目以降の残りの文字を返します。
* | SELECT substr(remote_user, 2) |
substr (key, start, length) | 文字列内のstart位置から始まる最大length文字数の部分文字列を返します。位置は1から数えます。startが負の数の場合、末尾から数えます。戻り値はvarchar型です。 | remote_user文字列の2番目から始まる、長さが5を超えない残りの文字を返します。
* | SELECT substr(remote_user, 2, 5) |
translate (key, from, to) | key内でfromに含まれる文字をすべて、to内の対応する位置の文字に置き換えます。fromに重複する文字が含まれる場合、最初の文字のみが有効です。sourceにfromの文字が含まれない場合、sourceはそのままコピーされます。fromの長さがtoの長さを超える場合、対応する文字は削除されます。戻り値はvarchar型です。 | remote文字列内の「123」の文字を「ABC」の対応する文字に置き換えます。
* | SELECT translate(remote_user, '123', 'ABC') |
trim (key) | 文字列の前後にある空白文字を削除します。戻り値はvarchar型です。 | http_cookies文字列の前後にある空白文字を削除します。
* | SELECT trim(http_cookies) |
upper (key) | 文字列を大文字に変換します。戻り値はvarchar型の大文字形式です。 | host文字列内の小文字を大文字に変換します。
* | SELECT upper(host) |
word_stem (word) | wordの英語の単語を返します。戻り値はvarchar型です。 | Mozillaの単語を返します。 * | SELECT word_stem('Mozilla') |
word_stem (word, lang) | wordのlang言語の語根を返します。戻り値はvarchar型です。 | selectsの語根の単語を返します。
* | SELECT word_stem('selects', 'en') |
関数名 | 説明 | 例 |
normalize (string) | stringをNFC標準形式に変換します。戻り値はvarchar型です。 | * | SELECT normalize('ĉ') |
normalize (string, form) | stringをform形式に変換します。この関数のformパラメータには、文字列ではなくキーワード(NFD、NFC、NFKD、NFKC)を使用する必要があります。戻り値はvarchar型です。 | * | SELECT normalize('ĉ',NFC) |
to_utf8 (string) | stringをUTF-8形式のバイナリ文字列varbinaryに変換します。 | * | SELECT to_utf8('test') |
from_utf8 (binary) | バイナリ文字列をUTF-8形式の文字列に変換します。不正なUTF-8文字はU+FFFDに置き換えられます。戻り値はvarchar型です。 | * | SELECT from_utf8(from_base64('SGVsbG8=')) |
from_utf8 (binary, replace) | バイナリ文字列をUTF-8形式の文字列に変換します。不正なUTF-8文字はreplaceに置き換えられます。戻り値はvarchar型です。 | * | SELECT from_utf8(from_base64('SGVsbG8='),0) |
10.135.46.111 - - [05/Oct/2015:21:14:30 +0800] "GET /my/course/1 HTTP/1.1" 127.0.0.1 200 782 9703 "http://127.0.0.1/course/explore?filter%5Btype%5D=all&filter%5Bprice%5D=all&filter%5BcurrentLevelId%5D=all&orderBy=studentNum" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:64.0) Gecko/20100101 Firefox/64.0" 0.354 0.354
body_bytes_sent: 9703http_host: 127.0.0.1http_protocol: HTTP/1.1http_referer: http://127.0.0.1/course/explore?filter%5Btype%5D=all&filter%5Bprice%5D=all&filter%5BcurrentLevelId%5D=all&orderBy=studentNumhttp_user_agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:64.0) Gecko/20100101 Firefox/64.0remote_addr: 10.135.46.111request_length: 782request_method: GETrequest_time: 0.354request_url: /my/course/1status: 200time_local: [05/Oct/2015:21:14:30 +0800]upstream_response_time: 0.354
* | SELECT count(*) AS pv, split_part(request_url, '?', 1) AS Path GROUP BY Path ORDER BY pv DESC LIMIT 3
* | SELECT substr(http_protocol,1,4) AS http_protocol, count(*) AS count group by http_protocol
* | SELECT translate(remote_user, '123', 'ABC')
* | SELECT substr(remote_user, 2, 5)
* | SELECT strpos(http_protocol, 'H')
* | SELECT split(http_protocol, '/', 2)
* | SELECTreplace(time_local,'Oct','10')
피드백