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

  • 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:

  • 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 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 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