我将把数据从PostgreSQL数据库迁移到Yandex的ClickHouse。源表中的一个字段是名为additional_data的JSON类型。因此,PostgreSQL允许在使用->>和->等进行SELECT ...查询时访问json属性。
我需要相同的行为将持久化到我的结果表中的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,然后使用特殊功能来处理它
发布于 2020-09-30 07:51:19
..
created_at DateTime,
updated_at DateTime,
additional_data_message Nullable(String),
additional_data_eventValue Nullable(String),
additional_data_rating Nullable(String),
additional_data_focalLength Nullable(Float64)
..一方面,它可以显着地增加行数和磁盘空间,另一方面,它应该会显著提高性能(特别是在正确的索引中)。此外,使用低基数型和编解码器可以减小磁盘大小。
..
ORDER BY (created_at, uuid);发布于 2022-04-17 01:01:24
https://stackoverflow.com/questions/64131915
复制相似问题