

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
<a name="crypto-computing-file-types"></a>

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.

**Topics**
+ [Arquivos CSV](#csv-file-type)
+ [arquivos Parquet](#parquet-file-type)
+ [Criptografar valores que não sejam de string](#encrypt-non-string-values)

## Arquivos CSV
<a name="csv-file-type"></a>

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
<a name="csv-properties"></a>

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
<a name="whitespace-trimming"></a>

Os espaços em branco à esquerda e à direita são cortados das entradas.csv.

#### Codificação personalizada NULL para um arquivo.csv
<a name="custom-null-encoding"></a>

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 name="interpretation-csv-entries"></a>

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
<a name="csv-file-no-headers"></a>

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](create-schema.md#mapped-and-positional-schemas).

## arquivos Parquet
<a name="parquet-file-type"></a>

Presume-se que um arquivo com uma extensão .parquet esteja no formato Apache Parquet.

### Tipos de dados compatíveis Parquet
<a name="supported-parquet-data-types"></a>

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 dados `STRING`)
  + `Decimal(scale, precision)` (tipo de dados`DECIMAL`)
  + `String` (tipo de dados `STRING`)
+ Tipo de dados primitivo `Boolean` sem anotação lógica (tipo de dados `BOOLEAN`)
+ Tipo de dados primitivo `Double` sem anotação lógica (tipo de dados `DOUBLE`)
+ Tipo de dados primitivo `Fixed_Len_Binary_Array` com anotação lógica `Decimal(scale, precision)` (tipo de dados `DECIMAL`)
+ Tipo de dados primitivo `Float` sem anotação lógica (tipo de dados `FLOAT`)
+ Tipo de dados primitivo `Int32` com as seguintes anotações lógicas:
  + Nenhum (tipo de dados `INT`)
  + `Date` (tipo de dados `DATE`)
  + `Decimal(scale, precision)` (tipo de dados `DECIMAL`)
  + `Int(16, true)` (tipo de dados `SMALLINT`)
  + `Int(32, true)` (tipo de dados `INT`)
+ Tipo de dados primitivo `Int64` com as seguintes anotações lógicas:
  + Nenhum (tipo de dados `BIGINT`)
  + `Decimal(scale, precision)` (tipo de dados `DECIMAL`)
  + `Int(64, true)` (tipo de dados `BIGINT`)
  + `Timestamp(isUTCAdjusted, TimeUnit.MILLIS)` (tipo de dados `TIMESTAMP`)
  + `Timestamp(isUTCAdjusted, TimeUnit.MICROS)` (tipo de dados `TIMESTAMP`)
  + `Timestamp(isUTCAdjusted, TimeUnit.NANOS)` (tipo de dados `TIMESTAMP`)

## Criptografar valores que não sejam de string
<a name="encrypt-non-string-values"></a>

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 | 