Tableau & BI-Werkzeuge
Tableau liest Tabellen und Sichten über einen lesenden HTTP-Feed der Plattform – mit dem Konto des jeweiligen Analysten. Es gibt kein Dienstkonto: Rechte und Richtlinien greifen unverändert, jeder Abruf steht im Audit-Protokoll.
Auf dieser Seite
Warum kein eigenes Plugin
Tableaus eigene Erweiterungswege für Web-Daten sind ausgelaufen: Web Data Connector 2.x ist seit Tableau 2023.1 entfernt, WDC 3.0 ebenfalls abgekündigt. Der von Tableau empfohlene Nachfolger ist der REST API Connector aus dem Tableau Exchange – ein von Tableau gebauter und signierter Connector, der einen HTTP-GET-Endpunkt liest. Die Plattform stellt genau diesen Endpunkt bereit, statt ein eigenes Plugin zu pflegen.
Nebeneffekt: derselbe Feed ist ohne Zusatzarbeit aus Power BI Web, Excel oder einem Skript lesbar – mit identischer Governance.
1. Anbindung einschalten (Administration)
Im Auslieferungszustand ist die Anbindung aus; jeder Abruf wird mit 403 abgewiesen, unabhängig von den Rechten des Aufrufers. Eine Datenausleitung nach draußen wird bewusst eingeschaltet – unter Daten → BI-Anbindung.
| Einstellung | Bedeutung |
|---|---|
| Anbindung eingeschaltet | Der Schalter. Aus = jeder Abruf 403. Wirkt sofort, ohne Neustart. |
| Zeilen je Seite (Obergrenze) | Obergrenze für limit. Kann die harte Grenze im Code (50 000) nur senken. |
| Freigegebene Kataloge | Leer = keine zusätzliche Einschränkung. Gefüllt = Allowlist: nur diese Kataloge dürfen über Tableau nach draußen. |
Die Allowlist ergänzt die Rechte
Sie ist eine zweite Schranke vor Trino und beantwortet, welche Daten Richtung BI das Haus verlassen dürfen. Wer was sehen darf, entscheiden weiterhin die Rechte.
2. Anmeldung
Der Feed nimmt ausschließlich die normale Bearer-Anmeldung der Plattform an: ein Keycloak-Zugriffstoken des Realms mit dem Publikum agent. Ein Token für ein anderes Publikum wird mit 401 abgewiesen. Zwei Wege führen dorthin:
- Bearer-Token – der Analyst hinterlegt ein Zugriffstoken im Connector. Kurzlebig, deshalb nur für einmalige oder von Hand angestoßene Auszüge geeignet.
- OAuth – empfohlen für geplante Aktualisierungen. Dafür wird im Realm ein eigener öffentlicher Client für Tableau angelegt (Standard Flow, PKCE, die von Ihrer Tableau-Version dokumentierte Rückleit-Adresse, dazu ein Audience-Mapper auf agent).
3. Voraussetzungen in Tableau
Tableau 2023.3 oder neuer
REST API Connector installieren
Aus dem Tableau Exchange; die .taco-Datei in das Connectors-Verzeichnis der Installation legen.
JDBC-REST-API-Treiber ablegen
Die .jar in das Treiberverzeichnis Ihres Betriebssystems.
Windows: C:\Program Files\Tableau\Drivers macOS: ~/Library/Tableau/Drivers Linux: /opt/tableau/tableau_driver/jdbcTableau neu starten
Der Connector arbeitet als Auszug (Extract); eine Live-Verbindung gibt es nicht. Das ist eine Eigenschaft des Connectors, keine Einschränkung der Plattform.
4. Die Datenquellen-URL
Den fertigen URL erzeugt die Konsole unter BI-Anbindung → Datenquellen-URL erzeugen, mit Kopierknopf. Er hat diese Form:
https://<host>/api/agent/tableau/rows?catalog=<katalog>&schema=<schema>&table=<tabelle>&limit=10000&orderBy=<spalte>| Parameter | Pflicht | Bedeutung |
|---|---|---|
| catalog, schema, table | ja | Das Objekt – Tabelle oder Sicht – im Lakehouse. |
| limit | nein | Zeilen je Seite. Standard 10 000, Obergrenze laut Einstellungen. |
| offset | nein | Startzeile der Seite; damit blättert Tableau. |
| orderBy | ab Seite 2 | Sortierschlüssel: spalte, spalte:desc, mehrere komma-getrennt, oder * für alle Spalten. |
| format | nein | json (Standard) oder csv. |
Es gibt keinen SQL-Parameter, und das ist Absicht. Der Feed baut die Abfrage selbst aus dem benannten Objekt, geprüften Bezeichnern und Zahlen. Wer eine berechnete Auswertung braucht, legt sie im Lakehouse als Sicht an – dann greifen auch dort die Richtlinien.
orderBy ist ab der zweiten Seite Pflicht
OFFSET ohne ORDER BY ist in Trino – wie in jeder parallelen Engine – nicht stabil: zwei Abfragen dürfen dieselben Zeilen in anderer Reihenfolge liefern. Ein Auszug über mehrere Seiten könnte Zeilen doppelt enthalten und andere verlieren, ohne dass ein Fehler auftritt. Deshalb weist der Feed offset > 0 ohne orderBy mit 400 order_required ab, statt eine unzuverlässige Seite auszuliefern. Die erste Seite braucht keine Sortierung.
5. Connector einrichten
| Feld | Wert |
|---|---|
| URL / Endpoint | Der URL aus Schritt 4 |
| Antwortformat | JSON (oder CSV bei format=csv) |
| JSONPath auf die Datensätze | $.data |
| Authentifizierung | Bearer Token oder OAuth |
| Seitennavigation | offset/limit mit genau diesen Parameternamen, Seitengröße = Ihr limit |
| TLS-Zertifikatsprüfung | Aktiv lassen |
6. Häufige Fehlermeldungen
| Antwort | Bedeutung | Abhilfe |
|---|---|---|
| 401 | Kein oder abgelaufenes Token, oder falsches Publikum | Token erneuern; aud muss agent sein |
| 403 bridge_disabled | Anbindung ist ausgeschaltet | Administration: Konsole → BI-Anbindung |
| 403 catalog_not_allowed | Katalog steht nicht auf der Allowlist | Administration: Freigaben pflegen |
| 404 not_found | Objekt existiert nicht oder ist für Sie nicht sichtbar | Rechte in Trino prüfen – beides sieht absichtlich gleich aus |
| 400 order_required | Blättern ohne Sortierschlüssel | orderBy ergänzen |
| 422 no_deliverable_columns | Keine Spalte des Objekts ist auslieferbar | Sicht mit umgewandelten Spalten anlegen |
Gut zu wissen
- Kennzahlen und Semantische Sichten sind über den Feed noch nicht direkt ansprechbar – bis dahin die Kennzahl als Sicht im Lakehouse hinterlegen.
- Spalten mit Typen, die Tableau nicht kennt, werden ausgelassen statt geraten und im Schema als nicht unterstützt gemeldet.
- hasMore wird aus rowCount === limit abgeleitet; die letzte Seite eines Auszugs kann daher einmal leer ausfallen.
Danach gilt Tableau
Ein fertiger Auszug liegt in Tableau und unterliegt dort dessen Berechtigungen. Freigaben auf Tableau-Seite verdienen dieselbe Sorgfalt wie im Lakehouse.
Stand: Diese Seite beschreibt lavalake 0.16.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