создать таблицу, хотя подключение к серверу проходит корректно.
Код исполняется в JupyterLab.
class simple_ch_client():
def __init__(self, CH_HOST, CH_USER, CH_PASS, cacert):
self.CH_HOST = CH_HOST
self.CH_USER = CH_USER
self.CH_PASS = CH_PASS
self.cacert = cacert
def get_clickhouse_data(self, query, connection_timeout = 1500):
r = requests.post(self.CH_HOST, params = {'query': query,
'user': self.CH_USER, 'password':self.CH_PASS},
timeout = connection_timeout, verify=self.cacert)
if r.status_code == 200:
return r.text
else:
raise ValueError(r.text)
my_client = simple_ch_client(CH_HOST, CH_USER, CH_PASS, CH_CASERT)
q = f'''
CREATE TABLE IF NOT EXISTS direct_table ON CLUSTER {CH_DB_NAME}
(
Date Date,
CampaignName String,
Impressions UInt64,
Clicks UInt64,
Cost UInt64
)
ENGINE = MergeTree()
ORDER BY Date
'''
my_client.get_clickhouse_data(q)
ОШИБКА:
———————————————————————
ValueError: Code: 170. DB::Exception:
Requested cluster 'clickhouse_cluster' not found.
(BAD_GET) (version 22.3.5.5 (official build))
Так он же пишет, что приходит запрос create table direct_table on cluster clickhouse_cluster, но такого кластера в system.clusters нет.
system.clusters смотрите
Да, но такой кластер есть. Он вообще только один
ON CLUSTER 'cluster-name' в кавычках вроде имя кластера должно быть ну и в system.query_log смотрите какой именно запрос с клиента вашего передался
Обсуждают сегодня