Tipi supportati per la proiezione delle partizioni
Una tabella può avere qualsiasi combinazione di enum, integer, date, o tipi di colonna di partizione injected.
Tipi di enumerazione
Utilizzare il tipo enum 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 | Descrizione |
|---|---|---|
projection. |
|
Obbligatorio. Tipo di proiezione da utilizzare 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. |
|
Obbligatorio. Elenco separato da virgole dei valori delle partizioni enumerate per la 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 le proiezioni enum, le dimensioni totali dei metadati della tabella non possono superare il limite AWS Glue di circa 1 MB nella compressione gzip. 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 utilizzi più di poche dozzine di ID univoci in enum, prendi in considerazione un approccio alternativo, ad esempio l'inserimento in un numero minore di valori univoci in un campo surrogato. Negoziando la cardinalità, puoi controllare il numero di valori univoci nel campo enum.
Tipo intero
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 | Descrizione |
|---|---|---|
projection. |
|
Obbligatorio. Tipo di proiezione da utilizzare 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. |
|
Obbligatorio. Elenco separato da virgole a due elementi che fornisce i valori di intervallo minimo e massimo da restituire dalle query 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. |
|
Facoltativo. 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. |
|
Facoltativo. Un numero intero positivo che specifica il numero di cifre da includere nella rappresentazione finale del valore della partizione per la 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
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 | Descrizione |
|---|---|---|
projection. |
|
Obbligatorio. Tipo di proiezione da utilizzare 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. |
|
Obbligatorio. Elenco separato da virgole a due elementi che fornisce i valori Questa colonna può anche contenere stringhe di data relative, formattate in questo modello di espressione regolare:
Gli spazi bianchi sono consentiti, ma nei valori letterali della data sono considerati parte delle stringhe di data stesse. |
projection. |
|
Obbligatorio. Stringa di formato data basata sul formato data Java DateTimeFormatterJava.time.* supportato. |
projection. |
|
Un numero intero positivo che specifica l'intervallo tra i valori di partizione successivi per la colonna Quando le date sono fornite con la precisione di un singolo giorno o di un mese, |
projection. |
|
Parola di unità di tempo che rappresenta la forma serializzata di un oggetto ChronoUnit Quando le date sono fornite con la precisione di un singolo giorno o di un mese, |
Esempio 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
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
stringsono supportate. -
Quando si utilizza la frase
WHERE INcon una colonna di partizione iniettata, esiste un limite di 1.000 valori che è possibile specificare nell'elenco.INPer 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 nellaWHERE INclausola, quindi aggrega i risultati.
| Nome proprietà | Valore | Descrizione |
|---|---|---|
projection. |
|
Obbligatorio. 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.