功能介绍
腾讯云数据仓库 TCHouse-C Schema-Less 方案专为半结构化数据处理设计,具有很好的灵活性和便利性,同时保证了查询性能与数据的一致性。
操作步骤
业务接入支持 Schema-Less 的腾讯云数据仓库 TCHouse-C 集群时,只需要简单步骤:
创建表时需要设置参数以标识该表支持 Schema-Less 功能,该参数为 enable_dynamic_columns=1;
创建表时只需要指定分区键,主键以及排序键引用的字段名称以及类型。
举例说明,创建表:
CREATE TABLE r(`@timestamp` DateTime,`clientip` IPv4)ENGINE = MergeTreePARTITION BY toDate(`@timestamp`)ORDER BY clientipSETTINGS enable_dynamic_columns = 1
数据写入时,需要将半结构化数据以 JSON 的形式放在已定义字段的后面:
INSERT INTO r SELECTtoDateTime(JSONExtractUInt(json, '@timestamp')) AS timestamp,toIPv4(JSONExtractString(json, 'clientip')) AS clientip,jsonFROM s3('https://schema-less-testing-1301087413.cos.ap-hongkong.myqcloud.com/documents-01.ndjson.gz', 'JSONAsString')
在写入了JSON 数据后,该表会动态扩展字段,通过 DESC r 查看:
简单查看数据:
数据写入引擎后,通过通配符查询 JSON 内部的嵌套结构:
也可以直接使用 JSON 内部字段各类查询: