Closed ckjet closed 4 years ago
может учетные данные в конфиге не проходят. их надо передавать с клиентов. тут просто сервера
А можно пример как это сделать?
пример конфига в ридми) "servers": [ "http://127.0.0.1:8123" ] а на клиенте зпависит от языка. если на питоне, то что-то типа вот этого https://requests.readthedocs.io/en/master/user/authentication/ но можно и просто user и password в get параметрах передавать
Клиент сдандартный идет с документации clickhouse:
FROM yandex/clickhouse-client:19.15 as build
эта утилита не предназначена для стандартного клиента, хотя наверное должна работать. по идее надо просто в ней прописать логин и пароль при подключении. сначала попробуйте подключиться к оригинальному серверу, а затем с теми же настройками через clickhouse-bulk, указав у него в конфиге просто адрес сервера
а, нет. прошу прощения. клиент же работает через свой протокол. а утилита принимает только http запросы. возможно вы пытаетесь сделать что-то не то, для чего она предназначена. попробуйте сначала настроить все без нее. а потом уже поставить ее посередине.
Я пробовал управлять через houseOps - все таблицы и данные отображаются. С теми же настройками пытаюсь настроить clickhouse-bulk
а через какую библиотеку вы отправляете данные в кликхаус сейчас?
По идее только вот тут в конфиге пароль нужно задавать. в clickhouse-bulk просто сервер указать. а в этом конфиге ссылку на него. Но я php давно не пользую, поэтому сам проверить не могу.
'connections' => [
'clickhouse' => [
'driver' => 'clickhouse',
'cluster' => [
'server-1' => [
'host' => '',
'port' => '',
'database' => '',
'username' => '',
'password' => '',
'options' => [
'timeout' => 10,
'protocol' => 'https'
]
],
'server-2' => [
'host' => '',
'port' => '',
'database' => '',
'username' => '',
'password' => '',
'options' => [
'timeout' => 10,
'protocol' => 'https'
]
]
]
]
]
Так это в указанной мной библиотеке? Я не совсем понимаю как это поможет увидеть сервер через clickhouse-bulk.
через clickhouse-bulk не нужно видеть сервер) он наоборот собирает запросы и сам их туда отправляет, но использует учетные данные из запросов, пришедших на него. поэтому в нем нужно просто указать адрес сервера clickhouse "servers": [ "http://127.0.0.1:8123" ]
Если указать таким образом, то все также в статистике серверов нет:
$ curl -s http://127.0.0.1:8124/metrics | grep "^ch_" ch_bad_servers 0 ch_dump_count 0 ch_good_servers 0 ch_queued_dumps 0 ch_received_count 0 ch_sent_count 0
статистика копится только когда есть запросы. пока запросов нет, там все по нулям по идее будет
Я думал не видит серверов. Действительно при добавлениях появилась статистика. Спасибо большое за помощь!
{ "listen": ":8124", "flush_count": 10000, "flush_interval": 1000, "dump_check_interval": 300, "debug": false, "dump_dir": "dumps", "clickhouse": { "down_timeout": 60, "connect_timeout": 10, "servers": [ "http://clickhouse:clickhouse@127.0.0.1:8123" ] } }
$ curl -s http://127.0.0.1:8124/metrics | grep "^ch_" ch_bad_servers 0 ch_dump_count 0 ch_good_servers 0 ch_queued_dumps 0 ch_received_count 0 ch_sent_count 0
$curl http://clickhouse:clickhouse@127.0.0.1:8123 Ok.
It seems that he does not see servers, how can I solve this problem?