炮灰到精英的必备神器-PGSQL快速导入表新特性

简介:

因为不知道PostgreSQL 9.5 IMPORT FOREIGN SCHEMA的新特性,坚守传统方法,小明在职场上成为了同事小强的炮灰。今天高强老师为你具体介绍如何运用PostgreSQL 9.5快速导入外部表的新特性,赶紧来看看吧,不知道你就out了。

 

 

在一个风和日丽,没有雾霾的早上,技术部领导把小明叫到了办公室,问:“兄弟,我想在新的系统上查询一下在用的生产系统的数据,有没有比较快速、方便的方法?新的用的PG的数据库有这种方案吗?”

 

小明:“领导,把数据从生产系统中导出,然后导入到新系统不就OK?”

 

领导:“比较快速、方便的方法有没有?”

 

小明:“领导,把数据从生产系统中导出,然后导入到新系统就很快。”

 

领导:“更快速、方便的方法有没有?”

 

小明:“领导,把数据从生产系统中导出,然后导入新系统就已经很快了!”

 

领导对于小明复读机似的回答有些恼火,按耐住心中的不耐烦,问了一句:“导入外部表需要做什么准备工作吗?”

 

 

小明胸有成竹的讲:“领导,就是实现创建好ddl就行。”

 

领导认真的问到:“一共多少张表?”

 

小明有些不确定:“200张?”

 

领导有些惊讶:“这么多?!”

 

小明突然又想起了些什么,小声的说:“领导... ...我刚想起来...还有一个用户,里面大概有300张表...”( -__-|||)(声音小的连他自己都快听不到了)

 

领导有点沉不住气了:“滚出去!”

 

小明红着脸说:“领导!你听我说...”

 

领导这次彻底的被点燃了:“滚出去!!!”

 

 

小明默默的在外面帮领导关上了门... ...

 

领导已经气的不行,此时老板的电话已打过来:“怎么样?搞定没?”

 

领导:“没问题,老板,稍等片刻!”

 

老板:“好的,搞好了说一声,好跟客户介绍咱们新开发的系统,起码有个查询体验,等你消息!抓紧。”

 

领导此时想起了公司新来的同事小强,虽然小强平时看起来比较逗逼和活泼,但是小强已经是公司为数不多做数据库的员工了。领导想好了如何跟老板解释系统开发进度慢,拖延体验时间的解释。抱着试试看的心态,传召了小强,表达了在此情景下的需求。

 

小强:“领导,这个问题,我不敢保证能做好,我尽力。”

 

领导:“平时看你活泼夸张,今天说话有所保留;说说看,你有什么思路?”

 

小强:“领导,不动数据库什么玩笑我都敢开,真刀真枪干事儿了,不来那些没用的话。我前段时间看到PostgreSQL 9.5有个新特性,可以简单的导入外部表,按模式导入,我觉得可以尝试一下。”

 

领导:“好,去做吧,注意操作谨慎,别粗心。”

 

小强:“知道了,半个小时内给您回消息,不论成功还是失败,都即时汇报给您。”

 

小强出门后,领导点了一颗烟,静待平时看起来“不靠谱”的小强。

 

同时,领导也在想,小强说的方法理论上听起来确实不错,不知道放在实践中如何,他对比了一下两位员工的方案:

 

小明的方案:

 

 

小强的方案:

 

 

小强回到工位上,倒了杯水,心理有一些压力,尽管自己刚测试过新功能(导入外部模式),但是心理还是很紧张,因为他觉得要对领导的信任负责任,要对生产系统的稳定运行负责任,这绝对不是平时打打闹闹、说说笑笑之类的胡闹。

 

他打开笔记本,深吸了一口气,谨慎的进行了操作:

 

1.确定一下新环境的数据库版本:

 

 

2.创建基于用户的模式:

 

 

3.安装postgres_fdw插件:

 

 

4.创建外部服务器对象:

 

 

5.创建用户映射对象:

 

 

连接到生产库看一下生产库的表信息:

 

 

6.远程导入整个schema:

 

 

7.查看新系统表状态:

 

 

8.调整属主和权限:

 

 

9.验证数据量:

 

 

数据已经导入到了新的系统中,小强立刻给领导打电话通报。

 

领导:“不错,小强,如果上面要求屏蔽掉某些敏感的表或者是只提供基础数据好实现吗?”

 

小强:“没问题,我给你我的测试报告吧,最近刚做的。”

 

测试报告:

 

在源端创建2个新的表:

 

 

排除某个表:

 

 

查看一下导入效果:

 

 

已经排除表summary。

 

删掉目标库的表,再测试一下包含某个表的用法:

 

 

领导:“谢谢你,小强,回去工作吧”

 

说着,领导拨通了小明的电话,心想还是要维系好同事关系,多一份人脉,多很多机会,再说小明也是老员工了,刚才对他发火也有些冲动。

 

小明进了办公司,领导微笑着,说:“小明,刚才事出紧急,有些急躁,抱歉。”

 

小明:“领导,没关系,确实是我技术不精,以后多多学习!”

 

领导:“刚才小强把表都整过来了,我看查询有些慢,你给看一下原因。”

 

小明:“好的领导,我收集一下信息,完事儿立刻给你汇报!”

 

小明回到工位执行了几条命令,收集了一下性能方面的信息:

 

在新系统上:

 

 

在生产系统的服务器看:

 

 

小明把以上信息提交给了领导,解释说:”领导,你看收集到的信息显示,远程的表查询起来就是慢,看来这功能还是不靠谱啊,我建议还是用我的方案,导数据,或者可以买第三方软件进行同步数据,把数据实时同步到本地。”

 

领导:”小明...老师...公司花钱请你来是让你给个报告然后告诉老板要花钱买新产品的吗?那还用你做啥?同步数据可以用HotStandby,还用第三方软件?你一个导数据的方案想通吃所有项目?!目前这查询速度客户是可以接受的,并不是相对速度慢就是不可以好吗?!!想要查远程数据并且提升一下性能可以用物化视图好吗?!!!“

 

小明:”领导,不好意思...物化视图是...什么?“

 

领导:”滚出去!!!“

 

 

外部表在查询速度上还是有一定的延迟的,如果在项目中可以接受实际的查询速度就OK。如果接受不了,可以尝试使用物化视图,当然还有很多方案,方法总比困难多~~~

 

作者介绍:高强

  • 【DBA+社群】联合发起人

  • SDOUG核心成员,ITPUB 名人堂嘉宾。

  • Oracle用户组年轻专家。ChinaUnix 社区 Oracle 板块版主,ChinaUnix 社区博客专家。

  • 优酷网认证音乐牛人:EricGuitar。



本文来自云栖社区合作伙伴"DBAplus",原文发布时间:2016-01-19

目录
相关文章
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。
1063 1
|
9月前
|
移动开发 前端开发 UED
React 音频预览组件:Audio Preview
本文介绍如何使用 React 构建音频预览组件,涵盖基础实现、常见问题及解决方案。通过 HTML5 `<audio>` 标签和 React 状态管理,实现播放控制。解决文件路径、浏览器兼容性等问题,并优化性能,避免状态不同步和内存泄漏,提升用户体验。
220 22
|
9月前
|
监控 图形学
Unity 倒计时的实现
在 Unity 中实现倒计时功能,主要利用 `Time.deltaTime` 进行精确的时间计算和监控。本文介绍两种常见实现方法:一是通过 `WaitForSeconds(1)` 每秒递减时间,二是基于 `Update()` 函数每帧减去 `Time.deltaTime`。代码中包含详细的注释和示例,需确保挂载 Text 组件以显示倒计时。
|
9月前
|
人工智能 并行计算 Java
一文彻底搞清楚数字电路中的运算器
运算器(ALU)是数字电路的核心组件,负责执行算术和逻辑运算。其设计直接影响计算机系统的性能与效率。本文详细介绍了运算器的基本结构、功能分类、设计原理及实现方法。通过分析1位全加器、多位加法器、减法器的设计,结合74LS181N芯片和Logisim仿真工具的应用,展示了4位加/减法运算器的实现案例。同时探讨了多级运算器集成、标志位应用及现代优化方向,如超前进位加法器和并行计算技术。运算器的设计需兼顾功能完备性和性能优化,未来将向更高集成度和更低功耗发展。
1127 0
|
11月前
|
安全 物联网安全 物联网
IoT安全危机:智能家居的隐秘威胁
随着物联网技术的发展,智能家居日益普及,但其安全隐患也逐渐显现。本文探讨了智能家居的安全现状、风险及防范措施,强调了企业和用户共同提升安全意识的重要性,旨在构建一个安全可靠的智能家居环境。
|
12月前
|
人工智能 自然语言处理 自动驾驶
AutoGLM的一小步,人机交互进化的一大步
55年前,阿姆斯特朗登月时说:“这是个人的一小步,却是人类的一大步。”如今,这句话被用来形容智谱的AutoGLM。11月29日,智谱发布了AutoGLM Web、GLM-PC等产品,标志着AI从对话机器人进化为能自主执行复杂任务的智能体。AutoGLM能跨应用操作、执行超长任务,甚至支持“无人驾驶”上网,预示着人机交互新时代的到来。
296 2
|
物联网 5G 调度
|
数据采集 API
快手商品数据采集神器,助你轻松获取商品详情数据
快手商品数据采集神器,助你轻松获取商品详情数据
全双工与半双工技术解析及其应用场景
本文对比了全双工和半双工两种通信模式。全双工允许双向同时传输,提高效率和实时性,适用于手机通信和5G网络,但成本较高。半双工则在单一时段内单向传输,适合共享LAN和TD-SCDMA,实现简单成本低,但实时性较差。选择模式需依据应用场景和需求平衡成本与性能。
799 4
|
开发者 Python
模块化编程:高效编程之道
模块化编程:高效编程之道

热门文章

最新文章