python połączenie z clickhouse

0

Witam
Walczę już jakiś czas z połączeniem do clickhouse. Sprawdziłem już parę bibliotek i żadna nie za bardzo chce się połączyć.
Gdy używam biblioteki clickhouse_driver konsola jest ciemna i zamiera na wykonaniu selecta. Po ubiciu procesu dostaję błąd:

File "/home/dawid/Projekty/test/venv/lib/python3.8/site-packages/clickhouse_driver/connection.py", line 378, in receive_hello
    packet_type = read_varint(self.fin)
  File "clickhouse_driver/varint.pyx", line 62, in clickhouse_driver.varint.read_varint
  File "clickhouse_driver/bufferedreader.pyx", line 55, in clickhouse_driver.bufferedreader.BufferedReader.read_one
  File "clickhouse_driver/bufferedreader.pyx", line 237, in clickhouse_driver.bufferedreader.BufferedSocketReader.read_into_buffer
KeyboardInterrupt

kod:

from clickhouse_driver import connect

conn = connect(host='', port=, database='', user='', password='')
cursor = conn.cursor()
cursor.execute('SELECT ...')

Natomiast jak chcę się połączyć a pomocą sqlalchemy dostaję informacje że użytkownik bądź hasło są nie poprawne. Ale szkopuł jest taki że tymi pasami normalnie przeglądam bazę danych za pośrednictwem DBeaver.

kod:

# uri = 'clickhouse://login:hasło@host:port/baza'
# engine = create_engine(uri)
# db = engine.connect()

Gdzie popełniam błąd. I czy ktoś zna jakiś fajny sposób na połączenie się z clickhouse ?

0

W ten sposób ciężko będzie zreprodukować Twój problem; na pewno używasz API właściwie? W dokumentacji connect jest w:

clickhouse_driver.dbapi.connect(dsn=None, host=None,
user='default', password='', port=9000, database='default', **kwargs)
Create a new database connection.

https://clickhouse-driver.readthedocs.io/en/latest/dbapi.html

0

@lion137: dokładnie tak robię. W dokumentacji jest że to wystarczy:

>>> from clickhouse_driver import Client
>>>
>>> client = Client(host='localhost')
>>>
>>> client.execute('SHOW DATABASES')
[('default',)]

Jak tylko rozbudowuję Clinta o dodatkowe parametry zgodnie z tym co napisałeś.

Zauważyłem że połączenie jest nawiązywane prawidłowo ale problem jest z wykonaniem samego już zapytania client.execute('SHOW DATABASES'). Na tym się to wiesza.

0

Opanowane biblioteka pymysql prawidłowo łączy się z clickhouse.

1 użytkowników online, w tym zalogowanych: 0, gości: 1