Vertica的这些事<三>—— 谈谈vertica的flex table

    xiaoxiao2025-10-02  6

    Json格式对于现在所有的软件开发者都不陌生,很多数据格式都用他来存储,我们来看一下vertica是怎么处理json数据的。这就是vertica的flex table!

    首先创建一个json文件:

    {"name": "Everest", "type":"mountain", "height":29029, "hike_safety": 34.1} {"name": "Mt St Helens", "type":"volcano", "height":29029, "hike_safety": 15.4} {"name": "Denali", "type":"mountain", "height":17000, "hike_safety": 12.2} {"name": "Kilimanjaro", "type":"mountain", "height":14000 } {"name": "Mt Washington", "type":"mountain", "hike_safety": 50.6}

    然后我们创建一个flex table:

    dbadmin=> CREATE FLEX TABLE start_json(); CREATE TABLE

    然后把数据copy进去:

    dbadmin=> COPY start_json FROM '/home/dbadmin/qcfData/*json*' PARSER fjsonparser(); Rows Loaded ------------- 5 (1 row)

    查询结果:

    dbadmin=> select * from start_json(); ERROR 4256: Only relations and subqueries are allowed in the FROM clause dbadmin=> SELECT maptostring(__raw__) FROM start_json; maptostring ---------------------------------------------------------------------------------------------------------- { "height" : "29029", "hike_safety" : "34.1", "name" : "Everest", "type" : "mountain" } { "height" : "29029", "hike_safety" : "15.4", "name" : "Mt St Helens", "type" : "volcano" } { "height" : "17000", "hike_safety" : "12.2", "name" : "Denali", "type" : "mountain" } { "height" : "14000", "name" : "Kilimanjaro", "type" : "mountain" } { "hike_safety" : "50.6", "name" : "Mt Washington", "type" : "mountain" } (5 rows)

    发现很好的解析了json文件,并且格式化了文件。

    查询json数据:

    dbadmin=> SELECT start_json.type,start_json.name FROM start_json; type | name ----------+--------------- mountain | Everest volcano | Mt St Helens mountain | Denali mountain | Kilimanjaro mountain | Mt Washington (5 rows)

    综上,flex table 对json格式的数据提供了很好的存储于展示。

    最新回复(0)