Namen für Datenbanken, Tabellen und Spalten
Verwenden Sie diese Tipps für die Benennung von Datenbanken, Tabellen und Spalten in Athena.
Anforderungen an Datenbank-, Tabellen- und Spaltennamen
-
Für Datenbank-, Tabellen- und Spaltennamen in AWS Glue dürfen nur UTF-8 und nur Kleinbuchstaben verwendet werden. Beachten Sie, dass Athena beim Erstellen von Datenbanken, Tabellen oder Spalten automatisch alle Großbuchstaben in DDL-Abfragen kleinschreibt. Die-Zeichenfolge darf nicht weniger als 1 oder mehr als 255 Bytes lang sein.
-
Derzeit ist es möglich, führende Leerzeichen am Anfang von Namen zu verwenden. Da diese führenden Leerzeichen schwer zu erkennen sind und nach der Erstellung zu Problemen mit der Benutzerfreundlichkeit führen können, sollten Sie vermeiden, versehentlich Objektnamen mit führenden Leerzeichen zu erstellen.
-
Wenn Sie eine AWS::Glue::Database CloudFormation-Vorlage zum Erstellen einer AWS Glue-Datenbank verwenden und keinen Datenbanknamen angeben, generiert AWS Glue automatisch einen Datenbanknamen im Format
resource_name–random_string, der nicht mit Athena kompatibel ist. -
Sie können den AWS Glue-Katalog-Manager verwenden, um Spalten umzubenennen, jedoch keine Tabellennamen oder Datenbanknamen. Um diese Einschränkung zu umgehen, müssen Sie eine Definition der alten Datenbank verwenden, um eine Datenbank mit dem neuen Namen zu erstellen. Anschließend verwenden Sie Definitionen der Tabellen aus der alten Datenbank, um die Tabellen in der neuen Datenbank neu zu erstellen. Dafür können Sie die AWS CLI oder das AWS Glue-SDK verwenden. Informationen zu den erforderlichen Schritten finden Sie unter AWS CLI verwenden, um eine AWS Glue-Datenbank und ihre Tabellen neu zu erstellen.
Tabellen- und Tabellenspaltennamen in Athena dürfen nur Kleinbuchstaben enthalten
Athena akzeptiert gemischte Groß-/Kleinschreibung in DDL- und DML-Abfragen, aber die Namen werden beim Ausführen der Abfrage kleingeschrieben. Vermeiden Sie daher die Verwendung von Groß- und Kleinschreibung für Tabellen- oder Spaltennamen, und verlassen Sie sich nicht auf die Groß-/Kleinschreibung in Athena, um solche Namen zu unterscheiden. Wenn Sie beispielsweise eine DDL-Anweisung verwenden, um eine Spalte mit dem Namen Castle zu erstellen, wird die erstellte Spalte zu castle kleingeschrieben. Wenn Sie dann den Spaltennamen in einer DML-Abfrage als Castle oder CASTLE angeben, wird Athena den Namen klein schreiben, damit Sie die Abfrage ausführen können, aber die Spaltenüberschrift in der von Ihnen in der Abfrage gewählten Groß-/Kleinschreibung anzeigen.
Datenbank-, Tabellen- und Spaltennamen müssen mindestens 255 Zeichen lang sein.
Namen, die mit einem Unterstrich beginnen
Verwenden Sie beim Erstellen von Tabellen umgekehrte Anführungszeichen, um Tabellen-, Ansichts- oder Spaltennamen einzuschließen, die mit einem Unterstrich beginnen. Zum Beispiel:
CREATE EXTERNAL TABLE IF NOT EXISTS `_myunderscoretable`( `_id` string, `_index` string) LOCATION 's3://amzn-s3-demo-bucket/'
Tabellen-, Ansichts- oder Spaltennamen, die mit Ziffern beginnen
Setzen Sie bei der Ausführung von SELECT-, CTAS- oder VIEW-Abfragen Anführungszeichen um Bezeichner wie Tabellen-, Ansichts- oder Spaltennamen, die mit einer Ziffer beginnen. Zum Beispiel:
CREATE OR REPLACE VIEW "123view" AS SELECT "123columnone", "123columntwo" FROM "234table"
Spaltennamen und komplexe Typen
Bei komplexen Typen sind nur alphanumerische Zeichen, Unterstrich (_) und Punkt (.) in Spaltennamen erlaubt. Um eine Tabelle und Mappings für Schlüssel mit eingeschränkten Zeichen zu erstellen, können Sie eine benutzerdefinierte DDL-Anweisung verwenden. Weitere Informationen finden Sie im Artikel Erstellen von Tabellen in Amazon Athena aus verschachteltem JSON und Mappings mit JSONSerDe
Reservierte Wörter
Bestimmte reservierte Wörter in Athena müssen mit Escape-Zeichen versehen werden. Um reservierte Schlüsselwörter in DDL-Anweisungen mit Escapezeichen zu versehen, schließen Sie sie in einfache umgekehrte Anführungszeichen (`) ein. Um reservierte Schlüsselwörter in SQL-SELECT-Anweisungen und in Abfragen in Ansichten mit Escape-Zeichen zu versehen, schließen Sie sie in doppelte Anführungszeichen (") ein.
Weitere Informationen finden Sie unter Reservierte Schlüsselwörter in Abfragen umgehen.
Weitere Ressourcen
Die vollständige Syntax zur Datenbank- und Tabellenerstellung finden Sie auf den folgenden Seiten.
Weitere Informationen zu Datenbanken und Tabellen in AWS Glue finden Sie unter Datenbanken und Tabellen im AWS Glue Entwicklerhandbuch.