使用字典中的值筛选clickhouse的结果

dzjeubhm  于 2021-07-15  发布在  ClickHouse
关注(0)|答案(2)|浏览(360)

我对clickhouse有点不熟悉,仍在反复学习。我有个问题。
讨论数据表示的星型方案,包括维度和事实。目前,我将所有内容都保存在postgresql中,但是带有聚合的olap查询开始显示错误的时间,因此我将把一些事实表移到clickhouse中。ch的初始测试显示了令人难以置信的性能,然而,在现实生活中,查询应该包括来自postgresql的维度表的连接。我知道我可以把它们当作字典联系起来。
问题:我发现使用字典可以发出类似于旧rdbms中的左连接的请求,即resultset中的值可以与字典中相应的值连接。但是它们是否可以通过对字典键的一些限制进行过滤(如在内部连接中)?例如,在postgresql中,我有一个表 users (id, name, ...) 在clickhouse我有一张table visits (user_id, source, medium, session_time, timestamp, ...) 关于他们访问网站的指标。我可以向ch进行查询以获取用户的聚合度量(给定日期范围内的每日访问次数)吗 name 符合某些条件( LIKE "EVE%" 例如)?

k10s72fa

k10s72fa1#

字典基本上会先替换值。据我所知,你的词典将以你的用户表为基础。
下面是一个例子。希望我能理解你的问题。

select dictGetString('accountidmap', 'domain', tuple(toString(account_id))) AS domain, sum(session) as sessions from session_distributed where date = '2018-10-15' and like(domain, '%cats%') group by domain

这是对我们数据库的真实查询,因此如果您有什么需要尝试/确认的,请告诉我

i86rm4rw

i86rm4rw2#

听起来odbc表函数就是你要找的。clickhouse有一堆表函数,它们的工作方式类似于postgres外来表。该设置类似于字典,但您获得了传统的连接行为。目前还没有出现在官方文件中。你可以参考这个https://github.com/yandex/clickhouse/blob/master/dbms/tests/integration/test_odbc_interaction/test.py#l84 . 在不久的将来(今年),clickhouse将支持标准的join语句。

相关问题