Far*_*iri 2 database clickhouse
我最近不得不将 clickhouse 添加到我们的技术堆栈中,但不幸的是我没有找到任何适合我的需求的好的、简单的和快速的教程,经过一些尝试和错误后我可以自己完成。为了帮助其他人,我决定分享我的经验。
那么如何 使用docker部署和配置远程ClickHouse数据库实例呢?
这是使用 docker 在远程服务器上部署ClickHouse的设置指南。
您必须在远程系统上预安装 docker。
运行以下命令:
$ 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
Run Code Online (Sandbox Code Playgroud)
ClickHouse 服务器使用端口8123作为默认端口,但您可以使用任何其他开放端口,但请记住将该端口公开到外部网络。服务器附带一个没有密码的默认用户。
在服务器中运行以下命令,以默认用户连接clickhouse服务器。
$ docker run -it --rm --link some-clickhouse-server:clickhouse-server yandex/clickhouse-client --host clickhouse-server
Run Code Online (Sandbox Code Playgroud)
打开clickhouse服务器docker容器
$ docker exec -it some-clickhouse-server bash
Run Code Online (Sandbox Code Playgroud)
default 。在clickhouse服务器docker容器中:
$ cd etc/clickhouse-server
在user.xml文件中注释掉以下行以启用访问控制:
<access_management>1</access_management>
Run Code Online (Sandbox Code Playgroud)
请注意,此操作是不安全的,完成工作后,您应该将访问控制更改为:
<access_management>0</access_management>
Run Code Online (Sandbox Code Playgroud)
在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)
Run Code Online (Sandbox Code Playgroud)
在这一部分中,我们创建一个简单的数据库和用户。然后我们将数据库的权限授予该用户。
有两种类型的同步,它们可以相互补充:
CREATE USER IF NOT EXISTS user1 IDENTIFIED WITH PLAINTEXT_PASSWORD BY 'pass1'
Run Code Online (Sandbox Code Playgroud)
您可以使用命令检查用户SHOW USERS。
CREATE DATABASE IF NOT EXISTS db1
Run Code Online (Sandbox Code Playgroud)
您可以使用命令检查数据库SHOW DATABASES。
您可以向用户授予有限权限或所有权限。
GRANT ALL PRIVILEGES ON db1.* TO user1
Run Code Online (Sandbox Code Playgroud)
现在我们可以使用创建的帐户连接到服务器。
$ docker run -it --rm --link some-clickhouse-server:clickhouse-server yandex/clickhouse-client --host clickhouse-server -u user1 --password pass1
Run Code Online (Sandbox Code Playgroud)
确保用户拥有所有权限并有权访问数据库:
:) SHOW GRANTS
:) SHOW DATABASES
Run Code Online (Sandbox Code Playgroud)
Clickhouse 支持SQL。
创建表:
:) USE db1
Run Code Online (Sandbox Code Playgroud)
:) CREATE TABLE names (
id UInt64,
name String,
created DateTime
) ENGINE = MergeTree()
PRIMARY KEY id
ORDER BY id;
Run Code Online (Sandbox Code Playgroud)
:) SHOW TABLES
Run Code Online (Sandbox Code Playgroud)
你有它。您可以使用 clickhouse-client 和您的用户/密码从其他网络连接到数据库。