Zum Inhalt springen
MCP-Server eingebautWie das funktioniert

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.

EinstellungBedeutung
Anbindung eingeschaltetDer 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 KatalogeLeer = 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

  1. Tableau 2023.3 oder neuer

  2. REST API Connector installieren

    Aus dem Tableau Exchange; die .taco-Datei in das Connectors-Verzeichnis der Installation legen.

  3. 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/jdbc
  4. Tableau 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>
ParameterPflichtBedeutung
catalog, schema, tablejaDas Objekt – Tabelle oder Sicht – im Lakehouse.
limitneinZeilen je Seite. Standard 10 000, Obergrenze laut Einstellungen.
offsetneinStartzeile der Seite; damit blättert Tableau.
orderByab Seite 2Sortierschlüssel: spalte, spalte:desc, mehrere komma-getrennt, oder * für alle Spalten.
formatneinjson (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

FeldWert
URL / EndpointDer URL aus Schritt 4
AntwortformatJSON (oder CSV bei format=csv)
JSONPath auf die Datensätze$.data
AuthentifizierungBearer Token oder OAuth
Seitennavigationoffset/limit mit genau diesen Parameternamen, Seitengröße = Ihr limit
TLS-ZertifikatsprüfungAktiv lassen

6. Häufige Fehlermeldungen

AntwortBedeutungAbhilfe
401Kein oder abgelaufenes Token, oder falsches PublikumToken erneuern; aud muss agent sein
403 bridge_disabledAnbindung ist ausgeschaltetAdministration: Konsole → BI-Anbindung
403 catalog_not_allowedKatalog steht nicht auf der AllowlistAdministration: Freigaben pflegen
404 not_foundObjekt existiert nicht oder ist für Sie nicht sichtbarRechte in Trino prüfen – beides sieht absichtlich gleich aus
400 order_requiredBlättern ohne SortierschlüsselorderBy ergänzen
422 no_deliverable_columnsKeine Spalte des Objekts ist auslieferbarSicht 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