在加密計算中支持的文件和數據類型 Clean Rooms - AWS Clean Rooms

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在加密計算中支持的文件和數據類型 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 加密用戶端,您可以使用旗標為輸入資料中的NULL項目指定自訂編碼。--csvInputNULLValue=<csv-input-null>C3R 加密用戶端可以使用旗標,在產生的輸出檔案中針對 NULL 項目使用自訂編碼。--csvOutputNULLValue=<csv-output-null>

注意

NULL條目被認為是缺少內容,特別是在更豐富的表格格式(如 SQL 表)的上下文中。雖然 .csv 基於歷史原因並未明確支援此特性分析,但考慮只包含空白區域的空白項目是一種常見慣例。NULL因此,這是 C3R 加密用戶端的預設行為,可視需要進行自訂。

C3R 如何解釋 .csv 條目

下表提供了如何根據cleartext為和旗標提供的值 (如果有的話) 封送 .csv 項目的範例 (以cleartext便清楚起見)。--csvInputNULLValue=<csv-input-null> --csvOutputNULLValue=<csv-output-null>在 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 檔案需要位置加密結構描述。需要位置加密結構描述,而不是標題列和Parquet檔案的 .csv 檔案所使用的典型對應結構描述。

位置加密結構描述會依位置而非名稱來指定輸出資料行。對應的加密架構會將來源資料欄名稱對應至目標資料欄名稱。如需詳細資訊,包括兩種結構描述格式的詳細討論和範例,請參閱對映和位置表格資料架構

Parquet檔案

具有.parquet擴展名的文件被假定為Apache Parquet格式。

支援的Parquet資料類型

C3R 加密客戶端可以處理代表支持的數據類型的Parquet文件中的任何非複雜(也就是原始類型)數據。 AWS Clean Rooms

但是,只有字串資料行可用於sealed欄。

支援下列實木複合地板資料類型:

  • 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值原本是、或SMALLINTINT42會指派相同的指紋BIGINT。此外,該INTEGRAL值永遠不0會匹配BOOLEANFALSE(由值表示0)。

指紋資料行支援下列對等類別和對應的 AWS Clean Rooms 資料類型:

等價類 支援的 AWS Clean Rooms 資料類型
BOOLEAN BOOLEAN
DATE DATE
INTEGRAL BIGINT, INT, SMALLINT
STRING CHAR, STRING, VARCHAR