Unterstützte Typen für die Partitionsprojektion - Amazon Athena

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

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

Aufzählungstyp

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 Beschreibung
projection.columnName.type

enum

Erforderlich Der Projektionstyp, der für die Spalte columnNameverwendet werden soll. 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 Kommata getrennte Liste mit aufgezählten Partitionswerten für die 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 bei einer GZIP-Komprimierung die AWS Glue Grenze von etwa 1 MB nicht überschreiten. Beachten Sie, dass dieses Limit für wichtige Teile Ihrer Tabelle wie Spaltennamen, Speicherort, Speicherformat und andere freigegeben wird. Wenn Sie in Ihrer enum-Projektion mehr als ein paar Dutzend eindeutige IDs verwenden, sollten Sie einen alternativen Ansatz in Betracht ziehen, z. B. das Bucketing in eine kleinere Anzahl eindeutiger Werte in einem Ersatzfeld. Durch den Handel mit Kardinalität können Sie die Anzahl der eindeutigen Werte in Ihrem enum-Feld steuern.

Ganzzahl-Typ

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 Beschreibung
projection.columnName.type

integer

Erforderlich Der Projektionstyp, der für die Spalte columnNameverwendet werden soll. 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

-1,8675309

0001,9999

Erforderlich Eine durch Kommata getrennte Liste mit zwei Elementen, die die minimalen und maximalen Bereichswerte bereitstellt, die von Abfragen in der Spalte columnName zurückgegeben werden. 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

5

Optional. Eine positive Ganzzahl, die das Intervall zwischen aufeinanderfolgenden Partitionswerten für die Spalte columnName angibt. 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

5

Optional. Eine positive Ganzzahl, die die Anzahl der Ziffern angibt, die in der endgültigen Darstellung des Partitionswerts für die Spalte columnName enthalten sein sollen. 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

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 Beschreibung
projection.columnName.type

date

Erforderlich Der Projektionstyp, der für die Spalte columnNameverwendet werden soll. 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

01-01-2010,12-31-2018

NOW-3YEARS,NOW

201801,NOW+1MONTH

Erforderlich Eine durch Kommata getrennte Liste mit zwei Elementen, die die range-Minimal- und Maximalwerte für die Spalte columnName bereitstellt. 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.

Diese Spalte kann auch relative Datumszeichenfolgen enthalten, die in diesem Muster für reguläre Ausdrücke formatiert sind:

\s*NOW\s*(([\+\-])\s*([0-9]+)\s*(YEARS?|MONTHS?|WEEKS?|DAYS?|HOURS?|MINUTES?|SECONDS?)\s*)?

Leerzeichen sind erlaubt, aber in Datumsliteralen gelten sie als Teil der Datumszeichenfolgen selbst.

projection.columnName.format

yyyyMM

dd-MM-yyyy

dd-MM-yyyy-HH-mm-ss

Erforderlich Eine Zeichenfolge im Datumsformat, die auf dem Java-Datumsformat DateTimeFormatterbasiert. Kann ein beliebiger unterstützter Java.time.*-Typ sein.
projection.columnName.interval

1

5

Eine positive Ganzzahl, die das Intervall zwischen aufeinanderfolgenden Partitionswerten für die Spalte columnNameangibt. 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.

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

MONTHS

WEEKS

DAYS

HOURS

MINUTES

SECONDS

MILLIS

Ein Wort in einer Zeiteinheit, das die serialisierte Form von a ChronoUnitdarstellt. Mögliche Werte sind YEARS, MONTHS, WEEKS, DAYS, HOURS, MINUTES, SECONDS oder MILLIS. Bei den Werten wird die Groß- und Kleinschreibung nicht berücksichtigt.

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.

Injizierter Typ

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.

Name der Eigenschaft Wert Beschreibung
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 Verwendung des injected-Projektionstyps.