一次PostgreSql数据迁移,使用nodejs来完成
2014-02-08
XX开放平台不允许使用站外的服务器了,可是我们的app都在站外,数据库也在站外,全都要求迁移到其云主机上(坑爹啊)。我们在其云主机上仅有有限的资源,而且也有在运行中的数据库,要做数据迁移,正好重新清理一下数据库吧,把过期的没用的数据都转入到历史库,将原系统的数据和云主机上的数据做一次合并,打算用nodejs从站外服务读取数据,然后发送到云主机上,云主机接受数据并合并到现有系统里。站外服务器和云主机上的数据迁移都用nodejs来实现,想法确立之后,开始做一个简单设计。
为什么要选用nodejs,因为可以快速开发,快速部署,js代码写起很轻快,顺便实践一个小小的nodejs项目。
要实现的功能:
sender.js
职责:接收命令行参数,读取需要迁移的源数据,转换成message格式,发送到云主机的服务上,并在开始和结束处记录日志,程序重启可以按日志断点续传。
receiver.js (云主机只有80端口开放,用apache做一个proxy)
职责:接受源数据,保存message到数据库,并返回结果给sender。
processer.js
职责:定时轮询读取message数据,有未处理的数据,则处理数据整合逻辑(合并用户ID,合并用户数据等)
2014-02-09
由于我们的数据库都是Postgresql,服务器都是CentOS,开发环境在Win7,先安装开发环境和生产环境的nodejs环境
(1)在Linux下安装nodejs,以及node-postgresql,比较简单,参见我的另一篇博客。
(2)在Win7下安装nodejs,以及node-postgresql,稍微麻烦,需要安装Python 2.7,还需要安装node-gyp,为了能安装node-postgresql 还需要安装VC++,我安装的是VC++2010 Express,都安装好了之后,测试一下,node-postgresql能正常工作。
至此工作环境准备完毕,接下来开始进入模块的简单设计阶段。
传输过程中的数据结构Json格式:
message.type: 数据名
message.content: 数据内容
至此貌似云主机上接受数据使用mongodb比较合适,在接下来的设计和实践中再做比较和决策。
(待续)
一次PostgreSql数据迁移,使用nodejs来完成的更多相关文章
- postgresql数据迁移
postgresql从库故障准备新库 1,创建用户[root@localhost home]# userdel postgres[root@localhost home]# groupdel post ...
- PostgreSQL 数据迁移
新主机PostgreSQL需要事先建立和原主机名称相同的用户和数据库. 备份原主机数据库 pg_dump -U <UserName> -p <PortNum> <DBNa ...
- nodejs简单数据迁移demo
近期做数据迁移,采用nodejs框架,数据库为mysql.作为一枚菜鸟,在编码过程中,遇到众多奇葩问题,感谢民少给予的支持. 由于旧数据库中的数据,在之前设计中存在众多不合理的情况,因此在数据迁移中, ...
- postgresql 不同数据库不同模式下的数据迁移
编写不容易,转载请注明出处谢谢, 数据迁移 因为之前爬虫的时候,一部分数据并没有上传到服务器,在本地.本来用的就是postgresql,也没用多久,数据迁移的时候,也遇到了很多问题,第一次使pg_du ...
- 关于hdfs 和hive的数据迁移
1. 迁移hdfs,使用hadoop 命令 hadoop distcp -pugp hdfs://localhost:9000/ hdfs://localhost:9000/ 此处示例仅作说明用 2 ...
- 阿里云 RDS实例间的数据迁移
使用数据传输DTS可以实现两个RDS实例间的数据迁移.对于支持增量迁移的存储引擎,还可以使用DTS在源RDS实例不停服的情况下,将数据迁移到目标RDS实例.目前对于RDS不同存储引擎,只支持同构迁移( ...
- gitlab数据迁移到docker容器
需求:想把服务器上的gitlab迁移到docker容器里面注意:gitlab的迁移,必须保持gitlab的版本一致,此处使用的是:8.4.3,数据库版本和类型一致,此处使用的是postgresql 9 ...
- Neo4j ETL工具快速上手:简化从关系数据库到图数据库的数据迁移
注:本文系从https://medium.com/neo4j/tap-into-hidden-connections-translating-your-relational-data-to-graph ...
- 项目案例之GitLab的数据迁移
项目案例之GitLab的数据迁移 链接:https://pan.baidu.com/s/1CgaEv12cwfbs5RxcNpxdAg 提取码:fytm 复制这段内容后打开百度网盘手机App,操作更方 ...
随机推荐
- USB枚举过程(1)
总的过程 ① host检测到device,reset 获取设备描述符 host发获取设备描述符请求 ->setup ->data0 <-ack Divice 返回设备描述符 -> ...
- POJ 3254 Corn Fields (状压dp)
题目链接:http://poj.org/problem?id=3254 给你n*m的菜地,其中1是可以种菜的,而菜与菜之间不能相邻.问有多少种情况. 状压dp入门题,将可以种菜的状态用一个数的二进制表 ...
- 备份Xcode6的配色主题以及代码模板
~/Library/Developer/Xcode/UserData/FontAndColorThemes ~/Library/Developer/Xcode/UserData/CodeSnippet ...
- UI:target-action设计模式、手势识别器
⼀.target/action设计模式 ⼆.代理设计模式 三.UIImageView 四.⼿势识别器 target/action设计模式 耦合是衡量⼀个程序写的好坏的标准之⼀, 耦合是衡量模块与模块之 ...
- mysql修改用户密码 新增用户
修改密码: mysql> grant all privileges on *.* to yongfu_b@'192.168.1.%' identified by 'my_password_new ...
- cocos2dx shader实现灰度图android后台切换回来导致图像偏移的问题
转自:http://www.tuicool.com/articles/U3URRrI 项目中经常会遇到将一张图像处理成灰色的需求,为了节省资源,一般不会让美术再做一套同样的灰度图,通常会通过代码处理让 ...
- poj3250 Bad Hair Day
Description Some of Farmer John's N cows (1 ≤ N ≤ 80,000) are having a bad hair day! Since each cow ...
- hdu 3339 In Action 背包+flyod
In Action Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=333 ...
- 【JavsScript】推荐五款流行的JavaScript模板引擎
摘要:Javascript模板引擎作为数据与界面分离工作中最重要一环,受到开发者广泛关注.本文通过开发实例解析五款流行模板引擎:Mustache.Underscore Templates.Embedd ...
- [CSS3 Animation] TweenMax.staggerTo()
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...