{ "info": { "author": "Stefan Eletzhofer", "author_email": "stefan.eletzhofer@inquant.de", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Programming Language :: Python" ], "description": "=============================\ncollective.atcassandrastorage\n=============================\n\n:Author: Stefan Eletzhofer\n:Date: 2010-05-28\n\n\nAbstract\n========\n\nAn Archetype field storage which uses a *cassandra* backing store.\n\nReasoning\n=========\n\nFor a customer project I'm doing right now I'm using *cassandra* as a storage\nbackend for *Plone FormGen* data. Now the need did arise to also have specific\nfields of AT content types to be stored in cassandra as well.\n\n\nDesign decisions\n================\n\n- configuration of the cassandra clients done by using *plone.app.registry*\n\n- per-field configurable *keyspace* and *column family* for fields\n\n- The **UID** of the instance object is used as a *key* in the specified\n *column family* (remember that an *insert* in cassandra is essentially an\n *update*)\n\n- using *pycassa* as glue library\n\nUsage\n=====\n\nImport the storage and attach it to a field in your AT Schema::\n\n\n from collective.atcassandrastorage.storage import CassandraFieldStorage\n\n MySchema = atapi.Schema(\n ...\n StringField(\"afield\",\n storage=CassandraFieldStorage(\"AKeyspace\", \"AColumnFamily\"),\n ),\n ...\n )\n\nThis will store and fetch data for *afield* from a cassandra database using\nthe keyspace *AKeyspace* and the column family *AColumnFamily*.\n\nConfiguration\n=============\n\nConfiguration is done using *plone.app.registry*. Visit the registry in\nPlone's control panel and configure the values, they should be pretty much\nobvious.\n\nDependencies\n============\n\n*plone.app.registry*\n for configuration\n\n*pycassa*\n python Cassandra glue library\n\nLinks\n=====\n\n**cassandra**\n http://cassandra.apache.org/\n\n**archetypes**\n http://plone.org/products/archetypes\n\n**pycassa**\n http://github.com/vomjom/pycassa\n\n.. vim: set ft=rst tw=75 nocin nosi ai sw=4 ts=4 expandtab:\n\nChangelog\n=========\n\n0.2 (2010-05-31)\n-------------------\n\n- Added tests.\n [seletz]\n\n- Introduce IInstanceKey interface to allow to overwrite instance key\n calculation.\n [seletz]\n\n0.1 (2010-05-29)\n-------------------\n\n- Initial release\n [seletz]", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/seletz/collective.atcassandrastorage", "keywords": "plone archetype cassandra", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "collective.atcassandrastorage", "package_url": "https://pypi.org/project/collective.atcassandrastorage/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/collective.atcassandrastorage/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/seletz/collective.atcassandrastorage" }, "release_url": "https://pypi.org/project/collective.atcassandrastorage/0.2/", "requires_dist": null, "requires_python": null, "summary": "A AT field storage which stores values to a cassandra database", "version": "0.2" }, "last_serial": 787645, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "666a8cc58932da7723918a2a05eee54c", "sha256": "f691351e4938051d799e81b5410a680bdd85354052a5177f22e45c36bbb1e445" }, "downloads": -1, "filename": "collective.atcassandrastorage-0.1.tar.gz", "has_sig": false, "md5_digest": "666a8cc58932da7723918a2a05eee54c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5394, "upload_time": "2010-05-29T00:51:14", "url": "https://files.pythonhosted.org/packages/62/94/72377f8954ecd8f5a8e6ced06c28d87078f2968cdf46af5bc72d4ff269ae/collective.atcassandrastorage-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "441df1a246a15c64d48f041336ff74cb", "sha256": "f0dad4c0a2d364aff5f170187f4e931040fe3f3355261793c0ea7a79e253586d" }, "downloads": -1, "filename": "collective.atcassandrastorage-0.2.tar.gz", "has_sig": false, "md5_digest": "441df1a246a15c64d48f041336ff74cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15762, "upload_time": "2010-05-31T15:15:10", "url": "https://files.pythonhosted.org/packages/89/88/836f704c21f3366f7230afd4265ca180ce87d4f5d6cb80cb129b6dfb123c/collective.atcassandrastorage-0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "441df1a246a15c64d48f041336ff74cb", "sha256": "f0dad4c0a2d364aff5f170187f4e931040fe3f3355261793c0ea7a79e253586d" }, "downloads": -1, "filename": "collective.atcassandrastorage-0.2.tar.gz", "has_sig": false, "md5_digest": "441df1a246a15c64d48f041336ff74cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15762, "upload_time": "2010-05-31T15:15:10", "url": "https://files.pythonhosted.org/packages/89/88/836f704c21f3366f7230afd4265ca180ce87d4f5d6cb80cb129b6dfb123c/collective.atcassandrastorage-0.2.tar.gz" } ] }