{ "info": { "author": "Yahel Agassi", "author_email": "yahel2410@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7" ], "description": "# vsync\n\nA tool to sync data between dissimilar Vertica clusters\n\n\n## Installation Methods\n- using pip\n- using docker (in development)\n\n\n## Using pip\n\n### 1. Prerequisites\n- Install unixodbc, unixodbc-dev:\n\n RHEL based systems:\n\n `sudo yum install unixODBC unixODBC-devel`\n\n Debian based systems:\n\n `sudo apt-get install unixodbc unixodbc-dev`\n\n- Install official Vertica client from [here](https://www.vertica.com/download/vertica/client-drivers/)\n\n\n\n- Setup odbc.ini file with 2 DSNs, for source DB and destination DB\n\n For example:\n ```\n [vertica_src]\n Driver = /opt/vertica/lib64/libverticaodbc.so\n Servername = 172.18.0.2\n Database = my_db\n Port = 5433\n UserName = my_user\n Password = my_pass\n\n [vertica_dest]\n Driver = /opt/vertica/lib64/libverticaodbc.so\n Servername = 172.18.0.3\n Database = my_db\n Port = 5433\n UserName = my_user\n Password = my_pass\n\n ```\n\n > Note: \n > - Source DSN requires read only privileges, e.g: `USAGE` on schemas and `SELECT` on tables. \n > - Destination DSN requires write privileges, e.g: `CREATE` on schemas, `OWNER` on tables, or the `DBADMIN` role.\n\n- Optional: with dbadmin, enable CompressNetworkData\n\n `SELECT set_config_parameter('CompressNetworkData',1);`\n\n\n\n- Optional: In some installations you may need to setup Vertica export subnet on both source and destination DBs:\n 1. Get the subent's IP you wish to export on from `network_interfaces`:\n\n `SELECT distinct subnet FROM network_interfaces WHERE subnet NOT LIKE '127.0%';` \n 2. Create new subnet in Vertica:\n\n `CREATE SUBNET export WITH ''`\n 3. Set this subnet as default for export:\n\n `ALTER DATABASE docker EXPORT ON export`\n\n\n### 2. Install:\n`pip install vsync`\n\n\n### 3. Optional: Add Bash Autocomplete\n\nput `eval \"$(_VSYNC_COMPLETE=source vsync)\"` in ~/.bashrc and re-login.\n\n\n## Usage\n### Synopsis\n`vsync [options] [parameters]` \n\n### Options\n`-f, --force` (boolean): \n\nDo not ask for override confirmation.\n\n`--log-file` (string): \n\nPath to log file.\n\n\n`--debug` [1|2|3]: \n\nLog level.\n\n\n### Commands\n### `sync-table-schema`\nSync table's schema (DDL) from source DSN to destination DSN \n\n#### Parameters\n`-s, --source-dsn` (string) [required]\n\nSource DSN\n\n\n`-d, --dest-dsn` (string) [required] \n\nDestination DSN\n\n\n`-t, --table` (string) [required]\n\nTable to sync\n\n\n`--dest-table` (string) [optional]\n\nDestination table, default as TABLE\n\n\n`--sync-projections / --no-projections` (boolean) [optional] \n\n Sync / don't sync projections. Default: true\n\n\n### `sync-table`\nSync table's data from source DSN to destination DSN. \n\nCreates the table if not exists.\n\n#### Parameters\n`-s, --source-dsn` (string) [required]\n\nSource DSN\n\n\n`-d, --dest-dsn` (string) [required] \n\nDestination DSN\n\n\n`-t, --table` (string) [required]\n\nTable to sync\n\n\n`--dest-table` (string) [optional]\n\nDestination table. Default: as --table\n\n\n`--sync-projections / --no-projections` (boolean) [optional] \n\n Sync / don't sync projections. Default: true\n\n\n### `sync-table-parts`\nSync table's partitions from source DSN to destination DSN. \n\nCreates the partitions if not exists.\n\n\n#### Parameters\n`-s, --source-dsn` (string) [required]\n\nSource DSN\n\n\n`-d, --dest-dsn` (string) [required] \n\nDestination DSN\n\n\n`-t, --table` (string) [required]\n\nTable to sync\n\n\n`--dest-table` (string) [optional]\n\nDestination table, default as TABLE\n\n\n`--sync-projections / --no-projections` (boolean) [optional] \n\n Sync / don't sync projections. Default: true\n\n`-p, --parts` (string) [optional] \n\nComma seperated list of partitions. Default: all partitions\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/vsync/vsync", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "vsync", "package_url": "https://pypi.org/project/vsync/", "platform": "", "project_url": "https://pypi.org/project/vsync/", "project_urls": { "Homepage": "https://gitlab.com/vsync/vsync" }, "release_url": "https://pypi.org/project/vsync/1.0.1/", "requires_dist": [ "pyodbc", "click (>=7)", "configparser" ], "requires_python": "", "summary": "A tool to sync data between dissimilar Vertica clusters", "version": "1.0.1" }, "last_serial": 4450196, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "07d238b5ed1313fd51e15cce050e242f", "sha256": "1b2c95c3cfac1e5c4d5d996f3103ff4e5a44c737830d992cf38d293b4912d375" }, "downloads": -1, "filename": "vsync-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "07d238b5ed1313fd51e15cce050e242f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 21392, "upload_time": "2018-10-27T14:48:10", "url": "https://files.pythonhosted.org/packages/62/2e/3d86dff6ac165ea11bb2dde3badba0ad3fec78ff1b26fb0c092e3d2a52fd/vsync-1.0.0-py2-none-any.whl" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "a652ba783b9a4f8f62ce9a0d16bdd54c", "sha256": "fdb0d611a687b0ccf2851be94167ea51a1379c13287c1b14f799cdc996e635e1" }, "downloads": -1, "filename": "vsync-1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "a652ba783b9a4f8f62ce9a0d16bdd54c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 21406, "upload_time": "2018-11-04T17:26:53", "url": "https://files.pythonhosted.org/packages/fc/cb/1dd7692f35e4287833660b09e331f1ad6554b4b988c83ef617d84641d29c/vsync-1.0.1-py2-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a652ba783b9a4f8f62ce9a0d16bdd54c", "sha256": "fdb0d611a687b0ccf2851be94167ea51a1379c13287c1b14f799cdc996e635e1" }, "downloads": -1, "filename": "vsync-1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "a652ba783b9a4f8f62ce9a0d16bdd54c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 21406, "upload_time": "2018-11-04T17:26:53", "url": "https://files.pythonhosted.org/packages/fc/cb/1dd7692f35e4287833660b09e331f1ad6554b4b988c83ef617d84641d29c/vsync-1.0.1-py2-none-any.whl" } ] }