实时将流式 table 中的行插入到一个 table 中

Inserting rows from the streaming tables into one table in realtime

我有两个 table 说 DOG 和 FISH。 Table DOG 有列

name|species-name|neighbourhood

Table FISH 有列

name|species-name|water-type

在这两个 table 中,数据都是实时流式传输的。我想将每个 table 的数据实时添加到具有列的新 table Animals。

name|species-name|neighbourhood|water-type

例如:- for dog table 流式传输两行 ie

yxz, shephard, london
abc, poodle, NYC

for fish table 流式传输两行即

lkj, Tuna, saltwater
ghf, Cod, freshwater

我想把这两个table的数据变成动物table喜欢

name|species-name|neighbourhood|water-type
----+------------+-------------+----------
yxz  shephard     london
abc  poodle       NYC
lkj  Tuna                       saltwater
ghf  Cod                        freshwater
------------------------------------------

我已经为一个 table 使用了 materialzied 视图,但我似乎无法理解如何将它用于两个 table 连接。

据我了解,您想将两个数据流合并为一个 table。

您可以为每个 table(dogsfish

创建物化视图
CREATE MATERIALIZED VIEW fish_mt TO animal AS
SELECT `name`, `species-name`, `water-type` FROM fish;

CREATE MATERIALIZED VIEW dogs_mt TO animal AS
SELECT `name`, `species-name`, `neighbourhood` FROM dogs;

您的结果 table (animal) 应包含来自两个源 table 的列。


如果您想动态更改结果 table (animal) 的模式,我想现在没有直接的方法可以做到(版本 21.12)。 但是很快就会添加对半结构化 JSON 数据的支持,你可以看看那里。 https://github.com/ClickHouse/ClickHouse/pull/22535