すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:バイナリ関数

最終更新日:Aug 01, 2026

このトピックでは、バイナリ関数の構文について説明し、例を挙げます。

Simple Log Service は、次のバイナリ関数をサポートしています。

重要
  • Simple Log Service のクエリ文では、文字列を単一引用符 (') で囲む必要があります。引用符で囲まれていないリテラル、または二重引用符 (") で囲まれたリテラルは、フィールド名または列名を表します。たとえば、'status' は文字列 'status' ですが、status または "status" はログフィールド status を指します。

  • varbinary はバイナリ文字型、varchar は可変長文字型です。

関数

構文

説明

SQL サポート

SPL サポート

from_base64 関数

from_base64(x)

Base64 エンコードされた文字列をバイナリデータにデコードします。

√

√

from_base64url 関数

from_base64url(x)

URL セーフな Base64 文字列をバイナリデータにデコードします。

√

×

from_big_endian_64 関数

from_big_endian_64(x)

bigint をビッグエンディアンのバイナリ表現からデコードします。

√

×

from_hex 関数

from_hex(x)

16 進数文字列をバイナリデータに変換します。

√

√

length 関数

length(x)

varbinary データの長さをバイト単位で返すか、varchar 文字列の文字数を返します。

√

×

md5 関数

md5(x)

バイナリデータの MD5 ハッシュを計算します。

√

√

to_base64 関数

to_base64(x)

バイナリデータを Base64 エンコードされた文字列にエンコードします。

√

√

to_base64url 関数

to_base64url(x)

バイナリデータを URL セーフな Base64 文字列にエンコードします。

√

×

to_hex 関数

to_hex(x)

バイナリデータを 16 進数文字列に変換します。

√

√

to_big_endian_64 関数

to_big_endian_64(x)

bigint をビッグエンディアンのバイナリ表現にエンコードします。

√

×

sha1 関数

sha1(x)

バイナリデータの SHA-1 ハッシュを計算します。

√

√

sha256 関数

sha256(x)

バイナリデータの SHA-256 ハッシュを計算します。

√

√

sha512 関数

sha512(x)

バイナリデータの SHA-512 ハッシュを計算します。

√

√

xxhash64 関数

xxhash64(x)

バイナリデータの xxHash64 ハッシュを計算します。

√

√

aes_encrypt(data, key, iv, mode, pad_style)

AES 暗号化を使用してバイナリデータを暗号化します。

√

√

aes_decrypt(data, key, iv, mode, pad_style)

AES で暗号化されたバイナリデータを復号します。

√

√

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_base64url

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)
  • クエリ結果:to_big_endian_64

sha1 関数

sha1 関数は、バイナリデータの SHA-1 ハッシュを計算します。

構文

sha1(x)

パラメーター

パラメーター

説明

x

varbinary 式。

戻り値の型

varbinary

例

Base64 文字列 '1101' からデコードされたバイナリデータの SHA-1 ハッシュを計算します。

  • クエリ文

    * | SELECT sha1(from_base64('1101')) AS sha1
  • クエリ結果:sha1

sha256 関数

sha256 関数は、バイナリデータの SHA-256 ハッシュを計算します。

構文

sha256(x)

パラメーター

パラメーター

説明

x

varbinary 式。

戻り値の型

varbinary

例

Base64 文字列 '1101' からデコードされたバイナリデータの SHA-256 ハッシュを計算します。

  • クエリ文

    * | SELECT sha256(from_base64('1101')) AS sha256
  • クエリ結果:sha256

sha512 関数

sha512 関数は、バイナリデータの SHA-512 ハッシュを計算します。

構文

sha512(x)

パラメーター

パラメーター

説明

x

varbinary 式。

戻り値の型

varbinary

例

Base64 文字列 '1101' からデコードされたバイナリデータの SHA-512 ハッシュを計算します。

  • クエリ文

    * | SELECT sha512(from_base64('1101')) AS sha512
  • クエリ結果:sha512

xxhash64 関数

xxhash64 関数は、バイナリデータの xxHash64 ハッシュを計算します。

構文

xxhash64(x)

パラメーター

パラメーター

説明

x

varbinary 式。

戻り値の型

varbinary

例

Base64 文字列 '10' からデコードされたバイナリデータの xxHash64 ハッシュを計算します。

  • クエリ文

    * | SELECT xxhash64(from_base64('10'))
  • クエリ結果:xxhash64

aes_encrypt 関数

aes_encrypt 関数は、AES 暗号化を使用してバイナリデータを暗号化します。高度暗号化標準 (AES) は、広く使用されている対称暗号化アルゴリズムです。CBC、ECB、OFB、CFB、CTR などの複数の暗号化モードと、複数のパディングスタイルをサポートしています。

構文

aes_encrypt(data, key, iv, mode, pad_style)

パラメーター

パラメーター

型

必須

説明

data

バイナリ

はい

暗号化するプレーンテキストデータ。非定数値がサポートされています。

key

バイナリ

はい

暗号化に使用されるキー。

iv

バイナリ

はい

暗号化のための初期化ベクトル (IV)。

mode

文字列

いいえ

AES 暗号化モード。デフォルト値: CBC。有効な値: CBC (Cipher Block Chaining)、ECB (Electronic Code Book)、OFB (Output Feedback)、CFB (Cipher Feedback)、CTR (Counter)。

pad_style

文字列

いいえ

パディングスタイル。このパラメーターはブロックモード (CBC および ECB) でのみ有効です。ストリームモード (OFB、CFB、CTR) ではパディングは使用されません。デフォルト値: pkcs7。有効な値: pkcs7 (PKCS#7 パディング)、iso7816 (ISO 7816 パディング)、x923 (ANSI X.923 パディング)。

戻り値の型

バイナリ

例

例 1: デフォルトの CBC モードを使用してデータを暗号化します。

元のログ: {"test":"aliyuntest"}

  • 処理ルール

    * | extend result=to_base64(aes_encrypt(cast(test as binary), cast('qwertyuiopasdfgd' as binary), cast('xxywosjdapdiawdk' as binary)))
  • 処理結果:

    {
      "result": "gXIqu0cBBtZHQxJBK8GLeA==",
      "test": "aliyuntest"
    }

例 2: ECB モードを使用してデータを暗号化します。

元のログ: {"test":"aliyuntest"}

  • 処理ルール

    * | extend result=to_base64(aes_encrypt(cast(test as binary), cast('qwertyuiopasdfgd' as binary), cast('xxywosjdapdiawdk' as binary),'ECB'))
  • 処理結果:

    {
      "result": "xh6A2VwoVuojfuA0CHuLBQ==",
      "test": "aliyuntest"
    }

例 3: OFB ストリームモードを使用してデータを暗号化します。

元のログ: {"test":"aliyuntest"}

  • 処理ルール

    * | extend result=to_base64(aes_encrypt(cast(test as binary), cast('qwertyuiopasdfgd' as binary), cast('xxywosjdapdiawdk' as binary),'OFB'))
  • 処理結果:

    {
      "result": "lBQuflXuEE2/bQ==",
      "test": "aliyuntest"
    }

aes_decrypt 関数

aes_decrypt 関数は、AES で暗号化されたバイナリデータを復号します。

構文

aes_decrypt(data, key, iv, mode, pad_style)

パラメーター

パラメーター

型

必須

説明

data

バイナリ

はい

復号する暗号文データ。

key

バイナリ

はい

復号に使用されるキー。

iv

バイナリ

はい

復号のための初期化ベクトル (IV)。

mode

文字列

いいえ

AES 復号モード。デフォルト値: CBC。有効な値: CBC (Cipher Block Chaining)、ECB (Electronic Code Book)、OFB (Output Feedback)、CFB (Cipher Feedback)、CTR (Counter)。

pad_style

文字列

いいえ

パディングスタイル。このパラメーターはブロックモード (CBC および ECB) でのみ有効です。デフォルト値: pkcs7。有効な値: pkcs7 (PKCS#7 パディング)、iso7816 (ISO 7816 パディング)、x923 (ANSI X.923 パディング)。

戻り値の型

バイナリ (プレーンテキストのバイト、UTF-8 エンコーディングを使用してテキストとして表示)

例

例 1: CBC で暗号化されたデータを復号します (Base64 入力)。

元のログ: {"test":"gXIqu0cBBtZHQxJBK8GLeA=="}

  • 処理ルール

    * | extend result=aes_decrypt(cast(from_base64(test) as binary), cast('qwertyuiopasdfgd' as binary), cast('xxywosjdapdiawdk' as binary))
  • 処理結果:

    {
      "test": "gXIqu0cBBtZHQxJBK8GLeA==",
      "result": "aliyuntest"
    }

例 2: OFB ストリームモードで暗号化されたデータを復号します。

元のログ: {"test": "lBQuflXuEE2/bQ=="}

  • 処理ルール

    * | extend result=cast(aes_decrypt(cast(from_base64(test) as binary), cast('qwertyuiopasdfgd' as binary), cast('xxywosjdapdiawdk' as binary), 'OFB') as varchar)
  • 処理結果:

    {
      "test": "lBQuflXuEE2/bQ==",
      "result": "aliyuntest"
    }

例 3: ECB モードで暗号化されたデータを復号します。

元のログ: {"test": "xh6A2VwoVuojfuA0CHuLBQ=="}

  • 処理ルール

    * | extend result=cast(aes_decrypt(cast(from_base64(test) as binary), cast('qwertyuiopasdfgd' as binary), cast('xxywosjdapdiawdk' as binary), 'ECB') as varchar)
  • 処理結果:

    {
      "test": "xh6A2VwoVuojfuA0CHuLBQ==",
      "result": "aliyuntest"
    }