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
-
Parquet files
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.
Benutzerdefiniert NULL Kodierung für eine CSV-Datei
Eine CSV-Datei kann benutzerdefiniert verwendet werden NULL Kodierung.
Mit dem C3R-Verschlüsselungsclient können Sie benutzerdefinierte Kodierungen angeben für NULL Einträge in den Eingabedaten mithilfe des --csvInputNULLValue=<csv-input-null>
Flags. 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
A NULL Ein Eintrag wird als inhaltslos angesehen, 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 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 gemarshallt werden (cleartext to cleartext Der Übersichtlichkeit halber), basierend auf den Werten (falls vorhanden), die für die Flags --csvInputNULLValue=<csv-input-null>
und --csvOutputNULLValue=<csv-output-null>
angegeben sind. 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" |
," ", |
," ", |
Keine | "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 Parquet Dateien.
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.
Parquet files
Eine Datei mit einem .parquet Es wird davon ausgegangen, dass die Erweiterung in der Apache Parquet .
Unterstützt Parquet Datentypen
Der C3R-Verschlüsselungsclient kann alle nicht komplexen (d. h. primitiven Typs) Daten in einem Parquet Datei, die einen Datentyp darstellt, der von unterstützt wird. AWS Clean Rooms
Es können jedoch nur Zeichenkettenspalten verwendet werden für sealed Spalten.
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 unterstützt für sealed Spalten.
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 |