【发布时间】:2020-02-19 01:57:30
【问题描述】:
我有两个数据库,主数据库(PostgreSQL)+统计数据库(ClickHouse)。统计数据库包含来自主数据库的数据的子部分,足以执行计算。两个数据库中的所有 ID 都是相似的 (:binary_id)。我需要找到一种方法,将从统计数据库获得的结果与对主数据库的查询结合起来。就纯 SQL 解决方案而言,可能是这样的,其中VALUES 是从统计数据库中获取的数据:
SELECT p0."id",
p0."name",
f1."average_count"
FROM "persons" AS p0
JOIN (VALUES (0.0, '906af2c0-cde2-4996-9a98-bdbf986fe687'::uuid),
(0.2857142857142857, 'aba7c694-3453-4a55-aab9-4b542dbb4ba9'::uuid),
(0.2857142857142857, '2dab3350-6149-4752-a55e-7477a6ad0dd3'::uuid))
as f1 (average_count, user_id)
on f1.user_id = p0.id;
我的项目积极使用 Ecto,并且有很多即时构建的查询。这就是为什么我不能像上面发布的那样只执行纯 SQL 查询,并且应该有基于 Ecto 的解决方案。有没有办法与 Ecto 进行这种加入?
【问题讨论】:
标签: postgresql elixir ecto clickhouse