Clickhouse db exception syntax error multi statements are not allowed

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 b...

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

@rasmus93

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!

@spitty

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?

@rasmus93



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!

@spitty

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.

@serebrserg

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 = Log

Received 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.

@blanklin030

@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

@crystaldust

@LinhaiXu

@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:

  1. clickhouse-server is running on localhost.
  2. 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.

  1. 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 photo

    React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo

    Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo

    Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo

    TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo

    Django

    The Web framework for perfectionists with deadlines.

  • Laravel photo

    Laravel

    A PHP framework for web artisans

  • D3 photo

    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 photo

    Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo

    Microsoft

    Open source projects and samples from Microsoft.

  • Google photo

    Google

    Google ❤️ Open Source for everyone.

  • Alibaba photo

    Alibaba

    Alibaba Open Source for everyone

  • D3 photo

    D3

    Data-Driven Documents codes.

  • Tencent photo

    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

screenshot

Вот такие длиннющие имена

Так я то в курсе. Почему и написал вам что все сломается однажды. Потому что длина будет расти со временем.

это умение пользоваться DBeaver и читать сообщение об ошибке, думая что оно значит
чтобы запустить несколько команд из одного окна


A E

screenshot

Так он же на 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.

Понравилась статья? Поделить с друзьями:
  • Clickhouse create user syntax error
  • Clickermann hwnd error
  • Click on the download plug in please close to launch a browser installed как исправить
  • Click ok to close the application как исправить
  • Click now to protect your priceless data как исправить