从docker-compose文件在dockerized Clickhouse实例中创建数据库和表

时间:2018-09-06 06:52:08

标签: docker docker-compose clickhouse yandex

我的要求是在使用docker-compose调出数据库时在Clickhouse中创建数据库和表。如果是mysql,则按以下步骤操作:

Route::post('/store/favorite', 'FavoriteController@favorite');

对于Clickhouse实例,有什么方法可以实现相同目的吗?

3 个答案:

答案 0 :(得分:1)

我找到了一个不太干净的解决方案。它基本上是在将主机目录装载到容器中并运行所有“创建表”和“插入”语句,只要我们不清理已装载的文件夹,就可以保留!

clickhouse:
  image: yandex/clickhouse-server:18.10
  ports:
    - "8123:8123"
    - "9000:9000"
  volumes:
   - ./data/clickhouse/data:/var/lib/clickhouse

答案 1 :(得分:0)

我已经检查过Clickhouse,但我认为默认情况下Clickhouse dockerfile它没有提供相同的功能。

您可以通过添加自己的要求(例如执行文件)来自定义Clickhouse图像。因此,您要做的就是将Clickhouse用作自定义图像的基础图像,然后编写一个bash脚本,该脚本可用作自定义图像的入口点,并使其基于以下内容创建数据库/表:您将提供的环境变量,然后使其最终启动服务。

答案 2 :(得分:0)

您可以使用nafigat0r/clickhouse-server:18.12码头工人形象。在docker-compose.yml中设置环境变量DATABASE_NAME,以创建(或使用)特定的数据库。 (可选)您可以为特定的TCP端口使用情况设置DATABASE_PORT

当前图像版本对SQL查询有一些限制:每个文件一个。不支持具有多查询的文件。