Connect to the Aiven for ClickHouse® service with Python
========================================================
To connect to your Aiven for ClickHouse® service with Python, you can use either the native protocol or the HTTPS protocol. This article provides you with instructions for both scenarios.
Connect with the native protocol
--------------------------------
Pre-requisites
''''''''''''''
* `Python 3.5 or later `_
* `ClickHouse Python Driver `_
Identify connection information
'''''''''''''''''''''''''''''''
To run the code for connecting to your service, first identify values of the following variables:
================== =====================================================================
Variable Description
================== =====================================================================
``USERNAME`` ``User`` for the ClickHouse connection available in the Aiven console: Service **Overview** > **Connection information** > **ClickHouse native**
``PASSOWRD`` ``Password`` for the ClickHouse connection available in the Aiven console: Service **Overview** > **Connection information** > **ClickHouse native**
``HOST`` ``Host`` for the ClickHouse connection available in the Aiven console: Service **Overview** > **Connection information** > **ClickHouse native**
``NATIVE_PORT`` ``Port`` for the ClickHouse connection available in the Aiven console: Service **Overview** > **Connection information** > **ClickHouse native**
``query`` Query you want to run, for example ``SELECT 1``
================== =====================================================================
Connect to the service
''''''''''''''''''''''
Replace the placeholders in the code with meaningful information on your service connection and run the code.
.. code:: python
from clickhouse_driver import Client
client = Client(user="USERNAME", password="PASSWORD", host="HOST", port=NATIVE_PORT, secure=True)
print(client.execute("SELECT 1"))
Connect with HTTPS
------------------
Pre-requisites
''''''''''''''
* `Python 3.7 or later `_
* `Requests HTTP library `_
Identify connection information
'''''''''''''''''''''''''''''''
To run the code for connecting to your service, first identify values of the following variables:
=========================== ======================================================================================
Variable Description
=========================== ======================================================================================
``https://HOST:HTTPS_PORT`` ``Host`` and ``Port`` for the ClickHouse connection available in the Aiven console: Service **Overview** > **Connection information** > **ClickHouse HTTPS & JDBC**
``query`` Query you want to run, for example ``SELECT 1``
``X-ClickHouse-Database`` ``Database Name`` available in the Aiven console: Service **Overview** > **Connection information** > **ClickHouse HTTPS & JDBC**, for example ``system``
``X-ClickHouse-User`` ``User`` for the ClickHouse connection available in the Aiven console: Service **Overview** > **Connection information** > **ClickHouse HTTPS & JDBC**
``X-ClickHouse-Key`` ``Password`` for the ClickHouse connection available in the Aiven console: Service **Overview** > **Connection information** > **ClickHouse HTTPS & JDBC**
``X-ClickHouse-Format`` Format for the output from your query, for example ``JSONCompact``
=========================== ======================================================================================
Connect to the service
''''''''''''''''''''''
Replace the placeholders in the code with meaningful information on your service connection and run the code.
.. code:: python
import requests
response = requests.post(
"https://HOST:HTTPS_PORT",
params={"query": "SELECT 1"},
headers={
"X-ClickHouse-Database": "system",
"X-ClickHouse-User": "USERNAME",
"X-ClickHouse-Key": "PASSWORD",
"X-ClickHouse-Format": "JSONCompact",
})
print(response.text)
.. topic:: Expected result
Now you have your service connection set up and you can proceed to :doc:`uploading data into your database `.
.. seealso::
For information on how to connect to the Aiven for Clickhouse service with the ClickHouse client, see :doc:`Connect with the ClickHouse client `.