I use Tableau for data analysis and thought let’s give QuestDB a try, as it has a Postgres Wire interface.
Well: long story short: NOPE. Tableau expects a Postgres database with Postgres tables to read the configuration. Those tables don’t exist in QuestDB.
Furthermore, Tableau seems to use LOCAL TEMPORARY TABLES, which QuestDB can’t handle too.
Just a small list of the errors while trying to create a table in Tableau Prep:
2024-12-07T14:04:24.875374Z E i.q.g.e.QueryProgress err [id=-1, sql=`SELECT setting FROM pg_catalog.pg_settings WHERE name='max_index_keys'`, principal=admin, cache=false, jit=false, time=127860, msg=table does not exist [table=pg_catalog.pg_settings], errno=0, pos=20]
2024-12-07T14:04:24.879370Z E i.q.g.e.QueryProgress err [id=-1, sql=`CREATE LOCAL TEMPORARY TABLE "#Tableau_50_DDD30AD1-8C47-496F-86D6-7DEFB5F49395_3_prep" (
"Field" VARCHAR(65000)
) ON COMMIT PRESERVE ROWS`, principal=admin, cache=false, jit=false, time=15702, msg=expected 'atomic' or 'table' or 'batch', errno=0, pos=7]
FROM (SELECT 1 AS COL) AS CHECKTEMP`, principal=admin, cache=false, jit=false, time=23996, msg=table and column names that are SQL keywords have to be enclosed in double quotes, such as "INTO", errno=0, pos=43]
2024-12-07T14:14:03.327934Z E i.q.g.e.QueryProgress err [id=-1, sql=`show "lc_collate"`, principal=admin, cache=false, jit=false, time=91241, msg=expected 'TABLES', 'COLUMNS FROM <tab>', 'PARTITIONS FROM <tab>', 'TRANSACTION ISOLATION LEVEL', 'transaction_isolation', 'max_identifier_length', 'standard_conforming_strings', 'parameters', 'server_version', 'server_version_num', 'search_path', 'datestyle', or 'time zone', errno=0, pos=17]
I assume this can’t be easily fixed on your side, ie using QuestDB as a fast database backend for Tableau is not feasible soon?