本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
適用於 的密碼編譯運算中支援的檔案和資料類型 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 項目使用自訂編碼。
注意
NULL 項目被視為缺少內容,特別是在 SQL 資料表等更豐富的表格格式環境中。雖然 .csv 基於歷史原因未明確支援此特性描述,但一般慣例是將僅包含空格的空白項目視為 NULL。因此,這是 C3R 加密用戶端的預設行為,可以視需要自訂。
C3R 如何解譯 .csv 項目
下表提供 .csv 項目如何根據為 --csvInputNULLValue=<csv-input-null>和 --csvOutputNULLValue=<csv-output-null>旗標提供的值 (cleartext如果有的話) 進行封送 ( 到 cleartext 以獲得明確性) 的範例。在 C3R 解譯任何值的意義之前,會修剪引號外部的前後空格。
<csv-input-null> |
<csv-output-null> |
輸入項目 | 輸出項目 |
|---|---|---|---|
| None | None | 、AnyProduct、 |
、AnyProduct、 |
| None | None | 、AnyProduct、 |
、AnyProduct、 |
| None | None | 、"AnyProduct"、 |
、AnyProduct、 |
| None | None | 、「AnyProduct」、 |
、AnyProduct、 |
| None | None | ,, |
,, |
| None | None | , , |
,, |
| None | None | ,"", |
,, |
| None | None | ," ", |
," ", |
| None | None | , " " , |
," ", |
「AnyProduct」 |
「NULL」 |
、AnyProduct、 |
、NULL、 |
「AnyProduct」 |
「NULL」 |
、AnyProduct、 |
、NULL、 |
「AnyProduct」 |
「NULL」 |
、"AnyProduct"、 |
、NULL、 |
「AnyProduct」 |
「NULL」 |
、「AnyProduct」、 |
、NULL、 |
| None | 「NULL」 |
,, |
、NULL、 |
| None | 「NULL」 |
, , |
、NULL、 |
| None | 「NULL」 |
,"", |
、NULL、 |
| None | 「NULL」 |
," ", |
," ", |
| None | 「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 加密用戶端可以處理檔案中Parquet代表 支援之資料類型的任何非複雜 (即基本類型) 資料 AWS Clean Rooms。
不過,只有字串資料欄可用於sealed資料欄。
支援下列 Parquet 資料類型:
-
Binary具有下列邏輯註釋的基本類型:-
如果
--parquetBinaryAsString已設定 則無 (STRING資料類型) -
Decimal(scale, precision)(DECIMAL資料類型) -
String(STRING資料類型)
-
-
Boolean沒有邏輯註釋的基本資料類型 (BOOLEAN資料類型) -
Double沒有邏輯註釋的基本資料類型 (DOUBLE資料類型) -
Fixed_Len_Binary_Array具有邏輯註釋的基本類型Decimal(scale, precision)(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 編碼文字,並且在加密之前不會嘗試以不同的方式解譯這些值。
對於指紋資料欄,類型會分組為等效類別。等效類別是一組資料類型,可透過代表性資料類型明確比較相等性。
對等類別允許將相同的指紋指派給相同的語意值,無論原始表示法為何。不過,兩個等效類別中的相同值不會產生相同的指紋資料欄。
例如,無論該INTEGRAL值原本是 SMALLINT、 或 INT,42都會指派相同的指紋BIGINT。此外,該INTEGRAL值永遠0不會符合該BOOLEAN值 FALSE(以值 表示0)。
指紋資料欄支援下列等效類別和對應的 AWS Clean Rooms 資料類型:
| 對等類別 | 支援的 AWS Clean Rooms 資料類型 |
|---|---|
BOOLEAN |
BOOLEAN |
DATE |
DATE |
INTEGRAL |
BIGINT, INT, SMALLINT |
STRING |
CHAR, STRING, VARCHAR |