跨数据源同步数据的工具
pyFission的Python项目详细描述
核裂变
说明
py裂变在configs/裂变.py文件中定义的跨数据库同步表/模式。 如果不提供src_table和src_schema参数,它将同步 filiation.py通过并行调用多个bash命令来配置文件。
py裂变模块有两种同步表的方法-
- full:截断+表的完全同步,顾名思义
- 增量:基于filiation.py配置文件中提供的主键和复制键同步更改
py裂变自动检测并构建表的模式定义,包括嵌套和重复字段 对于类似json的模式,例如:-bigquery。此外,如果添加了任何新字段,py裂变会自动修补表。
开始
用法
- 分别用db creds和sync config修改configs/custom_config.py和configs/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_db和dest_db将派生自src和dest
python -m pyfission --src [] --dest [] sync --src_table [] --src_schema [] --out_format []
- 要同步整个数据库,只需提供src和dest参数
python -m pyfission --src [] --dest [] sync --out_format []
安装
pip install pyfission
贡献/本地安装
- 复制回购协议
$ git clone https://github.com/nishantnath/pyfission.git
- 将工作目录更改为裂变
$ cd pyfission
- 安装Python 3和如果它们不存在的要求
$ pip install -r requirements.txt
- 复制回购协议
$ git clone https://github.com/nishantnath/pyfission.git
- 将工作目录更改为裂变
$ cd pyfission
- 安装Python 3和如果它们不存在的要求
$ pip install -r requirements.txt