Cassandra:如何将整个表移动到另一个键空间

2024-05-04

我的 Cassandra 的版本信息:

[cqlsh 5.0.1 |卡桑德拉 2.2.5 | CQL 规范 3.3.1 |本机协议 v4]

我正在尝试将一些巨大的表(几百万行)移动到另一个键空间。除了“COPY to csv, and COPY from csv”之外,还有更好的解决方案吗?


好的,我设法让它在运行 2.2.8 的单节点集群上运行。

我尝试移动我的holidays我的桌子presentation键空间转移到我的stackoverflow键空间。

以下是我采取的步骤:

在新的键空间内创建表。

这一步很重要,因为每个表都有一个 UUID 作为唯一标识符,存储在system.schema_columnfamilies表中的cf_id柱子。此 ID 附加到保存数据的目录名称。通过将架构从一个键空间复制/粘贴到另一个键空间,您将确保使用相同的列名,但会生成新的唯一标识符。

注意:在 3.x 中,标识符存储在system_schema.tables table.

aploetz@cqlsh:stackoverflow> CREATE TABLE holidays (
 type text,
 eventtime timestamp,
 beginend text,
 name text,
 PRIMARY KEY (type, eventtime, beginend)
) WITH CLUSTERING ORDER BY (eventtime DESC, beginend DESC);

aploetz@cqlsh:stackoverflow> SELECT * FROM stackoverflow.holidays ;

 type | eventtime | beginend | name
------+-----------+----------+------

(0 rows)

正确停止节点(DISABLEGOSSIP、DRAIN、kill/stop 等)。

现在,找到磁盘上旧表和新表的位置,并将文件复制/移动到新位置(从旧位置):

$ ls -al /var/lib/cassandra/data22/stackoverflow/holidays-77a767e0a5f111e6a2bebd9d201c4c8f/
total 12
drwxrwxr-x  3 aploetz aploetz 4096 Nov  8 14:25 .
drwxrwxr-x 17 aploetz aploetz 4096 Nov  8 14:25 ..
drwxrwxr-x  2 aploetz aploetz 4096 Nov  8 14:25 backups
$ cp /var/lib/cassandra/data22/presentation/holidays-74bcfde0139011e6a67c2575e6398503/la* /var/lib/cassandra/data22/stackoverflow/holidays-77a767e0a5f111e6a2bebd9d201c4c8f/

$ ls -al /var/lib/cassandra/data22/stackoverflow/holidays-77a767e0a5f111e6a2bebd9d201c4c8f/
drwxrwxr-x  3 aploetz aploetz 4096 Nov  8 14:26 .
drwxrwxr-x 17 aploetz aploetz 4096 Nov  8 14:25 ..
drwxrwxr-x  2 aploetz aploetz 4096 Nov  8 14:25 backups
-rw-rw-r--  1 aploetz aploetz   43 Nov  8 14:26 la-1-big-CompressionInfo.db
-rw-rw-r--  1 aploetz aploetz  628 Nov  8 14:26 la-1-big-Data.db
-rw-rw-r--  1 aploetz aploetz    9 Nov  8 14:26 la-1-big-Digest.adler32
-rw-rw-r--  1 aploetz aploetz   16 Nov  8 14:26 la-1-big-Filter.db
-rw-rw-r--  1 aploetz aploetz   57 Nov  8 14:26 la-1-big-Index.db
-rw-rw-r--  1 aploetz aploetz 4468 Nov  8 14:26 la-1-big-Statistics.db
-rw-rw-r--  1 aploetz aploetz   94 Nov  8 14:26 la-1-big-Summary.db
-rw-rw-r--  1 aploetz aploetz   94 Nov  8 14:26 la-1-big-TOC.txt
-rw-rw-r--  1 aploetz aploetz   43 Nov  8 14:26 la-2-big-CompressionInfo.db
-rw-rw-r--  1 aploetz aploetz  164 Nov  8 14:26 la-2-big-Data.db
-rw-rw-r--  1 aploetz aploetz   10 Nov  8 14:26 la-2-big-Digest.adler32
-rw-rw-r--  1 aploetz aploetz   16 Nov  8 14:26 la-2-big-Filter.db
-rw-rw-r--  1 aploetz aploetz   26 Nov  8 14:26 la-2-big-Index.db
-rw-rw-r--  1 aploetz aploetz 4460 Nov  8 14:26 la-2-big-Statistics.db
-rw-rw-r--  1 aploetz aploetz  108 Nov  8 14:26 la-2-big-Summary.db
-rw-rw-r--  1 aploetz aploetz   94 Nov  8 14:26 la-2-big-TOC.txt

重新启动您的节点。

通过cqlsh查询:

Connected to SnakesAndArrows at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 2.2.8 | CQL spec 3.3.1 | Native protocol v4]
Use HELP for help.
aploetz@cqlsh> SELECT * FROM stackoverflow.holidays ;

 type         | eventtime                | beginend | name
--------------+--------------------------+----------+------------------------
    Religious | 2016-12-26 05:59:59+0000 |        E |              Christmas
    Religious | 2016-12-25 06:00:00+0000 |        B |              Christmas
    Religious | 2016-03-28 04:59:59+0000 |        E |                 Easter
    Religious | 2016-03-27 05:00:00+0000 |        B |                 Easter
 presentation | 2016-05-06 20:40:08+0000 |        B |        my presentation
 presentation | 2016-05-06 20:40:03+0000 |        B |        my presentation
 presentation | 2016-05-06 20:39:15+0000 |        B |        my presentation
 presentation | 2016-05-06 20:38:10+0000 |        B |        my presentation
           US | 2016-07-05 04:59:59+0000 |        E |            4th of July
           US | 2016-07-04 05:00:00+0000 |        B |            4th of July
           US | 2016-05-09 04:59:59+0000 |        E |            Mothers Day
           US | 2016-05-08 05:00:00+0000 |        B |            Mothers Day
         Nerd | 2016-12-22 05:59:59+0000 |        E |               2112 Day
         Nerd | 2016-12-21 06:00:00+0000 |        B |               2112 Day
         Nerd | 2016-09-26 04:59:59+0000 |        E |             Hobbit Day
         Nerd | 2016-09-25 05:00:00+0000 |        B |             Hobbit Day
         Nerd | 2016-09-20 04:59:59+0000 |        E | Talk Like a Pirate Day
         Nerd | 2016-09-19 05:00:00+0000 |        B | Talk Like a Pirate Day
         Nerd | 2016-05-07 04:59:59+0000 |        E |         Star Wars Week
         Nerd | 2016-05-04 05:00:00+0000 |        B |         Star Wars Week
         Nerd | 2016-03-14 05:00:00+0000 |        E |                 Pi Day
         Nerd | 2016-03-14 05:00:00+0000 |        B |                 Pi Day

(22 rows)

这种方法的问题是,您需要停止集群,并在每个节点上移动文件。而 cqlshCOPY将允许您在单个节点上导入和导出,而集群仍在运行。

我知道COPY这种声誉限制了它只能处理较小的数据集。但 2.2.x 具有帮助限制 COPY 的选项,以防止其在大型数据集上超时。我最近导出/导入了 3.7 亿行,没有超时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cassandra:如何将整个表移动到另一个键空间 的相关文章

  • 如何从 Spark UI 检索输出大小和写入记录等指标?

    如何在任务或作业完成后立即在控制台 Spark Shell 或 Spark 提交作业 上收集这些指标 我们使用 Spark 将数据从 Mysql 加载到 Cassandra 数据非常庞大 例如 200 GB 和 600M 行 当任务完成后
  • Cassandra CQL 查询检查多个值

    如何使用 Cassandra CQL 查询检查非主键字段的值是 A 还是 B 我使用的是Cassandra 2 0 1 这是表定义 CREATE TABLE my table my field text my field2 text PRI
  • Cassandra Pojo Sink Flink 中的动态表名称

    我是 Apache Flink 的新手 我正在使用 Pojo Sink 将数据加载到 Cassandra 中 现在 我在以下命令的帮助下指定表和键空间名称 Table注解 现在 我想在运行时动态传递表名称和键空间名称 以便可以将数据加载到用
  • Cassandra 和二级索引,它们内部如何工作?

    Cassandra 二级索引内部如何运作 文档指出它是某种哈希索引 鉴于我有专栏username foobar 列用户名将是 CF 中的辅助索引 User with RandomOrderingPartitioner 我的假设是否正确 ca
  • 使用 TLS/SSL 保护 Cassandra 通信

    我们希望保护 Cassandra 免受中间人攻击 有没有办法配置 Cassandra 使客户端 服务器和服务器 服务器 复制 通信采用 SSL 加密 谢谢 简短的回答 不 对于客户端 服务器 节俭 151 https issues apac
  • 无法使用 datastax java 驱动程序通过 UDT 密钥从 cassandra 检索

    我正在尝试使用用户定义的类型作为分区键将对象存储在 cassandra 中 我正在使用 datastax java 驱动程序进行对象映射 虽然我能够插入到数据库中 但无法检索该对象 如果我更改分区键以使用非 udt 例如文本 我就能够保存和
  • Cassandra CAS INSERT 对于具有毫秒延迟的请求超时

    我们正在对 cassandra 集群 3 个节点 复制因子 3 进行负载测试 并开始偶尔接收到写入超时异常对于一张表上的 CAS 插入操作 CREATE TABLE users by identity account ascii domai
  • 卡桑德拉身份验证问题

    卡桑德拉版本 apache cassandra 2 1 8 我最近配置了 2 节点集群Authenticator设置PasswordAuthenticator 当其中一个节点关闭时 我无法登录 Cqlsh 并出现以下错误 Connectio
  • InvalidRequestException(为什么:empid 如果包含 Equal,则不能被多个关系限制)

    这是关于我从 Apache Spark 查询 Cassandra 时遇到的问题 Spark 的正常查询工作正常 没有任何问题 但是当我使用关键条件进行查询时 出现以下错误 最初 我尝试查询复合键列族 它也给出了与下面相同的问题 由以下原因引
  • Spark Scala Cassandra 连接器删除所有行失败,并出现 IllegalArgumentException 要求失败异常

    创建表 CREATE TABLE test word groups group text word text count int PRIMARY KEY group word 插入数据 INSERT INTO test word group
  • cassandra 中的突变是什么?

    cassandra 中的突变是什么 它在做什么 我没有找到任何有关它的完整信息 您可以回答或分享带有手册或说明的链接吗 谢谢 Mutation 是一个由 thrift 生成的类 定义在cassandra thrift文件 您可以在以下位置找
  • 查询 cassandra 表时出现“输入时没有可行的替代方案”错误

    我在 Cassandra 中有一张这样的表 CREATE TABLE vroc sensor data dpnode text year int month int day int data timestamp bigint data se
  • Elasticsearch 与 Cassandra 对比 Elasticsearch 与 Cassandra

    我正在学习 NoSQL 并正在寻找满足客户要求之一的不同选项 在提出这个问题之前我已经查阅了各种资源 一个对NoSQL知之甚少的人 我需要以更快的速度存储数据并读取数据 完全故障安全且易于扩展 能够搜索数据进行分析 我最终得到了一个简短的清
  • Cassandra 查询失败(墓碑)

    所以这让我发疯 我尝试查询 Cassandra 中的一张表 结果显示查询失败 我尝试深入探究其背后的原因 发现这是因为墓碑 我将 GC GRACE SECONDS 更改为零并使用 nodetool 触发了压缩 当我再次查询时它工作正常 然而
  • Cassandra cqlsh“无法连接到任何服务器”

    在命令行上执行 cqlsh bat 时收到以下消息 Connection error Unable to connect to any servers 127 0 0 1 ProtocolError cql version 3 3 0 is
  • Cassandra 安装问题

    按照以下步骤安装 apache cassandra 最新版本 第一次启动时 cassandra f 我得到这个 Exception in thread main java lang NoClassDefFoundError org apac
  • 什么时候不应该使用 Cassandra? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 相关话题已经有很多讨论了卡桑德拉 http cassandra apache org lately Twitter Digg Facebook
  • Apache Cassandra 中的复合索引

    我正在尝试设置一个 cassandra 列族 其中一些列上有二级索引 在读回数据时我需要进行过滤 在我最初的测试中 当我一起使用多个索引时 速度会变慢 这是我当前的配置方式 通过 cassandra cli update column fa
  • cassandra 添加列(如果不存在)

    我需要通过 CQL 脚本将新列插入到现有列族中 我想做类似的事情 alter COLUMNFAMILY rules ADD rule template text IF NOT EXISTS 我怎样才能纯粹用 CQL 脚本实现这一点 没有可选
  • Cassandra 已死但 pid 文件存在

    我是 cassandra 新手 尝试在 centos 7 0 上安装 cassandra 2 1 2 完成安装后 执行 cqlsh 命令并创建一些键空间和列族 乍一看 我觉得它工作得很好 但后来我意识到以下问题 1 当我执行 service

随机推荐