在日常开发中存在使用半结构化数据的场景,当前梧桐数据库支持对该类数据处理的功能,下面结合具体案例介绍半结构化json数据的处理。
一、创建数据表
drop table if exists public.tmp_alldata_json_test_202408 ;
create table public.tmp_alldata_json_test_202408
( id varchar, alldata json
)with (orientation = orc) distributed by (id);
注:json类型无法作为分布键,同步创建id主键字段作为分布键。
二、将json数据导入数据表json字段
通过PSQL连接数据库:
psql -h $IP -d $DataName -U $UserName
Json文件数据copy入库:
\COPY $TableName( D a t a C o l u m n ) F R O M ′ / DataColumn ) FROM '/ DataColumn)FROM′/Dir/$FileName’
三、查询确认入数表数据内容:
select alldata from public.tmp_alldata_json_test_202408 limit 5;
{"PhoneNum":"12345678910","CustgLabel":["1234567","78901289"],"Province":"551"}
四、使用SQL取数json字段数据中键字符串以及对应数据值
select alldata-> 'PhoneNum' as PhoneNum ,alldata-> 'CustgLabel' as CustgLabel ,alldata-> 'Province' as Province
from public.tmp_alldata_json_test_202408
limit 50;
通过以上方式可以将json结构的数据转换成结构化数据,如有需要创建相对应的结构化数据表将解析后的数据插入其中,完成半结构化数据到结构化数据的转换。
五、总结
以上是将json结构的数据转化成结构化数据的入库操作方法,首先通过psql COPY的方式将json数据入库,通过语法将半结构化的数据解析为结构化数据,完成数据的入库及解析。