As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Tipos de arquivos e dados suportados na computação criptográfica para o Clean Rooms
O cliente de criptografia C3R reconhece os seguintes tipos de arquivo:
-
Arquivos CSV
-
arquivos Parquet
Você pode usar o sinalizador --fileFormat
no cliente de criptografia C3R para especificar explicitamente um formato de arquivo. Quando especificado explicitamente, o formato do arquivo não é determinado pela extensão do arquivo.
Arquivos CSV
Presume-se que um arquivo com extensão.csv esteja no formato CSV e contenha texto codificado em UTF-8. O cliente de criptografia C3R trata todos os valores como cadeias de caracteres.
Propriedades compatíveis em arquivos.csv
O cliente de criptografia C3R exige que os arquivos.csv tenham as seguintes propriedades:
-
Pode ou não conter uma linha de cabeçalho inicial que nomeie cada coluna de forma exclusiva.
-
Delimitado por vírgula. (Atualmente, não há suporte para delimitadores personalizados.)
-
Texto codificado em UTF-8.
Corte de espaço em branco a partir de entradas.csv
Os espaços em branco à esquerda e à direita são cortados das entradas.csv.
Codificação personalizada NULL para um arquivo.csv
Um arquivo.csv pode usar codificação personalizada NULL.
Com o cliente de criptografia C3R, você pode especificar codificações personalizadas para entradas NULL nos dados de entrada usando o sinalizador --csvInputNULLValue=<csv-input-null>
. O cliente de criptografia C3R pode usar codificações personalizadas no arquivo de saída gerado para entradas NULL usando o sinalizador --csvOutputNULLValue=<csv-output-null>
.
nota
Uma entrada NULL é considerada sem conteúdo, especificamente no contexto de um formato tabular mais rico, como uma tabela SQL. Embora o domínio.csv não suporte explicitamente essa caracterização por motivos históricos, é uma convenção comum considerar uma entrada vazia que contém apenas espaço em branco NULL. Portanto, esse é o comportamento padrão do cliente de criptografia C3R e pode ser personalizado conforme necessário.
Como as entradas.csv são interpretadas pelo C3R
A tabela a seguir fornece exemplos de como as entradas.csv são organizadas (cleartext a cleartext para maior clareza) com base nos valores (se houver) fornecidos para os sinalizadores --csvInputNULLValue=<csv-input-null>
e --csvOutputNULLValue=<csv-output-null>
. Os espaços em branco à esquerda e à direita fora das aspas são cortados antes que o C3R interprete o significado de qualquer valor.
<csv-input-null> |
<csv-output-null> |
Entrada | Saída |
---|---|---|---|
Nenhum | Nenhum | ,AnyProduct, |
,AnyProduct, |
Nenhum | Nenhum | , AnyProduct , |
,AnyProduct, |
Nenhum | Nenhum | ,"AnyProduct", |
,AnyProduct, |
Nenhum | Nenhum | , "AnyProduct" , |
,AnyProduct, |
Nenhum | Nenhum | ,, |
,, |
Nenhum | Nenhum | , , |
,, |
Nenhum | Nenhum | ,"", |
,, |
Nenhum | Nenhum | ," ", |
," ", |
Nenhum | Nenhum | , " " , |
," ", |
"AnyProduct" |
"NULL" |
,AnyProduct, |
,NULL, |
"AnyProduct" |
"NULL" |
, AnyProduct , |
,NULL, |
"AnyProduct" |
"NULL" |
,"AnyProduct", |
,NULL, |
"AnyProduct" |
"NULL" |
, "AnyProduct" , |
,NULL, |
Nenhum | "NULL" |
,, |
,NULL, |
Nenhum | "NULL" |
, , |
,NULL, |
Nenhum | "NULL" |
,"", |
,NULL, |
Nenhum | "NULL" |
," ", |
," ", |
Nenhum | "NULL" |
, " " , |
," ", |
"" |
"NULL" |
,, |
,NULL, |
"" |
"NULL" |
, , |
,NULL, |
"" |
"NULL" |
,"", |
,"", |
"" |
"NULL" |
," ", |
," ", |
"" |
"NULL" |
, " " , |
," ", |
"\"\"" |
"NULL" |
,, |
,, |
"\"\"" |
"NULL" |
, , |
,, |
"\"\"" |
"NULL" |
,"", |
,NULL, |
"\"\"" |
"NULL" |
," ", |
," ", |
"\"\"" |
"NULL" |
, " " , |
," ", |
Arquivo CSV sem cabeçalhos
O arquivo.csv de origem não precisa ter cabeçalhos na primeira linha que nomeiem cada coluna de forma exclusiva. No entanto, um arquivo.csv sem uma linha de cabeçalho requer um esquema de criptografia posicional. O esquema de criptografia posicional é necessário em vez do esquema mapeado típico usado para arquivos.csv com uma linha de cabeçalho e arquivos Parquet.
Um esquema de criptografia posicional especifica as colunas de saída por posição em vez de por nome. Um esquema de criptografia mapeado mapeia os nomes das colunas de origem para os nomes das colunas de destino. Para obter mais informações, incluindo uma discussão detalhada e exemplos dos dois formatos de esquema, consulte Esquemas de tabelas mapeadas e posicionais.
arquivos Parquet
Presume-se que um arquivo com uma extensão .parquet esteja no formato Apache Parquet.
Tipos de dados compatíveis Parquet
O cliente de criptografia C3R pode processar qualquer dado não complexo (ou seja, tipo primitivo) em um arquivo Parquet que represente um tipo de dados suportado pelo AWS Clean Rooms.
No entanto, somente colunas de string podem ser usadas para colunas sealed.
Os seguintes tipos de dados Parquet são compatíveis:
-
Tipo primitivo
Binary
com as seguintes anotações lógicas:-
Nenhum se
--parquetBinaryAsString
estiver definido (tipo de dadosSTRING
) -
Decimal(scale, precision)
(tipo de dadosDECIMAL
) -
String
(tipo de dadosSTRING
)
-
-
Tipo de dados primitivo
Boolean
sem anotação lógica (tipo de dadosBOOLEAN
) -
Tipo de dados primitivo
Double
sem anotação lógica (tipo de dadosDOUBLE
) -
Tipo de dados primitivo
Fixed_Len_Binary_Array
com anotação lógicaDecimal(scale, precision)
(tipo de dadosDECIMAL
) -
Tipo de dados primitivo
Float
sem anotação lógica (tipo de dadosFLOAT
) -
Tipo de dados primitivo
Int32
com as seguintes anotações lógicas:-
Nenhum (tipo de dados
INT
) -
Date
(tipo de dadosDATE
) -
Decimal(scale, precision)
(tipo de dadosDECIMAL
) -
Int(16, true)
(tipo de dadosSMALLINT
) -
Int(32, true)
(tipo de dadosINT
)
-
-
Tipo de dados primitivo
Int64
com as seguintes anotações lógicas:-
Nenhum (tipo de dados
BIGINT
) -
Decimal(scale, precision)
(tipo de dadosDECIMAL
) -
Int(64, true)
(tipo de dadosBIGINT
) -
Timestamp(isUTCAdjusted, TimeUnit.MILLIS)
(tipo de dadosTIMESTAMP
) -
Timestamp(isUTCAdjusted, TimeUnit.MICROS)
(tipo de dadosTIMESTAMP
) -
Timestamp(isUTCAdjusted, TimeUnit.NANOS)
(tipo de dadosTIMESTAMP
)
-
Criptografar valores que não sejam de string
Atualmente, somente valores de string são compatíveis com as colunas sealed.
Para arquivos.csv, o cliente de criptografia C3R trata todos os valores como texto codificado em UTF-8 e não faz nenhuma tentativa de interpretá-los de forma diferente antes da criptografia.
Para colunas de impressão digital, os tipos são agrupados em classes de equivalência. Uma classe de equivalência é um conjunto de tipos de dados que podem ser comparados de forma inequívoca em termos de igualdade por meio de um tipo de dados representativo.
As classes de equivalência permitem que impressões digitais idênticas sejam atribuídas ao mesmo valor semântico, independentemente da representação original. No entanto, o mesmo valor em duas classes de equivalência não resultará na mesma coluna de impressão digital.
Por exemplo, o valor INTEGRAL
42
receberá a mesma impressão digital, independentemente de ser originalmente um SMALLINT
, INT
ou BIGINT
. Além disso, o valor INTEGRAL
0
nunca corresponderá ao valor BOOLEAN
FALSE
(que é representado pelo valor 0
).
As seguintes classes de equivalência e AWS Clean Rooms os tipos de dados correspondentes são suportados por colunas de impressão digital:
Classe de equivalência | Tipos de dados AWS Clean Rooms compatíveis |
---|---|
BOOLEAN |
BOOLEAN |
DATE |
DATE |
INTEGRAL |
BIGINT , INT , SMALLINT |
STRING |
CHAR , STRING , VARCHAR |