PrestoSQL-Syntax und -Optimierung
1. Überblick über PrestoSQL
Am 27. Dezember 2020 wurde PrestoSQL in Trino umbenannt, um es besser von Facebooks Presto zu unterscheiden. PrestoSQL/Trino ist eine verteilte SQL-Abfrage-Engine, die für die Abfrage großer Datensätze entwickelt wurde, die über eine oder mehrere heterogene Datenquellen verteilt sind
Offizielle PrestoSQL-Website:https://trino.io
Offizielle PrestoSQL-Dokumentation:https://trino.io/docs/current/overview.html
Weitere Informationen zu Presto finden Sie im Artikel:Portal
PrestoSQL/Trino ist eine ANSI SQL-kompatible Abfrage-Engine. Diese Standardkonformität ermöglicht es PrestoSQL-Benutzern, ihre bevorzugten Datentools, einschließlich BI- und ETL-Tools, mit jeder zugrunde liegenden Datenquelle zu integrieren
PrestoSQL validiert die empfangenen SQL-Anweisungen und konvertiert sie, um die erforderlichen Vorgänge an der verbundenen Datenquelle auszuführen. In diesem Artikel werden hauptsächlich die von PrestoSQL unterstützten SQL-Datentypen und andere von SQL unterstützte allgemeine Funktionen sowie die Optimierung von PrestoSQL vorgestellt
2. PrestoSQL-Syntax
2.1. PrestoSQL-Datentyp
Einzelheiten zu PrestoSQL-Datentypen finden Sie auf der offiziellen Website:https://trino.io/docs/current/sprache/types.html#
2.2. Schlüsselwörter und Identifikatoren
Einzelheiten zu PrestoSQL-Schlüsselwörtern und -Bezeichnern finden Sie auf der offiziellen Website:https://trino.io/docs/current/sprache/reserved.html
2.3. PrestoSQL-Kommentare
Einzelheiten zu PrestoSQL-Kommentaren finden Sie auf der offiziellen Website:https://trino.io/docs/current/sprache/comments.html#
2.4. PrestoSQL-Syntax
Einzelheiten zur PrestoSQL-Syntax finden Sie auf der offiziellen Website:https://trino.io/docs/current/sql.html#
2.5. PrestoSQL-Routinen
Einzelheiten zu PrestoSQL-Routinen finden Sie auf der offiziellen Website:https://trino.io/docs/current/routines.html#
2.6. Häufig gestellte Fragen zur Verwendung von PrestoSQL
1) Feldnamenreferenz
Vermeiden Sie Konflikte zwischen Feldnamen und Schlüsselwörtern: MySQL fügt Backticks zu Feldnamen hinzu, die mit Schlüsselwörtern in Konflikt stehen, und Presto fügt doppelte Anführungszeichen zu Feldnamen hinzu, die mit Schlüsselwörtern in Konflikt stehen. Wenn der Feldname nicht mit dem Schlüsselwort in Konflikt steht, können Sie die doppelten Anführungszeichen natürlich weglassen
2) Zeitfunktion
Fürtimestamp
müssen Sie zum Vergleichen das Schlüsselwort timestamp
hinzufügen. In MySQL können Sie dies jedoch für timestamp
Direkt vergleichen
-- MySQL写法
SELECT t FROM a WHERE t > '2023-12-01 00:00:00';
-- Presto写法
SELECT t FROM a WHERE t > timestamp '2023-12-01 00:00:00';
3) Verwendung der MD5-Funktion
Die MD5-Funktion in Presto übergibt den Typ binary
und gibt den Typ binary
zurück. Die Zeichenfolge ist