Types de fichiers et de données pris en charge dans Cryptographic Computing pour Clean Rooms - AWS Clean Rooms

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Types de fichiers et de données pris en charge dans Cryptographic Computing pour Clean Rooms

Le client de chiffrement C3R reconnaît les types de fichiers suivants :

  • fichiers CSV

  • Parquetfichiers

Vous pouvez utiliser l'--fileFormatindicateur du client de chiffrement C3R pour spécifier un format de fichier de manière explicite. Lorsqu'il est explicitement spécifié, le format de fichier n'est pas déterminé par l'extension du fichier.

fichiers CSV

Un fichier portant une extension .csv est supposé être au format CSV et contenir du texte codé en UTF-8. Le client de chiffrement C3R traite toutes les valeurs comme des chaînes.

Propriétés prises en charge dans les fichiers .csv

Le client de chiffrement C3R nécessite que les fichiers .csv possèdent les propriétés suivantes :

  • Peut contenir ou non une ligne d'en-tête initiale qui nomme chaque colonne de manière unique.

  • Délimité par des virgules. (Actuellement, les délimiteurs personnalisés ne sont pas pris en charge.)

  • Texte codé en UTF-8.

Suppression des espaces blancs dans les entrées .csv

Les espaces blancs de début et de fin sont supprimés des entrées .csv.

NULLEncodage personnalisé pour un fichier .csv

Un fichier .csv peut utiliser un NULL encodage personnalisé.

Avec le client de chiffrement C3R, vous pouvez spécifier des codages personnalisés pour les NULL entrées dans les données d'entrée à l'aide de l'--csvInputNULLValue=<csv-input-null>indicateur. Le client de chiffrement C3R peut utiliser des encodages personnalisés dans le fichier de sortie généré pour les entrées NULL à l'aide de l'--csvOutputNULLValue=<csv-output-null>indicateur.

Note

Une NULL entrée est considérée comme manquant de contenu, en particulier dans le contexte d'un format tabulaire plus riche tel qu'un tableau SQL. Bien que le format .csv ne prenne pas explicitement en charge cette caractérisation pour des raisons historiques, il est courant de considérer qu'une entrée vide contenant uniquement des espaces blancs est considérée NULL comme telle. Il s'agit donc du comportement par défaut du client de chiffrement C3R et il peut être personnalisé selon les besoins.

Comment les entrées .csv sont interprétées par C3R

Le tableau suivant fournit des exemples de la manière dont les entrées .csv sont rassemblées (cleartextcleartextpour plus de clarté) en fonction des valeurs (le cas échéant) fournies pour les indicateurs --csvInputNULLValue=<csv-input-null> et--csvOutputNULLValue=<csv-output-null>. Les espaces blancs de début et de fin situés en dehors des guillemets sont supprimés avant que C3R n'interprète le sens d'une valeur.

<csv-input-null> <csv-output-null> Entrée d'entrée Entrée de sortie
Aucun Aucun ,AnyProduct, ,AnyProduct,
Aucun Aucun , AnyProduct , ,AnyProduct,
Aucun Aucun ,"AnyProduct", ,AnyProduct,
Aucun Aucun , "AnyProduct" , ,AnyProduct,
Aucun Aucun ,, ,,
Aucun Aucun , , ,,
Aucun Aucun ,"", ,,
Aucun Aucun ," ", ," ",
Aucun Aucun , " " , ," ",
"AnyProduct" "NULL" ,AnyProduct, ,NULL,
"AnyProduct" "NULL" , AnyProduct , ,NULL,
"AnyProduct" "NULL" ,"AnyProduct", ,NULL,
"AnyProduct" "NULL" , "AnyProduct" , ,NULL,
Aucun "NULL" ,, ,NULL,
Aucun "NULL" , , ,NULL,
Aucun "NULL" ,"", ,NULL,
Aucun "NULL" ," ", ," ",
Aucun "NULL" , " " , ," ",
"" "NULL" ,, ,NULL,
"" "NULL" , , ,NULL,
"" "NULL" ,"", ,"",
"" "NULL" ," ", ," ",
"" "NULL" , " " , ," ",
"\"\"" "NULL" ,, ,,
"\"\"" "NULL" , , ,,
"\"\"" "NULL" ,"", ,NULL,
"\"\"" "NULL" ," ", ," ",
"\"\"" "NULL" , " " , ," ",

Fichier CSV sans en-têtes

Il n'est pas nécessaire que le fichier .csv source comporte des en-têtes dans la première ligne qui nomment chaque colonne de manière unique. Toutefois, un fichier .csv sans ligne d'en-tête nécessite un schéma de chiffrement positionnel. Le schéma de chiffrement positionnel est requis au lieu du schéma mappé classique utilisé à la fois pour les fichiers .csv avec une ligne d'en-tête et pour les fichiers. Parquet

Un schéma de chiffrement positionnel spécifie les colonnes de sortie par position plutôt que par nom. Un schéma de chiffrement mappé associe les noms des colonnes source aux noms des colonnes cibles. Pour plus d'informations, notamment une discussion détaillée et des exemples des deux formats de schéma, consultezSchémas de tables cartographiées et positionnelles.

Parquetfichiers

Un fichier avec une .parquet extension est supposé être au Apache Parquet format.

Types de Parquet données pris en charge

Le client de chiffrement C3R peut traiter toutes les données non complexes (c'est-à-dire de type primitif) dans un Parquet fichier qui représente un type de données pris en charge par. AWS Clean Rooms

Toutefois, seules les colonnes de chaîne peuvent être utilisées pour les sealed colonnes.

Les types de données Parquet suivants sont pris en charge :

  • Binarytype primitif avec les annotations logiques suivantes :

    • Aucun si le --parquetBinaryAsString est défini (type de STRING données)

    • Decimal(scale, precision)(type de DECIMAL données)

    • String(type de STRING données)

  • Booleantype de données primitif sans annotation logique (type de BOOLEAN données)

  • Doubletype de données primitif sans annotation logique (type de DOUBLE données)

  • Fixed_Len_Binary_Arraytype primitif avec annotation Decimal(scale, precision) logique (type de DECIMAL données)

  • Floattype de données primitif sans annotation logique (type de FLOAT données)

  • Int32type primitif avec les annotations logiques suivantes :

    • Aucun (type de INT données)

    • Date(type de DATE données)

    • Decimal(scale, precision)(type de DECIMAL données)

    • Int(16, true)(type de SMALLINT données)

    • Int(32, true)(type de INT données)

  • Int64type de données primitif avec les annotations logiques suivantes :

    • Aucun (type de BIGINT données)

    • Decimal(scale, precision)(type de DECIMAL données)

    • Int(64, true)(type de BIGINT données)

    • Timestamp(isUTCAdjusted, TimeUnit.MILLIS)(type de TIMESTAMP données)

    • Timestamp(isUTCAdjusted, TimeUnit.MICROS)(type de TIMESTAMP données)

    • Timestamp(isUTCAdjusted, TimeUnit.NANOS)(type de TIMESTAMP données)

Chiffrement de valeurs autres que des chaînes

Actuellement, seules les valeurs de chaîne sont prises en charge pour les sealed colonnes.

Pour les fichiers .csv, le client de chiffrement C3R traite toutes les valeurs comme du texte codé en UTF-8 et ne tente pas de les interpréter différemment avant le chiffrement.

Pour les colonnes d'empreintes digitales, les types sont regroupés en classes d'équivalence. Une classe d'équivalence est un ensemble de types de données dont l'égalité peut être comparée sans ambiguïté via un type de données représentatif.

Les classes d'équivalence permettent d'attribuer des empreintes identiques à la même valeur sémantique, quelle que soit la représentation d'origine. Cependant, la même valeur dans deux classes d'équivalence ne produira pas la même colonne d'empreintes digitales.

Par exemple, la même empreinte digitale 42 sera attribuée à la INTEGRAL valeur, qu'il s'agisse à l'origine d'un SMALLINTINT, ouBIGINT. De plus, la INTEGRAL valeur ne 0 correspondra jamais à la BOOLEAN valeur FALSE (qui est représentée par la valeur0).

Les classes d'équivalence suivantes et les types de AWS Clean Rooms données correspondants sont pris en charge par les colonnes d'empreintes digitales :

Classe d'équivalence Type de AWS Clean Rooms données pris en charge
BOOLEAN BOOLEAN
DATE DATE
INTEGRAL BIGINT, INT, SMALLINT
STRING CHAR, STRING, VARCHAR