nikepan / clickhouse-bulk

Collects many small inserts to ClickHouse and send in big inserts
Apache License 2.0
474 stars 87 forks source link

No working clickhouse servers #22

Closed ckjet closed 4 years ago

ckjet commented 4 years ago

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

nikepan commented 4 years ago

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

ckjet commented 4 years ago

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

nikepan commented 4 years ago

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

ckjet commented 4 years ago

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

FROM yandex/clickhouse-client:19.15 as build

nikepan commented 4 years ago

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

nikepan commented 4 years ago

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

ckjet commented 4 years ago

Я пробовал управлять через houseOps - все таблицы и данные отображаются. С теми же настройками пытаюсь настроить clickhouse-bulk

nikepan commented 4 years ago

а через какую библиотеку вы отправляете данные в кликхаус сейчас?

ckjet commented 4 years ago

https://github.com/esazykin/laravel-clickhouse

nikepan commented 4 years ago

По идее только вот тут в конфиге пароль нужно задавать. в 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 4 years ago

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

nikepan commented 4 years ago

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

ckjet commented 4 years ago

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

$ 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

nikepan commented 4 years ago

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

ckjet commented 4 years ago

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