本文介紹二進位函數的基本文法及樣本。
Log Service支援如下二進位函數。
在Log Service分析語句中,表示字串的字元必須使用單引號('')包裹,無符號包裹或被雙引號("")包裹的字元表示欄位名或列名。例如:'status'表示字串status,status或"status"表示日誌欄位status。
varbinary類型是二進位字元類型,varchar類型是可變長度字元類型。
函數名稱 | 文法 | 說明 | 支援SQL | 支援SPL |
from_base64(x) | 將BASE64編碼的字串解碼為二進位類型的資料。 | √ | √ | |
from_base64url(x) | 使用URL安全字元將BASE64編碼的字串解碼為二進位類型的資料。 | √ | × | |
from_big_endian_64(x) | 將大端模式的二進位類型的資料轉化成數字。 | √ | × | |
from_hex(x) | 將十六進位類型的資料轉化成二進位類型的資料。 | √ | √ | |
length(x) | 計算二進位類型的資料的長度。 | √ | × | |
md5(x) | 對二進位類型的資料進行MD5編碼。 | √ | √ | |
to_base64(x) | 對二進位類型的資料進行BASE64編碼。 | √ | √ | |
to_base64url(x) | 使用URL安全字元將二進位類型的資料進行BASE64編碼。 | √ | × | |
to_hex(x) | 將二進位類型的資料轉化成十六進位類型的資料。 | √ | √ | |
to_big_endian_64(x) | 將數字轉化為大端模式的二進位類型的資料。 | √ | × | |
sha1(x) | 對二進位類型的資料進行SHA1加密。 | √ | √ | |
sha256(x) | 對二進位類型的資料進行SHA256加密。 | √ | √ | |
sha512(x) | 對二進位類型的資料進行SHA512加密。 | √ | √ | |
xxhash64(x) | 對二進位類型的資料進行xxHash64加密。 | √ | √ |
from_base64函數
from_base64函數用於將BASE64編碼的字串解碼為二進位類型的資料。
文法
from_base64(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
傳回值類型
varbinary類型。
varbinary類型存在不可見字元,返回結果仍以BASE64編碼格式展示。
如果傳回值是二進位類型的不可見字元,則您可以使用to_hex函數將其轉換為十六進位類型的資料。
如果傳回值是二進位類型的可見字元,則您可以使用from_utf8函數將其轉換為UTF-8字串。
樣本
將BASE64編碼的字串解碼為二進位類型的資料後,再轉換為十六進位類型的資料。
查詢和分析語句
* | SELECT to_hex(from_base64('c2xz'))
查詢和分析結果
from_base64url函數
from_base64url函數使用URL安全字元將BASE64編碼的字串解碼為二進位類型的資料。
文法
from_base64url(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
傳回值類型
varbinary類型。
varbinary類型存在不可見字元,返回結果仍以BASE64編碼格式展示。
如果傳回值是二進位類型的不可見字元,則您可以使用to_hex函數將其轉換為十六進位類型的資料。
如果傳回值是二進位類型的可見字元,則您可以使用from_utf8函數將其轉換為UTF-8字串。
樣本
使用URL安全字元將BASE64編碼的字串解碼為二進位類型的資料。
查詢和分析語句
* | SELECT to_hex(from_base64url('c2xz'))
查詢和分析結果
from_big_endian_64函數
from_big_endian_64函數用於將大端模式的二進位類型的資料轉化成數字。
文法
from_big_endian_64(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
傳回值類型
bigint類型。
樣本
將大端模式的二進位類型的資料(10)轉化成數字。
查詢和分析語句
* | SELECT from_big_endian_64(to_big_endian_64(10))
查詢和分析結果
from_hex函數
from_hex函數將十六進位類型的資料轉化成二進位類型的資料。
文法
from_hex(x)
參數說明
參數 | 說明 |
x | 參數值為varbinary類型。 |
傳回值類型
varbinary類型。
樣本
將十六進位類型的資料(D74D)轉換為二進位類型的資料。
查詢和分析語句
* | SELECT from_hex('D74D')
查詢和分析結果
length函數
length函數用於計算二進位類型的資料的長度。
文法
length(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
傳回值類型
bigint類型。
樣本
計算region欄位值的長度。
查詢和分析語句
* | SELECT length('00101000')
查詢和分析結果
md5函數
md5函數用於對二進位類型的資料進行MD5編碼。
文法
md5(x)
參數說明
參數 | 說明 |
x | 參數值為varbinary類型。 |
傳回值類型
varbinary類型。
樣本
對二進位類型的資料(1101)進行MD5編碼。
查詢和分析語句
* | SELECT MD5(from_base64('1101')) AS md5
查詢和分析結果
to_base64函數
to_base64函數用於對二進位類型的資料進行BASE64編碼。
文法
to_base64(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
傳回值類型
varchar類型。
樣本
對二進位類型的資料(10)進行BASE64編碼。
查詢和分析語句
* | SELECT to_base64(from_base64('10')) AS base64
查詢和分析結果
to_base64url函數
to_base64url函數使用URL安全字元對二進位類型的資料進行BASE64編碼。
文法
to_base64url(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
傳回值類型
varchar類型。
樣本
使用URL安全字元對二進位類型的資料(100)進行BASE64編碼。
查詢和分析語句
* | SELECT to_base64url(from_base64('100'))
查詢和分析結果
to_hex函數
to_hex函數用於將二進位類型的資料轉化成十六進位類型的資料。
文法
to_hex(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
傳回值類型
varchar類型。
樣本
將二進位類型的資料(100)轉化成十六進位類型的資料。
查詢和分析語句
* | SELECT to_hex(from_base64('100'))
查詢和分析結果
to_big_endian_64函數
to_big_endian_64函數用於將數字轉化為大端模式的二進位類型的資料。
文法
to_big_endian_64(x)
參數說明
參數 | 說明 |
x | 參數值為bigint類型。 |
傳回值類型
varbinary類型。
樣本
將數字0轉換為大端模式的二進位類型的資料。
查詢和分析語句
* | SELECT to_big_endian_64(0)
查詢和分析結果
sha1函數
sha1函數用於對二進位類型的資料進行SHA1加密。
文法
sha1(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
傳回值類型
varbinary類型。
樣本
對二進位類型的資料(1101)進行SHA1加密。
查詢和分析語句
* | SELECT sha1(from_base64('1101')) AS sha1
查詢和分析結果
sha256函數
sha256函數用於對二進位類型的資料進行SHA256加密。
文法
sha256(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
傳回值類型
varbinary類型。
樣本
對二進位類型的資料(1101)進行SHA256加密。
查詢和分析語句
* | SELECT sha256(from_base64('1101')) AS sha256
查詢和分析結果
sha512函數
sha512函數用於對二進位類型的資料進行SHA512加密。
文法
sha512(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
傳回值類型
varbinary類型。
樣本
對二進位類型的資料(1101)進行SHA512加密。
查詢和分析語句
* | SELECT sha512(from_base64('1101')) AS sha512
查詢和分析結果
xxhash64函數
xxhash64函數用於對二進位類型的資料進行xxHash64加密。
文法
xxhash64(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
傳回值類型
varbinary類型。
樣本
對二進位類型的資料(10)進行xxhash64加密。
查詢和分析語句
* | SELECT xxhash64(from_base64('10'))
查詢和分析結果