VARBYTE 型 - AWS Clean Rooms

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

VARBYTE 型

一定の制限を持つ可変長のバイナリ値を格納するには、VARBYTE 列、VARBINARY 列または BINARY VARYING 列を使用します。

varbyte [ (n) ]

最大バイト数 (n) の範囲は1~1,024,000 です。デフォルト値は 64,000 です。

以下に、VARBYTE データ型を使用する場合の例をいくつか示します。

  • VARBYTE 列でのテーブルの結合。

  • VARBYTE 列を含むマテリアライズドビューの作成。VARBYTE 列を含むマテリアライズド・ビューでは、増分更新がサポートされます。ただし、VARBYTE 列の COUNT、MIN、MAX および GROUP BY 以外の集計関数は、増分更新をサポートしません。

すべてのバイトが印刷可能な文字になるように、16 AWS Clean Rooms 進形式を使用して VARBYTE 値を出力します。例えば、次の SQL では 16 進数の文字列 6162 をバイナリ値に変換しています。戻り値がバイナリ値であっても、結果は 16 進数の 6162 で出力されます。

select from_hex('6162'); from_hex ---------- 6162

AWS Clean Rooms VARBYTE と以下のデータ型間のキャストをサポートします。

  • CHAR

  • VARCHAR

  • SMALLINT

  • INTEGER

  • BIGINT

次の SQL ステートメントは、VARCHAR 文字列を VARBYTE にキャストします。戻り値がバイナリ値であっても、結果は 16 進数の 616263 で出力されます。

select 'abc'::varbyte; varbyte --------- 616263

次の SQL ステートメントは、列内の CHAR 値を VARBYTE にキャストします。次の使用例では、CHAR (10) 列 (c) を持つテーブルを作成し、長さが 10 より短い文字値を挿入します。出力されるキャストでは、スペース文字 (hex'20') を使用して、定義された列サイズに結果がパディングされます。戻り値がバイナリ値の場合でも、結果は 16 進数で表示されます。

create table t (c char(10)); insert into t values ('aa'), ('abc'); select c::varbyte from t; c ---------------------- 61612020202020202020 61626320202020202020

次の SQL ステートメントは、SMALLINT 文字列を VARBYTE にキャストします。戻り値がバイナリ値の場合でも、この結果は 16 進数 0005 (2 バイトつまり 4 桁の 16 進数文字列) として表示されます。

select 5::smallint::varbyte; varbyte --------- 0005

次の SQL ステートメントは、INTEGER を VARBYTE にキャストします。戻り値がバイナリ値の場合でも、この結果は 16 進数 00000005 (4 バイトつまり 8 桁の16進数文字列) として出力されます。

select 5::int::varbyte; varbyte ---------- 00000005

次の SQL ステートメントは、BIGINT を VARBYTE にキャストします。戻り値がバイナリ値の場合でも、この結果は 16 進数 0000000000000005 (8 バイトつまり 16 桁の 16 進数文字列) として出力されます。

select 5::bigint::varbyte; varbyte ------------------ 0000000000000005

AWS Clean Roomsで VARBYTE データ型を使用する際の制約事項

VARBYTE データ型をと一緒に使用する場合の制限は次のとおりです。 AWS Clean Rooms

  • AWS Clean Rooms VARBYTE データ型は Parquet ファイルと ORC ファイルでのみサポートされます。

  • AWS Clean Rooms クエリエディターはまだ VARBYTE データ型を完全にはサポートしていません。したがって、VARBYTE 表現を処理する際には、他の SQL クライアントを使用してください。

    クエリエディタを使用する際の回避策として、データの長さが 64 KB 未満で、かつコンテンツが有効な UTF-8 で構成されている場合は、VARBYTE 値を VARCHAR にキャストできます。次にこの例を示します。

    select to_varbyte('6162', 'hex')::varchar;
  • Python または Lambda ユーザー定義関数 (UDF) では VARBYTE データ型を使用することはできません。

  • VARBYTE 列から HLLSKETCH 列を作成したり、VARBYTE 列で APPROXIMATE COUNT DISTINCT を使用したりすることはできません。