

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Unterstützte Typen für die Partitionsprojektion
<a name="partition-projection-supported-types"></a>

Eine Tabelle kann eine beliebige Kombination aus den Partitionsspaltentypen `enum`, `integer`, `date,` oder `injected` aufweisen.

## Aufzählungstyp
<a name="partition-projection-enum-type"></a>

Verwenden Sie den `enum` Typ für Partitionsspalten, deren Werte Mitglieder einer Aufzählung sind (z. B. Flughafencodes oder). AWS-Regionen

Definieren Sie die Partitionseigenschaften in der Tabelle wie folgt:


****  

| Name der Eigenschaft | Beispielwerte | Description | 
| --- | --- | --- | 
| projection.{{columnName}}.type | `enum` | Erforderlich Der Projektionstyp, der für Spalten verwendet werden soll. {{columnName}} Der Wert muss enum (ohne Beachtung der Groß- und Kleinschreibung) sein, um die Verwendung des Aufzählungstyps zu signalisieren. Vorangehende und nachfolgende Leerzeichen sind zulässig. | 
| projection.{{columnName}}.values | `A,B,C,D,E,F,G,Unknown` | Erforderlich Eine durch Kommas getrennte Liste von aufgezählten Partitionswerten für eine Spalte. {{columnName}} Jeder Leerraum wird als Teil eines Aufzählungswerts betrachtet. | 

**Anmerkung**  
Als bewährte Methode empfehlen wir, die Verwendung von `enum`-basierten Partitionsprojektionen auf einige Dutzend oder weniger zu beschränken. Es gibt zwar keine spezifische Obergrenze für `enum` Projektionen, aber die Gesamtgröße der Metadaten Ihrer Tabelle darf die AWS Glue Grenze von etwa 1 MB bei der GZIP-Komprimierung nicht überschreiten. Beachten Sie, dass dieses Limit für wichtige Teile Ihrer Tabelle wie Spaltennamen, Speicherort, Speicherformat und andere freigegeben wird. Wenn Sie feststellen, dass Sie IDs in Ihrer `enum` Projektion mehr als ein paar Dutzend eindeutige Werte verwenden, sollten Sie einen alternativen Ansatz in Betracht ziehen, z. B. das Aufteilen in einer kleineren Anzahl von Einzelwerten in einem Ersatzfeld. Durch den Handel mit Kardinalität können Sie die Anzahl der eindeutigen Werte in Ihrem `enum`-Feld steuern. 

## Ganzzahl-Typ
<a name="partition-projection-integer-type"></a>

Verwenden Sie den Ganzzahl-Typ für Partitionsspalten, deren mögliche Werte als Ganzzahlen innerhalb eines definierten Bereichs interpretierbar sind. Projizierte Ganzzahl-Spalten sind derzeit auf den Java Signed Long-Bereich (-263 bis 263-1 inklusive) begrenzt.


****  

| Name der Eigenschaft | Beispielwerte | Description | 
| --- | --- | --- | 
| projection.{{columnName}}.type | `integer` | Erforderlich Der Projektionstyp, der für die Spalte verwendet werden soll. {{columnName}} Der Wert muss integer (ohne Beachtung der Groß- und Kleinschreibung) sein, um die Verwendung des Ganzzahl-Typs zu signalisieren. Vorangehende und nachfolgende Leerzeichen sind zulässig. | 
| projection.{{columnName}}.range | `0,10`<br />`-1,8675309`<br />`0001,9999` | Erforderlich Eine durch Kommas getrennte Liste mit zwei Elementen, die die minimalen und maximalen Bereichswerte enthält, die von Abfragen in der Spalte zurückgegeben werden sollen. {{columnName}} Beachten Sie, dass die Werte durch Kommata voneinander getrennt werden müssen, nicht durch einen Bindestrich. Diese Werte sind einschließlich, können negativ sein und können vorangehende Nullen aufweisen. Vorangehende und nachfolgende Leerzeichen sind zulässig. | 
| projection.{{columnName}}.interval | `1`<br />`5` | Optional. Eine positive Ganzzahl, die das Intervall zwischen aufeinanderfolgenden Partitionswerten für die Spalte angibt. {{columnName}} Beispiel: Ein range-Wert von „1,3“ mit dem interval-Wert „1“ erzeugt die Werte 1, 2 und 3. Derselbe range-Wert mit dem interval-Wert „2" erzeugt die Werte 1 und 3, wobei 2 übersprungen wird. Vorangehende und nachfolgende Leerzeichen sind zulässig. Der Standardwert ist 1. | 
| projection.{{columnName}}.digits | `1`<br />`5` | Optional. Eine positive Ganzzahl, die die Anzahl der Ziffern angibt, die in der endgültigen Darstellung des Partitionswerts für die Spalte enthalten sein sollen{{columnName}}. Beispiel: Ein range-Wert von „1,3“ mit dem digits-Wert „1“ erzeugt die Werte 1, 2 und 3. Derselbe range-Wert mit dem digits-Wert „2" erzeugt die Werte 01, 02 und 03. Vorangehende und nachfolgende Leerzeichen sind zulässig. Der Standard beinhaltet keine feste Anzahl von Ziffern und keine vorangehenden Nullen. | 

## Datumstyp
<a name="partition-projection-date-type"></a>

Verwenden Sie den Datumstyp für Partitionsspalten, deren Werte innerhalb eines definierten Bereichs als Datumsangaben (mit optionalen Uhrzeiten) interpretierbar sind.

**Wichtig**  
Projizierte Datumsspalten werden in Coordinated Universal Time (UTC) zur Abfrageausführungszeit generiert.


****  

| Name der Eigenschaft | Beispielwerte | Description | 
| --- | --- | --- | 
| projection.{{columnName}}.type | `date` | Erforderlich Der Projektionstyp, der für die Spalte verwendet werden soll{{columnName}}. Der Wert muss date (ohne Beachtung der Groß- und Kleinschreibung) sein, um die Verwendung des Datumstyps zu signalisieren. Vorangehende und nachfolgende Leerzeichen sind zulässig. | 
| projection.{{columnName}}.range | `201701,201812`<br />`01-01-2010,12-31-2018`<br />`NOW-3YEARS,NOW`<br />`201801,NOW+1MONTH` | Erforderlich Eine aus zwei Elementen bestehende, durch Kommas getrennte Liste, die die Minimal- und `range` Maximalwerte für die Spalte enthält. {{columnName}} Diese Werte sind einschließlich und können jedes Format verwenden, das mit den Java `java.time.*`-Datentypen kompatibel ist. Sowohl der Minimal- als auch der Maximalwert müssen dasselbe Format verwenden. Das in der `.format`-Eigenschaft angegebene Format muss dem Format entsprechen, das für diese Werte verwendet wird.<br />Diese Spalte kann auch relative Datumszeichenfolgen enthalten, die in diesem Muster für reguläre Ausdrücke formatiert sind:<br />`\s*NOW\s*(([\+\-])\s*([0-9]+)\s*(YEARS?\|MONTHS?\|WEEKS?\|DAYS?\|HOURS?\|MINUTES?\|SECONDS?)\s*)?`<br />Leerzeichen sind erlaubt, aber in Datumsliteralen gelten sie als Teil der Datumszeichenfolgen selbst. | 
| projection.{{columnName}}.format | `yyyyMM`<br />`dd-MM-yyyy`<br />`dd-MM-yyyy-HH-mm-ss` | Erforderlich Eine Zeichenfolge im Datumsformat, die auf dem Java-Datumsformat basiert. [DateTimeFormatter](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html) Kann ein beliebiger unterstützter Java.time.\*-Typ sein. | 
| projection.{{columnName}}.interval | `1`<br />`5` | Eine positive Ganzzahl, die das Intervall zwischen aufeinanderfolgenden Partitionswerten für die Spalte angibt{{columnName}}. Beispiel: Ein `range`-Wert von `2017-01,2018-12` mit einem `interval`-Wert von `1` und einem `interval.unit`-Wert von `MONTHS` erzeugt die Werte 2017-01, 2017-02, 2017-03 usw. Derselbe `range`-Wert mit einem `interval`-Wert von `2` und einem `interval.unit`-Wert von `MONTHS` erzeugt die Werte 2017-01, 2017-03, 2017-05 usw. Vorangehende und nachfolgende Leerzeichen sind zulässig.<br />Wenn die angegebenen Datumsangaben eine Genauigkeit von einem Tag oder einem Monat aufweisen, ist `interval` optional und standardmäßig 1 Tag bzw. 1 Monat. Andernfalls ist `interval` erforderlich. | 
| projection.{{columnName}}.interval.unit | `YEARS`<br />`MONTHS`<br />`WEEKS`<br />`DAYS`<br />`HOURS`<br />`MINUTES`<br />`SECONDS`<br />`MILLIS` | Ein Wort in einer Zeiteinheit, das die serialisierte Form von a [ChronoUnit](https://docs.oracle.com/javase/8/docs/api/java/time/temporal/ChronoUnit.html)darstellt. Mögliche Werte sind `YEARS`, `MONTHS`, `WEEKS`, `DAYS`, `HOURS`, `MINUTES`, `SECONDS` oder `MILLIS`. Bei den Werten wird die Groß- und Kleinschreibung nicht berücksichtigt.<br />Wenn die angegebenen Datumsangaben eine Genauigkeit von einem Tag oder einem Monat aufweisen, ist `interval.unit` optional und standardmäßig 1 Tag bzw. 1 Monat. Andernfalls ist `interval.unit` erforderlich. | 

**Example – Partition nach Monat**  
In der folgenden Beispieltabellenkonfiguration werden Daten von 2015 bis heute nach Monaten partitioniert.  

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

## Injizierter Typ
<a name="partition-projection-injected-type"></a>

Verwenden Sie den injizierten Typ für Partitionsspalten mit möglichen Werten, die nicht prozedural innerhalb eines logischen Bereichs generiert werden können, aber in der `WHERE`-Klausel einer Abfrage als einzelner Wert bereitgestellt werden.

Es ist wichtig, dabei die folgenden Punkte zu beachten:
+ Abfragen zu injizierten Spalten schlagen fehl, wenn nicht für jede injizierte Spalte ein Filterausdruck bereitgestellt wird.
+ Abfragen mit mehreren Werten für einen Filterausdruck in einer injizierten Spalte sind nur erfolgreich, wenn die Werte disjunkt sind.
+ Nur Spalten von `string`-Typen werden unterstützt.
+ Wenn Sie die `WHERE IN`-Klausel mit einer injizierten Partitionsspalte verwenden, gibt es eine Obergrenze von 1.000 Werten, die Sie in der `IN`-Liste angeben können. Um einen Datensatz mit mehr als 1.000 Partitionen für eine injizierte Spalte abzufragen, teilen Sie die Abfrage in mehrere kleinere Abfragen mit jeweils bis zu 1.000 Werten in der `WHERE IN`-Klausel auf und aggregieren Sie dann die Ergebnisse.


****  

| Name der Eigenschaft | Wert | Description | 
| --- | --- | --- | 
| projection.{{columnName}}.type | `injected` | Erforderlich Der Projektionstyp, der für die Spalte {{columnName}} verwendet werden soll. Es wird nur der string-Typ unterstützt. Der angegebene Wert muss injected (ohne Beachtung der Groß- und Kleinschreibung) sein. Vorangehende und nachfolgende Leerzeichen sind zulässig. | 

Weitere Informationen finden Sie unter [Wann sollte der `injected`-Projektionstyp verwendet werden](partition-projection-dynamic-id-partitioning.md#partition-projection-injection).