翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 を使用したりすることはできません。