Unterstützte Datei- und Datentypen in Cryptographic Computing für Clean Rooms - AWS Clean Rooms

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:

  • Binaryprimitiver Typ mit den folgenden logischen Anmerkungen:

    • Keine, wenn der gesetzt --parquetBinaryAsString ist (STRINGDatentyp)

    • Decimal(scale, precision)(DECIMALDatentyp)

    • String(STRINGDatentyp)

  • Booleanprimitiver Datentyp ohne logische Anmerkung (BOOLEANDatentyp)

  • Doubleprimitiver Datentyp ohne logische Anmerkung (DOUBLEDatentyp)

  • Fixed_Len_Binary_Arrayprimitiver Typ mit der Decimal(scale, precision) logischen Anmerkung (DECIMALDatentyp)

  • Floatprimitiver Datentyp ohne logische Anmerkung (FLOATDatentyp)

  • Int32primitiver Typ mit den folgenden logischen Anmerkungen:

    • Keiner (INTDatentyp)

    • Date(DATEDatentyp)

    • Decimal(scale, precision)(DECIMALDatentyp)

    • Int(16, true)(SMALLINTDatentyp)

    • Int(32, true)(INTDatentyp)

  • Int64primitiver Datentyp mit den folgenden logischen Anmerkungen:

    • Keiner (BIGINTDatentyp)

    • Decimal(scale, precision)(DECIMALDatentyp)

    • Int(64, true)(BIGINTDatentyp)

    • Timestamp(isUTCAdjusted, TimeUnit.MILLIS)(TIMESTAMPDatentyp)

    • Timestamp(isUTCAdjusted, TimeUnit.MICROS)(TIMESTAMPDatentyp)

    • Timestamp(isUTCAdjusted, TimeUnit.NANOS)(TIMESTAMPDatentyp)

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 SMALLINTINT, 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