Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Unterstützte Datei- und Datentypen in Cryptographic Computing für Clean Rooms
Der C3R-Verschlüsselungsclient erkennt die folgenden Dateitypen:
-
CSV-Dateien
-
ParquetDateien
Sie können das --fileFormat
Flag im C3R-Verschlüsselungsclient verwenden, um ein Dateiformat explizit anzugeben. Wenn das Dateiformat explizit angegeben wird, wird es nicht durch die Dateierweiterung bestimmt.
CSV-Dateien
Es wird davon ausgegangen, dass eine Datei mit der Erweiterung.csv im CSV-Format ist und UTF-8-codierten Text enthält. Der C3R-Verschlüsselungsclient behandelt alle Werte als Zeichenketten.
Unterstützte Eigenschaften in CSV-Dateien
Der C3R-Verschlüsselungsclient erfordert, dass CSV-Dateien die folgenden Eigenschaften haben:
-
Kann eine erste Kopfzeile enthalten, die jede Spalte eindeutig benennt, oder auch nicht.
-
Durch Kommas getrennt. (Derzeit werden benutzerdefinierte Trennzeichen nicht unterstützt.)
-
UTF-8-codierter Text.
Löschen von Leerzeichen aus CSV-Einträgen
Sowohl führende als auch nachfolgende Leerzeichen werden aus CSV-Einträgen entfernt.
Benutzerdefinierte NULL Kodierung für eine CSV-Datei
Eine CSV-Datei kann eine benutzerdefinierte NULL Kodierung verwenden.
Mit dem C3R-Verschlüsselungsclient können Sie mithilfe des Flags benutzerdefinierte Kodierungen für NULL Einträge in den Eingabedaten angeben. --csvInputNULLValue=<csv-input-null>
Der C3R-Verschlüsselungsclient kann mithilfe des Flags benutzerdefinierte Kodierungen in der generierten Ausgabedatei für NULL-Einträge verwenden. --csvOutputNULLValue=<csv-output-null>
Anmerkung
Es wird NULL davon ausgegangen, dass es einem Eintrag an Inhalt mangelt, insbesondere im Zusammenhang mit einem umfangreicheren Tabellenformat wie einer SQL-Tabelle. Obwohl .csv diese Charakterisierung aus historischen Gründen nicht ausdrücklich unterstützt, ist es üblich, einen leeren Eintrag, der nur Leerraum enthält, als solche zu betrachten. NULL Daher ist dies das Standardverhalten des C3R-Verschlüsselungsclients und kann nach Bedarf angepasst werden.
Wie werden CSV-Einträge von C3R interpretiert
Die folgende Tabelle enthält Beispiele dafür, wie .csv-Einträge auf der Grundlage der Werte (falls vorhanden)cleartext, die cleartext für die Flags und angegeben wurden, zusammengefasst werden (aus Gründen der Übersichtlichkeit). --csvInputNULLValue=<csv-input-null>
--csvOutputNULLValue=<csv-output-null>
Leerzeichen am Anfang und am Ende von Anführungszeichen werden gekürzt, bevor C3R die Bedeutung eines Werts interpretiert.
<csv-input-null> |
<csv-output-null> |
Eingabeeintrag | Ausgangseintrag |
---|---|---|---|
Keine | Keine | ,AnyProduct, |
,AnyProduct, |
Keine | Keine | , AnyProduct , |
,AnyProduct, |
Keine | Keine | ,"AnyProduct", |
,AnyProduct, |
Keine | Keine | , "AnyProduct" , |
,AnyProduct, |
Keine | Keine | ,, |
,, |
Keine | Keine | , , |
,, |
Keine | Keine | ,"", |
,, |
Keine | Keine | ," ", |
," ", |
Keine | Keine | , " " , |
," ", |
"AnyProduct" |
"NULL" |
,AnyProduct, |
,NULL, |
"AnyProduct" |
"NULL" |
, AnyProduct , |
,NULL, |
"AnyProduct" |
"NULL" |
,"AnyProduct", |
,NULL, |
"AnyProduct" |
"NULL" |
, "AnyProduct" , |
,NULL, |
Keine | "NULL" |
,, |
,NULL, |
Keine | "NULL" |
, , |
,NULL, |
Keine | "NULL" |
,"", |
,NULL, |
Keine | "NULL" |
," ", |
," ", |
None | "NULL" |
, " " , |
," ", |
"" |
"NULL" |
,, |
,NULL, |
"" |
"NULL" |
, , |
,NULL, |
"" |
"NULL" |
,"", |
,"", |
"" |
"NULL" |
," ", |
," ", |
"" |
"NULL" |
, " " , |
," ", |
"\"\"" |
"NULL" |
,, |
,, |
"\"\"" |
"NULL" |
, , |
,, |
"\"\"" |
"NULL" |
,"", |
,NULL, |
"\"\"" |
"NULL" |
," ", |
," ", |
"\"\"" |
"NULL" |
, " " , |
," ", |
CSV-Datei ohne Header
Die CSV-Quelldatei muss keine Kopfzeilen in der ersten Zeile haben, die jede Spalte eindeutig benennen. Für eine CSV-Datei ohne Kopfzeile ist jedoch ein positionsbezogenes Verschlüsselungsschema erforderlich. Das Positionsverschlüsselungsschema ist anstelle des typischen Mapping-Schemas erforderlich, das sowohl für CSV-Dateien mit einer Kopfzeile als auch für Dateien verwendet wird. Parquet
Ein positionsabhängiges Verschlüsselungsschema spezifiziert Ausgabespalten nach Position statt nach Namen. Ein zugeordnetes Verschlüsselungsschema ordnet Quellspaltennamen Zielspaltennamen zu. Weitere Informationen, einschließlich einer ausführlichen Erläuterung und Beispielen für beide Schemaformate, finden Sie unterSchemas für zugeordnete und positionierte Tabellen.
ParquetDateien
Es wird davon ausgegangen, dass eine Datei mit einer .parquet Erweiterung das Apache Parquet Format hat.
Unterstützte Parquet Datentypen
Der C3R-Verschlüsselungsclient kann alle nicht komplexen (d. h. primitiven Datentypen) Daten in einer Parquet Datei verarbeiten, die einen Datentyp darstellt, der von unterstützt wird. AWS Clean Rooms
Für Spalten können jedoch nur Zeichenkettenspalten verwendet werden. sealed
Die folgenden Parquet-Datentypen werden unterstützt:
-
Binary
primitiver Typ mit den folgenden logischen Anmerkungen:-
Keine, wenn der gesetzt
--parquetBinaryAsString
ist (STRING
Datentyp) -
Decimal(scale, precision)
(DECIMAL
Datentyp) -
String
(STRING
Datentyp)
-
-
Boolean
primitiver Datentyp ohne logische Anmerkung (BOOLEAN
Datentyp) -
Double
primitiver Datentyp ohne logische Anmerkung (DOUBLE
Datentyp) -
Fixed_Len_Binary_Array
primitiver Typ mit derDecimal(scale, precision)
logischen Anmerkung (DECIMAL
Datentyp) -
Float
primitiver Datentyp ohne logische Anmerkung (FLOAT
Datentyp) -
Int32
primitiver Typ mit den folgenden logischen Anmerkungen:-
Keiner (
INT
Datentyp) -
Date
(DATE
Datentyp) -
Decimal(scale, precision)
(DECIMAL
Datentyp) -
Int(16, true)
(SMALLINT
Datentyp) -
Int(32, true)
(INT
Datentyp)
-
-
Int64
primitiver Datentyp mit den folgenden logischen Anmerkungen:-
Keiner (
BIGINT
Datentyp) -
Decimal(scale, precision)
(DECIMAL
Datentyp) -
Int(64, true)
(BIGINT
Datentyp) -
Timestamp(isUTCAdjusted, TimeUnit.MILLIS)
(TIMESTAMP
Datentyp) -
Timestamp(isUTCAdjusted, TimeUnit.MICROS)
(TIMESTAMP
Datentyp) -
Timestamp(isUTCAdjusted, TimeUnit.NANOS)
(TIMESTAMP
Datentyp)
-
Verschlüsseln von Werten, die keine Zeichenfolge sind
Derzeit werden nur Zeichenkettenwerte für sealed Spalten unterstützt.
Bei CSV-Dateien behandelt der C3R-Verschlüsselungsclient alle Werte als UTF-8-codierten Text und versucht nicht, sie vor der Verschlüsselung unterschiedlich zu interpretieren.
Bei Fingerabdruckspalten werden die Typen in Äquivalenzklassen eingeteilt. Eine Äquivalenzklasse ist ein Satz von Datentypen, deren Gleichheit anhand eines repräsentativen Datentyps eindeutig verglichen werden kann.
Äquivalenzklassen ermöglichen es, identische Fingerabdrücke demselben semantischen Wert zuzuweisen, unabhängig von der ursprünglichen Darstellung. Derselbe Wert in zwei Äquivalenzklassen führt jedoch nicht zu derselben Fingerabdruckspalte.
Beispielsweise 42
wird dem INTEGRAL
Wert derselbe Fingerabdruck zugewiesen, unabhängig davon, ob es sich ursprünglich um ein SMALLINT
INT
, oder BIGINT
handelte. Außerdem 0
wird der INTEGRAL
Wert niemals mit dem BOOLEAN
Wert FALSE
(der durch den Wert repräsentiert wird0
) übereinstimmen.
Die folgenden Äquivalenzklassen und die entsprechenden AWS Clean Rooms Datentypen werden von Fingerabdruckspalten unterstützt:
Äquivalenzklasse | Unterstützter AWS Clean Rooms Datentyp |
---|---|
BOOLEAN |
BOOLEAN |
DATE |
DATE |
INTEGRAL |
BIGINT , INT , SMALLINT |
STRING |
CHAR , STRING , VARCHAR |