Команда БЕЗУМЦЫ
IT INNO HACK 2024
Кейс №1 "Record Linkage для данных о клиентах"
Docker Desktop по умолчанию имеет лимиты для используемой оперативной памяти и дискового пространства. Это можно проверить в Docker Desktop по пути Settings > Resources
Рекомендуемые настройки:
- Memory Limit: 12 GB
- Virtual Disk Limit: 48 GB
В зависимости от Memory Limit потом измените переменную в .env дальше по принципу:
- 8 GB -> PROCESSING_LIMIT=6000000
- 10 GB -> PROCESSING_LIMIT=8000000
- 12 GB -> PROCESSING_LIMIT=10000000
Решение отлично отрабатывает на системах MacOS и Ubuntu, а также на других UNIX-подобных системах. Однако, на Windows следует запускать Docker через WSL (Windows Subsystem for Linux) (что это?)
- Перейдите в папку
Docker, здесь хранятся файлы самого решения для запуска. Выполняйте все последующие инструкции, находясь в ней. - Создайте файл
.envс переменными окружения, по примеру в.env_example
CLICKHOUSE_DB=default
CLICKHOUSE_USER=default
CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1
CLICKHOUSE_PASSWORD=
CLICKHOUSE_HOST=clickhouse
CLICKHOUSE_PORT=8123
PROCESSING_LIMIT=8000000Из данных переменных по-хорошему можно ничего не менять, кроме переменной PROCESSING_LIMIT. Всё зависит от количества оперативной памяти на машине. Обращайтесь к пункту "Ограничения", чтобы узнать значение
- Перенесите .csv файлы в папку
input_dataс названиямиmain1.csv,main2.csv,main3.csv. - Запустите Docker Compose:
docker compose up --build. - Скрипт сразу начнет свою работу, в логах можете наблюдать за его работой.
- ClickHouse будет первое время инициализироваться, после галочки в логах перейдите на
127.0.0.1:8123/playи смотрите данные черезSELECT * FROM table_results LIMIT 100 OFFSET 0и т.д.
Проект был проверен на MacBook M1 16 GB, с выделенной памятью для Docker в 12 GB и настройкой окружения
PROCESSING_LIMIT=10000000. Решение отработало свой цикл меньше чем за 7 минут. Также был проверен на сервере Ubuntu с 16 GB оперативы, решение отработало на публичном датасете за 6 минут.
