{"id":29019732,"url":"https://github.com/sn0wfree/clicksql","last_synced_at":"2025-06-26T01:01:55.996Z","repository":{"id":56608346,"uuid":"283690248","full_name":"sn0wfree/ClickSQL","owner":"sn0wfree","description":"a python client for ClickHouse","archived":false,"fork":false,"pushed_at":"2024-08-16T11:25:02.000Z","size":40800,"stargazers_count":7,"open_issues_count":14,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-25T20:03:41.040Z","etag":null,"topics":["clickhouse","clickhouse-client","database","dataframe","insert-data","pandas","python","sql"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sn0wfree.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://github.com/sn0wfree/donate/blob/master/pics/IMG_4128.png?raw=true","https://github.com/sn0wfree/donate/blob/master/pics/IMG_4130.png?raw=true"]}},"created_at":"2020-07-30T06:38:29.000Z","updated_at":"2024-08-16T11:25:06.000Z","dependencies_parsed_at":"2025-06-26T01:01:03.136Z","dependency_job_id":null,"html_url":"https://github.com/sn0wfree/ClickSQL","commit_stats":null,"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/sn0wfree/ClickSQL","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sn0wfree%2FClickSQL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sn0wfree%2FClickSQL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sn0wfree%2FClickSQL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sn0wfree%2FClickSQL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sn0wfree","download_url":"https://codeload.github.com/sn0wfree/ClickSQL/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sn0wfree%2FClickSQL/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261978831,"owners_count":23239413,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clickhouse","clickhouse-client","database","dataframe","insert-data","pandas","python","sql"],"created_at":"2025-06-26T01:00:53.259Z","updated_at":"2025-06-26T01:01:55.883Z","avatar_url":"https://github.com/sn0wfree.png","language":"Python","funding_links":["https://github.com/sn0wfree/donate/blob/master/pics/IMG_4128.png?raw=true","https://github.com/sn0wfree/donate/blob/master/pics/IMG_4130.png?raw=true"],"categories":[],"sub_categories":[],"readme":"# ClickSQL: ClickHouse client for Humans \n \n[![CodeQL](https://github.com/sn0wfree/ClickSQL/actions/workflows/codeql-analysis.yml/badge.svg?branch=master)](https://github.com/sn0wfree/ClickSQL/actions/workflows/codeql-analysis.yml)\n [![Python package](https://github.com/sn0wfree/ClickSQL/actions/workflows/python-package.yml/badge.svg?branch=master)](https://github.com/sn0wfree/ClickSQL/actions/workflows/python-package.yml)\n--------------\nPackage information:\n\n \nClickSQL is a python client for ClickHouse database, which may help users to use ClickHouse more easier and pythonic. \nMore information for ClickHouse can be found at [here](http://clickhouse.tech)\n\n\n\n## Installation\n\n`pip install ClickSQL`\n\n## Usage\n### Initial connection\nto setup a database connection and send a heartbeat-check signal\n\n```python\nfrom ClickSQL import BaseSingleFactorTableNode\n\nconn_str = \"clickhouse://default:test121231@99.99.9.9:8123/system\"\nNode = BaseSingleFactorTableNode(conn_str)\n\n\u003e\u003e\u003e connection test:  Ok.\n\n``` \n\n### Query\n#### execute a SQL Query\n```python\nfrom ClickSQL import BaseSingleFactorTableNode\n\nconn_str = \"clickhouse://default:test121231@99.99.9.9:8123/system\"\nNode = BaseSingleFactorTableNode(conn_str)\n\nNode('show tables from system limit 1')\n\n\u003e\u003e\u003e connection test:  Ok.\n\u003e\u003e\u003e                             name\n\u003e\u003e\u003e 0  aggregate_function_combinators\n```\n\n#### execute a Query without SQL\n```python\nfrom ClickSQL import BaseSingleFactorTableNode\n\nfactor = BaseSingleFactorTableNode(\n        'clickhouse://default:default@127.0.0.1:8123/sample.sample',\n        cols=['cust_no', 'product_id', 'money'],\n        order_by_cols=['money asc'],\n        money='money \u003e= 100000'\n    )\n\n\nfactor['money'].head(10)\n\n\u003e\u003e\u003e connection test:  Ok.\n\u003e\u003e\u003e        money\n\u003e\u003e\u003e 0  1000000.0\n\u003e\u003e\u003e 1  1000000.0\n\u003e\u003e\u003e 2  1000000.0\n\u003e\u003e\u003e 3  1000000.0\n\u003e\u003e\u003e 4  1000000.0\n\u003e\u003e\u003e 5  1000000.0\n\u003e\u003e\u003e 6  1000000.0\n\u003e\u003e\u003e 7  1000000.0\n\u003e\u003e\u003e 8  1000000.0\n\u003e\u003e\u003e 9  1000000.0\n\n\n```\n\n\n## Insert data\ninsert data into database by various ways\n### Insert data via DataFrame\n```python\nfrom ClickSQL import BaseSingleFactorTableNode as factortable\nimport numpy as np\nimport pandas as pd\nfactor = factortable( 'clickhouse://default:default@127.0.0.1:8123/sample.sample'  )\ndb = 'sample'\ntable = 'sample'\ndf  = pd.DataFrame(np.random.random(size=(10000,3)),columns=['cust_no', 'product_id', 'money'])\nfactor.insert_df(df, db, table, chunksize=100000)\n    \n\n```\n\n### Insert data via SQL(Inner)\n```python\nfrom ClickSQL import BaseSingleFactorTableNode as factortable\n\nfactor = factortable( 'clickhouse://default:default@127.0.0.1:8123/sample.sample'  )\n\nfactor(\"insert into sample.sample select * from other_db.other_table\")\n    \n\n```\n\n### Create table\n\n#### Create table by SQL\n```python\nfrom ClickSQL import BaseSingleFactorTableNode\n\nconn_str = \"clickhouse://default:test121231@99.99.9.9:8123/system\"\nNode = BaseSingleFactorTableNode(conn_str)\n\nNode('create table test.test2 (v1 String, v2 Int64, v3 Float64,v4 DataTime) Engine=MergeTree() order by v4')\n```\n\n#### Create table by DataFrame\n```python\nfrom ClickSQL import BaseSingleFactorTableNode\nimport numpy as np\nimport pandas as pd\n\nconn_str = \"clickhouse://default:test121231@99.99.9.9:8123/system\"\nNode = BaseSingleFactorTableNode(conn_str)\ndb = 'test'\ntable = 'test2'\n\n\ndf_or_sql_or_dict  = pd.DataFrame(np.random.random(size=(10000,2)),columns=['v1', 'v3'])\ndf_or_sql_or_dict['v2'] =1\ndf_or_sql_or_dict['v4'] =pd.to_datetime('2020-01-01 00:00:00')\n\nNode.create( db,  table,  df_or_sql_or_dict,    key_cols=['v4'],)\n```\n\n\n### Contribution\nWelcome to improve this package or submit an issue or any others\n\n## Author\nsn0wfree\n\n\n\n\n# Plan\n## Available functions or properties\n1. get data from clickhouse\n2. insert data into clickhouse\n3. create \n4. alter\n5. execute standard SQL and transform into DataFrame(Auto)\n3. able to execute select query \n4. able to execute insert query \n5. no require clickhouse-client\n6. auto create table sql\n7. can execute explain query\n8. Insert Data via DataFrame\n3. alter function \u0026 drop function\n\n## In Process\n2. create a pandas_liked executable function, which can compatible with pandas \n9. distributed query（query+insert）\n\n\n## schedule\n1. ORM\n4. can execute user role query\n5. create analysis component\n6. auto report system\n7. table register system\n8. data manager system\n8. meta data manager\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsn0wfree%2Fclicksql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsn0wfree%2Fclicksql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsn0wfree%2Fclicksql/lists"}