跨数据源同步数据的工具

pyFission的Python项目详细描述


核裂变

说明

py裂变在configs/裂变.py文件中定义的跨数据库同步表/模式。 如果不提供src_tablesrc_schema参数,它将同步 filiation.py通过并行调用多个bash命令来配置文件。

py裂变模块有两种同步表的方法-

  1. full:截断+表的完全同步,顾名思义
  2. 增量:基于filiation.py配置文件中提供的主键和复制键同步更改

py裂变自动检测并构建表的模式定义,包括嵌套和重复字段 对于类似json的模式,例如:-bigquery。此外,如果添加了任何新字段,py裂变会自动修补表。

开始

用法

  • 分别用db creds和sync config修改configs/custom_config.pyconfigs/filiation.py
  • 如果需要,将服务帐户私钥文件/机密添加到secrets\u存储目录
$ python -m pyfission --src [] --dest [] sync --help
usage: __main__.py pyfission [-h][--src_table SRC_TABLE][--src_schema SRC_SCHEMA][--src_db SRC_DB][--dest_table DEST_TABLE][--dest_schema DEST_SCHEMA][--dest_db DEST_DB][--method {full,incremental}][--out_format {csv,json}]

optional arguments:
  -h, --help            show this help message and exit
  --src_table SRC_TABLE
                        Overrides table definition from pyfission configs
  --src_schema SRC_SCHEMA
                        Overrides schema definition from pyfission configs
  --src_db SRC_DB       Overrides database definition from pyfission configs
  --dest_table DEST_TABLE
                        Overrides table definition from pyfission configs
  --dest_schema DEST_SCHEMA
                        Overrides schema definition from pyfission configs
  --dest_db DEST_DB     Overrides database definition from pyfission configs
  --method {full,incremental}
                        Method of Replication
  --out_format {csv,json}
                        Format of output files
  • 推荐的out_格式

    • json用于bigquery
    • csv其他人
  • 要同步特定表,请指定src_模式和src_表参数

    • dest_table将与src_table同名,除非显式指定
    • dest_schema将从dispation.py配置文件的dispation_destdict设置
    • src_dbdest_db将派生自srcdest
python -m pyfission --src [] --dest [] sync --src_table [] --src_schema [] --out_format []
  • 要同步整个数据库,只需提供srcdest参数
python -m pyfission --src [] --dest [] sync --out_format []

安装
pip install pyfission

贡献/本地安装
  1. 复制回购协议
$ git clone https://github.com/nishantnath/pyfission.git
  1. 将工作目录更改为裂变
$ cd pyfission
  1. 安装Python 3和如果它们不存在的要求
$ pip install -r requirements.txt

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

推荐PyPI第三方库


热门话题
java JTable无法向新创建的列添加值   java如何调整JEditorPane中编辑区域的大小?   Java通过反射确定未知数组中的数组大小   java Intellij Idea有时无法按其预期的方式构建应用程序   java Swing GUI带有IntelliJ错误“contentPane不能设置为null”从终端编译时   如何将这些通用方法调用从C#转换为Java   在null上找不到java属性或字段“index”   从Java HashMap获取整数值时是否需要调用intValue()方法?   java Android谷歌地图获取相机中的图像块   unix无法捕获JAVA中“who m”命令的输出   java,同时将邮件发送到“收件人”标题“我”中的多个收件人   在java中向链表添加未知数量的节点   无法为Heroku上的discord bot设置java端口   java使用Apache HttpClient进行选项请求   与元素类型“ApplicationName”关联的属性“Application Version”需要java Open quote   Android Studio Java中的两个变量求和