我正在运行通过ODBC驱动程序连接到ClickHouse的Tableau。起初,大多数报告请求都失败了。我已经配置了这个tdc文件https://github.com/yandex/clickhouse-odbc/blob/clickhouse-tbc/clickhouse.tdc,它实际上开始工作了,但是由于使用了{{1},现在某些包含NULL
中ON
的检查的JOINS查询请求失败了。 }},而不是IS NULL
isNull(id)
这是正确的工作方式:
JOIN users ON ((users.user_id = t0.user_id) OR ((users.user_id IS NULL) AND (t0.user_id IS NULL)))
如何使Tablau驱动程序发送正确的请求?
答案 0 :(得分:0)
以下是一些建议:
Tableau社区上的 This post看起来与您描述的症状相似。建议的解决方案是将所有字段都包装为IfNull([Dimension], "")
,从而显然减少了Clickhouse进行空值检查的需要。
Github的TDC文件看起来很完整,但是可能没有考虑联接。 GitHub commit声明tdc为“未测试”。我会向该TDC的创建者发消息,看看他们是否已完成有关联接的任何工作以及是否有任何建议。
Here is a list可能的 ODBC定制,可以将其添加到Tem文件中或从中删除。两者的结合可能需要一些实验,但是作为一种可能的解决方案,它们值得研究。
创建摘要,然后再执行复杂的分析。如果您最初能够进行连接,那么应该可以将Clickhouse中的所有数据提取到其中。
自定义SQL 可能会减轻任何联接语法问题,因为查询和所有联接完全是由您编写的。与ClickHouse建立初始连接后,无需选择表,而是选择“自定义ODBC”并编写查询,该查询将返回您选择的联接表。
最后, Tableau Ideas论坛是一个在即将到来的连接器上进行投票和/或投票的地方。我可以看到已经有idea in place for ClickHouse。随意投票。
答案 1 :(得分:0)
如果您可以确保数据中不包含任何NULL值,则也可以使用我针对此确切问题编写的代理。
https://github.com/kfzteile24/clickhouse-proxy
在大多数情况下,这种方法还是可行的,但这并不是防弹的。