New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.
Already on GitHub?
Sign in
to your account
Closed
rasmus93 opened this issue
Nov 11, 2016
· 6 comments
Closed
Several statements in one query
#51
rasmus93 opened this issue
Nov 11, 2016
· 6 comments
Comments
Hi, @serebrserg !
Can we execute several statements in one query?
For example: «CREATE TABLE …..; CREATE TABLE …..;»
For now it is not working. Is it bug of jdbc-connector or normal behavior of database?
Thanks!
Hello, @rasmus93!
As far as I know JDBC doesn’t support multi statement execution. This functionality is implemented in MySQL Connector/J and is not recommended to be used:
If you want to execute multiple statements, you need to use separate executes. Technically, MySQL does have an option to support multiple executions which can be enabled by a connection property. This behavior is not compliant with the JDBC specification/API and makes your code less portable.
(source: http://stackoverflow.com/a/18516309/954275)
It is always possible to separate statements in source string. And this approach gives you more options for error handling.
Is there an issue behind this question?
Copy link
Contributor
Author
Hi again,
It will be very nice to do «create table» statement, but I understand why such requirement should be.
Issue behind this is that I need to create local and distributed tables(based on local) or alter some columns(also do in local and distributed tables — equal changes).
And I want to do this in one query. But I understand why it is not recommended to be used.
Thanks for answer!
And I want to do this in one query
You probably mean «in a single transaction», aren’t you?
As far as I know, currently there are no transactions support in CH because of their impact on performance. Thus you can not assume that multiple statements written in a single query (if it would be possible) will be executed as an atomic change.
BTW in Oracle RDBMS DDL statements make two implicit commits: before and after change. It means that it is impossible to rollback completed DDL. And «two-statement-in-one-query» trick is impossible too in that RDBMS.
Thanks for discussion.
In fact it is the normal behavior of Clickhouse.
Making the query through clickhouse-client:
CREATE TABLE test.test2 ( d Float64) ENGINE = Log; CREATE TABLE test.test3 ( d Float64) ENGINE = Log;
CREATE TABLE test.test2
(
d Float64
) ENGINE = LogReceived exception from server:
Code: 62. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Syntax error (Multi-statements are not allowed): failed at position 52: CREATE TABLE test.test3 ( d Float64) ENGINE = Log;.0 rows in set. Elapsed: 0.020 sec.
So if a correct exception with correct code is thrown, this is ok.
@rasmus93 you can use String dbUrl = "jdbc:clickhouse:///test?allowMultiQueries=true";
to exec multiple query in clickhouse jdbc
crystaldust
added a commit
to crystaldust/dashboard
that referenced
this issue
May 11, 2022
@blanklin030 What’s your ClickHouseDriver version? I tried com.clickhouse.jdbc.ClickHouseDriver (0.3.2)
and ru.yandex.clickhouse.ClickHouseDriver (0.2.4)
they both not working
1. Preparation
First, I need to create a table and write the corresponding fields in it:
create table t_order_mt(
id UInt32,
sku_id String,
total_amount Decimal(16,2),
create_time Datetime
) engine =MergeTree
partition by toYYYYMMDD(create_time)
primary key (id)
order by (id,sku_id);
Next, you need to insert the corresponding data into it:
insert into t_order_mt values
(101,'sku_001',1000.00,'2020-06-01 12:00:00') ,
(102,'sku_002',2000.00,'2020-06-01 11:00:00'),
(102,'sku_004',2500.00,'2020-06-01 12:00:00'),
(102,'sku_002',2000.00,'2020-06-01 13:00:00'),
(102,'sku_002',12000.00,'2020-06-01 13:00:00'),
(102,'sku_002',600.00,'2020-06-02 12:00:00');
2. Error display
When I execute select * from table_name, the following problems may occur:
Code: 62. DB::Exception: Syntax error (Multi-statements are not allowed): failed at position 54 (end of query) (line 1, col 54): ;
FORMAT JSON . . (SYNTAX_ERROR) (version 21.11.6.7 (official build))
3. Solution
You only need to end the sentence after the corresponding sentence; Change to:
select * from t_order_mt;;
Results
Read More:
When doing SELECT * FROM test_table;
inside clickhouse-client I get N rows as expected, but only N-2 when doing engine.execute('SELECT * FROM test_table;')
from python code that uses sqlalchemy.
Steps to reproduce:
- clickhouse-server is running on localhost.
- The following commands are executed in clickhouse-client:
CREATE TABLE test_table (id INTEGER, created Date) ENGINE = MergeTree(created, (id), 8192);
INSERT INTO test_table (id, created) VALUES (1, 11345678);
INSERT INTO test_table (id, created) VALUES (2, 12345678);
INSERT INTO test_table (id, created) VALUES (3, 13345678);
INSERT INTO test_table (id, created) VALUES (4, 14345678);
SELECT * FROM test_table;
Results:
SELECT *
FROM test_table
┌─id─┬────created─┐
│ 4 │ 2106-02-07 │
└────┴────────────┘
┌─id─┬────created─┐
│ 3 │ 2084-08-20 │
└────┴────────────┘
┌─id─┬────created─┐
│ 2 │ 2038-03-15 │
└────┴────────────┘
┌─id─┬────created─┐
│ 1 │ 1991-10-08 │
└────┴────────────┘
4 rows in set. Elapsed: 0.004 sec.
Okay, 4 rows as expected.
- The following python script is executed:
from sqlalchemy import create_engine
connection_string = 'clickhouse://default:@localhost/default'
engine = create_engine(connection_string)
result = list(engine.execute('SELECT * FROM test_table;'))
print(len(result))
print(result)
Results:
2
[('4', '2106-02-07'), ('2', '2038-03-15')]
Definitely not as expected. So, what is going on here?
sqlalchemy version: 1.3.11
clickhouse version (both server and client): 19.17.4.11
Dmitry Berezhnov
unread,
Jun 7, 2017, 4:04:50 PM6/7/17
to ClickHouse
Приветствую.
Попытался выполнить запрос (через HTTP REST API) вида:
CREATE TABLE …; CREATE TABLE …; …
получил ошибку
Syntax error (Multi-statements are not allowed)
Можно ли как-то всё таки выполнить несколько команду за один запрос?
Vitaliy Lyudvichenko
unread,
Jun 8, 2017, 2:49:50 PM6/8/17
to ClickHouse
К сожалению, в HTTP интерфейсе и CLI-клиенте осознанно не поддерживается выполнение нескольких запросов (что например делать в случае 2 INSERT’ов?).
P.S. Хотя в clickhouse-client’e вы таки сможете выполнить несколько запросов, указав опцию -n, но эта возможность используется только для в запуска функциональных тестов ClickHouse’a.
среда, 7 июня 2017 г., 16:04:50 UTC+3 пользователь Dmitry Berezhnov написал:
Dmitry Berezhnov
unread,
Jun 8, 2017, 6:07:52 PM6/8/17
to ClickHouse
Печально, поскольку в моей ситуации приходиться делать много отдельных запросов, вместо одного.
Если в случае нескольких интсертов ограничение может и оправдано, то в случае CREATE — не очень понятно почему нельзя.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
21
ответов
это потому что он работает на нерусском линуксе
двойные кавычки для имен полей используйте и запрос в UTF-8 кодировке передавайте
у меня все нормально отработало
CREATE TABLE «тест1» (d DateTime, v UInt64) Engine=MergeTree() PARTITION BY toYYYYMM(d) ORDER BY d;
CREATE TABLE «тест2» (d DateTime, v UInt64) Engine=MergeTree() PARTITION BY toYYYYMM(d) ORDER BY d;
SELECT t1.d, t2.v FROM «тест1» AS t1 JOIN «тест2» AS t2 ON t1.d=t2.d;
Slach [altinity]
двойные кавычки для имен полей используйте и запро…
Счас попробую с двойными. А вот запрос в utf- это как? Я обычным dbviewer проверяю
A E
Счас попробую с двойными. А вот запрос в utf- это …
что такое обычный «dbviewer»?
DBeaver ?
JetBrains DataGrip?
A E
Счас попробую с двойными. А вот запрос в utf- это …
запрос в utf-8 это значит запрос в кодировке utf-8
ну будем надеяться раз вы не знаете что такое, то у вас именно она
Slach [altinity]
что такое обычный «dbviewer»?
DBeaver ?
JetBrains …
DBeaver. С двойными кавычками тоже не выполняется join
A E
DBeaver. С двойными кавычками тоже не выполняется …
ошибку то уже покажете?
мои запросы которые я привел работают?
Slach [altinity]
ошибку то уже покажете?
мои запросы которые я прив…
Да. Счас попробую ваш запрос выполнить
Нет. Не поддерживает.
Лучше даже не пытайтесь. Посмотрите на имена файлов в каталоге data. В один прекрасный момент все сломается потому что линукс поддерживает имена файлов до 1 кб и абсолютные имена до 4 кб
Slach [altinity]
ошибку то уже покажете?
мои запросы которые я прив…
SQL Error [62]: ClickHouse exception, code: 62, host: clickhouse, port: 8123; Code: 62, e.displayText() = DB::Exception: Syntax error (Multi-statements are not allowed): failed at position 103 (end of query) (line 1, col 103): ;
CREATE TABLE «тест2» (d DateTime, v UInt64) Engine=MergeTree() PARTITION BY toYYYYMM(d) ORDER BY d;
SELECT t1.d, t2.v FROM «тест1» AS t1 JOIN «те. (version 20.11.4.13 (official build))
A E
Вот такие длиннющие имена
Так я то в курсе. Почему и написал вам что все сломается однажды. Потому что длина будет расти со временем.
это умение пользоваться DBeaver и читать сообщение об ошибке, думая что оно значит
чтобы запустить несколько команд из одного окна
A E
Так он же на multi-statement, вроде, ругается
Eldar
Так он же на multi-statement, вроде, ругается
на фото этого не видно на что он ругается
фото показывает что человек не в адеквате
желания помогать уже нет никого после этого
Eldar
Так он же на multi-statement, вроде, ругается
Да. Выполнил по команде-тоже прошёл
Оглавление
1 Системная среда
1.1 Linux версия
1.2 версия Docker
2 Docker установка Clickhouse-Server
2.1 Просмотр Clickhouse-Server на docker.hub
2.2 Вытягивание зеркала Clickhouse-Server
2.3 Подготовка местного каталога поселений
2.4 Просмотреть порт, который вы будете использовать
2.5 Скопируйте файл конфигурации SCULTHOSE-Server
2.6 Изменить конфигурацию пользователя
2.7 Создайте контейнер
2.8 Введите тест контейнера Clickhouse
3 Docker устанавливает Clickhouse-Client
3.1 Посмотреть Clickhouse-Client на docker.hub
3.2 Вытягивание Yandex/Clickhouse-Client: 20.3.21.2 Docker Mirror Image
3.3 Start Clickhouse-Client
3.4 Настройте команду стартапа Clickhouse-Client
4 Docker Install Clickhouse Web Interface Tabix
4.1 Посмотреть Clickhouse-tabix-web-client на docker.hub
4.2 Вытягивание зеркала Spoonest/Clickhouse-Tabix-Weight
4.3 Create Clickhouse-Tabix-Web-Client Container
1 Системная среда
Преждевременный я подготовил Docker
1.1 Linux версия
[[email protected] ~]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.8.2003 (Core)
Release: 7.8.2003
Codename: Core
1.2 версия Docker
[[email protected] ~]# docker -v
Docker version 1.13.1, build 64e9980/1.13.1
2 Docker установка Clickhouse-Server
2.1 Просмотр Clickhouse-Server на docker.hub
[[email protected] ~]# docker search clickhouse-server
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/yandex/clickhouse-server ClickHouse is an open-source column-orient... 256 [OK]
docker.io docker.io/agisoft/clickhouse-server 0
docker.io docker.io/altinity/clickhouse-server 0
docker.io docker.io/btmc/clickhouse-server yandex/clickhouse-server + clickhouse-clie... 0
docker.io docker.io/btmc/clickhouse-server_v2 0
docker.io docker.io/davideberdin/clickhouse-server 0
Можно видеть, что Docker.io/yandex/clickhouse-server имеет больше всего лайков. Это показывает, что есть много людей, которые используют его, и вы выбираете это изображение.
Последняя версия последнего здесь не выбрана, выберите предыдущую стабильную версию Yandex/Clickhouse-Server: 20.3.21.2
2.2 Вытягивание зеркала Clickhouse-Server
[[email protected] ~]# docker pull yandex/clickhouse-server:20.3.21.2
Trying to pull repository docker.io/yandex/clickhouse-server ...
20.3.21.2: Pulling from docker.io/yandex/clickhouse-server
171857c49d0f: Already exists
419640447d26: Already exists
61e52f862619: Already exists
89efb9c881d4: Pull complete
284b66b34b0e: Pull complete
a3b83ee38fa7: Pull complete
f7609780ee3b: Pull complete
adadfa9cf73f: Pull complete
95cb98063b9f: Pull complete
ff8a7c48b73e: Pull complete
Digest: sha256:e9c704ac6dc7f11e09b3c00d784625ac6f7c4fe9c9050c1d4b61b572f2bdd434
Status: Downloaded newer image for docker.io/yandex/clickhouse-server:20.3.21.2
Посмотреть зеркальное изображение
[[email protected] ~]# docker images docker.io/yandex/clickhouse-server:20.3.21.2
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/yandex/clickhouse-server 20.3.21.2 a653b487b34e 3 days ago 424 MB
2.3 Подготовка местного каталога поселений
[[email protected] ~]# mkdir -p /data/module/clickhouse/data
[[email protected] ~]# mkdir -p /data/module/clickhouse/conf
[[email protected] ~]# mkdir -p /data/module/clickhouse/log
[[email protected] ~]#
[[email protected] ~]# chmod -R 777 /data/module/clickhouse/data
[[email protected] ~]# chmod -R 777 /data/module/clickhouse/conf
[[email protected] ~]# chmod -R 777 /data/module/clickhouse/log
Данные поместите данные Clickhouse, CON CORT PRET FILE, журнал выпуска журнала
2.4 Просмотреть порт, который вы будете использовать
Проверятьdockerfileдокумент
https://hub.docker.com/r/yandex/clickhouse-server/dockerfile
Разоблачение, указанный порт, который будет подвергаться воздействию внешних 9000 8123 9009
Проверьте, занят ли порт
[[email protected] clickhouse]# netstat -apn | grep 9000
[[email protected] clickhouse]# netstat -apn | grep 8123
[[email protected] clickhouse]# netstat -apn | grep 9009
[[email protected] clickhouse]#
Можно видеть, что нет никаких запросов, что он не занят, я могу его использовать
2.5 Скопируйте файл конфигурации SCULTHOSE-Server
Скопируйте на локальный хост, чтобы изменить его как шаблон
① Создать временный контейнер
docker run --rm -d --name=liucf-clickhouse-server
--ulimit nofile=262144:262144
-p 8123:8123 -p 9009:9009 -p 9000:9000
yandex/clickhouse-server:20.3.21.2
Экскурация заказа
[[email protected] clickhouse]# docker run --rm -d --name=liucf-clickhouse-server
> --ulimit nofile=262144:262144
> -p 8123:8123 -p 9009:9009 -p 9000:9000
> yandex/clickhouse-server:20.3.21.2
507189ee29eb454865deb8f5f83b754679dcc5b304cadd44b7c631d0adb23c61
[[email protected] clickhouse]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
507189ee29eb yandex/clickhouse-server:20.3.21.2 "/entrypoint.sh" 9 seconds ago Up 8 seconds 0.0.0.0:8123->8123/tcp, 0.0.0.0:9000->9000/tcp, 0.0.0.0:9009->9009/tcp liucf-clickhouse-server
Введите контейнер, чтобы просмотреть файл конфигурации
[[email protected] clickhouse]# docker exec -it liucf-clickhouse-server /bin/bash
[email protected]:/# ls -al /etc/clickhouse-server/
total 32
drwxr-xr-x. 1 root root 22 Nov 2 17:53 .
drwxr-xr-x. 1 root root 66 Nov 6 03:05 ..
drwxr-xr-x. 1 root root 39 Nov 2 17:53 config.d
-rw-r--r--. 1 root root 22610 Nov 2 13:20 config.xml
lrwxrwxrwx. 1 root root 41 Nov 2 17:52 preprocessed -> /var/lib/clickhouse//preprocessed_configs
drwxr-xr-x. 2 root root 6 Nov 2 17:52 users.d
-rw-r--r--. 1 root root 5190 Nov 2 13:20 users.xml
Можно видеть, что внутренний файл конфигурации контейнера config.xml и users.xml находятся в каталоге/и т. Д./Clickhouse-server/ниже
Каталог журнала:/var/log/clickhouse-server
Справочник данных:/var/lib/clickhouse
Выйти из контейнера
[email protected]:/# exit
exit
[[email protected] clickhouse]#
② Скопировать файл конфигурации контейнера на хост
[[email protected] conf]# docker cp liucf-clickhouse-server:/etc/clickhouse-server/config.xml /data/module/clickhouse/conf/config.xml
[[email protected] conf]# docker cp liucf-clickhouse-server:/etc/clickhouse-server/users.xml /data/module/clickhouse/conf/users.xml
③ Остановите временный контейнер liucf-clickhouse-server
[[email protected] conf]# docker stop liucf-clickhouse-server
liucf-clickhouse-server
Проверьте, остается ли это все еще
[[email protected] conf]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a2cdef2452d3 docker.io/amancevice/superset "gunicorn superset..." 5 weeks ago Up 5 weeks (healthy) 0.0.0.0:8088->8088/tcp superset
[[email protected] conf]#
Можно видеть, что параметры используются при запуске -rm указывает, что после остановки контейнера он будет удален, даже если Docker ps -A используется
2.6 Изменить конфигурацию пользователя
Поскольку мы скопировали его выше, пользователи файла конфигурации. XML теперь может изменить/dadata/module/clickhouse/conf/users.xml
① Изменить пароль для входа в систему с умолчанием по умолчанию
Используйте алгоритм шифрования SHA256
Формат:
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$MY_PASSWORD"; echo -n "$MY_PASSWORD" | sha256sum | tr -d '-'
Например, я готовлю пароль по умолчанию 123456
Выполнять следующее
[[email protected] conf]# PASSWORD=$(base64 < /dev/urandom | head -c8); echo "123456"; echo -n "123456" | sha256sum | tr -d '-'
123456
8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
Выведет Clear и SHA256 Password 8D969EEF6ECAD3C29A3A3A3A629280E686CF0C3F5D5A86AFF3CA120C923ADC6C92
/data/module/clickhouse/conf/users.xml
Установите учетную запись по умолчанию, чтобы прочитать только разрешения и установить пароль
Настройки только читают
yandex-> users-> default-> Узел профиля установлен для Readonly
<yandex>
......
<users>
<!-- If user name was not specified, 'default' user is used. -->
<default>
......
<profile>readonly</profile>
......
B Настройка пароля
Обратите внимание, что yandex-> users-> default-> Узел пароля
<yandex>
......
<users>
<!-- If user name was not specified, 'default' user is used. -->
<default>
......
<!-- <password></password> -->
......
Новые узлы yandex-> users-> default-> password_sha256_hex
<yandex>
......
<users>
<!-- If user name was not specified, 'default' user is used. -->
<default>
......
<!-- <password></password> -->
<password_sha256_hex>8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92</password_sha256_hex>
......
② Добавьте пользователя root и установите пароль для входа в систему
Сгенерировать пароль пользователя root
[[email protected] conf]# PASSWORD=$(base64 < /dev/urandom | head -c8); echo "888888"; echo -n "888888" | sha256sum | tr -d '-'
888888
92925488b28ab12584ac8fcaa8a27a0f497b2c62940c8f4fbc8ef19ebc87c43e
Добавьте тег пользователя root под той же меткой уровня метки пользователя по умолчанию
<users>
</default>
......
</default>
<root>
<password_sha256_hex>92925488b28ab12584ac8fcaa8a27a0f497b2c62940c8f4fbc8ef19ebc87c43e</password_sha256_hex>
<networks incl="networks" replace="replace">
<ip>::/0</ip>
</networks>
<profile>default</profile>
<quota>default</quota>
</root>
</users>
2.7 Создайте контейнер
Экскурация заказа:
[[email protected] log]# docker run -d --name=liucf-clickhouse-server
> -p 8123:8123 -p 9009:9009 -p 9000:9000
> --ulimit nofile=262144:262144
> -v /data/module/clickhouse/data:/var/lib/clickhouse:rw
> -v /data/module/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml
> -v /data/module/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml
> -v /data/module/clickhouse/log:/var/log/clickhouse-server:rw
> --privileged=true
> yandex/clickhouse-server:20.3.21.2
b64d9704419c1273ca344f1f6a98881b32bf5e98d0d52c036aa1a4ff11e8031e
Проверьте, успешно ли создание контейнера
[[email protected] log]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b64d9704419c yandex/clickhouse-server:20.3.21.2 "/entrypoint.sh" 3 seconds ago Up 3 seconds 0.0.0.0:8123->8123/tcp, 0.0.0.0:9000->9000/tcp, 0.0.0.0:9009->9009/tcp liucf-clickhouse-server
a2cdef2452d3 docker.io/amancevice/superset "gunicorn superset..." 5 weeks ago Up 5 weeks (healthy) 0.0.0.0:8088->8088/tcp superset
[[email protected] log]#
Параметры команды, связанные с Docker, пожалуйста, Baidu для себя Baidu
Примечание. При запуске вы должны добавить privileged = true, в противном случае будут авторитетные проблемы, аналогичные сообщению об ошибке:
[[email protected] log]# docker logs --tail='100' liucf-clickhouse-server
chown: cannot read directory '/var/lib/clickhouse/': Permission denied
chown: cannot read directory '/var/log/clickhouse-server': Permission denied
chown: cannot read directory '/var/log/clickhouse-server': Permission denied
mkdir: cannot create directory ‘/var/lib/clickhouse/tmp/’: Permission denied
Couldn't create necessary directory: /var/lib/clickhouse/tmp/
2.8 Введите тест контейнера Clickhouse
① Введите контейнер
[[email protected] log]# docker exec -it liucf-clickhouse-server /bin/bash
[email protected]:/#
② Clichouse-Client в контейнере
Обратите внимание, что мы установили пароль
[email protected]:/# clickhouse-client --password 123456
[email protected]:/# clickhouse-client --password 123456
ClickHouse client version 20.3.21.2 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.3.21 revision 54433.
b64d9704419c :)
③ Посмотреть таблица
b64d9704419c :) show databases;
SHOW DATABASES
┌─name────┐
│ default │
│ system │
└─────────┘
2 rows in set. Elapsed: 0.002 sec.
b64d9704419c :) use system;
USE system
Ok.
0 rows in set. Elapsed: 0.001 sec.
b64d9704419c :) show tables;
SHOW TABLES
┌─name───────────────────────────┐
│ aggregate_function_combinators │
│ asynchronous_metrics │
│ build_options │
│ clusters │
│ collations │
│ columns │
│ contributors │
│ data_type_families │
│ databases │
│ detached_parts │
│ dictionaries │
│ disks │
│ events │
│ formats │
│ functions │
│ graphite_retentions │
│ macros │
│ merge_tree_settings │
│ merges │
│ metric_log │
│ metrics │
│ models │
│ mutations │
│ numbers │
│ numbers_mt │
│ one │
│ parts │
│ parts_columns │
│ processes │
│ quota_usage │
│ quotas │
│ replicas │
│ replication_queue │
│ row_policies │
│ settings │
│ stack_trace │
│ storage_policies │
│ table_engines │
│ table_functions │
│ tables │
│ zeros │
│ zeros_mt │
└────────────────────────────────┘
42 rows in set. Elapsed: 0.002 sec.
b64d9704419c :)
Видно, что установка Clickhouse-Server завершена
3 Docker устанавливает Clickhouse-Client
3.1 Посмотреть Clickhouse-Client на docker.hub
[[email protected] log]# docker search clickhouse-client
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/yandex/clickhouse-client Native client for the Clickhouse database ... 69 [OK]
docker.io docker.io/4010/clickhouse-client 0
docker.io docker.io/btmc/clickhouse-server yandex/clickhouse-server + clickhouse-clie... 0
docker.io docker.io/faunus/clickhouse-client 0
docker.io docker.io/fx19880617/clickhouse-client 0
docker.io docker.io/gdarklighter/ansible-clickhouseclient Clickhouse-client with ansible on Ubuntu 1... 0
docker.io docker.io/iskovik/clickhouse-client 0
docker.io docker.io/namcx/clickhouse-client 0
docker.io docker.io/newnius/clickhouse-client ClickHouse Client 0 [OK]
docker.io docker.io/nyaa/clickhouse-client Native client for the Clickhouse database ... 0
docker.io docker.io/robodockdev/clickhouse-client 0
docker.io docker.io/samsheff/clickhouse-client To Run: docker run -it --rm samsheff/click... 0
docker.io docker.io/slpcat/clickhouse-client 0
docker.io docker.io/sunsingerus/clickhouse-client 0
docker.io docker.io/vvklotus/clickhouse-client 0
docker.io docker.io/yjhmelody/clickhouse-client 0
[[email protected] log]#
Видно, что Docker.io/yandex/clickhouse-client имеет больше всего симпатичных. Это показывает, что есть много людей, которые используют его. Если вы выберете это зеркало,
Поскольку Clickhouse-Server, я выбрал версию 20.3.21.2 здесь, здесь Clickhouse-Client я также выбрал ту же версию
3.2 Вытягивание Yandex/Clickhouse-Client: 20.3.21.2 Docker Mirror Image
[[email protected] ~]# docker pull yandex/clickhouse-client:20.3.21.2
Trying to pull repository docker.io/yandex/clickhouse-client ...
20.3.21.2: Pulling from docker.io/yandex/clickhouse-client
171857c49d0f: Already exists
419640447d26: Already exists
61e52f862619: Already exists
a9384c0a7a18: Pull complete
5368d0da1703: Pull complete
Digest: sha256:b047f663bd326294bc40a76414df33586a7c1c71c926cb21e3164e11e88f0e46
Status: Downloaded newer image for docker.io/yandex/clickhouse-client:20.3.21.2
[[email protected] log]# docker images yandex/clickhouse-client:20.3.21.2
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/yandex/clickhouse-client 20.3.21.2 7885e0410407 3 days ago 416 MB
3.3 Start Clickhouse-Client
[[email protected] bin]# docker run --name liucf-clickhouse-client -it --rm --link liucf-clickhouse-server:clickhouse-server-alias docker.io/yandex/clickhouse-client:20.3.21.2 --host 192.168.12.14 --port 9000 --user root --password 888888
ClickHouse client version 20.3.21.2 (official build).
Connecting to 192.168.12.14:9000 as user root.
Connected to ClickHouse server version 20.3.21 revision 54433.
b64d9704419c :)
b64d9704419c :) show databases;
SHOW DATABASES
┌─name────┐
│ default │
│ system │
└─────────┘
2 rows in set. Elapsed: 0.002 sec.
b64d9704419c :)
Видно, что его можно успешно использовать
Поскольку клиент не должен оставаться в постоянное время каждый раз, когда используется клиент, он используется здесь-параметр RM выходит из контейнера Liucf-Clickhouse-Client, используя команду Exit.
ПРИМЕЧАНИЕ. Здесь используется команда Docker-Link, которая может сделать один контейнер и другой контейнер очень удобным для подключения. контейнер.
3.4 Настройте команду стартапа Clickhouse-Client
Поместите команды в 3.3 в файл здесь (например, имя файла-Docker-Clickhouse-Client), chmod +x, а затем поместите его под/usr/local/bin, вы можете использовать его непосредственно, чтобы использовать его
[[email protected] bin]# vim docker-clickhouse-client
docker run --name liucf-clickhouse-client -it --rm --link liucf-clickhouse-server:clickhouse-server-alias docker.io/yandex/clickhouse-client:20.3.21.2 --host 192.168.12.14 --port 9000 --user root --password 888888
[[email protected] bin]# chmod 755 docker-clickhouse-client
Используйте команду начала
[[email protected] bin]# docker-clickhouse-client
ClickHouse client version 20.3.21.2 (official build).
Connecting to 192.168.12.14:9000 as user root.
Connected to ClickHouse server version 20.3.21 revision 54433.
b64d9704419c :)
b64d9704419c :) show databases;
SHOW DATABASES
┌─name────┐
│ default │
│ system │
└─────────┘
2 rows in set. Elapsed: 0.002 sec.
b64d9704419c :)
Видно, что каждый раз, когда вы можете использовать Docker-Clickhouse-Client, чтобы запустить контейнер Liucf-Clickhouse-Client, чтобы запустить клиент Clickhouse Client
4 Docker Установите веб -интерфейс ClickhouseTabix
4.1 Посмотреть Clickhouse-tabix-web-client на docker.hub
Смотрите непосредственно на официальной веб -странице здесь
Я выбираю Spoonest/Clickhouse-tabix-web-client зеркальное изображение
Можно видеть, что последняя версия также обновляется 2 года назад. Это изображение не обновлялось в течение долгого времени, и оно достаточно стабильно, поэтому он используется здесь.
4.2 Вытягивание зеркала Spoonest/Clickhouse-Tabix-Weight
[[email protected] bin]# docker pull spoonest/clickhouse-tabix-web-client:latest
Проверять
[[email protected] bin]# docker images spoonest/clickhouse-tabix-web-client:latest
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/spoonest/clickhouse-tabix-web-client latest e872c1a905d9 2 years ago 245 MB
4.3 Create Clickhouse-Tabix-Web-Client Container
docker run --name liucf-clickhouse-tabix-web-client -d -p 7070:80 -e user='root' -e password='888888' spoonest/clickhouse-tabix-web-client:lates
Примечание: Docker Run -e означает установку переменных среды
Экскурация заказа:
[[email protected] bin]# docker run --name liucf-clickhouse-tabix-web-client -d -p 7070:80 -e user='root' -e password='888888' spoonest/clickhouse-tabix-web-client:latest
e9b936a1862b7a7a1d64d200b79302432e458afcce90906fa1faa27ead9cd41c
[[email protected] bin]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e9b936a1862b spoonest/clickhouse-tabix-web-client:latest "/bin/sh -c ./star..." 4 seconds ago Up 3 seconds 0.0.0.0:7070->80/tcp liucf-clickhouse-tabix-web-client
4.4 Проверка страницы
http://192.168.12.14:7070
После входа в систему
Видимо можно использовать
ПРИМЕЧАНИЕ. Когда запрос Tabix не может быть использован за утверждением »;« дивиденды, в противном случае отчет будет неправильным.
Code: 62, e.displayText() = DB::Exception: Syntax error (Multi-statements are not allowed): failed at position 50 (end of query) (line 1, col 50): ;
FORMAT JSON . (version 20.3.21.2 (official build))
На этом этапе Docker устанавливает Clickhouse-Server+Clickhouse-Client+Tabix.