6月23日直播:《NoSQL、RDS和大数据异构融合实战》

  1. 云栖社区>
  2. 博客列表>
  3. 正文

6月23日直播:《NoSQL、RDS和大数据异构融合实战》

云栖徒骇 2016-05-31 14:05:08 浏览17210 评论0

摘要: 6月23日晚8点直播:《NoSQL、RDS和大数据异构融合实战》

欢迎报名在线培训,专家全程在线答疑:https://yq.aliyun.com/webinar/join/18 ,为你详解PostgreSQL FDW原理——PostgreSQL的外部表功能,当前已经支持包括MongoDB、Redis、MySQL等近30种外部数据源,并分享在金融、物联网等领域的案例。


PostgreSQL是有着40年历史以核心交易型事务处理为发展重心的关系型数据库,在NewSQL时代它除了支持JSON、GIS等丰富功能外还提供FDW外部数据通道功能,让NoSQL、Big Data实现异构融合。本次在线分享将为大家重点介绍FDW原理,并结合金融报文处理、物联网数据整合、企业并购重组场景下的案例,展现“SQL Everything”的理念如何提高开发效率。

内容大纲

  1. Why Postgres why FDW
  2. FDW: SQL Everything加速传统行业转型
  3. FDW: 金融报文处理
  4. FDW: 物联网数据整合
  5. FDW: 企业并购重组

分享时间:2016年6月23日20点

报名地址https://yq.aliyun.com/webinar/join/18

讲师介绍:萧少聪(铁庵),Postgres中国用户会2016年主席,阿里云ApsaraDB数据库产品经理,负责PostgreSQL、PPAS(高度兼容Oracle)及数据库一体机方案。

重要提示

活动流程:在线报名 —— 报名完毕获得直播地址 —— 观看视频 —— 问答互动 —— 结束

提示:

  • 直播过程中,大家可以随时在直播页面留言提问
  • 进入问答环节时,分享嘉宾会在线回复大家的问题
  • 报名过程中,请您务必填写真实信息以确保顺利参加
  • 欢迎推荐您的朋友同事参加,并转发本活动到微博、朋友圈

内容预览

JSON是互联网及物联网中使用最为广泛的数据传输数据类型,相比XML有着存储空间少、处理性能高、易于解读的优点。业界在处理JSON数据时大多会使用MongoDB,可以说MongoDB是JSON文档据库的最佳实践。然而,不同于互联网企业,对于很多传统企业而数据库操作的标准是SQL,同时由于MongoDB不支持ACID数据强一致性,因此传统企业很难将全部业务迁移到MongoDB。这就迫使传统企业在进行互联网或物联网转型的过程中,开发同时支持RDS关系型数据库和MongoDB数据库的应用系统,导致开发人员在开发过程中需要大量的数据转换,大大增加开发的工作量。

4172d9eb8986af407ca9143c7f049edb5e2a4ef6

PostgreSQL在数据库中直接支持JSON数据类型,基于RDS关系型数据库ACID数据强一致性的保障下,实现JSON在SQL中的应用。开发者可以十分方便地在现有的表结构中添加JSON字段,或单独设计JSON表,并与原有的关系型表结构进行直接的SQL操作,以降低开发难度及功作量。同时PostgreSQL还支持针对某一JSON属性的索引以提高查询性能,如上图中,如果json_data.data->>'name'是经常要进行查询的字段,我们就可以为他单独建立索引。另外PostgreSQL中还支持众多JSON的处理函数,如:row_to_json、json_to_record、json_typeof等以方便用户进行JSON的数据处理。

当然MongoDB有着很好的扩展性及对Node.js的易用性,如果你们系统已经在使用MongoDB,同时又希望简化一些程序开发的工作,你也可以使用PostgreSQL的FDW实现异构数据库的融合,这也是本课题的重点。

a7e33b22c05ad46ecebaac83e0c04b33c6f7a10e

FDW全称(Foreign-Data Wrapper),简单来说就是PostgreSQL中的外部表功能,不同于其它数据的库外部表功能,得益于PostgreSQL源代码的开放性,当前已经支持包括:MongoDB、Redis、MySQL、SQL Server、Oracle、Hadoop、Hive、Elastic Search等近30种不同的外部数据源(参考:https://wiki.postgresql.org/wiki/Foreign_data_wrappers)。

例如通过以下几步即可将MongoDB作为PostgreSQL的一个FDW外部数据源:

1、引入mongo_fdw扩展模块

CREATE EXTENSION mongo_fdw;

2、建立与MongoDB数据库服务器的连接

CREATE SERVER mongo_server
    FOREIGN DATA WRAPPER mongo_fdw
    OPTIONS (address '172.24.39.129', port '27017');

3、登陆到MongoDB数据库

CREATE USER MAPPING FOR postgresql
    SERVER mongo_server
    OPTIONS (username 'mongo', password 'mongo');

4、将MongoDB中的数据,绑定成为PostgreSQL的一张外部表

CREATE FOREIGN TABLE mongo_data(
    name text, brand text, type text) 
    SERVER mongo_server 
    OPTIONS ( database 'benchmark', collection 'json_tables');

5、通过PostgreSQL实现基于SQL的MongoDB操作

INSERT INTO mongo_data(name, brand, type)  VALUES('iphone6 phone','Apple Inc','phone');

SELECT* FROM mongo_data WHERE brand='Apple Inc';
_id | name | brand |type 
--------------------------+----------------+-----------+-------
749287491203891 | rds | Aliyun | service

UPDATE mongo_data SET brand='Aliyun.com' WHERE brand='Aliyun';
SELECT * FROM mongo_data WHERE brand='Aliyun.com';
_id | name | brand |type 
--------------------------+----------------+---------------+-------
749287491203891 | rds | Aliyun.com | service

通过以上例子,我们可以看到PostgreSQL的FDW功能,几乎任何外部数据源都可以成为PostgreSQL数据库中的一张数据表(包括:CSV文本文件、Excel表格文件)。我们可以通过标准的SQL语句对这些外部数据源进行Insert、Update、Delete、Select操作,实现对外部数据源的控制。在进行Select操作过程中,FDW还提供了将查询因子下发到外部数据源进行处理的功能。当外部数据源是一个可计算的数据库时,可以将查询条件直接推送给外部数据源,远端只返回少量的查询后的结果,然后返回给PostgreSQL做进一步的数据汇总。

基于FDW,PostgreSQL可以解决很多业务场景的问题,有效降低传统企业响互联网、物联网转型过程中新应用的开发周期,从而加速传统行业转型效率。简单介绍FDW在“物联网数据整合”过程中的应用,更多场景,如:“金融报文处理”、“企业并购重组”中FDW的应用方法,请报名参加6月23日晚8点云栖社区中的的直播。

c65777d6a7954c0270f115967fe3eef3e4e42b18

物联网应用中牵涉到众多数据系统,他们用于处理不同的数据模型,如前端设备基于JSON的数据会通过MongoDB进行信息交互,后端会要求整合后存放到MySQL或汇总到Hadoop进行离线分析。这使得开发任务一开始就变得十分复杂,开发人员必须掌握众多数据源处理技术后才能完成程序编码工作。这就直接导致企业在实例物联网转型中需要进行大量的前期准备工作,应用及新需求无法快速实现及迭代,导致错失市场先机。

e052072cff450eb7438a6ec1dc85750c59e38609

通过FDW功能,用户利用PostgreSQL作为数据源间的管理器,传统企业进行转型的过程中,可以先通过此方案进行高效SQL开发,以开发新的业务系统快速占领市场。然后再研究局部业务的性能优化,通过直接编码方式,对MongoDB、Hadoop等数据源进行直接的高性能操作。由此让项目实现阶梯式开发迭代,让现有的开始人员以最便捷的方式编写程序代码完成业务功能,然后再进行性能优化为未来业务市场扩大进行准备。

在这里PostgreSQL除了承载数据库连接器功能外,也提供了十分丰富的功能。例如,图中提到的PostGIS引擎,可以协助用户在物联网应用中实现复杂的地理信息处理处理。

699ac4a5eb42f606709c7b4a9abbac5e6e4bb197

PostGIS在对象关系型数据库PostgreSQL上增加了存储管理空间数据的能力,相当于Oracle的spatial部分。PostGIS最大的特点是符合并且实现了OpenGIS的一些规范,是最著名的开源GIS数据库引擎。PostGIS支持所有OGC规范的“Simple Features”类型,同时在此基础上扩展了对3DZ、3DM、4D坐标的支持。PostGIS支持所有的空间数据类型,这些类型包括:点(POINT)、线(LINESTRING)、多边形(POLYGON)、多点(MULTIPOINT)、多线(MULTILINESTRING)、多多边形(MULTIPOLYGON)和集合对象集(GEOMETRYCOLLECTION)等。

PostgreSQL被誉为“全球最先进的开源数据库”,从多功能我们也只能介绍冰山一角,想要了解PostgreSQL FDW再详细的用法,请报名参加6月23日晚8点云栖社区中的的直播。


往期回顾

用云栖社区APP,舒服~

【云栖快讯】诚邀你用自己的技术能力来用心回答每一个问题,通过回答传承技术知识、经验、心得,问答专家期待你加入!  详情请点击

网友评论

云栖徒骇
文章78篇 | 关注264
关注
RDS是一种稳定可靠、可弹性伸缩的在线数据库服务。支持MySQL、SQL Server、Po... 查看详情
基于领先的内容接入与分发网络和大规模分布式实时转码技术打造的音视频直播平台,提供便捷接入、高... 查看详情
基于飞天分布式系统和高性能存储,提供三节点副本集的高可用架构,容灾切换,故障迁移完全透明化。... 查看详情
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效... 查看详情
阿里云总监课正式启航

阿里云总监课正式启航