Я використовую Кассандру з Докером. Справа в тому, що у мене є зовнішнє визначення ключового простору (з його власними таблицями та зберіганням даних) в іншому хості, і я хотів імпортувати дані з Кассандри цього хоста в мій докер Кассандра.
- Версія Кассандри для господарів: [cqlsh 5.0.1 | Кассандра 3.11.2 | Специфікація CQL 3.4.4 | Рідний протокол v4]
- Моя версія Docker Cassandra: [cqlsh 5.0.1 | Кассандра 3.11.3 | Специфікація CQL 3.4.4 | Рідний протокол v4]
Оскільки я думаю, що це не проблема сумісності, я дотримувався наступних кроків:
Експортується визначення ключового простору за допомогою
cqlsh -e 'describe mykeyspac' > mykeyspace.cql
Перейшов до зовнішнього хоста, а потім створив знімок даних простору ключів за допомогою:
scp myuser@host:/var/lib/cassandra/data/mykeyspace/home/myuserid/docker-data/mykeyspace
(не заперечуйте щодо цього коду, справа в тому, що я завантажив повну копію даних на свій локальний комп'ютер).
Змонтуйте цей об'єм у докер-кассандрі у
docker-compose.yaml
файлі- Почав Докер
Підключено до Docker за допомогою
docker exec -it container-id bash
і перевірили правильність встановлення гучності.
Використовуючи
cqlsh
створений новий простір клавіш з, зовсім немає проблем.
Потім за допомогою cqlsh
перевіряється, чи правильно створено простір клавіш і є таблиці та інші визначення. Але виконання простого запиту SELECT призводить до 0 рядків, але дані фізично знаходяться нижче
/var/lib/cassandra/data/mykeyspace
всередині Кассандри Докер.
Отже, у чому тут проблема?
Хтось може мені допомогти?