SQL-Abfragen
Unter Daten → Abfragen liegt ein SQL-Arbeitsblatt über Trino. Jede Anweisung läuft unter Ihrer Kennung – was Sie hier sehen, ist genau das, was Trino Ihnen zeigt.
Auf dieser Seite
- COALESCE: fehlende Werte ersetzen
- Aggregation: Zeilen zusammenfassen
- Regexp: Textmuster prüfen
- Was ist ein Datentyp?
- DDL, Schema und SQL-Kommentar
- KI-Funktionen und Snowflake-SQL
- Tabellen-Streams
- Objekte finden
- Abfragen
- In der Zeit zurückgehen
- Eine Sicht anlegen
- Parallelität und Kontingente
- Wofür es eigene Wege gibt
COALESCE: fehlende Werte ersetzen
COALESCE liefert den ersten Wert, der nicht NULL ist. Damit können Sie für fehlende Werte eine fachlich passende Vorgabe setzen. Ein leerer Text ist kein NULL-Wert und wird daher nicht automatisch ersetzt.
SELECT coalesce(CAST(NULL AS varchar), 'unbekannt') AS status;Aggregation: Zeilen zusammenfassen
Eine Aggregation verdichtet mehrere Zeilen, etwa mit SUM, COUNT oder AVG. GROUP BY bildet Gruppen. Das Beispiel berechnet einen Umsatz von 30 für Nord und 7 für Süd; die Eingabedaten stehen direkt in der Abfrage.
SELECT region, sum(umsatz) AS umsatz
FROM (VALUES ('Nord', 10), ('Nord', 20), ('Süd', 7)) AS t(region, umsatz)
GROUP BY region
ORDER BY region;Regexp: Textmuster prüfen
Reguläre Ausdrücke beschreiben Textmuster. regexp_like prüft in Trino, ob ein Muster im Text vorkommt. Mit ^ und $ begrenzen Sie die Prüfung auf den gesamten Text. Das Beispiel prüft eine Kennung aus zwei Großbuchstaben und drei Ziffern.
SELECT regexp_like('AB123', '^[A-Z]{2}[0-9]{3}$') AS gueltig;Was ist ein Datentyp?
Ein Datentyp bestimmt, welche Werte eine Spalte aufnehmen kann und welche Operationen dazu passen. VARCHAR speichert Text, BIGINT ganze Zahlen und DECIMAL Zahlen mit festgelegter Genauigkeit und Nachkommastellen. Für Gleitkommazahlen verwendet Trino REAL oder DOUBLE. Wer nach dem Datentyp Float sucht, sollte Rundungseffekte berücksichtigen; Geldbeträge werden üblicherweise als DECIMAL modelliert.
DDL, Schema und SQL-Kommentar
DDL steht für Data Definition Language und bezeichnet Anweisungen zur Definition von Datenstrukturen, etwa CREATE TABLE oder ALTER TABLE. Ein Schema gruppiert Tabellen innerhalb eines Katalogs. SQL-Kommentare erklären eine Abfrage: -- kommentiert bis zum Zeilenende, /* ... */ einen Textblock. Prüfen Sie strukturändernde Anweisungen vor der Bestätigung.
KI-Funktionen und Snowflake-SQL
Das SQL-Modell wird von der Administration separat gewählt: lokal oder über einen API-Schlüssel. ai_summarize, ai_classify, ai_translate und ai_extract verarbeiten Texte innerhalb einer Abfrage. Externe Modelle erhalten die übergebenen Inhalte; Rechte, Kontingente und Audit gelten weiterhin. Der Schalter „Snowflake-SQL“ übersetzt unterstützte Syntax; prüfen Sie das Ergebnis vor der Übernahme.
SELECT ai_summarize(beschreibung) AS kurz
FROM iceberg.service.tickets
LIMIT 5;Tabellen-Streams
Ein Stream zeigt Nettoänderungen seit seinem gespeicherten Lesestand. SELECT liest diese Änderungen, ohne den Stand weiterzusetzen; die Verarbeitung in einer schreibenden Anweisung setzt ihn weiter. UPDATE kann als gelöschte alte und eingefügte neue Zeile erscheinen. Ein Stream kann veralten, wenn sein Ausgangsstand nicht mehr aufbewahrt wird.
Lesen läuft, Schreiben fragt nach
Jede Anweisung wird vor der Ausführung eingestuft, fail-closed. Lesendes läuft sofort, Schreibendes nach einer Bestätigung.
Objekte finden
Adressiert wird dreiteilig: Katalog, Schema, Tabelle. Der Katalog einer frischen Installation heißt iceberg; daneben stehen die Trino-eigenen Kataloge system, jmx und memory sowie die Beispieldaten tpch und tpcds.
SHOW CATALOGS;
SHOW SCHEMAS FROM iceberg;
SHOW TABLES FROM iceberg.produkte;
DESCRIBE iceberg.produkte.produkte;Abfragen
Ab hier ist es gewöhnliches SQL. Das folgende Beispiel arbeitet auf der Tabelle aus dem Datenbrowser – Artikelnummer, Bezeichnung, Kategorie, Nettopreis, Mehrwertsteuersatz und Lagerbestand.
SELECT
kategorie,
count(*) AS artikel,
round(avg(preis_netto_eur * (1 + mwst_prozent / 100.0)), 2) AS brutto_schnitt,
sum(lagerbestand) AS bestand
FROM iceberg.produkte.produkte
WHERE lagerbestand > 0
GROUP BY kategorie
ORDER BY brutto_schnitt DESC;Überall dieselben Grenzen
Eine durch Richtlinie verborgene Zeile fehlt hier genauso wie in Suche und BI-Auszug – die Bedingung hängt Trino an, nicht die Oberfläche.
In der Zeit zurückgehen
Iceberg schreibt keine Zeilen um, sondern legt neue Schnappschüsse an. Nessie hält sie fest. Damit lässt sich jede Tabelle so abfragen, wie sie zu einem früheren Zeitpunkt aussah – ohne Sicherung, ohne Kopie.
-- Welche Stände gibt es?
SELECT snapshot_id, committed_at, operation
FROM iceberg.produkte."produkte$snapshots"
ORDER BY committed_at DESC;
-- Stand von gestern früh
SELECT count(*) AS zeilen
FROM iceberg.produkte.produkte
FOR TIMESTAMP AS OF TIMESTAMP '2026-09-03 08:00:00 Europe/Berlin';
-- Oder ein bestimmter Schnappschuss
SELECT *
FROM iceberg.produkte.produkte
FOR VERSION AS OF 8623201004411246578
LIMIT 20;Neben $snapshots gibt es weitere Metadaten-Tabellen desselben Musters: $history zeigt die Abfolge der Stände, $files die Datendateien hinter dem aktuellen Stand, $partitions die Verteilung. Die Anführungszeichen gehören dazu – ohne sie liest Trino das Dollarzeichen nicht als Teil des Namens.
Time Travel nach Wartung
Ein Wartungstermin entfernt Snapshots außerhalb der gewählten Aufbewahrung von 7 bis 365 Tagen. Zeitreise-Abfragen benötigen einen noch vorhandenen Snapshot. Die tägliche Datenbanksicherung im Compose-Stapel ersetzt keine Sicherung der Iceberg-Dateien.
Eine Sicht anlegen
Sichten sind der vorgesehene Weg, eine Auswertung wiederverwendbar zu machen – und der einzige Weg, sie in den BI-Feed zu bekommen: der nimmt kein SQL vom Aufrufer an, sondern nur den Namen eines Objekts. Was Tableau rechnen soll, wird deshalb vorher hier als Sicht hinterlegt.
CREATE VIEW iceberg.produkte.v_bestandswert AS
SELECT
artikelnummer,
bezeichnung,
kategorie,
lagerbestand,
preis_netto_eur,
lagerbestand * preis_netto_eur AS bestandswert_netto
FROM iceberg.produkte.produkte;CREATE VIEW ist eine schreibende Anweisung
Sie braucht eine Bestätigung und die Rechte in Trino. Die Sicht erbt keine eigenen Rechte – wer sie abfragt, sieht sie unter seiner Kennung.
Parallelität und Kontingente
Im Compose-Stapel greifen die Leistungsklassen S, M und L aus Ihrer Nutzerrolle. Weitere Abfragen warten, wenn die Parallelitätsgrenze der Klasse erreicht ist. Zusätzlich können Tageskontingente für Rechenzeit und gelesene Daten gelten. Die Klassengrenzen stehen unter Compose betreiben.
Wofür es eigene Wege gibt
- Kennzahlen und Semantische Sichten: gepflegt unter KI & Semantik → Kennzahlen und über ihren Namen abgefragt.
- Massenhaftes Laden: dafür gibt es die fünf Ingestion-Wege, mit Assistent statt INSERT von Hand.
- Der Katalog selbst: den bringt die Installation mit, er wird nicht in SQL angelegt.
Stand: Diese Seite beschreibt lavalake 0.201.0. Produkt und Dokumentation liegen in getrennten Repositories – im Zweifel gilt, was die Konsole zeigt.
Etwas fehlt?
Wenn diese Seiten Ihre Frage nicht beantworten, zeigen wir die Plattform in einer halben Stunde an Ihrem Fall.
Demo vereinbaren