создать таблицу, хотя подключение к серверу проходит корректно.
                  
                  
                  Код исполняется в 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 смотрите какой именно запрос с клиента вашего передался
Обсуждают сегодня