一种在不同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 and SELECT on tables.
    • Destination DSN requires write privileges, e.g: CREATE on schemas, OWNER on tables, or the DBADMIN role.
  • 可选:使用dbadmin,启用compressnetworkdata

    SELECT set_config_parameter('CompressNetworkData',1);

  • 可选:在某些安装中,可能需要在源数据库和目标数据库上设置Vertica导出子网:

    1. network_interfaces

      获取要导出的子项的IP

      SELECT distinct subnet FROM network_interfaces WHERE subnet NOT LIKE '127.0%';

    2. 在Vertica中创建新子网:

      CREATE SUBNET export WITH '<SUBNET IP HERE>'

    3. 将此子网设置为导出的默认值:

      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(字符串)[可选]

以逗号分隔的分区列表。默认值:所有分区

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
生成的代码为什么在无人机中使用Java是不安全的?   java实体继承和鉴别器列   java使用Struts 2中sj:datepicker的beforeShow事件   JavaMaven没有安装pom文件中的所有内容,导致“缺少必需的库”x124   java将自定义GIF从assets文件夹加载到recyclerview 安卓中   java实现稀疏数组   java在获得所需结果集后关闭连接对象   java在活动中将数组值添加到MClickListener()   java如何删除单元格工厂引用   java字符串。分号分隔   Java抽象和接口   java Intellij IDEA SLF4J:未能加载类“org.SLF4J.impl.StaticLoggerBinder”   java改造JsonArray recyclerview异常   JavaJUnit@Theory:有没有方法抛出有意义的异常?   如何在Java中将XML内容写入字符串?