

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 supportati per la proiezione delle partizioni
<a name="partition-projection-supported-types"></a>

Una tabella può avere qualsiasi combinazione di `enum`, `integer`, `date,` o tipi di colonna di partizione `injected`.

## Tipi di enumerazione
<a name="partition-projection-enum-type"></a>

Utilizzate il `enum` tipo per le colonne di partizione i cui valori sono membri di un set enumerato (ad esempio, codici aeroportuali o). Regioni AWS

Definire le proprietà della partizione nella tabella come segue:


****  

| Nome proprietà | Valori di esempio | Description | 
| --- | --- | --- | 
| projection.columnName.type |  `enum`  | Obbligatorio. Il tipo di proiezione da usare per la colonna. columnName Il valore deve essere enum (senza distinzione tra maiuscole e minuscole) per segnalare l'uso del tipo enum. È consentito lo spazio bianco iniziale e finale. | 
| projection.columnName.values |  `A,B,C,D,E,F,G,Unknown`  | Obbligatorio. Un elenco separato da virgole di valori di partizione enumerati per colonna. columnName Qualsiasi spazio bianco è considerato parte di un valore enum. | 

**Nota**  
Come best practice si consiglia di limitare l'uso delle proiezioni delle partizioni basate su `enum` a poche dozzine o meno. Sebbene non esista un limite specifico per `enum` le proiezioni, la dimensione totale dei metadati della tabella non può superare il limite di circa 1 MB quando viene compressa con gzip. AWS Glue Si noti che questo limite è condiviso tra le parti chiave della tabella, come i nomi delle colonne, la posizione, il formato di archiviazione e altri. Se ti ritrovi a utilizzare più di qualche dozzina di valori unici IDs nella tua `enum` proiezione, prendi in considerazione un approccio alternativo, come l'inserimento di un numero inferiore di valori univoci in un campo sostitutivo. Negoziando la cardinalità, puoi controllare il numero di valori univoci nel campo `enum`. 

## Tipo intero
<a name="partition-projection-integer-type"></a>

Utilizzare il tipo intero per le colonne di partizione i cui valori possibili sono interpretabili come numeri interi all'interno di un intervallo definito. Le colonne intere proiettate sono attualmente limitate all'intervallo firmato Java (da -263 a 263-1 incluso).


****  

| Nome proprietà | Valori di esempio | Description | 
| --- | --- | --- | 
| projection.columnName.type |  `integer`  | Obbligatorio. Il tipo di proiezione da usare per la colonna. columnName Il valore deve essere integer (senza distinzione tra maiuscole e minuscole) per segnalare l'uso del tipo intero. È consentito lo spazio bianco iniziale e finale. | 
| projection.columnName.range |  `0,10` `-1,8675309` `0001,9999`  | Obbligatorio. Un elenco di due elementi separati da virgole che fornisce i valori dell'intervallo minimo e massimo che devono essere restituiti dalle interrogazioni sulla colonna. columnName Tieni presente che i valori devono essere separati da virgole, non da trattini. Questi valori sono inclusivi, possono essere negativi e possono avere zeri iniziali. È consentito lo spazio bianco iniziale e finale. | 
| projection.columnName.interval |  `1` `5`  | Opzionale. Un numero intero positivo che specifica l'intervallo tra i valori di partizione successivi per la colonna. columnName Ad esempio, un valore range di "1,3" con un valore interval di "1" produce i valori 1, 2 e 3. Lo stesso valore range con un valore interval di "2" produce i valori 1 e 3, saltando 2. È consentito lo spazio bianco iniziale e finale. Il valore di default è 1. | 
| projection.columnName.digits |  `1` `5`  | Opzionale. Un numero intero positivo che specifica il numero di cifre da includere nella rappresentazione finale del valore di partizione per colonna. columnName Ad esempio, un valore range di "1,3" che ha un valore digits di "1" produce i valori 1, 2 e 3. Lo stesso valore range con un valore digits di "2" produce i valori 01, 02 e 03. È consentito lo spazio bianco iniziale e finale. Il valore predefinito non è un numero statico di cifre e nessuno zero iniziale. | 

## Tipo di data
<a name="partition-projection-date-type"></a>

Utilizzare il tipo di data per le colonne di partizione i cui valori sono interpretabili come date (con orari facoltativi) all'interno di un intervallo definito.

**Importante**  
Le colonne della data prevista vengono generate in ora UTC (Coordinated Universal Time) al momento dell'esecuzione della query.


****  

| Nome proprietà | Valori di esempio | Description | 
| --- | --- | --- | 
| projection.columnName.type |  `date`  | Obbligatorio. Il tipo di proiezione da usare per la colonna. columnName Il valore deve essere date (senza distinzione tra maiuscole e minuscole) per segnalare l'utilizzo del tipo di data. È consentito lo spazio bianco iniziale e finale. | 
| projection.columnName.range |  `201701,201812` `01-01-2010,12-31-2018` `NOW-3YEARS,NOW` `201801,NOW+1MONTH`  |  Obbligatorio. Un elenco di due elementi, separato da virgole, che fornisce i valori minimo e massimo `range` per la colonna. *columnName* Questi valori sono inclusivi e possono utilizzare qualsiasi formato compatibile con i tipi di data `java.time.*` Java. Entrambi i valori minimo e massimo devono utilizzare lo stesso formato. Il formato specificato nella proprietà `.format` deve corrispondere al formato utilizzato per questi valori. Questa colonna può anche contenere stringhe di data relative, formattate in questo modello di espressione regolare: `\s*NOW\s*(([\+\-])\s*([0-9]+)\s*(YEARS?\|MONTHS?\|WEEKS?\|DAYS?\|HOURS?\|MINUTES?\|SECONDS?)\s*)?` Gli spazi bianchi sono consentiti, ma nei valori letterali della data sono considerati parte delle stringhe di data stesse.  | 
| projection.columnName.format |  `yyyyMM` `dd-MM-yyyy` `dd-MM-yyyy-HH-mm-ss`  | Obbligatorio. Una stringa di formato data basata sul formato di data Java. [DateTimeFormatter](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html) Può essere qualsiasi tipo Java.time.\$1 supportato. | 
| projection.columnName.interval |  `1` `5`  |  Un numero intero positivo che specifica l'intervallo tra i valori di partizione successivi per la colonna. *columnName* Ad esempio, un valore `range` di `2017-01,2018-12` con un valore `interval` di `1` e un valore `interval.unit` di `MONTHS` produce i valori 2017-01, 2017-02, 2017-03 e così via. Lo stesso valore `range` con un valore `interval` di `2` e un valore `interval.unit` di `MONTHS` produce i valori 2017-01, 2017-03, 2017-05 e così via. È consentito lo spazio bianco iniziale e finale. Quando le date sono fornite con la precisione di un singolo giorno o di un mese, `interval` è facoltativo e il valore predefinito è 1 giorno o 1 mese, rispettivamente. In caso contrario, `interval` è richiesto.  | 
| projection.columnName.interval.unit |  `YEARS` `MONTHS` `WEEKS` `DAYS` `HOURS` `MINUTES` `SECONDS` `MILLIS`  |  Una parola unitaria di tempo che rappresenta la forma serializzata di a. [ChronoUnit](https://docs.oracle.com/javase/8/docs/api/java/time/temporal/ChronoUnit.html) I valori possibili sono `YEARS`, `MONTHS`, `WEEKS`, `DAYS`, `HOURS`, `MINUTES`, `SECONDS` o `MILLIS`. I valori non rispettano la distinzione tra maiuscole e minuscole. Quando le date sono fornite con la precisione di un singolo giorno o di un mese, `interval.unit` è facoltativo e il valore predefinito è 1 giorno o 1 mese, rispettivamente. In caso contrario, `interval.unit` è richiesto.  | 

**Example Partizione per mese**  
La seguente tabella di configurazione di esempio partiziona i dati per mese dal 2015 ad oggi.  

```
'projection.month.type'='date', 
'projection.month.format'='yyyy-MM', 
'projection.month.interval'='1', 
'projection.month.interval.unit'='MONTHS', 
'projection.month.range'='2015-01,NOW', 
...
```

## Tipo iniettato
<a name="partition-projection-injected-type"></a>

Utilizzare il tipo iniettato per le colonne di partizione con valori possibili che non possono essere generati proceduralmente all'interno di un intervallo logico, ma che sono forniti nella clausola `WHERE` di una query come valore singolo.

È importante tenere a mente i seguenti punti:
+ Le query sulle colonne iniettate hanno esito negativo se non viene fornita un'espressione di filtro per ogni colonna iniettata.
+ Le query con più valori per un'espressione filtro su una colonna iniettata hanno esito positivo solo se i valori sono disgiunti.
+ Solo le colonne di tipo `string` sono supportate.
+ Quando si utilizza la frase `WHERE IN` con una colonna di partizione iniettata, esiste un limite di 1.000 valori che è possibile specificare nell’elenco. `IN` Per interrogare un set di dati con più di 1.000 partizioni per una colonna iniettata, suddividi la query in più query più piccole, ognuna con un massimo di 1.000 valori nella `WHERE IN` clausola, quindi aggrega i risultati.


****  

| Nome proprietà | Valore | Description | 
| --- | --- | --- | 
| projection.columnName.type |  `injected`  | Obbligatorio. Il tipo di proiezione da utilizzare per la colonna. columnName È supportato solo il tipo string. Il valore specificato deve essere injected (senza distinzione tra maiuscole e minuscole). È consentito lo spazio bianco iniziale e finale. | 

Per ulteriori informazioni, consulta [Quando `injected` utilizzare il tipo di proiezione](partition-projection-dynamic-id-partitioning.md#partition-projection-injection).