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'--fileFormat
indicateur 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 :
-
Binary
type primitif avec les annotations logiques suivantes :-
Aucun si le
--parquetBinaryAsString
est défini (type deSTRING
données) -
Decimal(scale, precision)
(type deDECIMAL
données) -
String
(type deSTRING
données)
-
-
Boolean
type de données primitif sans annotation logique (type deBOOLEAN
données) -
Double
type de données primitif sans annotation logique (type deDOUBLE
données) -
Fixed_Len_Binary_Array
type primitif avec annotationDecimal(scale, precision)
logique (type deDECIMAL
données) -
Float
type de données primitif sans annotation logique (type deFLOAT
données) -
Int32
type primitif avec les annotations logiques suivantes :-
Aucun (type de
INT
données) -
Date
(type deDATE
données) -
Decimal(scale, precision)
(type deDECIMAL
données) -
Int(16, true)
(type deSMALLINT
données) -
Int(32, true)
(type deINT
données)
-
-
Int64
type de données primitif avec les annotations logiques suivantes :-
Aucun (type de
BIGINT
données) -
Decimal(scale, precision)
(type deDECIMAL
données) -
Int(64, true)
(type deBIGINT
données) -
Timestamp(isUTCAdjusted, TimeUnit.MILLIS)
(type deTIMESTAMP
données) -
Timestamp(isUTCAdjusted, TimeUnit.MICROS)
(type deTIMESTAMP
données) -
Timestamp(isUTCAdjusted, TimeUnit.NANOS)
(type deTIMESTAMP
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 SMALLINT
INT
, 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 |