Настройка ClickHouse
Это руководство по установке для развертывания ClickHouse с докером на удаленных серверах.
Установка
В удаленной системе должен быть предварительно установлен докер.
Сервер
Выполните следующую команду:
$ docker run -d --name some-clickhouse-server -p 8123:8123 --ulimit nofile=262144:262144 --volume=$HOME/some_clickhouse_database:/var/lib/clickhouse yandex/clickhouse-server
Сервер ClickHouse использует порт 8123 в качестве порта по умолчанию, но вы можете использовать любой другой открытый порт, но не забудьте открыть порт для внешней сети. Сервер поставляется с пользователями по умолчанию без пароля.
Клиент
Выполните следующую команду на сервере, чтобы подключиться к серверу clickhouse с пользователем по умолчанию.
$ docker run -it --rm --link some-clickhouse-server:clickhouse-server yandex/clickhouse-client --host clickhouse-server
Конфигурация
Откройте контейнер докеров сервера clickhouse
$ docker exec -it some-clickhouse-server bash
1. Включите управление доступом и учетными записями на основе SQL для default
пользователя.
В контейнере докеров сервера clickhouse:
$ cd etc/clickhouse-server
Закомментируйте следующую строку в файле user.xml, чтобы включить контроль доступа:
<access_management>1</access_management>
Обратите внимание, что эта операция небезопасна, и по окончании работы вам следует изменить контроль доступа на:
<access_management>0</access_management>
2. Прослушивание других сетей:
В etc/clickhouse-server/config.xml
закомментируйте <listen_host>::</listen_host>
, чтобы разрешить удаленные подключения. Вы должны увидеть, что порт открыт в системной сети:
root@myvm:~# lsof -i :8123
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
docker-pr 1141768 root 4u IPv6 53989091 0t0 TCP *:8123 (LISTEN)
Создание БД с пользователями
В этой части мы создаем простую базу данных и пользователей. Затем мы предоставляем привилегии базы данных этому пользователю.
Есть два типа синхронизации, и они могут дополнять друг друга:
1. Создание пользователей
CREATE USER IF NOT EXISTS user1 IDENTIFIED WITH PLAINTEXT_PASSWORD BY 'pass1'
Вы можете проверить пользователей с помощью команды SHOW USERS
.
CREATE DATABASE IF NOT EXISTS db1
Вы можете проверить базы данных с помощью команды SHOW DATABASES
.
Вы можете предоставить пользователям ограниченные или все привилегии.
GRANT ALL PRIVILEGES ON db1.* TO user1
4. Подключите новых пользователей к базе данных.
Теперь мы можем подключиться к серверу с созданной учетной записью.
$ docker run -it --rm --link some-clickhouse-server:clickhouse-server yandex/clickhouse-client --host clickhouse-server -u user1 --password pass1
Убедитесь, что у пользователей есть все разрешения и доступ к базам данных:
:) SHOW GRANTS
:) SHOW DATABASES
Создание образца таблицы
Clickhouse поддерживает SQL.
Чтобы создать таблицу:
:) USE db1
:) CREATE TABLE names (
id UInt64,
name String,
created DateTime
) ENGINE = MergeTree()
PRIMARY KEY id
ORDER BY id;
:) SHOW TABLES
Вот и все. Вы можете подключиться к базам данных из других сетей с помощью clickhouse-client и вашего пользователя / пароля.
person
FrastoFresto
schedule
18.11.2020