Tipi di file e dati supportati in Cryptographic Computing per Clean Rooms - AWS Clean Rooms

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:

  • Binarytipo primitivo con le seguenti annotazioni logiche:

    • Nessuno se --parquetBinaryAsString è impostato (tipo di STRING dati)

    • Decimal(scale, precision)(tipo di DECIMAL dati)

    • String(tipo di STRING dati)

  • Booleantipo di dati primitivo senza annotazioni logiche (tipo di BOOLEAN dati)

  • Doubletipo di dati primitivo senza annotazioni logiche (tipo di dati) DOUBLE

  • Fixed_Len_Binary_Arraytipo primitivo con annotazione Decimal(scale, precision) logica (tipo di dati) DECIMAL

  • Floattipo di dati primitivo senza annotazioni logiche (tipo di dati) FLOAT

  • Int32tipo primitivo con le seguenti annotazioni logiche:

    • Nessuno (tipo di INT dati)

    • Date(tipo di DATE dati)

    • Decimal(scale, precision)(tipo di DECIMAL dati)

    • Int(16, true)(tipo di SMALLINT dati)

    • Int(32, true)(tipo di INT dati)

  • Int64tipo di dati primitivo con le seguenti annotazioni logiche:

    • Nessuno (tipo di BIGINT dati)

    • Decimal(scale, precision)(tipo di DECIMAL dati)

    • Int(64, true)(tipo di BIGINT dati)

    • Timestamp(isUTCAdjusted, TimeUnit.MILLIS)(tipo di TIMESTAMP dati)

    • Timestamp(isUTCAdjusted, TimeUnit.MICROS)(tipo di TIMESTAMP dati)

    • Timestamp(isUTCAdjusted, TimeUnit.NANOS)(tipo di TIMESTAMP 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