Tableau – Ein Datenvisualisierungstool
Tableau ist ein verbreitetes kommerzielles Datenvisualisierungstool. Neben einer großen Zahl eingebauter Konnektoren bietet es auch generische Datenbankanbindung über ODBC- und JDBC-Konnektoren.
Tableau hat zwei Hauptversionen: Desktop und Online (Server).
- Für Desktop ähnelt die Verbindung zu einer DuckDB-Datenbank der Arbeit in einer eingebetteten Umgebung wie Python.
- Für Online müssen die Daten, da DuckDB im Prozess läuft, entweder auf dem Server selbst liegen oder in einem Remote-Daten-Bucket, der vom Server aus erreichbar ist.
Datenbank erstellen
Wenn Sie eine DuckDB-Datenbankdatei verwenden,
müssen die Datensätze nicht tatsächlich in DuckDB-Tabellen importiert werden;
es genügt, Views auf die Daten anzulegen.
Das folgende Beispiel erzeugt einen View der Parquet-Testdatei h2oai im aktuellen DuckDB-Quellbaum:
CREATE VIEW h2oai AS ( FROM read_parquet('/Users/username/duckdb/data/parquet-testing/h2oai/h2oai_group_small.parquet'));Beachten Sie, dass Sie für lokale Dateien vollständige Pfadnamen verwenden sollten, damit sie von Tableau aus gefunden werden. Beachten Sie außerdem, dass Sie eine Treiberversion benötigen, die mit dem Datenbankformat kompatibel ist (d. h. aus demselben Release), das das DuckDB-Tool (z. B. Python-Modul, Kommandozeile) verwendet hat, mit dem die Datei erzeugt wurde.
JDBC-Treiber installieren
Tableau dokumentiert, wie Sie einen JDBC-Treiber installieren, den Tableau verwenden soll.
Sowohl Tableau Desktop als auch Server müssen neu gestartet werden, wann immer Sie Treiber hinzufügen oder ändern.
Treiber-Links
Der Link hier führt zu einer aktuellen Version des JDBC-Treibers, die mit Tableau kompatibel ist. Wenn Sie sich mit einer Datenbankdatei verbinden möchten, müssen Sie sicherstellen, dass die Datei mit einer dateikompatiblen DuckDB-Version erzeugt wurde. Prüfen Sie außerdem, dass nur eine Treiberversion installiert ist, da mehrere Dateinamen in Gebrauch sind.
Laden Sie die JAR-Datei herunter.
- macOS: Kopieren Sie sie nach
~/Library/Tableau/Drivers/. - Windows: Kopieren Sie sie nach
C:\Program Files\Tableau\Drivers. - Linux: Kopieren Sie sie nach
/opt/tableau/tableau_driver/jdbc.
Den PostgreSQL-Dialekt verwenden
Wenn Sie nur etwas Einfaches tun möchten, können Sie versuchen, sich direkt mit dem JDBC-Treiber zu verbinden und den von Tableau bereitgestellten PostgreSQL-Dialekt zu verwenden.
- Erzeugen Sie eine DuckDB-Datei mit Ihren Views und/oder Daten.
- Starten Sie Tableau.
- Unter Connect > To a Server > More… klicken Sie auf „Other Databases (JDBC)“. Dadurch öffnet sich das Verbindungsdialogfeld. Geben Sie als URL
jdbc:duckdb:/User/username/path/to/database.dbein. Wählen Sie als Dialekt PostgreSQL. Die übrigen Felder können ignoriert werden:

Allerdings fehlen Funktionen wie die Aggregatfunktionen median und percentile.
Damit die Datenquellenverbindung besser zum PostgreSQL-Dialekt passt,
verwenden Sie bitte den DuckDB-Taco-Connector wie unten beschrieben.
Den Tableau-DuckDB-Connector installieren
Es ist möglich, den von Tableau bereitgestellten PostgreSQL-Dialekt zur Kommunikation mit dem DuckDB-JDBC-Treiber zu verwenden, wir empfehlen jedoch nachdrücklich den DuckDB-Taco-Connector. Dieser Connector wurde vollständig gegen den Tableau-Dialektgenerator getestet und ist kompatibler als der mitgelieferte PostgreSQL-Dialekt.
Die Dokumentation zur Installation und Verwendung des Connectors liegt in seinem Repository,
im Wesentlichen benötigen Sie die Datei
duckdb_jdbc.taco.
(Entgegen der Tableau-Dokumentation liegt das eigentliche Sicherheitsrisiko im Code des JDBC-Treibers,
nicht in der geringen Menge JavaScript in der Taco-Datei.)
Server (Online)
Unter Linux kopieren Sie die Taco-Datei nach /opt/tableau/connectors.
Unter Windows kopieren Sie die Taco-Datei nach C:\Program Files\Tableau\Connectors.
Führen Sie dann diese Befehle aus, um die Signaturprüfung zu deaktivieren:
tsm configuration set -k native_api.disable_verify_connector_plugin_signature -v truetsm pending-changes applyDer letzte Befehl startet den Server mit den neuen Einstellungen neu.
macOS
Kopieren Sie die Taco-Datei in den Ordner /Users/[User]/Documents/My Tableau Repository/Connectors.
Starten Sie Tableau Desktop dann vom Terminal aus mit dem Kommandozeilenargument zum Deaktivieren der Signaturprüfung:
/Applications/Tableau\ Desktop\ ⟨year⟩.⟨quarter⟩.app/Contents/MacOS/Tableau -DDisableVerifyConnectorPluginSignature=trueSie können das auch mit AppleScript zu einer Anwendung zusammenfassen, indem Sie das folgende Skript verwenden:
do shell script "\"/Applications/Tableau Desktop 2023.2.app/Contents/MacOS/Tableau\" -DDisableVerifyConnectorPluginSignature=true"quitErzeugen Sie diese Datei mit dem Skripteditor
(liegt unter /Applications/Utilities)
und speichern Sie sie als paketierte Anwendung:

Anschließend können Sie darauf doppelklicken, um Tableau zu starten. Bei Upgrades müssen Sie den Anwendungsnamen im Skript ändern.
Windows Desktop
Kopieren Sie die Taco-Datei in das Verzeichnis C:\Users\[Windows User]\Documents\My Tableau Repository\Connectors.
Starten Sie Tableau Desktop dann von einer Shell aus mit dem Argument -DDisableVerifyConnectorPluginSignature=true,
um die Signaturprüfung zu deaktivieren.
Ausgabe
Sobald die Daten geladen sind, können Sie Abfragen darauf ausführen! Hier ist das Ergebnis der ersten H2O.ai-Benchmark-Abfrage aus der Parquet-Testdatei:
