Cryptographic Computing for Clean Rooms でサポートされているファイルとデータの種類 - AWS Clean Rooms

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

Cryptographic Computing for Clean Rooms でサポートされているファイルとデータの種類

C3R 暗号化クライアントは、以下の種類のファイルを認識します。

  • CSV ファイル

  • Parquet ファイル

C3R 暗号化クライアントの --fileFormat フラグを使用して、ファイル形式を明示的に指定できます。明示的に指定した場合、ファイル形式はファイル拡張子によって判断されません。

CSV ファイル

.csv 拡張子の付いたファイルは CSV 形式で、UTF-8 でエンコードされたテキストを含むものとみなされます。C3R 暗号化クライアントはすべての値を文字列として扱います。

.csv ファイルでサポートされるプロパティ

C3R 暗号化クライアントでは、.csv ファイルに次のプロパティが必要です。

  • 各列に一意の名前を付ける最初のヘッダー行 (含まれる場合と含まれない場合があります)。

  • カンマ区切り (現在、カスタム区切り文字はサポートされていません)。

  • UTF-8 でエンコードされたテキスト。

.csv エントリからの空白の削除

.csv エントリから先頭および末尾の空白が両方とも削除されます。

.csv ファイルのカスタム NULL エンコーディング

.csv ファイルではカスタム NULL エンコーディングを使用できます。

C3R 暗号化クライアントでは、--csvInputNULLValue=<csv-input-null> フラグを使用して入力データの NULL エントリにカスタムエンコーディングを指定できます。C3R 暗号化クライアントは、--csvOutputNULLValue=<csv-output-null> フラグを使用することで、生成された出力ファイル内の NULL エントリに対してカスタムエンコーディングを使用できます。

注記

特に SQL テーブルのようなよりリッチな表形式のコンテキストでは、NULL エントリは欠落したコンテンツとみなされます。.csv は歴史的な理由からこの特性を明示的にサポートしていませんが、空白だけを含む空のエントリは NULL と見なすのが一般的な慣習です。したがって、これは C3R 暗号化クライアントのデフォルト動作であり、必要に応じてカスタマイズできます。

C3R による .csv エントリの解釈

次の表は、--csvInputNULLValue=<csv-input-null> および --csvOutputNULLValue=<csv-output-null> のフラグに指定された値 (存在する場合) に基づいて、.csv エントリを (わかりやすくするために cleartext から cleartext に) 整列化する方法の例を示しています。引用符の外側にある先頭と末尾の空白は、C3R が値の意味を解釈する前に削除されます。

<csv-input-null> <csv-output-null> 入力エントリ 出力エントリ
なし なし ,AnyProduct, ,AnyProduct,
なし なし , AnyProduct , ,AnyProduct,
なし なし ,"AnyProduct", ,AnyProduct,
なし なし , "AnyProduct" , ,AnyProduct,
なし なし ,, ,,
なし なし , , ,,
なし なし ,"", ,,
なし なし ," ", ," ",
なし なし , " " , ," ",
"AnyProduct" "NULL" ,AnyProduct, ,NULL,
"AnyProduct" "NULL" , AnyProduct , ,NULL,
"AnyProduct" "NULL" ,"AnyProduct", ,NULL,
"AnyProduct" "NULL" , "AnyProduct" , ,NULL,
なし "NULL" ,, ,NULL,
なし "NULL" , , ,NULL,
なし "NULL" ,"", ,NULL,
なし "NULL" ," ", ," ",
なし "NULL" , " " , ," ",
"" "NULL" ,, ,NULL,
"" "NULL" , , ,NULL,
"" "NULL" ,"", ,"",
"" "NULL" ," ", ," ",
"" "NULL" , " " , ," ",
"\"\"" "NULL" ,, ,,
"\"\"" "NULL" , , ,,
"\"\"" "NULL" ,"", ,NULL,
"\"\"" "NULL" ," ", ," ",
"\"\"" "NULL" , " " , ," ",

ヘッダーのない CSV ファイル

ソースの .csv ファイルでは、各列に一意の名前を付けるヘッダーが最初の行になくてもかまいません。ただし、ヘッダー行のない .csv ファイルには位置暗号化スキーマが必要です。ヘッダー行のある .csv ファイルと Parquet ファイルの両方に使用される一般的なマッピングスキーマの代わりに、位置暗号化スキーマが必要になります。

位置暗号化スキーマは、出力列を名前ではなく位置で指定します。マッピング暗号化スキーマは、ソースの列名をターゲットの列名にマッピングします。両方のスキーマ形式の詳細な説明や例については、「マッピングテーブルスキーマと位置テーブルスキーマ」を参照してください。

Parquet ファイル

.parquet 拡張子の付いたファイルは、Apache Parquet 形式であるとみなされます。

サポートされている Parquet データ型

C3R 暗号化クライアントでは、 AWS Clean Roomsでサポートされているデータ型を表す Parquet ファイル内の複雑でない (つまり、プリミティブ型の) データを処理できます。

ただし、sealed列には文字列の列しか使用できません。

以下の Parquet データ型 がサポートされています。

  • 以下の論理アノテーション付きの Binary プリミティブ型

    • --parquetBinaryAsString が設定されている場合は不要 (STRING データ型)

    • Decimal(scale, precision) (DECIMAL データ型)

    • String (STRING データ型)

  • 論理アノテーションのない Boolean プリミティブデータ型 (BOOLEAN データ型)

  • 論理アノテーションのない Double プリミティブデータ型 (DOUBLE データ型)

  • Decimal(scale, precision) 論理アノテーション付きの Fixed_Len_Binary_Array プリミティブ型 (DECIMAL データ型)

  • 論理アノテーションのない Float プリミティブデータ型 (FLOAT データ型)

  • 以下の論理アノテーション付きの Int32 プリミティブ型

    • 不要 (INT データ型)

    • Date (DATE データ型)

    • Decimal(scale, precision) (DECIMAL データ型)

    • Int(16, true) (SMALLINT データ型)

    • Int(32, true) (INT データ型)

  • 以下の論理アノテーション付きの Int64 プリミティブデータ型

    • 不要 (BIGINT データ型)

    • Decimal(scale, precision) (DECIMAL データ型)

    • Int(64, true) (BIGINT データ型)

    • Timestamp(isUTCAdjusted, TimeUnit.MILLIS) (TIMESTAMP データ型)

    • Timestamp(isUTCAdjusted, TimeUnit.MICROS) (TIMESTAMP データ型)

    • Timestamp(isUTCAdjusted, TimeUnit.NANOS) (TIMESTAMP データ型)

文字列以外の値の暗号化

現在、sealed列では文字列値のみがサポートされています。

.csv ファイルの場合、C3R 暗号化クライアントはすべての値を UTF-8 でエンコードされたテキストとして扱い、暗号化前にそれらを異なる方法で解釈しようとはしません。

フィンガープリント列では、データ型は等価クラスにグループ化されます。等価クラスは、代表的なデータ型を使用して同等かどうかを明確に比較できるデータ型のセットです。

等価クラスを使用すると、元の表現に関係なく、同一のフィンガープリントを同じセマンティック値に割り当てることができます。ただし、2 つの等価クラスで同じ値があっても、同じフィンガープリント列にはなりません。

例えば、42INTEGRAL 値には、元の値が SMALLINTINT、または BIGINT であったかどうかにかかわらず、同じフィンガープリントが割り当てられます。また、0INTEGRAL 値が FALSEBOOLEAN 値 (値 0 で表される) と一致することはありません。

フィンガープリント列では、次の等価クラスと対応する AWS Clean Rooms データ型がサポートされています。

等価クラス サポートされている AWS Clean Rooms データ型
BOOLEAN BOOLEAN
DATE DATE
INTEGRAL BIGINT, INT, SMALLINT
STRING CHAR, STRING, VARCHAR