我打算将数据从 PostgreSQL 数据库迁移到 Yandex 的 ClickHouse。源表中的字段之一是 JSON 类型 - 称为additional_data
. 因此,PostgreSQL 允许我在查询等期间访问 json 属性。SELECT ...
->>
->
我需要相同的行为才能保留在 ClickHouse 存储中的结果表中。(即在选择查询和/或使用过滤和聚合子句时解析 JSON 的能力)
这是我CREATE TABLE ...
在 ClickHouse 客户端中所做的事情:
create table if not exists analytics.events
(
uuid UUID,
...,
created_at DateTime,
updated_at DateTime,
additional_data Nested (
message Nullable(String),
eventValue Nullable(String),
rating Nullable(String),
focalLength Nullable(Float64)
)
)
engine = MergeTree
ORDER BY (uuid, created_at)
PRIMARY KEY uuid;
如何存储 JSON 可序列化数据是一个不错的选择吗?有任何想法吗?
也许最好将 JSON 数据存储为普通数据,String
而不是Nested
使用特殊功能来使用它?