Установка ClickHouse

Thank you for reading this post, don't forget to subscribe!

1.Установка
2.Запуск
3.Создание базы дан­ных и таблиц
4.Вставка обнов­ле­ние уда­ле­ние столб­цов и данных
5.Запрос дан­ных
6.Удаление таб­лиц и данных
7.Настройка firewall

ClickHouse – это ана­ли­ти­че­ская коло­ноч­ная база дан­ных с откры­тым исход­ным кодом, раз­ра­бо­тан­ная ком­па­ни­ей Yandex для OLAP и рабо­ты с big data. Бла­го­да­ря обра­бот­ке запро­сов в режи­ме реаль­но­го вре­ме­ни ClickHouse под­хо­дит для при­ло­же­ний, кото­рым нуж­но полу­чать ана­ли­ти­че­ские дан­ные за доли секун­ды. Язык запро­сов ClickHouse – это диа­лект SQL, кото­рый предо­став­ля­ет воз­мож­но­сти декла­ра­тив­ных запросов.

Коло­ноч­ные базы дан­ных хра­нят запи­си в бло­ках, сгруп­пи­ро­ван­ных по столб­цам, а не по стро­кам. Посколь­ку такая БД не загру­жа­ет дан­ные для столб­цов, кото­рых нет в запро­се, она тра­тит мень­ше вре­ме­ни на чте­ние дан­ных при выпол­не­нии запро­сов. Пото­му коло­ноч­ные базы дан­ных могут вычис­лять и воз­вра­щать резуль­та­ты для опре­де­лен­ных рабо­чих нагру­зок, таких как OLAP, намно­го быст­рее, чем тра­ди­ци­он­ные строч­ные системы.

Систе­мы OLAP(Online Analytics Processing, интер­ак­тив­ная ана­ли­ти­че­ская обра­бот­ка) поз­во­ля­ют орга­ни­зо­вы­вать боль­шие объ­е­мы дан­ных и выпол­нять слож­ные запро­сы. Они спо­соб­ны управ­лять пета­бай­та­ми дан­ных и быст­ро воз­вра­щать резуль­та­ты запро­са. поэто­му систе­мы OLAP полез­ны для рабо­ты в таких обла­стях, как нау­ка о дан­ных и бизнес-аналитика.

В этом мануа­ле вы научи­тесь уста­нав­ли­вать сер­вер и кли­ент ClickHouse на свою маши­ну. Мы исполь­зу­ем DBMS для базо­вых задач и (опци­о­наль­но) вклю­чим уда­лен­ный доступ для дру­гой маши­ны. В кон­це ману­а­ла мы рас­ска­жем, как про­те­сти­ро­вать уста­нов­ку ClickHouse, смо­де­ли­ро­вав и запро­сив обра­зец дан­ных о посе­ще­нии сайта.

1: Установка ClickHouse

Под­клю­чи­тесь к сво­е­му сер­ве­ру по SSH:

yum install -y pygpgme yum-utils

pygpgme – это пакет для управ­ле­ния GPG-под­пи­ся­ми, а yum-utils поз­во­ля­ет управ­лять исход­ным кодом.

Altinity, кон­сал­тин­го­вая фир­ма ClickHouse, под­дер­жи­ва­ет YUM-репо­зи­то­рий с послед­ней вер­си­ей ClickHouse. Вы може­те доба­вить этот репо­зи­то­рий и без­опас­но загру­зить про­ве­рен­ные паке­ты ClickHouse. Что­бы про­ве­рить содер­жи­мое паке­та, про­смот­ри­те исход­ни­ки, из кото­рых он соби­ра­ет­ся, в этом про­ек­те Github.

Создай­те файл для дан­ных о репозитории:

cat /etc/yum.repos.d/altinity_clickhouse.repo

Добавь­те сле­ду­ю­щие стро­ки в файл:

Теперь паке­ты clickhouse-server и clickhouse-client доступ­ны для установки.

yum install -y clickhouse-server clickhouse-client

Вы успеш­но уста­но­ви­ли сер­вер и кли­ент ClickHouse. Теперь мож­но запу­стить сер­вис базы дан­ных и убе­дить­ся, что он рабо­та­ет правильно.

2: Запуск сервиса ClickHouse

Пакет clickhouse-server, кото­рый вы уста­но­ви­ли в преды­ду­щем раз­де­ле, созда­ет сер­вис systemd. Он выпол­ня­ет такие дей­ствия, как запуск, оста­нов­ка и пере­за­пуск сер­ве­ра базы дан­ных. systemd – это систе­ма ини­ци­а­ли­за­ции Linux для управ­ле­ния сер­ви­са­ми. В этом раз­де­ле мы запу­стим сер­вис ClickHouse и убе­дим­ся, что он рабо­та­ет правильно.

Запу­сти­те сер­вис clickhouse-server:

service clickhouse-server start

Вы долж­ны увидеть:

Start clickhouse-server service: Path to data directory in /etc/clickhouse-server/config.xml: /var/lib/clickhouse/
DONE

Эта коман­да не воз­вра­ща­ет вывод. Что­бы убе­дить­ся, что сер­вис рабо­та­ет, введите:

service clickhouse-server status
clickhouse-server service is running

Такой вывод пока­зы­ва­ет, что сер­вис был запу­щен успешно.

Теперь вы смо­же­те исполь­зо­вать про­грам­му CLI clickhouse-client для под­клю­че­ния к серверу.

3: Создание баз данных и таблиц

В ClickHouse вы може­те созда­вать и уда­лять базы дан­ных, запус­кая SQL-опе­ра­то­ры непо­сред­ствен­но в интер­ак­тив­ной команд­ной стро­ке. Опе­ра­то­ры состо­ят из команд, состав­лен­ных по опре­де­лен­но­му син­так­си­су, кото­рые сооб­ща­ют сер­ве­ру БД, какую опе­ра­цию нуж­но выпол­нить (вме­сте с необ­хо­ди­мы­ми дан­ны­ми). Для созда­ния базы дан­ных исполь­зу­ет­ся  син­так­сис CREATE DATABASE table_name. Что­бы создать базу дан­ных, сна­ча­ла нуж­но запу­стить сеанс кли­ен­та, выпол­нив сле­ду­ю­щую команду:

clickhouse-client --multiline

Эта коман­да откро­ет доступ к кли­ент­ской команд­ной стро­ке, в кото­рой вы може­те запус­кать SQL-опе­ра­то­ры ClickHouse для выпол­не­ния сле­ду­ю­щих действий:

  • Созда­ние, обнов­ле­ние, уда­ле­ние баз дан­ных, таб­лиц, индек­сов, раз­де­лов и видов.
  • Выпол­не­ние запро­сов для извле­че­ния дан­ных, кото­рые могут быть отфиль­тро­ва­ны и сгруп­пи­ро­ва­ны с исполь­зо­ва­ни­ем раз­лич­ных условий.

Флаг –multiline поз­во­ля­ет вво­дить запро­сы, кото­рые зани­ма­ют несколь­ко строк.

Сей­час кли­ент ClickHouse готов к встав­ке дан­ных. Попро­буй­те создать базу дан­ных и таб­ли­цу. В этом мануа­ле для при­ме­ра мы созда­дим базу дан­ных test, а внут­ри нее – таб­ли­цу по име­ни visits, кото­рая отсле­жи­ва­ет про­дол­жи­тель­ность посе­ще­ний веб-сайта.

Нахо­дясь в команд­ной стро­ке ClickHouse, создай­те БД test:

CREATE DATABASE test;

Вы уви­ди­те сле­ду­ю­щий вывод, кото­рый пока­зы­ва­ет, что вы созда­ли базу данных:

Таб­ли­ца ClickHouse похо­жа на таб­ли­цы в дру­гих реля­ци­он­ных базах дан­ных; она содер­жит кол­лек­цию свя­зан­ных дан­ных в струк­ту­ри­ро­ван­ном фор­ма­те. Вы може­те ука­зать столб­цы вме­сте с их типа­ми, доба­вить стро­ки дан­ных и выпол­нить раз­лич­ные виды запро­сов к таблицам.

Син­так­сис для созда­ния таб­лиц в ClickHouse выгля­дит так:

Зна­че­ния table_name и column_name могут быть любы­ми дей­стви­тель­ны­ми иден­ти­фи­ка­то­ра­ми ASCII. ClickHouse под­дер­жи­ва­ет широ­кий спектр типов столб­цов; вот неко­то­рые из самых популярных:

  • UInt64: исполь­зу­ет­ся для хра­не­ния цело­чис­лен­ных зна­че­ний в диа­па­зоне от 0 до 18446744073709551615.
  • Float64: исполь­зу­ет­ся для хра­не­ния чисел с пла­ва­ю­щей точ­кой, таких как 2039.23, 10.5 и т. п.
  • String: исполь­зу­ет­ся для хра­не­ния строк сим­во­лов пере­мен­ной дли­ны. Не тре­бу­ет атри­бу­тов мак­си­маль­ной дли­ны, посколь­ку может хра­нить про­из­воль­ную длину.
  • Date: хра­нит даты в фор­ма­те YYYY-MM-DD.
  • DateTime: хра­нит даты и вре­мя в фор­ма­те YYYY-MM-DD HH:MM:SS.

После опре­де­ле­ния столб­ца нуж­но ука­зать дви­жок, исполь­зу­е­мый в таб­ли­це. В ClickHouse движ­ки опре­де­ля­ют физи­че­скую струк­ту­ру базо­вых дан­ных, воз­мож­но­сти запро­сов к таб­ли­це, режи­мы одно­вре­мен­но­го досту­па и под­держ­ку индек­сов. В раз­ных ситу­а­ци­ях при­ме­ня­ют­ся раз­ные типы движ­ков. Наи­бо­лее часто исполь­зу­е­мый и широ­ко при­ме­ня­е­мый тип – MergeTree.

Теперь вы зна­е­те, как созда­ют­ся таб­ли­цы. Давай­те попро­бу­ем создать таб­ли­цу. Сна­ча­ла выбе­ри­те БД, в кото­рую нуж­но доба­вить таблицу:

USE test;

Сле­ду­ю­щий вывод пока­зы­ва­ет, что вы пере­клю­чи­лись в базу дан­ных test  из базы дан­ных default:

USE test
Ok.
0 rows in set. Elapsed: 0.001 sec.

Все остав­ши­е­ся дей­ствия в этом руко­вод­стве будут выпол­нять­ся в кон­тек­сте этой базы данных.

Создай­те таб­ли­цу visits  с помо­щью этой команды:

  • Давай­те рас­смот­рим коман­ду подроб­нее. Вы созда­ли таб­ли­цу visits, кото­рая состо­ит из 4 столбцов:
  • id: стол­бец для пер­вич­но­го клю­ча. Как и в дру­гих систе­мах РСУБД, стол­бец пер­вич­но­го клю­ча в ClickHouse иден­ти­фи­ци­ру­ет стро­ку; каж­дая стро­ка долж­на иметь для это­го столб­ца уни­каль­ное значение.
  • duration: стол­бец с пла­ва­ю­щей запя­той, исполь­зу­е­мый для хра­не­ния про­дол­жи­тель­но­сти каж­до­го посе­ще­ния в секун­дах. В столб­цах с пла­ва­ю­щей запя­той мож­но хра­нить деся­тич­ные зна­че­ния, напри­мер 12.50.
  • url: стро­ко­вый стол­бец, в кото­ром хра­нит­ся посе­щен­ный URL-адрес, напри­мер http://example.com.
  • created: стол­бец даты и вре­ме­ни, кото­рый отсле­жи­ва­ет вре­мя посещения.

После опре­де­ле­ний столб­цов ука­зы­ва­ет­ся дви­жок таб­ли­цы – MergeTree. Семей­ство движ­ков MergeTree реко­мен­ду­ет­ся исполь­зо­вать в про­из­вод­ствен­ных базах дан­ных бла­го­да­ря опти­ми­зи­ро­ван­ной под­держ­ке боль­ших опе­ра­ций встав­ки в реаль­ном вре­ме­ни, общей надеж­но­сти и под­держ­ке запро­сов. Кро­ме того, меха­низ­мы MergeTree под­дер­жи­ва­ют сор­ти­ров­ку строк по пер­вич­но­му клю­чу, раз­би­е­ние строк, а так­же репли­ка­цию и выбор­ку данных.

Если вы наме­ре­ва­е­тесь исполь­зо­вать ClickHouse для архи­ва­ции дан­ных, кото­рые ред­ко запра­ши­ва­ют­ся, или для хра­не­ния вре­мен­ных дан­ных, вы може­те исполь­зо­вать семей­ство Log.

После опре­де­ле­ния столб­цов вы опре­де­ли­те дру­гие пара­мет­ры уров­ня таб­ли­цы. Опция PRIMARY KEY уста­нав­ли­ва­ет id в каче­стве столб­ца пер­вич­но­го клю­ча, а ORDER BY будет хра­нить зна­че­ния, отсор­ти­ро­ван­ные по столб­цу id. Пер­вич­ный ключ уни­каль­ным обра­зом иден­ти­фи­ци­ру­ет стро­ку и исполь­зу­ет­ся для быст­ро­го досту­па к одной стро­ке и эффек­тив­но­го раз­ме­ще­ния строк.

Запу­стив опе­ра­тор для созда­ния таб­ли­цы, вы уви­ди­те такой вывод:

В этом раз­де­ле вы созда­ли базу дан­ных и таб­ли­цу для отсле­жи­ва­ния дан­ных о посе­ще­ни­ях веб-сай­та. Даль­ше вы узна­е­те, как встав­лять дан­ные в таб­ли­цу, обнов­лять суще­ству­ю­щие дан­ные и уда­лять их.

4: Вставка, обновление и удаление данных и столбцов

Теперь мож­но исполь­зо­вать таб­ли­цу visits для встав­ки, обнов­ле­ния и уда­ле­ния дан­ных. Сле­ду­ю­щий син­так­сис исполь­зу­ет­ся для встав­ки строк в таб­ли­цу ClickHouse:

INSERT INTO table_name VALUES (column_1_value, column_2_value, ....);

Что­бы доба­вить тесто­вые дан­ные в таб­ли­цу visits, вве­ди­те сле­ду­ю­щие операторы:

Вы уви­ди­те сле­ду­ю­щий вывод для каж­до­го опе­ра­то­ра встав­ки. Это зна­чит, что дан­ные добав­ле­ны успешно.

Вы уви­ди­те сле­ду­ю­щий вывод для каж­до­го опе­ра­то­ра встав­ки. Это зна­чит, что дан­ные добав­ле­ны успешно.

INSERT INTO visits VALUES
Ok.
1 rows in set. Elapsed: 0.004 sec.

Теперь нуж­но доба­вить в таб­ли­цу допол­ни­тель­ный стол­бец. При добав­ле­нии или уда­ле­нии столб­цов из суще­ству­ю­щих таб­лиц ClickHouse под­дер­жи­ва­ет син­так­сис ALTER.

Базо­вый син­так­сис для добав­ле­ния столб­ца в таб­ли­цу выгля­дит сле­ду­ю­щим образом:

ALTER TABLE table_name ADD COLUMN column_name column_type;

Добавь­те в таб­ли­цу стол­бец location, в кото­ром будет хра­нить­ся рас­по­ло­же­ние посе­ще­ний веб-сайта:

ALTER TABLE visits ADD COLUMN location String;

Вы уви­ди­те такой вывод:

Вывод пока­зы­ва­ет, что вы успеш­но доба­ви­ли стол­бец location.

Начи­ная с вер­сии 19.3.6, ClickHouse не под­дер­жи­ва­ет обнов­ле­ние и уда­ле­ние отдель­ных строк дан­ных из-за огра­ни­че­ний реа­ли­за­ции. Одна­ко ClickHouse под­дер­жи­ва­ет мас­со­вые обнов­ле­ния и уда­ле­ния и име­ет для этих опе­ра­ций осо­бый син­так­сис SQL, что­бы под­черк­нуть их нестан­дарт­ное использование.

Сле­ду­ю­щий син­так­сис – при­мер мас­со­во­го обнов­ле­ния строк:

ALTER TABLE table_name UPDATE  column_1 = value_1, column_2 = value_2 ...  WHERE  filter_conditions;

Запу­сти­те сле­ду­ю­щий опе­ра­тор, что­бы обно­вить стол­бец url всех строк, дли­тель­ность кото­рых не пре­вы­ша­ет 15.

ALTER TABLE visits UPDATE url = 'http://example2.com' WHERE duration < 15;

Вы полу­чи­те такой вывод:

Вывод пока­зы­ва­ет, что ваш запрос на обнов­ле­ние завер­шен успеш­но. Стро­ка «0 rows in set» сооб­ща­ет, что запрос не вер­нул ни одной стро­ки; это все­гда про­ис­хо­дит для любых запро­сов на обнов­ле­ние и удаление.

Син­так­сис мас­со­во­го уда­ле­ния строк ана­ло­ги­чен обнов­ле­нию и име­ет сле­ду­ю­щую структуру:

ALTER TABLE table_name DELETE WHERE filter_conditions;

Для при­ме­ра исполь­зуй­те сле­ду­ю­щий опе­ра­тор, что­бы уда­лить все стро­ки, duration кото­рых менее 5:

Выход­ные дан­ные под­твер­жда­ют, что вы уда­ли­ли стро­ки, чье зна­че­ние duration менее 5.

Что­бы уда­лить столб­цы из таб­ли­цы, нуж­но исполь­зо­вать такой синтаксис:

ALTER TABLE table_name DROP COLUMN column_name;

Уда­ли­те ранее добав­лен­ный стол­бец location, выполнив:

ALTER TABLE visits DROP COLUMN location;

Вывод DROP COLUMN, под­твер­жда­ю­щий, что вы уда­ли­ли стол­бец, будет выгля­деть сле­ду­ю­щим образом:

Теперь, когда вы научи­лись встав­лять, уда­лять и обнов­лять стро­ки и столб­цы в сво­ей таб­ли­це, пора перей­ти к запро­су данных.

5: Запрос данных

Язык запро­сов ClickHouse пред­став­ля­ет собой поль­зо­ва­тель­ский диа­лект SQL с рас­ши­ре­ни­я­ми и функ­ци­я­ми для ана­ли­ти­че­ских рабо­чих нагру­зок. На этом эта­пе вы научи­тесь запус­кать запро­сы на выбор­ку и агре­га­цию, что­бы полу­чить дан­ные и резуль­та­ты из тесто­вой таб­ли­цы visits.

Запро­сы выбо­ра поз­во­ля­ют извле­кать стро­ки и столб­цы дан­ных, отфиль­тро­ван­ных по ука­зан­ным вами усло­ви­ям, а так­же таким пара­мет­рам, как коли­че­ство воз­вра­ща­е­мых строк. Вы може­те выбрать стро­ки и столб­цы дан­ных, исполь­зуя син­так­сис SELECT. Основ­ной син­так­сис для запро­сов SELECT:

SELECT func_1(column_1), func_2(column_2) FROM table_name WHERE filter_conditions row_options;

Выпол­ни­те сле­ду­ю­щий опе­ра­тор, что­бы извлечь зна­че­ния url и duration для строк, url кото­рых http://example.com.

Вывод вер­нул две стро­ки, кото­рые соот­вет­ству­ют ука­зан­ным вами усло­ви­ям. Теперь, когда вы выбра­ли зна­че­ния, вы може­те перей­ти к выпол­не­нию запро­сов агрегации.

Запро­сы агре­га­ции – это запро­сы, кото­рые рабо­та­ют с набо­ром зна­че­ний и воз­вра­ща­ют еди­нич­ные выход­ные зна­че­ния. В ана­ли­ти­че­ских базах дан­ных эти запро­сы часто выпол­ня­ют­ся и хоро­шо опти­ми­зи­ру­ют­ся. Неко­то­рые агре­гат­ные функ­ции, под­дер­жи­ва­е­мые ClickHouse:

  • count: воз­вра­ща­ет коли­че­ство строк, соот­вет­ству­ю­щих ука­зан­ным условиям.
  • sum: воз­вра­ща­ет сум­му зна­че­ний выбран­ных столбцов.
  • avg: воз­вра­ща­ет сред­нее зна­че­ние для выбран­ных столбцов

Неко­то­рые харак­тер­ные для ClickHouse агре­гат­ные функ­ции вклю­ча­ют в себя:

  • uniq: воз­вра­ща­ет при­бли­зи­тель­ное коли­че­ство раз­лич­ных зна­че­ний аргумента.
  • topK: воз­вра­ща­ет мас­сив наи­бо­лее часто встре­ча­ю­щих­ся зна­че­ний опре­де­лен­но­го столб­ца с помо­щью алго­рит­ма аппроксимации.

Что­бы про­де­мон­стри­ро­вать выпол­не­ние запро­сов агре­га­ции, мы рас­счи­та­ем общую про­дол­жи­тель­ность посе­ще­ний, выпол­нив запрос суммы:

Теперь давай­те вычис­лим два основ­ных URL, выполнив:

6: Удаление таблиц и баз данных

В этом раз­де­ле вы узна­е­те, как уда­лить свою таб­ли­цу visits и базу дан­ных test.

Син­так­сис для уда­ле­ния таб­лиц выгля­дит так:

DROP TABLE table_name;

Что­бы уда­лить таб­ли­цу visits, запу­сти­те сле­ду­ю­щий оператор:

DROP TABLE visits;

Вы уви­ди­те сле­ду­ю­щий вывод, если таб­ли­ца уда­ле­на успешно:

DROP TABLE visits
Ok.
0 rows in set. Elapsed: 0.005 sec.

Вы може­те уда­лить базу дан­ных, исполь­зуя син­так­сис DROP database table_name. Что­бы уда­лить базу дан­ных, введите:

DROP DATABASE test;

Вы уви­ди­те сле­ду­ю­щий вывод, если БД уда­ле­на успешно:

DROP DATABASE test
Ok.
0 rows in set. Elapsed: 0.003 sec.

Итак, вы уда­ли­ли таб­ли­цу и базу дан­ных. Теперь, когда вы научи­лись выпол­нять базо­вые опе­ра­ции с экзем­пля­ром ClickHouse, давай­те вклю­чим уда­лен­ный доступ к ваше­му сер­ве­ру баз данных.

7: Настройка брандмауэра (опционально)

Если вы наме­ре­ны исполь­зо­вать ClickHouse толь­ко локаль­но с при­ло­же­ни­я­ми, рабо­та­ю­щи­ми в рам­ках одно­го сер­ве­ра, или если на вашем сер­ве­ре не вклю­чен бранд­мау­эр, вам не нужен этот раз­дел. Одна­ко если вы буде­те под­клю­чать­ся к сер­ве­ру базы дан­ных ClickHouse уда­лен­но, луч­ше выпол­нить его.

В насто­я­щее вре­мя на вашем сер­ве­ре вклю­чен бранд­мау­эр, кото­рый бло­ки­ру­ет доступ к ваше­му внеш­не­му IP-адре­су по всем пор­там. Выпол­ни­те сле­ду­ю­щие два шага, что­бы раз­ре­шить уда­лен­ный доступ:

  • Изме­ни­те кон­фи­гу­ра­цию ClickHouse и раз­ре­ши­те ему про­слу­ши­вать все интерфейсы.
  • Добавь­те пра­ви­ло бранд­мау­э­ра, раз­ре­ша­ю­щее вхо­дя­щие под­клю­че­ния к пор­ту 8123 (это HTTP-порт, на кото­ром рабо­та­ет сер­вер ClickHouse).

Если вы нахо­ди­тесь в команд­ной стро­ке базы дан­ных, вый­ди­те из нее, набрав CTRL+D.

Открой­те в редак­то­ре файл:

sudo vi /etc/clickhouse-server/config.xml

Рас­ком­мен­ти­руй­те стро­ку <!– <listen_host>0.0.0.0</listen_host> –>:

Сохра­ни­те и закрой­те файл.

Что­бы обно­вить кон­фи­гу­ра­цию, пере­за­пу­сти­те сервис:

sudo service clickhouse-server restart

Вы уви­ди­те такой вывод этой команды.

Stop clickhouse-server service:
DONE
Start clickhouse-server service: Path to data directory in /etc/clickhouse-server/config.xml: /var/lib/clickhouse/
DONE

Добавь­те IP уда­лен­ной маши­ны в зону public:

sudo firewall-cmd --permanent --zone=public --add-source=second_server_ip/32

Сер­вер ClickHouse про­слу­ши­ва­ет порт 8123 для HTTP-соеди­не­ний и порт 9000 для соеди­не­ний от кли­ен­та clickhouse-client. Раз­ре­ши­те доступ к обо­им пор­там IP-адре­су ваше­го вто­ро­го сер­ве­ра с помо­щью сле­ду­ю­щей команды:

sudo firewall-cmd --permanent --zone=public --add-port=8123/tcp
sudo firewall-cmd --permanent --zone=public --add-port=9000/tcp

Вы уви­ди­те для обе­их команд сле­ду­ю­щий вывод, кото­рый пока­зы­ва­ет, что доступ к обо­им пор­там включен:

success

Пере­за­пу­сти­те брандмауэр:

sudo firewall-cmd --reload

Коман­да тоже долж­на вер­нуть success.

ClickHouse теперь будет досту­пен для сер­ве­ра, IP-адрес кото­ро­го вы доба­ви­ли. При необ­хо­ди­мо­сти мож­но доба­вить допол­ни­тель­ные IP-адре­са, напри­мер, адрес ваше­го локаль­но­го компьютера.

Что­бы убе­дить­ся, что вы може­те под­клю­чить­ся к сер­ве­ру ClickHouse с уда­лен­но­го ком­пью­те­ра, сна­ча­ла выпол­ни­те дей­ствия, опи­сан­ные в раз­де­ле 1 это­го руко­вод­ства, на вто­ром сер­ве­ре и убе­ди­тесь, что на нем уста­нов­лен кли­ент clickhouse-client.

Вой­ди­те на вто­рой сер­вер, запу­сти­те сеанс клиента:

clickhouse-client --host your_server_ip --multiline

Сле­ду­ю­щий вывод сооб­ща­ет, что вы успеш­но под­клю­чи­лись к серверу:

ClickHouse client version 19.4.3.
Connecting to your_server_ip:9000 as user default.
Connected to ClickHouse server version 19.4.3 revision 54416.
hostname 🙂

Вы вклю­чи­ли уда­лен­ный доступ к сер­ве­ру базы дан­ных ClickHouse, изме­нив пра­ви­ла брандмауэра.