このトピックでは、バイナリ関数の構文と例について説明します。
Simple Log Service は、次のバイナリ関数をサポートしています。
-
Simple 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) |
bigint をビッグエンディアンのバイナリ表現からデコードします。 |
√ |
× |
|
|
from_hex(x) |
16 進数文字列をバイナリデータに変換します。 |
√ |
√ |
|
|
length(x) |
varbinary データの長さをバイト単位で返すか、varchar 文字列の文字数を返します。 |
√ |
× |
|
|
md5(x) |
バイナリデータの MD5 ハッシュを計算します。 |
√ |
√ |
|
|
to_base64(x) |
バイナリデータを Base64 エンコード文字列にエンコードします。 |
√ |
√ |
|
|
to_base64url(x) |
バイナリデータを URL セーフな Base64 文字列にエンコードします。 |
√ |
× |
|
|
to_hex(x) |
バイナリデータを 16 進数文字列に変換します。 |
√ |
√ |
|
|
to_big_endian_64(x) |
bigint をビッグエンディアンのバイナリ表現にエンコードします。 |
√ |
× |
|
|
sha1(x) |
バイナリデータの SHA-1 ハッシュを計算します。 |
√ |
√ |
|
|
sha256(x) |
バイナリデータの SHA-256 ハッシュを計算します。 |
√ |
√ |
|
|
sha512(x) |
バイナリデータの SHA-512 ハッシュを計算します。 |
√ |
√ |
|
|
xxhash64(x) |
バイナリデータの xxHash64 ハッシュを計算します。 |
√ |
√ |
from_base64 関数
from_base64 関数は、Base64 エンコード文字列をバイナリデータにデコードします。
構文
from_base64(x)
パラメーター
|
パラメーター |
説明 |
|
x |
varchar 文字列です。この文字列は Base64 でエンコードされている必要があります。 |
戻り値の型
varbinary
varbinary 型には非表示文字が含まれる場合があります。Simple Log Service コンソールでは、結果が Base64 フォーマットで表示されます。
-
非表示文字を含む戻り値を確認するには、to_hex 関数を使用して 16 進数文字列に変換します。
-
戻り値に表示可能な文字のみが含まれている場合は、from_utf8 関数を使用して UTF-8 文字列に変換します。
例
Base64 エンコード文字列をバイナリデータにデコードし、そのバイナリデータを 16 進数文字列に変換します。
-
クエリ文
* | SELECT to_hex(from_base64('c2xz')) -
クエリ結果: _col0 列の値は
736C73です。
from_base64url 関数
from_base64url 関数は、URL セーフな Base64 文字列をバイナリデータにデコードします。
構文
from_base64url(x)
パラメーター
|
パラメーター |
説明 |
|
x |
varchar 文字列です。この文字列は、URL セーフな Base64 エンコード文字列である必要があります。 |
戻り値の型
varbinary
varbinary 型には非表示文字が含まれる場合があります。Simple Log Service コンソールでは、結果が Base64 フォーマットで表示されます。
-
非表示文字を含む戻り値を確認するには、to_hex 関数を使用して 16 進数文字列に変換します。
-
戻り値に表示可能な文字のみが含まれている場合は、from_utf8 関数を使用して UTF-8 文字列に変換します。
例
URL セーフな Base64 文字列をバイナリデータにデコードします。
-
クエリ文
* | SELECT to_hex(from_base64url('c2xz')) -
クエリ結果: _col0 列の値は
736C73です。
from_big_endian_64 関数
from_big_endian_64 関数は、bigint をビッグエンディアンのバイナリ表現からデコードします。
構文
from_big_endian_64(x)
パラメーター
|
パラメーター |
説明 |
|
x |
varbinary 式です。 |
戻り値の型
bigint
例
数値 10 のビッグエンディアンのバイナリ表現を数値に戻します。
-
クエリ文
* | SELECT from_big_endian_64(to_big_endian_64(10)) -
結果は
10です。
from_hex 関数
from_hex 関数は、16 進数文字列をバイナリデータに変換します。
構文
from_hex(x)
パラメーター
|
パラメーター |
説明 |
|
x |
16 進数の varchar 文字列です。 |
戻り値の型
varbinary
例
16 進数文字列 'D74D' をバイナリデータに変換します。
-
クエリ文
* | SELECT from_hex('D74D') -
クエリ結果:
_col0列の値は100=です。
length 関数
length 関数は、varbinary データの長さをバイト単位で返すか、varchar 文字列の文字数を返します。
構文
length(x)
パラメーター
|
パラメーター |
説明 |
|
x |
varbinary または varchar 式です。 |
戻り値の型
bigint
例
文字列 '00101000' の長さを計算します。
-
クエリ文
* | SELECT length('00101000') -
結果は
8です。
md5 関数
md5 関数は、バイナリデータの MD5 ハッシュを計算します。
構文
md5(x)
パラメーター
|
パラメーター |
説明 |
|
x |
varbinary 式です。 |
戻り値の型
varbinary
例
Base64 文字列 '1101' からデコードされたバイナリデータの MD5 ハッシュを計算します。
-
クエリ文
* | SELECT MD5(from_base64('1101')) AS md5 -
クエリ結果: md5 列の値は
rG3lOanun9N57opubMnPDw==です。
to_base64 関数
to_base64 関数は、バイナリデータを Base64 エンコード文字列にエンコードします。
構文
to_base64(x)
パラメーター
|
パラメーター |
説明 |
|
x |
varbinary 式です。 |
戻り値の型
varchar
例
Base64 文字列 '10' からデコードされたバイナリデータを Base64 文字列にエンコードします。
-
クエリ文
* | SELECT to_base64(from_base64('10')) AS base64 -
クエリ結果: base64 列の値は
1w==です。
to_base64url 関数
to_base64url 関数は、バイナリデータを URL セーフな Base64 文字列にエンコードします。
構文
to_base64url(x)
パラメーター
|
パラメーター |
説明 |
|
x |
varbinary 式です。 |
戻り値の型
varchar
例
Base64 文字列 '100' からデコードされたバイナリデータを URL セーフな Base64 文字列にエンコードします。
-
クエリ文
* | SELECT to_base64url(from_base64('100')) -
クエリ結果:

to_hex 関数
to_hex 関数は、バイナリデータを 16 進数文字列に変換します。
構文
to_hex(x)
パラメーター
|
パラメーター |
説明 |
|
x |
varbinary 式です。 |
戻り値の型
varchar
例
Base64 文字列 '100' からデコードされたバイナリデータを 16 進数文字列に変換します。
-
クエリ文
* | SELECT to_hex(from_base64('100')) -
クエリ結果:
_col0列の値はD74Dです。
to_big_endian_64 関数
to_big_endian_64 関数は、bigint をビッグエンディアンのバイナリ表現にエンコードします。
構文
to_big_endian_64(x)
パラメーター
|
パラメーター |
説明 |
|
x |
bigint 式です。 |
戻り値の型
varbinary
例
数値 0 をビッグエンディアンのバイナリデータに変換します。
-
クエリ文
* | SELECT to_big_endian_64(0) -
クエリ結果:

sha1 関数
sha1 関数は、バイナリデータの SHA-1 ハッシュを計算します。
構文
sha1(x)
パラメーター
|
パラメーター |
説明 |
|
x |
varbinary 式です。 |
戻り値の型
varbinary
例
Base64 文字列 '1101' からデコードされたバイナリデータの SHA-1 ハッシュを計算します。
-
クエリ文
* | SELECT sha1(from_base64('1101')) AS sha1 -
クエリ結果:

sha256 関数
sha256 関数は、バイナリデータの SHA-256 ハッシュを計算します。
構文
sha256(x)
パラメーター
|
パラメーター |
説明 |
|
x |
varbinary 式です。 |
戻り値の型
varbinary
例
Base64 文字列 '1101' からデコードされたバイナリデータの SHA-256 ハッシュを計算します。
-
クエリ文
* | SELECT sha256(from_base64('1101')) AS sha256 -
クエリ結果:

sha512 関数
sha512 関数は、バイナリデータの SHA-512 ハッシュを計算します。
構文
sha512(x)
パラメーター
|
パラメーター |
説明 |
|
x |
varbinary 式です。 |
戻り値の型
varbinary
例
Base64 文字列 '1101' からデコードされたバイナリデータの SHA-512 ハッシュを計算します。
-
クエリ文
* | SELECT sha512(from_base64('1101')) AS sha512 -
クエリ結果:

xxhash64 関数
xxhash64 関数は、バイナリデータの xxHash64 ハッシュを計算します。
構文
xxhash64(x)
パラメーター
|
パラメーター |
説明 |
|
x |
varbinary 式です。 |
戻り値の型
varbinary
例
Base64 文字列 '10' からデコードされたバイナリデータの xxHash64 ハッシュを計算します。
-
クエリ文
* | SELECT xxhash64(from_base64('10')) -
クエリ結果:
