nikepan/clickhouse-bulk

No working clickhouse servers

Closed this issue · 15 comments

ckjet commented

{
"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?

может учетные данные в конфиге не проходят. их надо передавать с клиентов. тут просто сервера

ckjet commented

А можно пример как это сделать?

пример конфига в ридми)
"servers": [
"http://127.0.0.1:8123"
]
а на клиенте зпависит от языка. если на питоне, то что-то типа вот этого
https://requests.readthedocs.io/en/master/user/authentication/
но можно и просто user и password в get параметрах передавать

ckjet commented

Клиент сдандартный идет с документации clickhouse:

FROM yandex/clickhouse-client:19.15 as build

эта утилита не предназначена для стандартного клиента, хотя наверное должна работать. по идее надо просто в ней прописать логин и пароль при подключении. сначала попробуйте подключиться к оригинальному серверу, а затем с теми же настройками через clickhouse-bulk, указав у него в конфиге просто адрес сервера

а, нет. прошу прощения. клиент же работает через свой протокол. а утилита принимает только http запросы. возможно вы пытаетесь сделать что-то не то, для чего она предназначена. попробуйте сначала настроить все без нее. а потом уже поставить ее посередине.

ckjet commented

Я пробовал управлять через 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'
                ]
            ]
        ]
    ]
]
ckjet commented

Так это в указанной мной библиотеке? Я не совсем понимаю как это поможет увидеть сервер через clickhouse-bulk.

через clickhouse-bulk не нужно видеть сервер) он наоборот собирает запросы и сам их туда отправляет, но использует учетные данные из запросов, пришедших на него.
поэтому в нем нужно просто указать адрес сервера clickhouse
"servers": [
"http://127.0.0.1:8123"
]

ckjet commented

Если указать таким образом, то все также в статистике серверов нет:

$ 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

статистика копится только когда есть запросы. пока запросов нет, там все по нулям по идее будет

ckjet commented

Я думал не видит серверов. Действительно при добавлениях появилась статистика. Спасибо большое за помощь!