{ "info": { "author": "Bryan Yang", "author_email": "kenshin200528@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "ksql-python\n===========\n\nA python wrapper for the KSQL REST API. Easily interact with the KSQL REST API using this library.\n\nSupported KSQL version: 5.x\n\n.. image:: https://travis-ci.org/bryanyang0528/ksql-python.svg?branch=master\n :target: https://travis-ci.org/bryanyang0528/ksql-python\n\n.. image:: https://codecov.io/gh/bryanyang0528/ksql-python/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/bryanyang0528/ksql-python\n\nInstallation\n------------\n\n.. code:: bash\n\n pip install ksql\n\nOr\n\n.. code:: bash\n\n git clone https://github.com/bryanyang0528/ksql-python\n cd ksql-python\n python setup.py install\n\nGetting Started\n---------------\n\nSetup for KSQL\n~~~~~~~~~~~~~~~\n\nThis is the GITHUB page of KSQL. https://github.com/confluentinc/ksql\n\nIf you have installed open source Confluent CLI (e.g. by installing Confluent Open Source or Enterprise Platform), you can start KSQL and its dependencies with one single command:\n\n.. code:: bash\n\n confluent start ksql-server\n\nSetup for ksql-python API\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\n- Setup for the KSQL API:\n\n.. code:: python\n\n from ksql import KSQLAPI\n client = KSQLAPI('http://ksql-server:8088')\n\n- Setup for KSQl API with logging enabled:\n\n.. code:: python\n\n import logging\n from ksql import KSQLAPI\n logging.basicConfig(level=logging.DEBUG)\n client = KSQLAPI('http://ksql-server:8088')\n\nOptions\n~~~~~~~\n\n+---------------+-----------+------------+--------------------------------------------------------------+\n| Option | Type | Required | Description |\n+===============+===========+============+==============================================================+\n| ``url`` | string | yes | Your ksql-server url. Example: ``http://ksql-server:8080`` |\n+---------------+-----------+------------+--------------------------------------------------------------+\n| ``timeout`` | integer | no | Timout for Requests. Default: ``5`` |\n+---------------+-----------+------------+--------------------------------------------------------------+\n\nMain Methods\n~~~~~~~~~~~~\n\nksql\n^^^^\n\nThis method can be used for some KSQL features which are not supported via other specific methods like ``query``, ``create_stream`` or ``create_stream_as``.\nThe following example shows how to execute the ``show tables`` statement:\n\n.. code:: python\n\n client.ksql('show tables')\n\n- Example Response ``[{'tables': {'statementText': 'show tables;', 'tables': []}}]``\n\nquery\n^^^^^\n\nIt will execute sql query and keep listening streaming data.\n\n.. code:: python\n\n client.query('select * from table1')\n\nThis command returns a generator. It can be printed e.g. by reading its values via `next(query)` or a for loop. Here is a complete example:\n\n.. code:: python\n \n from ksql import KSQLAPI\n client = KSQLAPI('http://localhost:8088')\n query = client.query('select * from table1')\n for item in query: print(item)\n\n- Example Response\n\n ::\n\n {\"row\":{\"columns\":[1512787743388,\"key1\",1,2,3]},\"errorMessage\":null}\n {\"row\":{\"columns\":[1512787753200,\"key1\",1,2,3]},\"errorMessage\":null}\n {\"row\":{\"columns\":[1512787753488,\"key1\",1,2,3]},\"errorMessage\":null}\n {\"row\":{\"columns\":[1512787753888,\"key1\",1,2,3]},\"errorMessage\":null}\n\nSimplified API\n~~~~~~~~~~~~~~\n\ncreate_stream/ create_table\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n client.create_stream(table_name=table_name,\n columns_type=columns_type,\n topic=topic,\n value_format=value_format)\n\nOptions\n^^^^^^^\n\n+-----------------+-----------+----------+--------------------------------------------------------------+\n| Option | Type | Required | Description |\n+=================+===========+==========+==============================================================+\n| ``table_name`` | string | yes | name of stream/table |\n+-----------------+-----------+----------+--------------------------------------------------------------+\n| ``columns_type``| list | yes | ex:``['viewtime bigint','userid varchar','pageid varchar']`` |\n+-----------------+-----------+----------+--------------------------------------------------------------+\n| ``topic`` | string | yes | Kafka topic |\n+-----------------+-----------+----------+--------------------------------------------------------------+\n| ``value_format``| string | no | ``JSON`` (Default) or ``DELIMITED`` or ``AVRO`` |\n+-----------------+-----------+----------+--------------------------------------------------------------+\n| ``key`` | string | for Table| Key (used for JOINs) |\n+-----------------+-----------+----------+--------------------------------------------------------------+\n\n\n- Responses\n\n:If create table/stream succeed:\n return True\n\n:If failed:\n raise a CreateError(respose_from_ksql_server)\n\ncreate_stream_as\n^^^^^^^^^^^^^^^^\n\na simplified api for creating stream as select\n\n.. code:: python\n\n client.create_stream_as(table_name=table_name,\n select_columns=select_columns,\n src_table=src_table,\n kafka_topic=kafka_topic,\n value_format=value_format,\n conditions=conditions,\n partition_by=partition_by,\n **kwargs)\n\n\n.. code:: sql\n\n CREATE STREAM \n [WITH ( kafka_topic=, value_format=, property_name=expression ... )]\n AS SELECT \n FROM \n [WHERE ]\n PARTITION BY ];\n\nOptions\n^^^^^^^\n\n+-------------------+-----------+----------+--------------------------------------------------------------+\n| Option | Type | Required | Description |\n+===================+===========+==========+==============================================================+\n| ``table_name`` | string | yes | name of stream/table |\n+-------------------+-----------+----------+--------------------------------------------------------------+\n| ``select_columns``| list | yes | you can select ``[*]`` or ``['columnA', 'columnB']`` |\n+-------------------+-----------+----------+--------------------------------------------------------------+\n| ``src_table`` | string | yes | name of source table |\n+-------------------+-----------+----------+--------------------------------------------------------------+\n| ``kafka_topic`` | string | no | The name of the Kafka topic of this new stream(table). |\n+-------------------+-----------+----------+--------------------------------------------------------------+\n| ``value_format`` | string | no | ``DELIMITED``, ``JSON``(Default) or ``AVRO`` |\n+-------------------+-----------+----------+--------------------------------------------------------------+\n| ``conditions`` | string | no | The conditions in the where clause. |\n+-------------------+-----------+----------+--------------------------------------------------------------+\n| ``partition_by`` | string | no | Data will be distributed across partitions by this column. |\n+-------------------+-----------+----------+--------------------------------------------------------------+\n| ``kwargs`` | pair | no | please provide ``key=value`` pairs. Please see more options. |\n+-------------------+-----------+----------+--------------------------------------------------------------+\n\nKSQL JOINs\n~~~~~~~~~~~~~~\n\nKSQL JOINs between Streams and Tables are not supported yet via explicit methods, but you can use the ``ksql`` method for this like the following:\n\n.. code:: python\n\n client.ksql(\"CREATE STREAM join_per_user WITH (VALUE_FORMAT='AVRO', KAFKA_TOPIC='join_per_user') AS SELECT Time, Amount FROM source c INNER JOIN users u on c.user = u.userid WHERE u.USERID = 1\")\n\nFileUpload\n~~~~~~~~~~~~~~\n\nupload\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\nRun commands from a .ksql file. Can only support ksql commands and not streaming queries.\n\n.. code:: python\n\n from ksql import FileUpload\n pointer = FileUpload('http://ksql-server:8080')\n pointer.upload('rules.ksql')\n\n\nOptions\n^^^^^^^\n\n+-----------------+-----------+----------+--------------------------------------------------------------+\n| Option | Type | Required | Description |\n+=================+===========+==========+==============================================================+\n| ``ksqlfile`` | string | yes | name of file containing the rules |\n+-----------------+-----------+----------+--------------------------------------------------------------+\n\n\n- Responses\n\n:If ksql-commands succesfully executed:\n return (List of server response for all commands)\n\n:If failed:\n raise the appropriate error\n\nMore Options\n^^^^^^^^^^^^\n\nThere are more properties (partitions, replicas, etc...) in the official document.\n\n`KSQL Syntax Reference `_\n\n- Responses\n\n:If create table/stream succeed:\n return True\n\n:If failed:\n raise a CreatError(respose_from_ksql_server)\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/bryanyang0528/ksql-python", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "ksql", "package_url": "https://pypi.org/project/ksql/", "platform": "any", "project_url": "https://pypi.org/project/ksql/", "project_urls": { "Homepage": "https://github.com/bryanyang0528/ksql-python" }, "release_url": "https://pypi.org/project/ksql/0.5.1.1/", "requires_dist": null, "requires_python": "", "summary": "A Python wrapper for the KSQL REST API", "version": "0.5.1.1" }, "last_serial": 4860658, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "d400d074b3dbd17952dcb5320a23a466", "sha256": "cc94582aca5f7de6938f791b2abbda1a63895742a6b3ca40fae18cf908393cb5" }, "downloads": -1, "filename": "ksql-0.2.0.tar.gz", "has_sig": false, "md5_digest": "d400d074b3dbd17952dcb5320a23a466", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3204, "upload_time": "2017-12-09T05:54:56", "url": "https://files.pythonhosted.org/packages/a4/5d/efe538307d3744d2faf9c79cff31fba2109df5f5250aa046f90f95e613cd/ksql-0.2.0.tar.gz" } ], "0.2.0a0": [ { "comment_text": "", "digests": { "md5": "5d8c0f4c4f0ca43b24599c2b111bafec", "sha256": "10d278fb440f46eab0eff9a540bafe0e6065b9106a974cef28e7bff7f432eca3" }, "downloads": -1, "filename": "ksql-0.2.0a0.tar.gz", "has_sig": false, "md5_digest": "5d8c0f4c4f0ca43b24599c2b111bafec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3208, "upload_time": "2017-12-09T06:13:32", "url": "https://files.pythonhosted.org/packages/73/0b/f94171d108e961db8361e5afb7c28942877d9abf9ee10c7c20df36999c6c/ksql-0.2.0a0.tar.gz" } ], "0.2.0b0": [ { "comment_text": "", "digests": { "md5": "77a6c5715b178280060bd5fb7efc0abd", "sha256": "79ff4fc1dcd46eed017054ba08e964e8e5f171279cf0164d5e7af9e8b07ff632" }, "downloads": -1, "filename": "ksql-0.2.0b0.tar.gz", "has_sig": false, "md5_digest": "77a6c5715b178280060bd5fb7efc0abd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3187, "upload_time": "2017-12-09T11:18:17", "url": "https://files.pythonhosted.org/packages/92/3c/0f91ad61df75462827e2125d29c48846ed567bcc2766486b2584656ef2a7/ksql-0.2.0b0.tar.gz" } ], "0.2.0rc0": [ { "comment_text": "", "digests": { "md5": "daa22a3267769967c71951de80d27f5d", "sha256": "557c27d206097098b9c879549b9ee21cb374d19b683726edb8e0496fa6f608a3" }, "downloads": -1, "filename": "ksql-0.2.0rc0.tar.gz", "has_sig": false, "md5_digest": "daa22a3267769967c71951de80d27f5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3172, "upload_time": "2017-12-09T11:24:56", "url": "https://files.pythonhosted.org/packages/c3/39/9cec8d4f2fcbe4104a877244b8d854ccec6d3609a2f629d6ac8b4484de29/ksql-0.2.0rc0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "f02fc39a36acc1bf04994a4b642ade52", "sha256": "75fa6f1774301eb95e4f254f7153f26c380d6740838fbefdceea3eb1baf48571" }, "downloads": -1, "filename": "ksql-0.2.1.tar.gz", "has_sig": false, "md5_digest": "f02fc39a36acc1bf04994a4b642ade52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3165, "upload_time": "2017-12-09T11:42:40", "url": "https://files.pythonhosted.org/packages/e9/37/8fa75cc95efe754feac4d6feddb049e6e41221d4b45dbf0f3b8b0f610553/ksql-0.2.1.tar.gz" } ], "0.2.1.1": [ { "comment_text": "", "digests": { "md5": "bc9d99a5a34d6b3a82ff02e60908ae05", "sha256": "5bed6a6b676b39e224157f9b0e4bd2a3cf4e9eea3a465900109f355ae4ed23df" }, "downloads": -1, "filename": "ksql-0.2.1.1.tar.gz", "has_sig": false, "md5_digest": "bc9d99a5a34d6b3a82ff02e60908ae05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3230, "upload_time": "2018-01-08T03:37:57", "url": "https://files.pythonhosted.org/packages/50/e4/6f1f61c12c9f451b593891df88a5834353523bcdf7964800790170a68b2d/ksql-0.2.1.1.tar.gz" } ], "0.2.2.0": [ { "comment_text": "", "digests": { "md5": "1e6a69bf45f3efb5bd690bd90f1c990b", "sha256": "5f9727b4d6489bb361a429636146e4f99fad0181c23297e6b952e5ca7611613b" }, "downloads": -1, "filename": "ksql-0.2.2.0.tar.gz", "has_sig": false, "md5_digest": "1e6a69bf45f3efb5bd690bd90f1c990b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4431, "upload_time": "2018-01-08T08:29:41", "url": "https://files.pythonhosted.org/packages/a0/ce/0711c4ca2483f8fb66c3f26a18482bb76f6ba8e6b15eeaaaa13847186f84/ksql-0.2.2.0.tar.gz" } ], "0.3.0.1.1": [ { "comment_text": "", "digests": { "md5": "d6560e92a85db9337c1f2bd93a703905", "sha256": "42ae8c363f7724e69480b94aba846650510f83fee9c1f15546f84e8f987febc5" }, "downloads": -1, "filename": "ksql-0.3.0.1.1.tar.gz", "has_sig": false, "md5_digest": "d6560e92a85db9337c1f2bd93a703905", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6558, "upload_time": "2018-01-11T09:32:14", "url": "https://files.pythonhosted.org/packages/68/28/c9c292cc1352239d71638d38ce9e120feea7d8e97ed96828cc90fdd0879c/ksql-0.3.0.1.1.tar.gz" } ], "0.3.0.1.2": [ { "comment_text": "", "digests": { "md5": "b42420ccd8c4ad640cbeaecfaf42cb4a", "sha256": "d782e0945ceb2146b648da1205a628aa804795d9aa4351daad2c4e3220b08205" }, "downloads": -1, "filename": "ksql-0.3.0.1.2.tar.gz", "has_sig": false, "md5_digest": "b42420ccd8c4ad640cbeaecfaf42cb4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6561, "upload_time": "2018-01-11T10:30:37", "url": "https://files.pythonhosted.org/packages/db/5e/4148c9a963a84fffe2ea45f8cfa9bcc2a22bd5f1e579309784c9dc737c2b/ksql-0.3.0.1.2.tar.gz" } ], "0.3.0.2.21": [ { "comment_text": "", "digests": { "md5": "e75a73c9d22d638e7f5aa090f57d29f5", "sha256": "61304c6f6e9f710ffeb45579ac168a1426d8bd2441cf7abd5580f1fb8c1272c7" }, "downloads": -1, "filename": "ksql-0.3.0.2.21.tar.gz", "has_sig": false, "md5_digest": "e75a73c9d22d638e7f5aa090f57d29f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6529, "upload_time": "2018-01-11T10:37:01", "url": "https://files.pythonhosted.org/packages/e6/5c/1835c9b2f2d84930d01cc268ffef076e95f481ddcdec62bad490e7cf6458/ksql-0.3.0.2.21.tar.gz" } ], "0.3.0.2.22": [ { "comment_text": "", "digests": { "md5": "3459e8ab1bde5449a0d89137571b2b02", "sha256": "19a1e56907905fe94c72911fb906e5e52dcee10a887cc9bbbb5b418a49ff3119" }, "downloads": -1, "filename": "ksql-0.3.0.2.22.tar.gz", "has_sig": false, "md5_digest": "3459e8ab1bde5449a0d89137571b2b02", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6521, "upload_time": "2018-01-11T10:42:50", "url": "https://files.pythonhosted.org/packages/f6/30/a05d0b18b29d7150cc959c0fd093d8c14442d658d9565034ddbdb851b054/ksql-0.3.0.2.22.tar.gz" } ], "0.3.1.0": [ { "comment_text": "", "digests": { "md5": "fdfa5ffb37dd67d908967db2c15ed613", "sha256": "04bfe6a220767c087eaa0f8500a4853f84951044c5cc8c898bafb0259efe0a48" }, "downloads": -1, "filename": "ksql-0.3.1.0.tar.gz", "has_sig": false, "md5_digest": "fdfa5ffb37dd67d908967db2c15ed613", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7958, "upload_time": "2018-05-02T02:25:07", "url": "https://files.pythonhosted.org/packages/33/a7/2a1afceba793b35efba8afd7267486a952c1a06c13a28532297ef518b338/ksql-0.3.1.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "3a2b60f1b2312fecb855e9b6216482e7", "sha256": "f26a3298c5a1296b768bb00f702012014eb769eb5a528b06bc902559a2dd8837" }, "downloads": -1, "filename": "ksql-0.5.1.tar.gz", "has_sig": false, "md5_digest": "3a2b60f1b2312fecb855e9b6216482e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9622, "upload_time": "2018-10-12T02:56:14", "url": "https://files.pythonhosted.org/packages/98/9f/1187d5bf9ab6e68c23fde44f93df2e1aae94083e1c6608a299aa1c6a99f5/ksql-0.5.1.tar.gz" } ], "0.5.1.1": [ { "comment_text": "", "digests": { "md5": "c4e402f2369da18c0bd40d908bdd33ef", "sha256": "310ab55a85ebefece6afbc6ae107869fd7a224b994ab1dc85577826af4e041cf" }, "downloads": -1, "filename": "ksql-0.5.1.1.tar.gz", "has_sig": false, "md5_digest": "c4e402f2369da18c0bd40d908bdd33ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12150, "upload_time": "2019-02-24T11:06:31", "url": "https://files.pythonhosted.org/packages/72/35/a24d5cbcadde26b44cabfde0bcba49b639e77a73da8094e387db7effba77/ksql-0.5.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c4e402f2369da18c0bd40d908bdd33ef", "sha256": "310ab55a85ebefece6afbc6ae107869fd7a224b994ab1dc85577826af4e041cf" }, "downloads": -1, "filename": "ksql-0.5.1.1.tar.gz", "has_sig": false, "md5_digest": "c4e402f2369da18c0bd40d908bdd33ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12150, "upload_time": "2019-02-24T11:06:31", "url": "https://files.pythonhosted.org/packages/72/35/a24d5cbcadde26b44cabfde0bcba49b639e77a73da8094e387db7effba77/ksql-0.5.1.1.tar.gz" } ] }