手动创建/插入数据到 Cassandra Docker

手动创建/插入数据到 Cassandra Docker

我正在将 Cassandra 与 Docker 结合使用。重点是我在其他主机上有一个外部键空间定义(其中有自己的适当表和数据存储),我想将该主机的 Cassandra 中的数据导入我的 docker Cassandra 中。

  • 主机 Cassandra 版本为:[cqlsh 5.0.1 | Cassandra 3.11.2 | CQL spec 3.4.4 | 本机协议 v4]
  • 我的 Docker Cassandra 版本是:[cqlsh 5.0.1 | Cassandra 3.11.3 | CQL spec 3.4.4 | Native protocol v4]

因此,因为我认为这不是兼容性问题,所以我遵循了以下步骤:

  1. 使用导出的键空间定义

    cqlsh -e 'describe mykeyspac' > mykeyspace.cql
    
  2. 转到外部主机,然后使用以下命令创建键空间数据的快照:

    scp myuser@host:/var/lib/cassandra/data/mykeyspace/home/myuserid/docker-data/mykeyspace
    

    (不要介意这个代码,重点是我将数据的完整副本下载到了我的本地计算机)。

  3. 将此卷挂载到docker-compose.yaml文件中的docker cassandra中

  4. 启动 Docker
  5. 使用以下方式连接到 Docker

    docker exec -it container-id bash
    

    并检查该卷是否正确安装。

  6. 使用cqlsh创建的新键空间,完全没有问题。

然后使用cqlsh检查键空间是否正确创建,表和其他定义是否存在。但执行简单的 SELECT 查询会得到 0 行,但数据实际上位于

/var/lib/cassandra/data/mykeyspace 

在 Cassandra Docker 中。
那么,这里有什么问题?
有人能帮助我吗?

相关内容