{ "info": { "author": "TransferWise", "author_email": "", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3 :: Only" ], "description": "# pipelinewise-tap-snowflake\n\n[![PyPI version](https://badge.fury.io/py/pipelinewise-tap-snowflake.svg)](https://badge.fury.io/py/pipelinewise-tap-snowflake)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pipelinewise-tap-snowflake.svg)](https://pypi.org/project/pipelinewise-tap-snowflake/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n[Singer](https://www.singer.io/) tap that extracts data from a [Snowflake](https://www.snowflake.com/) database and produces JSON-formatted data following the [Singer spec](https://github.com/singer-io/getting-started/blob/master/docs/SPEC.md).\n\nThis is a [PipelineWise](https://transferwise.github.io/pipelinewise) compatible tap connector.\n\n## How to use it\n\nThe recommended method of running this tap is to use it from [PipelineWise](https://transferwise.github.io/pipelinewise). When running it from PipelineWise you don't need to configure this tap with JSON files and most of things are automated. Please check the related documentation at [Tap Snowflake](https://transferwise.github.io/pipelinewise/connectors/taps/snowflake.html)\n\nIf you want to run this [Singer Tap](https://singer.io) independently please read further.\n\n### Install and Run\n\nFirst, make sure Python 3 is installed on your system or follow these\ninstallation instructions for [Mac](http://docs.python-guide.org/en/latest/starting/install3/osx/) or\n[Ubuntu](https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-local-programming-environment-on-ubuntu-16-04).\n\nIt's recommended to use a virtualenv:\n\n```bash\n python3 -m venv venv\n pip install pipelinewise-tap-snowflake\n```\n\nor\n\n```bash\n python3 -m venv venv\n . venv/bin/activate\n pip install --upgrade pip\n pip install .\n```\n\n### Configuration\n\n1. Create a `config.json` file with connection details to snowflake.\n\n ```json\n {\n \"account\": \"rtxxxxx.eu-central-1\",\n \"dbname\": \"database_name\",\n \"user\": \"my_user\",\n \"password\": \"password\",\n \"warehouse\": \"my_virtual_warehouse\",\n \"filter_dbs\": \"database_name\",\n \"filter_schemas\": \"schema1,schema2\"\n }\n ```\n\n`filter_dbs` and `filter_schemas` are optional.\n\n2. Run it in discovery mode to generate a `properties.json`\n\n3. Edit the `properties.json` and select the streams to replicate\n\n4. Run the tap like any other singer compatible tap:\n\n```\n tap-snowflake --config config.json --properties properties.json --state state.json\n```\n\n### Discovery mode\n\nThe tap can be invoked in discovery mode to find the available tables and\ncolumns in the database:\n\n```bash\n$ tap-snowflake --config config.json --discover\n\n```\n\nA discovered catalog is output, with a JSON-schema description of each table. A\nsource table directly corresponds to a Singer stream.\n\n## Replication methods\n\nThe two ways to replicate a given table are `FULL_TABLE` and `INCREMENTAL`.\n\n### Full Table\n\nFull-table replication extracts all data from the source table each time the tap\nis invoked.\n\n### Incremental\n\nIncremental replication works in conjunction with a state file to only extract\nnew records each time the tap is invoked. This requires a replication key to be\nspecified in the table's metadata as well.\n\n### To run tests:\n\n1. Define environment variables that requires running the tests\n```\n export TAP_SNOWFLAKE_ACCOUNT=\n export TAP_SNOWFLAKE_DBNAME=\n export TAP_SNOWFLAKE_USER=\n export TAP_SNOWFLAKE_PASSWORD=\n export TAP_SNOWFLAKE_WAREHOUSE=\n```\n\n2. Install python dependencies in a virtual env and run nose unit and integration tests\n```\n python3 -m venv venv\n . venv/bin/activate\n pip install --upgrade pip\n pip install .\n pip install nose\n```\n\n3. To run unit tests:\n```\n nosetests\n```\n\n## License\n\nApache License Version 2.0\n\nSee [LICENSE](LICENSE) to see the full text.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/transferwise/pipelinewise-tap-snowflake", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pipelinewise-tap-snowflake", "package_url": "https://pypi.org/project/pipelinewise-tap-snowflake/", "platform": "", "project_url": "https://pypi.org/project/pipelinewise-tap-snowflake/", "project_urls": { "Homepage": "https://github.com/transferwise/pipelinewise-tap-snowflake" }, "release_url": "https://pypi.org/project/pipelinewise-tap-snowflake/1.0.4/", "requires_dist": null, "requires_python": "", "summary": "Singer.io tap for extracting data from Snowflake - PipelineWise compatible", "version": "1.0.4" }, "last_serial": 5688312, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "e4adf344e9b088d4866f0fb5f7cbc50c", "sha256": "5766c3c355c1a543421bec5226c1912eb8baa54ab1374b4ed184ce01e170b601" }, "downloads": -1, "filename": "pipelinewise-tap-snowflake-1.0.0.tar.gz", "has_sig": false, "md5_digest": "e4adf344e9b088d4866f0fb5f7cbc50c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10252, "upload_time": "2019-06-02T15:42:12", "url": "https://files.pythonhosted.org/packages/61/54/deb579b35d10287fad490ae9c42b3a71a31a5b0979581fb15916546b47dd/pipelinewise-tap-snowflake-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "028a3dbc8ba72887384462c67ce8c120", "sha256": "653b7cc46844b0457702cbe75296f16452d46e8c53dba52194faed4a8a3c9498" }, "downloads": -1, "filename": "pipelinewise-tap-snowflake-1.0.1.tar.gz", "has_sig": false, "md5_digest": "028a3dbc8ba72887384462c67ce8c120", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10286, "upload_time": "2019-06-03T00:16:39", "url": "https://files.pythonhosted.org/packages/4e/95/f47115f8593b96527d156b9e4e693a8c367ba874cb210398bd8ed9f9743c/pipelinewise-tap-snowflake-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "a08705d14f7cf6e56f24dff21c243303", "sha256": "b0d313df109dd676ff37103258b2f73fe4c38cbbea10659a2391349bb0934a2f" }, "downloads": -1, "filename": "pipelinewise-tap-snowflake-1.0.2.tar.gz", "has_sig": false, "md5_digest": "a08705d14f7cf6e56f24dff21c243303", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10566, "upload_time": "2019-07-04T15:04:50", "url": "https://files.pythonhosted.org/packages/59/89/858afcca6465ad9edf781fbd397015a6a6d30893182bc17564dc06eeb6f8/pipelinewise-tap-snowflake-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "8b158a3030be57ab9d3b7241de3f9e09", "sha256": "8696fc05636d684f89d818886dd1864544a0ba311429be4563b9815bfedd72b6" }, "downloads": -1, "filename": "pipelinewise-tap-snowflake-1.0.3.tar.gz", "has_sig": false, "md5_digest": "8b158a3030be57ab9d3b7241de3f9e09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10825, "upload_time": "2019-08-07T18:15:48", "url": "https://files.pythonhosted.org/packages/16/b3/c016b85dcd77ce6a014fb6f3ae061400139a0b12aa186fd03cc3922ca94b/pipelinewise-tap-snowflake-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "a3c042c95cb5a8b2ebcc6527ee40774c", "sha256": "721818e250d4c1c0d0872a7f368465c0fbbf99ccd45309db9678d778b1036752" }, "downloads": -1, "filename": "pipelinewise-tap-snowflake-1.0.4.tar.gz", "has_sig": false, "md5_digest": "a3c042c95cb5a8b2ebcc6527ee40774c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10920, "upload_time": "2019-08-16T15:54:42", "url": "https://files.pythonhosted.org/packages/da/2d/c192ae6525d499340ebabe7b3b63658f95b02da0410c64dd6bef7362162f/pipelinewise-tap-snowflake-1.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a3c042c95cb5a8b2ebcc6527ee40774c", "sha256": "721818e250d4c1c0d0872a7f368465c0fbbf99ccd45309db9678d778b1036752" }, "downloads": -1, "filename": "pipelinewise-tap-snowflake-1.0.4.tar.gz", "has_sig": false, "md5_digest": "a3c042c95cb5a8b2ebcc6527ee40774c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10920, "upload_time": "2019-08-16T15:54:42", "url": "https://files.pythonhosted.org/packages/da/2d/c192ae6525d499340ebabe7b3b63658f95b02da0410c64dd6bef7362162f/pipelinewise-tap-snowflake-1.0.4.tar.gz" } ] }