Zum Inhalt springen
MCP-Server eingebautWie das funktioniert

Tableau & Power BI

Tableau und Power BI lesen denselben lesenden HTTP-Feed – jeweils mit dem Konto des Analysten. Es gibt kein Dienstkonto: Rechte und Richtlinien greifen unverändert, jeder Abruf steht im Audit-Protokoll, samt Vermerk, welches Werkzeug ihn ausgelöst hat.

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/bi/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, hinterlegt sie als Kennzahl oder als Sicht im Lakehouse – 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

Power BI

Power BI liest denselben Feed, aber über einen mitgelieferten Power-Query-Connector. Er übernimmt Seitennavigation, Typisierung und die Anmeldung über OAuth 2.0 mit PKCE gegen Keycloak – geplante Aktualisierungen über ein On-premises Data Gateway sind dafür vorgesehen, aber noch nicht gegen Power BI geprüft. Ohne Connector-Installation geht es alternativ mit Web.Contents.

Ein Feed, eine Governance

Weil beide Werkzeuge denselben Endpunkt lesen, gibt es den Schalter, die Katalog-Allowlist und die Audit-Kette nur einmal. Welches Werkzeug gezogen hat, hält der Audit-Eintrag fest.

Vor dem Einsatz prüfen

Die Anleitungen sind aus dem Feed-Vertrag abgeleitet; ein Ende-zu-Ende-Lauf mit Tableau und Power BI steht noch aus. Für Power BI liegt der Connector als M-Quellcode unter integrations/powerbi vor. Bauen Sie die .mez mit dem Power Query SDK und prüfen Sie Anmeldung, Navigator und Aktualisierung. Gleichen Sie einen mehrseitigen Auszug mit der Zeilenzahl im SQL-Arbeitsblatt ab. Kein DirectQuery oder Query Folding.

Direkt per JDBC oder ODBC

Neben dem Feed gibt es seit 0.71.0 einen zweiten Weg: der direkte SQL-Zugang zu Trino über JDBC oder ODBC, mit der eigenen Keycloak-Anmeldung. Zeilen- und Spaltenrichtlinien gelten unverändert. Der Zugang ist zuschaltbar und läuft über einen eigenen Port; für Excel liegt eine Anleitung über natives ODBC bei.

Wann was

Der Feed ist der Weg für Auszüge in Tableau und Power BI. JDBC und ODBC sind der Weg für Werkzeuge, die lieber selbst SQL schreiben – Excel, Skripte, eigene Anwendungen.

Gut zu wissen

  • Kennzahlen und Semantische Sichten sind seit 0.20.0 direkt ansprechbar: statt catalog, schema und table genügt metric, wahlweise mit dimension.
  • 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.78.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