Vertica的这些事<三>—— 谈谈vertica的flex table
2016-07-12 21:57
453 查看
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)
此时如果使用 * 查询 会出现乱码:
SELECT * FROM start_json;
需要使用函数 compute_flextable_keys
select compute_flextable_keys(‘start_json’);
然后查询就可以有结果
综上,flex table 对json格式的数据提供了很好的存储于展示。
相关文章推荐
- 列式数据库vertica导入数据
- JMeter对Vertica数据库的测试
- Vertia的这些事<一>—— 关于vertica的常用操作
- Vertica的这些事<五>—— 关于vertica常用函数介绍(持续更新ing)
- Vertica的这些事<十六>—— vertica备份与恢复
- 安装vertica-console7.0.x(操作系统:CentOS6.x)
- 用JDBC连接Vertica数据库的例子源代码
- 用JDBC连接Vertica数据库后插入一行数据的例子源代码(接上篇)
- JDBC操作Vertica数据库,用PreparedStatements对象实现批量插入数据
- 如何把其他数据库中AUTO_INCREMENT约束的字段(如ID)导入Vertica数据库
- vertica从其他表迁移数据到新表(insert into 语句用法实例)
- Vertica修改带UNIQUE约束字段的长度
- Vertica用于时间计算的SQL语句大全
- vertica时间计算SQL语句实例:统计一天内登录的用户
- kattle的连接SQLserver与vertica的一些方法
- vertica-->kafka-->mongodb数据流
- Vertica实时消费kafka实现
- 《Vertica的这些事》系列文章
- Vertica的这些事<七>—— Vertica中实现Oracle中的ws_concat功能
- Vertica的这些事<十一>—— Vertica 管理