Richten Sie die Partitionsprojektion ein - 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.

Richten Sie die Partitionsprojektion ein

Das Einrichten der Partitionsprojektion in den Eigenschaften einer Tabelle ist ein zweistufiger Prozess:

  1. Geben Sie die Datenbereiche und relevanten Muster für jede Partitionsspalte an oder verwenden Sie eine benutzerdefinierte Vorlage.

  2. Aktivieren Sie die Partitionsprojektion für die Tabelle.

Anmerkung

Bevor Sie einer vorhandenen Tabelle Partitionsprojektionseigenschaften hinzufügen, muss die Partitionsspalte, für die Sie Partitionsprojektionseigenschaften einrichten, bereits im Tabellenschema vorhanden sein. Wenn die Partitionsspalte noch nicht existiert, müssen Sie der vorhandenen Tabelle manuell eine Partitionsspalte hinzufügen. AWS Glue führt diesen Schritt nicht automatisch für Sie aus.

In diesem Abschnitt wird gezeigt, wie Sie die Tabelleneigenschaften für festlegen AWS Glue. Um sie festzulegen, können Sie die AWS Glue Konsole, CREATE TABLE Athena-Abfragen oder AWS Glue APIOperationen verwenden. Das folgende Verfahren zeigt, wie die Eigenschaften in der AWS Glue Konsole festgelegt werden.

So konfigurieren und aktivieren Sie die Partitionsprojektion mit der AWS Glue Konsole
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die AWS Glue Konsole unter https://console.aws.amazon.com/glue/.

  2. Wählen Sie die Registerkarte Tables (Tabellen).

    Auf der Registerkarte Tables (Tabellen) können Sie vorhandene Tabellen bearbeiten oder mit Add tables (Tabellen hinzufügen) neue Tabellen erstellen. Informationen zum manuellen Hinzufügen von Tabellen oder zur Verwendung eines Crawlers dafür finden Sie unter Arbeiten mit Tabellen in der AWS Glue -Konsole im AWS Glue -Entwicklerhandbuch.

  3. Wählen Sie in der Liste der Tabellen den Link für die Tabelle aus, die Sie bearbeiten möchten.

    Wählen Sie in der AWS Glue Konsole eine Tabelle aus, die Sie bearbeiten möchten.
  4. Wählen Sie Actions (Aktionen) und Edit table (Tabelle bearbeiten) aus.

  5. Fügen Sie auf der Seite Edit table (Tabelle bearbeiten) im Abschnitt Table properties (Tabelleneigenschaften) für jede partitionierte Spalte das folgende Schlüssel-Wert-Paar hinzu:

    1. Fügen Sie für Key (Schlüssel) projection.columnName.type hinzu.

    2. Fügen Sie für Value (Wert) einen der unterstützten Typen hinzu: enum, integer, date oder injected. Weitere Informationen finden Sie unter Unterstützte Typen für die Partitionsprojektion.

  6. Fügen Sie nach den Anweisungen in Unterstützte Typen für die Partitionsprojektion zusätzliche Schlüssel-Wert-Paare gemäß Ihren Konfigurationsanforderungen hinzu.

    In der folgenden Beispieltabellenkonfiguration wird die year-Spalte für die Partitionsprojektion konfiguriert, wobei die Werte, die zurückgegeben werden können, auf einen Bereich von 2010 bis 2016 beschränkt werden.

    Konfigurieren der Partitionsprojektion für eine Partitionsspalte in den Eigenschaften der AWS Glue -Konsolentabelle.
  7. Fügen Sie ein Schlüssel-Wert-Paar hinzu, um die Partitionsprojektion zu aktivieren. Geben Sie für Key (Schlüssel) den Wert projection.enabled und für dessen Value (Wert) true ein.

    Anmerkung

    Sie können die Partitionsprojektion für diese Tabelle jederzeit deaktivieren, indem Sie projection.enabled auf false setzen.

  8. Klicken Sie auf Save , sobald Sie fertig sind.

  9. Prüfen Sie im Athena-Abfrage-Editor die Spalten, die Sie für die Tabelle konfiguriert haben.

    Die folgende Beispielabfrage verwendet SELECT DISTINCT, um die eindeutigen Werte aus der year-Spalte zurückzugeben. Die Datenbank enthält Daten von 1987 bis 2016, aber die projection.year.range-Eigenschaft beschränkt die zurückgegebenen Werte auf die Jahre 2010 bis 2016.

    Abfragen einer Spalte, die die Partitionsprojektion verwendet.
    Anmerkung

    Wenn Sie projection.enabled auf true festlegen, aber nicht mindestens eine Partitionsspalte konfigurieren, erhalten Sie eine Fehlermeldung wie die folgende:

    HIVE_METASTORE_ERROR: Table database_name.table_name is configured for partition projection, but the following partition columns are missing projection configuration: [column_name] (table database_name.table_name).

Wie spezifiziert man benutzerdefinierte S3-Speicherorte

Wenn Sie Tabelleneigenschaften in bearbeiten AWS Glue, können Sie auch eine benutzerdefinierte Amazon S3 S3-Pfadvorlage für die projizierten Partitionen angeben. Eine benutzerdefinierte Vorlage ermöglicht Athena die ordnungsgemäße Zuweisung von Partitionswerten zu benutzerdefinierten Amazon-S3-Dateispeicherorten, die keinem typischen .../column=value/...-Muster folgen.

Die Verwendung einer benutzerdefinierten Vorlage ist optional. Wenn Sie jedoch eine benutzerdefinierte Vorlage verwenden, muss die Vorlage einen Platzhalter für jede Partitionsspalte enthalten. Vorlagenspeicherorte müssen mit einem Schrägstrich enden, damit die partitionierten Datendateien pro Partition in einem „Ordner“ gespeichert werden.

So geben Sie eine benutzerdefinierte Partitionsspeicherortvorlage an:
  1. Folgen Sie den Schritten zur Konfiguration und Aktivierung der Partitionsprojektion mithilfe der AWS Glue Konsole und fügen Sie ein zusätzliches Schlüssel-Wert-Paar hinzu, das eine benutzerdefinierte Vorlage wie folgt spezifiziert:

    1. Geben Sie für Key (Schlüssel) storage.location.template ein.

    2. Geben Sie für Value (Wert) einen Speicherort an, der für jede Partitionsspalte einen Platzhalter enthält. Stellen Sie sicher, dass jeder Platzhalter (und der S3-Pfad selbst) durch einen einzelnen Schrägstrich beendet wird.

      In den folgenden Beispielvorlagenwerten wird von einer Tabelle mit den Partitionsspalten a, b und c ausgegangen.

      s3://amzn-s3-demo-bucket/table_root/a=${a}/${b}/some_static_subdirectory/${c}/
      s3://amzn-s3-demo-bucket/table_root/c=${c}/${b}/some_static_subdirectory/${a}/${b}/${c}/${c}/

      Für dieselbe Tabelle ist der folgende Beispielvorlagenwert ungültig, da er keinen Platzhalter für die Spalte c enthält.

      s3://amzn-s3-demo-bucket/table_root/a=${a}/${b}/some_static_subdirectory/
  2. Wählen Sie Apply (Anwenden) aus.