Snova是腾讯云上的一款数仓产品,兼容Greenplum 开源数据仓库,是一种基于 MPP(大规模并行处理)架构的数仓服务。
由于Snova兼容Greenplum(以下简称GP),并且提供了很多开源GP不具备的特性和服务,因此建议自建GP用户将应用迁移到Snova,本文详细描述了自建GP用户迁移到Snova的过程和注意事项。
首先根据自己的业务情况到申请页面选购对应的集群。
目前Snova支持2种类型的集群,具体可以参考计费概述,如果现有机型不满足需求,比如数据量特别大,也可以通过提交工单的方式描述自己的业务需求,Snova技术人员将会与您对接,尽可能满足您的业务需求。
role需要单独操作,并放在最前面,因为后面的schema会涉及到owner问题。所以需要在数据库中提前创建好对应的role。
查看原集群的role,可以通过如下:
select * from pg_roles
也可以通过pg_dumpall导出原集群的role信息,如下:
pg_dumpall --gp-syntax --schema-only -h {host} -p {port} -U {username} -f {filename}
其中导出的file内容里就有role相关信息,可以直接拷贝执行。
注意:由于安全考虑,Snova云数仓用户使用的最高权限用户就是创建集群的时候指定的管理账号,不能创建具有superuser权限的用户,因此原集群superuser用户将无法迁移过来。
首先需要手动在Snova创建目标数据库,语句如下:
CREATE DATABASE {databasename}
然后导出原数据库Schema,建议使用pg_dump工具,逐个数据库迁移,语句如下:
pg_dump --gp-syntax --schema-only -h {host} -p {port} -U {username} -f {filename}
最后在Snova数据库执行,语句如下:
psql -h {host} -U {username} -p {port} -f {filename}l -d {databasename}
数据的迁移相对复杂一些,需要根据实际情况制定不同的策略:
这里数据迁移的一般原则如下:
迁移工具:
上面讲到一些基本的迁移原则,下面会详细讲一下迁移数据用到的工具。
pg_dump --gp-syntax --data-only -Fc -h {host} -p {port} -U {username} -f {filename} {databasename}
以上命令会导出数据库数据到指定的文件,文件是私有格式,并且经过压缩,只能使用pg_restore进行还原,还原数据语法如下:
pg_restore -h {host} -p {port} -U {username} -d {databasename} {filepath}
如果原集群有使用到资源队列,可以通过Snova的控制台进行创建,具体可参见管理资源队列
如果原集群有配置pg_hba.conf文件来限制访问,可以通过Snova的控制台进行配置,具体参见管理 IP 白黑名单
大多数情况,我们只需要修改业务访问的ip即可。但有些场景可能更为复杂,比如您使用了gpload和gpfdist来进行周期性的ETL工作。
对于使用gpload和gpfdist的用户可以考虑以下2种迁移方式:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。