

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à.

# Riferimento alla SerDe proprietà Amazon Ion
<a name="ion-serde-using-ion-serde-properties"></a>

Questo argomento contiene informazioni sulle SerDe proprietà delle `CREATE TABLE` istruzioni in Athena. Per ulteriori informazioni ed esempi sull'utilizzo delle SerDe proprietà di Amazon Ion, consulta [SerDe le proprietà](https://github.com/amzn/ion-hive-serde/blob/master/docs/serde-properties.md) nella SerDe documentazione di Amazon Ion Hive su [GitHub](https://github.com/amzn/ion-hive-serde/tree/master/docs).

## Come specificare le SerDe proprietà di Amazon Ion
<a name="ion-serde-specifying-ion-serde-properties"></a>

Per specificare le proprietà di Amazon Ion Hive SerDe nella tua `CREATE TABLE` dichiarazione, utilizza la `WITH SERDEPROPERTIES` clausola. Poiché `WITH SERDEPROPERTIES` si tratta di un sottocampo della `ROW FORMAT SERDE` clausola, è necessario specificare `ROW FORMAT SERDE` prima il percorso della SerDe classe Amazon Ion Hive, come illustrato nella sintassi seguente.

```
...
ROW FORMAT SERDE
 'com.amazon.ionhiveserde.IonHiveSerDe'
WITH SERDEPROPERTIES (
 'property' = 'value',
 'property' = 'value',
...
)
```

Notare che, anche se la clausola `ROW FORMAT SERDE` è obbligatoria, se si desidera utilizzare `WITH SERDEPROPERTIES`, è possibile utilizzare sia `STORED AS ION` che la sintassi più lunga `INPUTFORMAT` e `OUTPUTFORMAT` per specificare il formato Amazon Ion.

## SerDe Proprietà Amazon Ion
<a name="ion-serde-ion-serde-properties"></a>

Di seguito sono elencate le SerDe proprietà di Amazon Ion che possono essere utilizzate nelle `CREATE TABLE` istruzioni in Athena.

**ion.encoding**  
Facoltativo  
Impostazione predefinita: `BINARY`  
Valori: `BINARY`, `TEXT`  
Questa proprietà dichiara se i nuovi valori aggiunti sono serializzati come [Amazon Ion](https://amzn.github.io/ion-docs/docs/binary.html) o in formato testo Amazon Ion.  
Il seguente esempio di SerDe proprietà specifica il formato di testo di Amazon Ion.  

```
'ion.encoding' = 'TEXT'
```

**ion.fail\$1on\$1overflow**  
Facoltativo  
Impostazione predefinita: `true`  
Valori: `true`, `false`  
Al contrario di Hive, Amazon Ion consente di utilizzare tipi numerici arbitrariamente grandi. Per impostazione predefinita, SerDe fallisce se il valore di Amazon Ion non rientra nella colonna Hive, ma puoi utilizzare l'opzione di `fail_on_overflow` configurazione per lasciare che il valore si sovrapponga invece di fallire.  
Questa proprietà può essere impostata a livello di tabella o colonna. Per specificarla a livello di tabella, occorre specificare `ion.fail_on_overflow` come nell'esempio seguente. Questo imposta di default il comportamento per tutte le colonne.  

```
'ion.fail_on_overflow' = 'true'
```
Per controllare una colonna specifica, specifica il nome della colonna tra `ion` e `fail_on_overflow`, delimitato da punti, come nell'esempio seguente.  

```
'ion.<column>.fail_on_overflow' = 'false'
```

**ion.path\$1extractor.case\$1sensitive**  
Facoltativo  
Impostazione predefinita: `false`  
Valori: `true`, `false`  
Determina se trattare i nomi dei campi Amazon Ion come maiuscole e minuscole. Quando`false`, SerDe ignora l'analisi delle maiuscole e minuscole dei nomi dei campi di Amazon Ion.  
Ad esempio, supponiamo di avere uno schema di tabella Hive che definisce un campo `alias` in minuscolo e un documento Amazon Ion con entrambi i campi `alias` e `ALIAS`, come nell'esempio seguente.  

```
-- Hive Table Schema
alias: STRING

-- Amazon Ion Document
{ 'ALIAS': 'value1'} 
{ 'alias': 'value2'}
```
L'esempio seguente mostra le SerDe proprietà e la tabella estratta risultante quando la distinzione tra maiuscole e minuscole è impostata su: `false`  

```
-- Serde properties
'ion.alias.path_extractor' = '(alias)'
'ion.path_extractor.case_sensitive' = 'false'

--Extracted Table
| alias    |
|----------|
| "value1" |
| "value2" |
```
L'esempio seguente mostra le SerDe proprietà e la tabella estratta risultante quando la distinzione tra maiuscole e minuscole è impostata su: `true`  

```
-- Serde properties
'ion.alias.path_extractor' = '(alias)'
'ion.path_extractor.case_sensitive' = 'true'

--Extracted Table
| alias    |
|----------|
| "value2" |
```
Nel secondo caso, il valore `value1` per il campo `ALIAS` viene ignorato quando la sensibilità tra maiuscole e minuscole è impostata su `true` e l'estrattore del percorso è specificato come `alias`.

**ione. *<column>*.path\$1extractor**  
Facoltativo  
Valore predefinito: NA  
Valori: stringa con percorso di ricerca  
Crea un estrattore di percorso con il percorso di ricerca specificato per la colonna data. Gli estrattori di percorso mappano i campi Amazon Ion alle colonne Hive. Se non vengono specificati estrattori di percorso, Athena li crea dinamicamente in fase di esecuzione in base ai nomi delle colonne.  
Il seguente esempio di estrattore di percorso mappa il `example_ion_field` al `example_hive_column`.  

```
'ion.example_hive_column.path_extractor' = '(example_ion_field)'
```
Per ulteriori informazioni sugli estrattori di percorso e i percorsi di ricerca, consulta [Utilizzare gli estrattori di percorso](ion-serde-using-path-extractors.md).

**ion.timestamp.serialization\$1offset**  
Facoltativo  
Impostazione predefinita: `'Z'`  
Valori: `OFFSET`, dove `OFFSET ` è rappresentato come `<signal>hh:mm`. Valori di esempio: `01:00`, `+01:00`, `-09:30`, `Z` (UTC 00:00)  
A differenza dei [timestamp](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-timestamp) di Apache Hive, che non hanno un fuso orario integrato e sono memorizzati come offset rispetto all'UNIX epoch, i timestamp Amazon Ion hanno un offset. Utilizza questa proprietà per specificare l'offset quando esegui la serializzazione su Amazon Ion.  
L'esempio seguente aggiunge un offset di un'ora.  

```
'ion.timestamp.serialization_offset' = '+01:00'       
```

**ion.serialize\$1null**  
Facoltativo  
Impostazione predefinita: `OMIT`  
Valori: `OMIT`, `UNTYPED`, `TYPED`  
Amazon Ion SerDe può essere configurato per serializzare o omettere colonne con valori nulli. È possibile scegliere di scrivere null fortemente tipizzati (`TYPED`) o null non tipizzati (`UNTYPED`). I null fortemente tipizzati vengono determinati in base alla mappatura predefinita di tipo Amazon Ion to Hive.  
L'esempio seguente specifica i valori null fortemente tipizzati.  

```
'ion.serialize_null'='TYPED'
```

**ion.ignore\$1malformed**  
Facoltativo  
Impostazione predefinita: `false`  
Valori: `true`, `false`  
When`true`, ignora le voci non corrette o l'intero file se non SerDe è in grado di leggerlo. Per ulteriori informazioni, consulta [Ignore malformed](https://github.com/amzn/ion-hive-serde/blob/master/docs/serde-properties.md#ignore-malformed) nella documentazione su. GitHub

**icona. *<column>*.serialize\$1as**  
Facoltativo  
Predefinito: tipo predefinito per la colonna.  
Valori: stringa contenente il tipo Amazon Ion  
Determina il tipo di dati Amazon Ion in cui viene serializzato un valore. Poiché i tipi Amazon Ion e Hive non hanno sempre una mappatura diretta, alcuni tipi di Hive hanno più tipi di dati validi per la serializzazione. Per serializzare i dati come tipo di dati non di default, utilizzare questa proprietà. Per ulteriori informazioni sulla mappatura dei tipi, consulta la pagina di [mappatura dei tipi di](https://github.com/amzn/ion-hive-serde/blob/master/docs/type-mapping.md) Amazon Ion su. GitHub  
Le colonne binarie Hive sono serializzate di default come BLOB Amazon Ion, ma possono anche essere serializzate come [ CLOB Amazon Ion](https://amzn.github.io/ion-docs/docs/stringclob.html#ion-clob) (oggetto carattere grande). L'esempio seguente serializza la colonna `example_hive_binary_column` come un CLOB.  

```
'ion.example_hive_binary_column.serialize_as' = 'clob'       
```