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 Spalten verwendet werden soll columnName. Der Wert muss enum (ohne Berücksichtigung von Groß- und Kleinschreibung) sein, um die Verwendung des Enum-Typs 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 die Spalte columnName. Jeder Leerraum wird als Teil eines Enum-Werts betrachtet.
Anmerkung

Als bewährte Methode empfehlen wir, die Verwendung von enum-basierten Partitionsprojektionen auf einige Dutzend oder weniger zu beschränken. Obwohl es keine spezifische Obergrenze für enum Projektionen gibt, darf die Gesamtgröße der Metadaten Ihrer Tabelle 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

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 verwendet werden soll columnName. Der Wert muss integer (ohne Berücksichtigung von Groß- und Kleinschreibung) sein, um die Verwendung des Integer-Typs zu signalisieren. Vorangehende und nachfolgende Leerzeichen sind zulässig.
projection.columnName.range

0,10

-1,8675309

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 ein Komma 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 angibt columnName. Beispielsweise ergibt ein range Wert von „1,3“ mit einem interval Wert von „1“ 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 enthalten sein sollen columnName. Ein range Wert von „1,3“ mit einem digits Wert von „1“ erzeugt beispielsweise 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

Spalten mit prognostiziertem Datum werden bei der Ausführung der Abfrage in der koordinierten Weltzeit (UTC) generiert.

Name der Eigenschaft Beispielwerte Beschreibung
projection.columnName.type

date

Erforderlich Der Projektionstyp, der für die Spalte verwendet werden soll columnName. Der Wert muss date (ohne Berücksichtigung von 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 Kommas getrennte Liste mit zwei Elementen, die die Mindest- und range Höchstwerte für die Spalte enthält columnName. Diese Werte sind inklusiv und können jedes Format verwenden, das mit den java.time.* Java-Datumstypen 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 basiert DateTimeFormatter. 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 angibt columnName. Beispielsweise MONTHS erzeugt ein range Wert von 2017-01,2018-12 mit einem interval Wert von 1 und einem interval.unit Wert von 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 darstellt. ChronoUnit 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 verwendet werden soll columnName. Nur der string Typ wird 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.