Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Tipi di file e dati supportati in Cryptographic Computing per Clean Rooms
Il client di crittografia C3R riconosce i seguenti tipi di file:
-
File CSV
-
Parquetfile
È possibile utilizzare il --fileFormat
flag nel client di crittografia C3R per specificare un formato di file in modo esplicito. Se specificato in modo esplicito, il formato del file non è determinato dall'estensione del file.
File CSV
Si presume che un file con estensione.csv sia in formato CSV e contenga testo con codifica UTF-8. Il client di crittografia C3R tratta tutti i valori come stringhe.
Proprietà supportate nei file.csv
Il client di crittografia C3R richiede che i file.csv abbiano le seguenti proprietà:
-
Potrebbe contenere o meno una riga di intestazione iniziale che nomina in modo univoco ogni colonna.
-
Delimitato da virgole. (Attualmente, i delimitatori personalizzati non sono supportati.)
-
Testo con codifica UTF-8.
Riduzione degli spazi bianchi dalle voci in formato.csv
Sia gli spazi bianchi iniziali che quelli finali vengono eliminati dalle voci in formato.csv.
Codifica personalizzata per un file.csv NULL
Un file.csv può utilizzare una codifica personalizzata. NULL
Con il client di crittografia C3R, è possibile specificare codifiche personalizzate per le NULL voci nei dati di input utilizzando il flag. --csvInputNULLValue=<csv-input-null>
Il client di crittografia C3R può utilizzare codifiche personalizzate nel file di output generato per le voci NULL utilizzando il flag. --csvOutputNULLValue=<csv-output-null>
Nota
Una NULL voce è considerata priva di contenuto, in particolare nel contesto di un formato tabulare più ricco come una tabella SQL. Sebbene .csv non supporti esplicitamente questa caratterizzazione per ragioni storiche, è una convenzione comune considerare come tale una voce vuota che contiene solo spazi bianchi. NULL Pertanto, questo è il comportamento predefinito del client di crittografia C3R e può essere personalizzato in base alle esigenze.
Come vengono interpretate le voci in formato.csv da C3R
La tabella seguente fornisce esempi di come le voci in formato.csv vengono organizzate (cleartextper maggiore chiarezza) in base cleartext ai valori (se presenti) forniti per i flag and. --csvInputNULLValue=<csv-input-null>
--csvOutputNULLValue=<csv-output-null>
Gli spazi bianchi iniziali e finali al di fuori delle virgolette vengono tagliati prima che C3R interpreti il significato di qualsiasi valore.
<csv-input-null> |
<csv-output-null> |
Inserimento di input | Entrata in uscita |
---|---|---|---|
Nessuno | Nessuna | ,AnyProduct, |
,AnyProduct, |
Nessuna | Nessuna | , AnyProduct , |
,AnyProduct, |
Nessuna | Nessuna | ,"AnyProduct", |
,AnyProduct, |
Nessuna | Nessuna | , "AnyProduct" , |
,AnyProduct, |
Nessuna | Nessuna | ,, |
,, |
Nessuna | Nessuna | , , |
,, |
Nessuna | Nessuna | ,"", |
,, |
Nessuna | Nessuna | ," ", |
," ", |
Nessuna | Nessuna | , " " , |
," ", |
"AnyProduct" |
"NULL" |
,AnyProduct, |
,NULL, |
"AnyProduct" |
"NULL" |
, AnyProduct , |
,NULL, |
"AnyProduct" |
"NULL" |
,"AnyProduct", |
,NULL, |
"AnyProduct" |
"NULL" |
, "AnyProduct" , |
,NULL, |
Nessuna | "NULL" |
,, |
,NULL, |
Nessuna | "NULL" |
, , |
,NULL, |
Nessuna | "NULL" |
,"", |
,NULL, |
Nessuna | "NULL" |
," ", |
," ", |
Nessuno | "NULL" |
, " " , |
," ", |
"" |
"NULL" |
,, |
,NULL, |
"" |
"NULL" |
, , |
,NULL, |
"" |
"NULL" |
,"", |
,"", |
"" |
"NULL" |
," ", |
," ", |
"" |
"NULL" |
, " " , |
," ", |
"\"\"" |
"NULL" |
,, |
,, |
"\"\"" |
"NULL" |
, , |
,, |
"\"\"" |
"NULL" |
,"", |
,NULL, |
"\"\"" |
"NULL" |
," ", |
," ", |
"\"\"" |
"NULL" |
, " " , |
," ", |
File CSV senza intestazioni
Non è necessario che il file.csv di origine contenga intestazioni nella prima riga che denominano in modo univoco ogni colonna. Tuttavia, un file.csv senza una riga di intestazione richiede uno schema di crittografia posizionale. Lo schema di crittografia posizionale è richiesto al posto del tipico schema mappato utilizzato sia per i file.csv con una riga di intestazione che per i file. Parquet
Uno schema di crittografia posizionale specifica le colonne di output per posizione anziché per nome. Uno schema di crittografia mappato associa i nomi delle colonne di origine ai nomi delle colonne di destinazione. Per ulteriori informazioni, inclusa una discussione dettagliata ed esempi di entrambi i formati di schema, vedereSchemi di tabelle mappati e posizionali.
Parquetfile
Si presume che un file con .parquet estensione sia nel Apache Parquet formato.
Tipi di Parquet dati supportati
Il client di crittografia C3R può elaborare qualsiasi dato non complesso (ovvero di tipo primitivo) in un Parquet file che rappresenta un tipo di dati supportato da. AWS Clean Rooms
Tuttavia, solo le colonne di stringhe possono essere utilizzate per le colonne. sealed
Sono supportati i seguenti tipi di dati Parquet:
-
Binary
tipo primitivo con le seguenti annotazioni logiche:-
Nessuno se
--parquetBinaryAsString
è impostato (tipo diSTRING
dati) -
Decimal(scale, precision)
(tipo diDECIMAL
dati) -
String
(tipo diSTRING
dati)
-
-
Boolean
tipo di dati primitivo senza annotazioni logiche (tipo diBOOLEAN
dati) -
Double
tipo di dati primitivo senza annotazioni logiche (tipo di dati)DOUBLE
-
Fixed_Len_Binary_Array
tipo primitivo con annotazioneDecimal(scale, precision)
logica (tipo di dati)DECIMAL
-
Float
tipo di dati primitivo senza annotazioni logiche (tipo di dati)FLOAT
-
Int32
tipo primitivo con le seguenti annotazioni logiche:-
Nessuno (tipo di
INT
dati) -
Date
(tipo diDATE
dati) -
Decimal(scale, precision)
(tipo diDECIMAL
dati) -
Int(16, true)
(tipo diSMALLINT
dati) -
Int(32, true)
(tipo diINT
dati)
-
-
Int64
tipo di dati primitivo con le seguenti annotazioni logiche:-
Nessuno (tipo di
BIGINT
dati) -
Decimal(scale, precision)
(tipo diDECIMAL
dati) -
Int(64, true)
(tipo diBIGINT
dati) -
Timestamp(isUTCAdjusted, TimeUnit.MILLIS)
(tipo diTIMESTAMP
dati) -
Timestamp(isUTCAdjusted, TimeUnit.MICROS)
(tipo diTIMESTAMP
dati) -
Timestamp(isUTCAdjusted, TimeUnit.NANOS)
(tipo diTIMESTAMP
dati)
-
Crittografia di valori non stringhe
Attualmente, per le colonne sono supportati solo i valori di sealed stringa.
Per i file.csv, il client di crittografia C3R tratta tutti i valori come testo con codifica UTF-8 e non tenta di interpretarli in modo diverso prima della crittografia.
Per le colonne di impronte digitali, i tipi sono raggruppati in classi di equivalenza. Una classe di equivalenza è un insieme di tipi di dati che possono essere confrontati in modo inequivocabile per quanto riguarda l'uguaglianza tramite un tipo di dati rappresentativo.
Le classi di equivalenza consentono di assegnare impronte digitali identiche allo stesso valore semantico indipendentemente dalla rappresentazione originale. Tuttavia, lo stesso valore in due classi di equivalenza non darà come risultato la stessa colonna di impronte digitali.
Ad esempio, al INTEGRAL
valore 42
verrà assegnata la stessa impronta digitale indipendentemente dal fatto che originariamente fosse unSMALLINT
, INT
o. BIGINT
Inoltre, il INTEGRAL
valore non 0
corrisponderà mai al BOOLEAN
valore FALSE
(che è rappresentato dal valore0
).
Le seguenti classi di equivalenza e AWS Clean Rooms i tipi di dati corrispondenti sono supportati dalle colonne di impronte digitali:
Classe di equivalenza | Tipo di AWS Clean Rooms dati supportato |
---|---|
BOOLEAN |
BOOLEAN |
DATE |
DATE |
INTEGRAL |
BIGINT , INT , SMALLINT |
STRING |
CHAR , STRING , VARCHAR |