создание базы данных и таблиц в докеризованном экземпляре Clickhouse из файла docker-compose - PullRequest
0 голосов
/ 06 сентября 2018

Мое требование - создавать БД и таблицы в Clickhouse, когда я поднимаю их с помощью docker-compose.Если это mysql, я делаю это следующим образом:

mysql_1:
      image: mysql:5.7.16
      environment:
        MYSQL_DATABASE: "one"
        MYSQL_USER: "one_user"
        MYSQL_PASSWORD: "one_user_pass"
        MYSQL_ROOT_PASSWORD: "root"
        MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
      volumes:
       - ./data/one:/docker-entrypoint-initdb.d
      ports:
        - "3306:3306"

Есть ли способ добиться того же для экземпляра Clickhouse?

Ответы [ 3 ]

0 голосов
/ 01 октября 2018

Вы можете использовать nafigat0r / clickhouse-server: 18.12 образ докера. В docker-compose.yml установите переменную среды DATABASE_NAME для создания (или использования) конкретной базы данных. При желании вы можете установить DATABASE_PORT для определенного использования порта TCP.

Текущая версия образа имеет некоторые ограничения для запросов SQL: по одному на файл. Файлы с несколькими запросами не поддерживаются.

0 голосов
/ 16 ноября 2018

Я нашел не очень чистое решение для этого. По сути, это монтирование каталога хоста в контейнер и выполнение всех операторов «создания таблиц» и «вставки» будет сохраняться до тех пор, пока мы не очистим подключенную папку !!

clickhouse:
  image: yandex/clickhouse-server:18.10
  ports:
    - "8123:8123"
    - "9000:9000"
  volumes:
   - ./data/clickhouse/data:/var/lib/clickhouse
0 голосов
/ 06 сентября 2018

Я проверил Clickhouse, и я не думаю, что он обеспечивает те же функции по умолчанию Clickhouse dockerfile .

Вы можете настроить Clickhouse изображение, добавив свои собственные требования, напримерисполняющие файлы.Поэтому все, что вам нужно сделать, это использовать Clickhouse в качестве базового изображения для вашего пользовательского изображения, а затем, возможно, написать сценарий bash, который можно использовать в качестве точки входа для вашего пользовательского изображения, и заставить его создавать базу данных / таблицы на основе переменной среды.что вы предоставите, а затем запустите службу в конце.

...