翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 つの等価クラスで同じ値があっても、同じフィンガープリント列にはなりません。
例えば、42
の INTEGRAL
値には、元の値が SMALLINT
、INT
、または BIGINT
であったかどうかにかかわらず、同じフィンガープリントが割り当てられます。また、0
の INTEGRAL
値が FALSE
の BOOLEAN
値 (値 0
で表される) と一致することはありません。
フィンガープリント列では、次の等価クラスと対応する AWS Clean Rooms データ型がサポートされています。
等価クラス | サポートされている AWS Clean Rooms データ型 |
---|---|
BOOLEAN |
BOOLEAN |
DATE |
DATE |
INTEGRAL |
BIGINT , INT , SMALLINT |
STRING |
CHAR , STRING , VARCHAR |