一种在不同Vertica集群之间同步数据的工具
vsync的Python项目详细描述
vSync
在不同Vertica群集之间同步数据的工具
安装方法
- 使用pip
- 使用Docker(开发中)
使用pip
一。先决条件
安装unixodbc,unixodbc dev:
基于RHEL的系统:
sudo yum install unixODBC unixODBC-devel
基于debian的系统:
sudo apt-get install unixodbc unixodbc-dev
从here
用2个DSN为源数据库和目标数据库设置odbc.ini文件
例如:
[vertica_src] Driver = /opt/vertica/lib64/libverticaodbc.so Servername = 172.18.0.2 Database = my_db Port = 5433 UserName = my_user Password = my_pass [vertica_dest] Driver = /opt/vertica/lib64/libverticaodbc.so Servername = 172.18.0.3 Database = my_db Port = 5433 UserName = my_user Password = my_pass
Note:
- Source DSN requires read only privileges, e.g:
USAGE
on schemas andSELECT
on tables. - Destination DSN requires write privileges, e.g:
CREATE
on schemas,OWNER
on tables, or theDBADMIN
role.
- Source DSN requires read only privileges, e.g:
可选:使用dbadmin,启用compressnetworkdata
SELECT set_config_parameter('CompressNetworkData',1);
可选:在某些安装中,可能需要在源数据库和目标数据库上设置Vertica导出子网:
从
获取要导出的子项的IPnetwork_interfaces
:SELECT distinct subnet FROM network_interfaces WHERE subnet NOT LIKE '127.0%';
在Vertica中创建新子网:
CREATE SUBNET export WITH '<SUBNET IP HERE>'
将此子网设置为导出的默认值:
ALTER DATABASE docker EXPORT ON export
2.安装:
pip install vsync
三。可选:添加bash autocomplete
将eval "$(_VSYNC_COMPLETE=source vsync)"
放入~/.bashrc并重新登录。
用法
概要
vsync [options] <command> [parameters]
选项
-f, --force
(布尔值):
不要要求覆盖确认。
--log-file
(字符串):
日志文件的路径。
--debug
[1 2 3]:
日志级别。
命令
sync-table-schema
将表的架构(DDL)从源DSN同步到目标DSN
参数
-s, --source-dsn
(字符串)[必需]
源DSN
-d, --dest-dsn
(字符串)[必需]
目的地DSN
-t, --table
(字符串)[必需]
要同步的表
--dest-table
(字符串)[可选]
目标表,默认为表
--sync-projections / --no-projections
(布尔值)[可选]
同步/不同步投影。默认值:真
sync-table
将表的数据从源DSN同步到目标DSN。
如果不存在,则创建表。
参数
-s, --source-dsn
(字符串)[必需]
源DSN
-d, --dest-dsn
(字符串)[必需]
目的地DSN
-t, --table
(字符串)[必需]
要同步的表
--dest-table
(字符串)[可选]
目标表。默认值:as--table
--sync-projections / --no-projections
(布尔值)[可选]
同步/不同步投影。默认值:真
sync-table-parts
将表的分区从源DSN同步到目标DSN。
如果不存在则创建分区。
参数
-s, --source-dsn
(字符串)[必需]
源DSN
-d, --dest-dsn
(字符串)[必需]
目的地DSN
-t, --table
(字符串)[必需]
要同步的表
--dest-table
(字符串)[可选]
目标表,默认为表
--sync-projections / --no-projections
(布尔值)[可选]
同步/不同步投影。默认值:真
-p, --parts
(字符串)[可选]
以逗号分隔的分区列表。默认值:所有分区