Я использую Кассандру с Докером. Дело в том, что у меня есть определение внешнего пространства ключей (с собственными собственными таблицами и хранилищем данных) на другом хосте, и я хотел импортировать данные из Cassandra этого хоста в докер Cassandra.
- Версия Host Cassandra: [cqlsh 5.0.1 | Кассандра 3.11.2 | CQL spec 3.4.4 | Собственный протокол v4]
- Моя версия Docker Cassandra: [cqlsh 5.0.1 | Кассандра 3.11.3 | CQL spec 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
внутри докера Кассандры.
Итак, в чем здесь проблема?
Может кто-нибудь мне помочь?