阅读更多

12顶
1踩

数据库

原创新闻 PostgreSQL 9.2中将引入生成JSON数据功能

2012-01-17 14:41 by 资深编辑 luiang1018 评论(22) 有16533人浏览
PostgreSQL开发者Andrew Dunstan写到
引用
上周三,也就是PostgreSQL 9.2最后一个commitfest到来的前四天,Robert Haas提交了一个名为JSON for 9.2的补丁,欲将JSON列为PostgreSQL的核心类型。基本上,该补丁功能是对文本进行解析,确保它是有效的JSON数据,并加以存储。这个功能我原本打算在9.2版本中放弃的,不过我考虑了下发现Robert的补丁太小了点,因此决定继续并又添加了一些功能,包括:query_to_json()、array_to_json()以及record_to_json(),完成了从ProstgreSQL生成JSON数据。

以下是来自回归测试中的一些简单示例:
SELECT query_to_json('select x as b, x * 2 as c from generate_series(1,3) x',false);
                query_to_json                
---------------------------------------------
 [{"b":1,"c":2},{"b":2,"c":4},{"b":3,"c":6}]
(1 row)

SELECT array_to_json('{{1,5},{99,100}}'::int[]);
  array_to_json   
------------------
 [[1,5],[99,100]]
(1 row)

-- row_to_json
SELECT row_to_json(row(1,'foo'));
     row_to_json     
---------------------
 {"f1":1,"f2":"foo"}
(1 row)

更简单一点的:
SELECT row_to_json(q) 
FROM (SELECT $$a$$ || x AS b, 
         y AS c, 
         ARRAY[ROW(x.*,ARRAY[1,2,3]),
               ROW(y.*,ARRAY[4,5,6])] AS z 
      FROM generate_series(1,2) x, 
           generate_series(4,5) y) q;
                            row_to_json                             
--------------------------------------------------------------------
 {"b":"a1","c":4,"z":[{"f1":1,"f2":[1,2,3]},{"f1":4,"f2":[4,5,6]}]}
 {"b":"a1","c":5,"z":[{"f1":1,"f2":[1,2,3]},{"f1":5,"f2":[4,5,6]}]}
 {"b":"a2","c":4,"z":[{"f1":2,"f2":[1,2,3]},{"f1":4,"f2":[4,5,6]}]}
 {"b":"a2","c":5,"z":[{"f1":2,"f2":[1,2,3]},{"f1":5,"f2":[4,5,6]}]}
(4 rows)


Via  planetpostgresql

12
1
评论 共 22 条 请登录后发表评论
22 楼 canghailan 2014-09-20 22:00
快乐的牛 写道
小功能嘛,自己实现也就几行代码了。
而且,让Ps在后台做这些事情,不一定合适;数据库本身负担变重了不说,可能影响系统的分层设计:我要转换成xml输出,难道再另外写一个 xxx_to_xml()?

这个还真有,xml和json现在实在用得太广泛了
21 楼 wearyoudog 2012-01-20 00:10
快乐的牛 写道
kjj 写道
你用过了?没用过就泼这种莫须有的脏水!!!



又没强迫你用这个功能= =不知道你在展示你的什么高屋建瓴。
20 楼 快乐的牛 2012-01-19 17:32
kjj 写道
你用过了?没用过就泼这种莫须有的脏水!!!


19 楼 baungham 2012-01-19 16:59
这个功能一下省了好多事,强大!!!不知性能如何?
18 楼 kjj 2012-01-19 16:39
快乐的牛 写道
kjj 写道
快乐的牛 写道
小功能嘛,自己实现也就几行代码了。
而且,让Ps在后台做这些事情,不一定合适;数据库本身负担变重了不说,可能影响系统的分层设计:我要转换成xml输出,难道再另外写一个 xxx_to_xml()?

会用数据库不!!
人家强迫你一定用json了吗?

你会不会用数据库啊!
不是强迫的问题,这只是一个额外的功能,你用了,可能不一定合适的,明白?

可能不一定合适? 什么可能?
你用过了?没用过就泼这种莫须有的脏水!!!
17 楼 快乐的牛 2012-01-19 12:23
kjj 写道
快乐的牛 写道
小功能嘛,自己实现也就几行代码了。
而且,让Ps在后台做这些事情,不一定合适;数据库本身负担变重了不说,可能影响系统的分层设计:我要转换成xml输出,难道再另外写一个 xxx_to_xml()?

会用数据库不!!
人家强迫你一定用json了吗?

你会不会用数据库啊!
不是强迫的问题,这只是一个额外的功能,你用了,可能不一定合适的,明白?
16 楼 kjj 2012-01-19 11:21
快乐的牛 写道
小功能嘛,自己实现也就几行代码了。
而且,让Ps在后台做这些事情,不一定合适;数据库本身负担变重了不说,可能影响系统的分层设计:我要转换成xml输出,难道再另外写一个 xxx_to_xml()?

会用数据库不!!
人家强迫你一定用json了吗?
15 楼 快乐的牛 2012-01-19 08:52
小功能嘛,自己实现也就几行代码了。
而且,让Ps在后台做这些事情,不一定合适;数据库本身负担变重了不说,可能影响系统的分层设计:我要转换成xml输出,难道再另外写一个 xxx_to_xml()?
14 楼 lshoo 2012-01-18 16:19
PostgreSQL的中文文档太少啦,大牛多翻译点资料吧。
13 楼 akandfxs 2012-01-18 14:35
这个帅气的功能让我想尽快试试这个版本了。PostgreSQL真牛啊。
12 楼 lengkudelang 2012-01-18 13:39
支持一下 学习一下
11 楼 iamyuyingqiang 2012-01-18 13:15
我去,好强大,这个在web开发下能火一下啊
10 楼 kjj 2012-01-18 12:57
damoqiongqiu 写道
这功能真牛逼,反向的能不能给力?
把一个JSON串直接撸成跟数据表字段对应

那逼近nosql格式了
9 楼 kjj 2012-01-18 12:56
果断转向postgresql!!!!!!!
8 楼 damoqiongqiu 2012-01-18 12:44
这功能真牛逼,反向的能不能给力?
把一个JSON串直接撸成跟数据表字段对应
7 楼 shuaiji 2012-01-18 10:12
Welcome!
6 楼 yeak2001 2012-01-18 09:40
nice job
5 楼 paggywong 2012-01-18 09:12
  果断学习PostgreSQL,不能再托了!
4 楼 osacar 2012-01-18 02:39
我也转向postgresql了。支持!
3 楼 i_am_birdman 2012-01-17 20:52
还能再牛逼一点吗

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Postgresql学习笔记之——SQL 执行计划

    表数据读取方式 (1)全表扫描 全表扫描在Postgresql中也称为顺序扫描(seq scan),全表扫描就是把表中所有数据块从头到尾扫描一遍,然后从数据块中找到符合条件的数据块。 全表扫描在 explain 执行计划结果中用 ...

  • PostgreSql 执行计划

    explain (analyze true|false,verbose true|false,costs true|false,buffers true|false,format text|xml|json|yaml) analyze:真实执行sql获取执行计划,dml语句不想改变数据库数据可放入事务,执行完后回滚,该...

  • 《MongoDB大数据处理权威指南》读书笔记

    1.1.2天然缺少对事务的支持 数据库将不会包含事务的语义(用于保·证数据一致性和存储的元素), 1.1.3 BSON和MongoDB BSON(二进制JSON的英文简称)的开放数据格式。大多数情况下,使用BSON取代JSON并不会改变处理数据的...

  • FlinkCDC-Hudi:Mysql数据实时入湖全攻略一:初试风云

    FlinkCDC是基于Flink开发的变化数据获取组件(Change data capture),目前支持mysql、PostgreSQL、mongoDB、TiDB、Oracle等数据库的同步。 Hudi是一个流式数据湖平台,使用Hudi可以直接打通数据库与数据仓库,Hudi...

  • PostgreSQL SQL 语言:函数和操作符

    本文档为PostgreSQL 9.6.0文档,本转载已得到原译者彭煜玮授权。 1. 逻辑操作符 常用的逻辑操作符有: AND OR NOT SQL使用三值的逻辑系统,包括真、假和null,null表示"未知"。观察下面的真值表: 操作符AND和OR是...

  • my cloud test bed (by quqi99)

    c id -f value) ${VM_NAME} fixed_ip=$(openstack server show "${VM_NAME}" -caddresses -fjson |jq -r '.addresses.private[0]') public_network=$(openstack network show public -f value -c id) fip=$...

  • CDH-5.10.2集群的搭建【史上最全,不全不要钱】(已经实现,但是非预期效果,可能是由于内存不足)

    b) 之后你会发现,在/home/hadoop/.ssh 目录下生成了公钥文件 [hadoop@CDH03 ~]$ cd .ssh c) 使用一个更简单的方式,使用命令: ssh-copy-id CDH03 建立 CDH02 到 CDH03 的免密登录 d)测试ssh...

  • MySQL高级(SQL优化)

    而磁盘 I/O 需要消耗的时间很多,而在内存中进行操作,效率则会高很多,为了能让数据表或者索引中的数据随时被我们所用,DBMS 会申请 占用内存来作为数据缓冲池 ,在真正访问页面之前,需要把在磁盘上的页缓存到内存...

  • Hadoop

    当今的社会,是一个信息大爆炸的社会,社会在高速发展,科技发达,信息流通,人们之间的交流越来越密切,生活也越来越方便,大量的数据在这个高科技时代快速产生。大数据到底有多大?一组名为“互联网上一天”的数据...

  • logback+springboot实现系统日志记录到数据库

    4、logback.xml,jndi数据源,jdbc的方式只需要改下connectionSource配置就好 <!-- Example for logging into the build folder of your project --> ${pafa.log.home:-/logs}/yxdcommcc"/> value=...

  • sqoop安装使用

    数据导入1.1导入数据到hdfs1.1.1全量导入(1)全表导入,--table子句:(2)数据子集导入①--where子句:②按需导入--query子句③--column子句1.1.2增量导入1.1.2.1 Append方式1.1.2.2 LastModify方式1.1导入数据到...

  • 《Java面试题汇总》

    int是整型,是java8中的基本数据类型之一; Integer是int对应的包装类,有一个final修饰的int字段,并提供了数学运算、字int和字符串之间转换等常用的方法 Integer和String一样,也是不可变类型 查看源码可知,在...

  • 《用户画像--方法论与工程化解决方法》读后感

    1.2 数据架构4 1.3 主要覆盖模块5 1.4 开发阶段流程7 1.4.1 开发上线流程7 1.4.2 各阶段关键产出9 1.5 画像应用的落地10 1.6 某用户画像案例11 1.6.1 案例背景介绍11 1.6.2 相关元数据12 1.6.3 ...

  • 三千字教你使用MOT

    MOT SQL覆盖和限制 9.1 不支持的特性 9.2 MOT限制 9.3 不支持的DDL操作 9.4 不支持的数据类型 9.5 不支持的索引DDL和索引 9.6 不支持的DML 9.7 原生编译和轻量执行不支持的查询 1.授予用户权限 以授予数据库用户对...

  • 通向Golang的捷径【9. 包】

    Go 语言发行版中, 包含了 150 个标准包, 其中包含大部分的基本功能, 比如 fmt,os 等, 这些包也被称为标准 库, 除了一些底层包之外, 其他大部分包的文档, 都可在页面http://golang.org/pkg/中找到. 在本书的大部分...

  • 26Play框架教程2学习笔记

    5.2.3 JPA对象绑定 5.2.4 自定义绑定 5.3 结果返回 5.3.1 返回文本内容 5.3.2 返回JSON字符串 5.3.3 返回XML字符串 5.3.4 返回二进制内容 5.3.5 下载附件功能 5.3.6 执行模板 5.2.7 为模板作用域添加数据 ...

  • ExMobi®从入门到精通

    所以,它主要的功能就是对数据的集成能力。 ExMobi服务端主要包含4大组件:ExMobi管理平台(EMP)、基本核心引擎(BCS)、统一推送引擎(PNS)、统一文档转换引擎(DCS)。 EMP为ExMobi的管理平台,对ExMobi...

  • 一文读懂Go语言的net/http标准库

    比如说,如果一个网站提供了信用卡支付功能,那么按照支付卡行业数据安全标准(Payment Card Industry Data Security Standard),这个网站就必须对客户端和服务器之间的通信进行加密。像Gmail和Facebook这样带有...

  • ExMobi文档

    所以,它主要的功能就是对数据的集成能力。 ExMobi服务端主要包含4大组件:ExMobi管理平台(EMP)、基本核心引擎(BCS)、统一推送引擎(PNS)、统一文档转换引擎(DCS)。 EMP为ExMobi的管理平台,对ExMobi...

  • Python项目-自动办公-56 Word_docx_格式套用.zip

    Python课程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。

Global site tag (gtag.js) - Google Analytics