{ "info": { "author": "Amrit Baveja", "author_email": "abaveja@splicemachine.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX :: Linux", "Topic :: Database" ], "description": "## Splice Machine SQLAlchemy Adapter\n### Description:\n* This python package allows users to integrate new and existing \nSQLAlchemy applications with Splice Machine\n* SQLAlchemy exposes a uniform API for database-backed applications,\nwhich can be easily used with Splice Machine via this adaptor\n* Supported on Splice Machine Versions >= 2.8.0.1920\n### Installation:\n#### ODBC Driver:\nFirst, download the appropriate Splice Machine ODBC driver for your system.\n

\nMac OSX 64 bit Driver: Download
\nLinux 32 bit Driver: Download
\nLinux 64 bit Driver: Download
\n
Note: Windows is not currently supported for Splice Machine SQLAlchemy ODBC
\n

\nThen, follow the instructions here to finish the installation, but use the download links above to retrieve the Driver tarball\n

\n\nOnce the Driver is installed, you can pip install splicemachinesa\n\n```\nsudo pip install splicemachinesa\n```\n\n### Usage\nThere are three URL formats that can be used to access \nSpliceMachine via ODBC through SQLAlchemy. The first will suffice in most cases.\n
\n\n#### 1: Standard URL format
\nFormat: `splicemachinesa://[user]:[password]@[host]:[port]/[database]`

\nThe Driver Name defaults to `SpliceODBCDriver`, which is the default name \nwhen the driver is installed (specified in `odbc.ini`). However, this name can be overridden through the \n`SPLICE_ODBC_DRIVER_NAME` environment variable.\n\nExample:\n```\nfrom sqlalchemy import create_engine\nurl = 'splicemachinesa://splice:admin@127.0.0.1:1527/splicedb'\nengine = create_engine(url)\n```\n\n#### 2. Custom Configuration Without Driver\nFormat: `splicemachinesa://?DRIVER=[driver]&URL=[URL]&PORT=[PORT]&UID=[USER]&PWD=[PASSWORD]`\n

You can use this SQLAlchemy driver without an ODBC configuration (meaning running the installation from Splice Machine docs)\nby manually specifying the driver path. On OSX (given installation with `sudo` ), this is found in `/Library/ODBC/SpliceMachine/libsplice_odbc64.dylib.`\nWithout `sudo` this located at the same path, but in the home directory e.g. `$HOME/Library/...`\nOn Linux (given ODBC Driver installation with `sudo`), this is found in `/usr/local/splice/lib/libsplice_odbc.so`. Without `sudo`\nit is found in `$HOME/splice`. We provide a utility function for simplifying the URL building process.
\nThis method is easier for an automated driver configuration (e.g. inside Docker) because you only need\nto copy to Driver binary.

Note: Error messages will not be rendered properly with this approach.\n\n\nExample:\n```\nfrom sqlalchemy import create_engine\nfrom splicemachinesa.utilities import url_builder\n\nurl = url_builder('/usr/local/splice/lib/libsplice_odbc.so', host=[0.0.0.0], port=[1527]\n user=['splice'], password=['admin'])\n \nengine = create_engine(url) \n```\n\n#### 3. DSN Configuration\nFormat: `splicemachinesa://[dsn]`\nSplice Machine SQLAlchemy also supports ODBC DSNs for \nDriver configuration. This means that rather than explicitly specifying\nconfiguration options in the URL string, they are rendered from the odbc.ini file. This is also the only method that \nsupports Kerberos Authentication for Splice Clusters. You can see how to use Kerberos \nhere. The `odbc.ini` file is located \nat these locations depending on whether or not the installer was run as root.

\nWith/without `sudo` installation- Mac OSX: `$HOME/.odbc.ini`
\nWith `sudo` Linux: `/etc/odbc.ini`
\nWithout `sudo` Linux: `$HOME/.odbc.ini`. In this file, if you have a key named `USER`,\nrename this to `UID`.

The default DSN is `SpliceODBC64`.\n\nExample:\n```\nfrom sqlalchemy import create_engine\nurl = 'splicemachinesa://SpliceODBC64'\nengine = create_engine(url)\n```\n\n\n#### Testing\n1) First make sure you have a fresh\ninstallation of Splice Machine\nrunning (either Standalone or Cloud/Bespoke/On-Prem)\nwith an appropriate SQLAlchemy Splice Machine connection\nstring for accessing it\n\n```\n# register any changes for testing\ncd /path/to/splice_sqlalchemy\nsudo pip install .\nsudo pip install pytest\npy.test -vv --db-url 'splicemachinesa://[...]'\n```\n\n#### Features not yet supported\n- Common Table Expressions\n- Indices Reflection\n- Check + Unicode Reflection\n- Nullable Reflection\n- ORDER BY COLLATE\n- Empty Set Insertion\n- Unicode String Support\n- Reflector for Order by Foreign Key\n- limit_offset_in_unions_from_alias", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://splice-releases.s3.amazonaws.com/splice-sqlalchemy/splicemachinesa-0.1.0.dev0.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://splicemachine.com", "keywords": "sqlalchemy,splice,machine,splice machine,odbc,driver,sqlalchemy driver", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "splicemachinesa", "package_url": "https://pypi.org/project/splicemachinesa/", "platform": "All", "project_url": "https://pypi.org/project/splicemachinesa/", "project_urls": { "Download": "https://splice-releases.s3.amazonaws.com/splice-sqlalchemy/splicemachinesa-0.1.0.dev0.tar.gz", "Homepage": "https://splicemachine.com" }, "release_url": "https://pypi.org/project/splicemachinesa/0.1.0.dev0/", "requires_dist": null, "requires_python": "", "summary": "SQLAlchemy support for Splice Machine RDBMS", "version": "0.1.0.dev0" }, "last_serial": 5656737, "releases": { "0.0.4.dev0": [ { "comment_text": "", "digests": { "md5": "92292eee8cca3991025290d090c88561", "sha256": "395e8ee28e56547d9e7ed8cad5acb1db67cf92e1fa33a35d5223ed5ef5e339e7" }, "downloads": -1, "filename": "splicemachinesa-0.0.4.dev0.tar.gz", "has_sig": false, "md5_digest": "92292eee8cca3991025290d090c88561", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27151, "upload_time": "2019-07-10T01:02:38", "url": "https://files.pythonhosted.org/packages/1e/bb/441a7460f6538a82dacef067b335725ca0b75fef14bd1073f7e43391de13/splicemachinesa-0.0.4.dev0.tar.gz" } ], "0.0.5.dev0": [ { "comment_text": "", "digests": { "md5": "85423123978072fd1641ea73e294d4b7", "sha256": "cfb4d4fbc6ac415bea2394da402a1a544cf1884a4c95d6c86ee5d145af73a9c6" }, "downloads": -1, "filename": "splicemachinesa-0.0.5.dev0.tar.gz", "has_sig": false, "md5_digest": "85423123978072fd1641ea73e294d4b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27163, "upload_time": "2019-07-10T01:18:31", "url": "https://files.pythonhosted.org/packages/ad/08/fef9b40a877d15295c9c442ab642778aad6374325c17212a6f94de8db1dd/splicemachinesa-0.0.5.dev0.tar.gz" } ], "0.0.6.dev0": [ { "comment_text": "", "digests": { "md5": "4fff8112f15cf34920aa7b9328ed02bf", "sha256": "e1d68d06c2b5b888e333e62fa79f64cabc12f586dcf411c92447e442af32d377" }, "downloads": -1, "filename": "splicemachinesa-0.0.6.dev0.tar.gz", "has_sig": false, "md5_digest": "4fff8112f15cf34920aa7b9328ed02bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27127, "upload_time": "2019-07-10T01:30:55", "url": "https://files.pythonhosted.org/packages/6b/02/c0100a99cb032403540bdfa8f7f8bd42d941216336c02bfa8dd3b5526453/splicemachinesa-0.0.6.dev0.tar.gz" } ], "0.0.7.dev0": [ { "comment_text": "", "digests": { "md5": "754d7d612df32d5fe7ecf4139f8d5a67", "sha256": "df12ea13ec5f3e9dc23242c70595cc6f041e7f24343e9c190272abb2d6c0c30a" }, "downloads": -1, "filename": "splicemachinesa-0.0.7.dev0.tar.gz", "has_sig": false, "md5_digest": "754d7d612df32d5fe7ecf4139f8d5a67", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27140, "upload_time": "2019-07-10T01:37:03", "url": "https://files.pythonhosted.org/packages/d6/17/a0b2a9ba399c85b19dc4acdfa281c0642e288cca3fc06118300daa17fae8/splicemachinesa-0.0.7.dev0.tar.gz" } ], "0.0.8.dev0": [ { "comment_text": "", "digests": { "md5": "59b3ce1d8e52194bb1ca1ded1afd5476", "sha256": "ef6444f7fab2d43c38a8ba0eedca469bde0589c9a8ad958c89f2480cec9d08fd" }, "downloads": -1, "filename": "splicemachinesa-0.0.8.dev0.tar.gz", "has_sig": false, "md5_digest": "59b3ce1d8e52194bb1ca1ded1afd5476", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27134, "upload_time": "2019-07-24T02:25:02", "url": "https://files.pythonhosted.org/packages/9b/d3/637cd1b32cb7c7c2d63217abe4ccfe4309e3cd770c75e9a7efc3435551f4/splicemachinesa-0.0.8.dev0.tar.gz" } ], "0.1.0.dev0": [ { "comment_text": "", "digests": { "md5": "8e4c64f035c09b0093f322843d145ad7", "sha256": "20dd3943cd18e81d3893b930e89f16a864d86e656ac57fb6b2ed68755f89aa81" }, "downloads": -1, "filename": "splicemachinesa-0.1.0.dev0.tar.gz", "has_sig": false, "md5_digest": "8e4c64f035c09b0093f322843d145ad7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27117, "upload_time": "2019-08-09T16:26:37", "url": "https://files.pythonhosted.org/packages/7b/c7/98a7408f114536b48fec369dccbb42469a50e6e0d1a9f3c0b9e780e1f000/splicemachinesa-0.1.0.dev0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8e4c64f035c09b0093f322843d145ad7", "sha256": "20dd3943cd18e81d3893b930e89f16a864d86e656ac57fb6b2ed68755f89aa81" }, "downloads": -1, "filename": "splicemachinesa-0.1.0.dev0.tar.gz", "has_sig": false, "md5_digest": "8e4c64f035c09b0093f322843d145ad7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27117, "upload_time": "2019-08-09T16:26:37", "url": "https://files.pythonhosted.org/packages/7b/c7/98a7408f114536b48fec369dccbb42469a50e6e0d1a9f3c0b9e780e1f000/splicemachinesa-0.1.0.dev0.tar.gz" } ] }