Запросы таблиц с JOINS и проверка на NULL не выполняются в ClickHouse - PullRequest
1 голос
/ 06 апреля 2019

Я использую Tableau, подключенный к ClickHouse через драйвер ODBC. Сначала почти любой запрос на отчет не удался. Я настроил этот файл tdc https://github.com/yandex/clickhouse-odbc/blob/clickhouse-tbc/clickhouse.tdc, и он фактически начал работать, однако теперь некоторые запросы запросов с JOINS, содержащие проверку для NULL в ON, не выполняются из-за использования 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)))

Это правильный способ работы:

JOIN users ON ((users.user_id = t0.user_id) OR ((isNull(users.user_id) = 1) AND (isNull(t0.user_id) = 1 IS NULL)))

Как заставить таблау водителя отправлять нужную заявку?

1 Ответ

0 голосов
/ 07 апреля 2019

Вот несколько предложений:

Этот пост в Tableau Community выглядит так, как будто у него есть похожие симптомы, как вы описали. Предлагаемое решение заключается в том, чтобы обернуть все поля как таковые IfNull([Dimension], ""), тем самым уменьшая необходимость, по-видимому, в том, чтобы Clickhouse выполнял проверку нулей.

Файл TDC от Github выглядит довольно полным, но они, возможно, не приняли во внимание объединения. коммит GitHub утверждает, что tdc является "непроверенным". Я сообщу создателю этого ВМТ и посмотрю, проделали ли они какую-либо работу по объединениям и есть ли у них какие-либо предложения.

Вот список возможных настроек ODBC , которые можно добавить в или удалить из вашего файла TDC. Сочетание которых может потребовать некоторых экспериментов, но их стоит изучить как возможное решение.

Создайте экстракт перед выполнением комплексного анализа. Если вы можете подключиться изначально, то должна быть возможность перенести все данные из Clickhouse в извлечение.

Пользовательский SQL , вероятно, устранит любую проблему с синтаксисом объединения, поскольку запрос и любые объединения написаны вами исключительно. После первоначального подключения к ClickHouse вместо выбора таблицы выберите «Пользовательский ODBC» и напишите запрос, который вернет соединенные таблицы по вашему выбору.

Наконец, Форум идей Tableau - это место, где можно спрашивать и / или голосовать за предстоящие соединители. Я вижу, что уже существует идея для ClickHouse . Не стесняйтесь голосовать за это.

...