在 Cassandra 中存储值列表

2023-11-29

版本相关

这个问题的一些答案涉及旧版本的 Cassandra。此类问题的正确答案取决于您使用的 Cassandra 版本。


我有一个个人资料列族,想要在每个个人资料中存储技能列表。我不确定这在 Cassandra 中通常是如何完成的。一种选择是存储序列化的Thrift或 protobuf,但我不想这样做,因为我相信 Cassandra 不了解这些格式,因此数据存储区中的数据无法由人类从命令行通过 CQL 读取或查询。我想到的另一个解决方案是使用超级列并将技能作为具有空值的键:

skills: {
  'java': '',
  'c++': '',
  'cobol': ''
}

这是在 Cassandra 中处理列表的好方法吗?我想有一些我不知道的成语。我正在使用Astyanax客户端库,仅支持复合列而不支持超级列 列,因此我上面提出的解决方案在这种情况下显得相当尴尬。尽管我在理解复合列方面仍然遇到一些困难,因为它们似乎还没有完全记录下来。该解决方案适用于复合柱吗?


这个答案可以追溯到 Cassandra 1.2 版本发布之前,该版本为处理列表提供了截然不同的功能。如果您使用的是 Cassandra 1.2+,则答案可能不合适。


我将使用以真实列名称作为第一个维度的复合列对列键中的列表进行编码,即:

row_key -> {
     [column_name; entry1] -> "",
     [column_name; entry2] -> "",
     ... 
}

然后,要读取列表,您需要从 [column_name; 执行 get_slice; ] 到 [列名; ] - 注意空白尺寸。

这样做的好处是它实际上很好地实现了一个集合;该列表不能两次包含相同的内容。我认为 Thins 在你的用例中有效。该列表也将按排序顺序维护。

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

在 Cassandra 中存储值列表 的相关文章

  • 删除键空间挂起

    问题 drop keyspace MyKeyspace hangs 环境 这是 virtualbox 中的 Ubuntu 12 04 64 位 运行单个 Cassandra 实例 在开发计算机上 卡桑德拉是 1 1 6 myuser myh
  • TaskSchedulerImpl:初始作业尚未接受任何资源;

    这就是我正在尝试做的事情 我创建了DataStax企业集群的两个节点 在其上创建了一个java程序来获取一张表 Cassandra数据库表 的计数 该程序是在 eclipse 中构建的 实际上是来自 windows 盒子 从 Windows
  • ScyllaDB 是否支持 OR 运算符?

    scyladb 中 SELECT 语句的 WHERE 子句中的 OR 条件如何工作 我已经在电子邮件上创建了二级索引 下面的查询工作正常并返回结果 cqlsh gt select from test d emp where email em
  • Cassandra 和二级索引,它们内部如何工作?

    Cassandra 二级索引内部如何运作 文档指出它是某种哈希索引 鉴于我有专栏username foobar 列用户名将是 CF 中的辅助索引 User with RandomOrderingPartitioner 我的假设是否正确 ca
  • Hector 在执行incrementCounter 后获取结果计数器值

    我们正在执行以下操作来更新计数器的值 现在我们想知道是否有一种简单的方法可以立即取回更新的计数器值 mutator incrementCounter rowid1 cf1 counter1 value Cassandra thrift AP
  • Cassandra Read 花费的时间比预期要长

    我正在使用带有 CQL3 的 cassandra 1 2 我的键空间中有三个列族 当我查询其中一个列族 电话 时 需要很长时间才能检索 这是我的查询 select from phones where phone no in 90384875
  • cassandra 中的突变是什么?

    cassandra 中的突变是什么 它在做什么 我没有找到任何有关它的完整信息 您可以回答或分享带有手册或说明的链接吗 谢谢 Mutation 是一个由 thrift 生成的类 定义在cassandra thrift文件 您可以在以下位置找
  • 卡桑德拉主键。整数与 varchar 的性能影响

    在Cassandra中 如果主键是varchar而不是int或bigint 是否会有性能损失 我有 id 作为主键 我不会对此做任何数学运算 我使用 id 只是为了插入 检索比较 我想将其更改为字符串以满足我的要求之一 性能会下降吗 不会有
  • 避免 cassandra 中的僵尸数据

    最近 我在客户设置 3 节点集群时遇到了一个问题 其中一个节点出现故障 并在 12 天后才上线 在我们的场景中 大多数表的默认 gc grace seconds 已设置为 1 天 并且有很多表 当此故障节点出现时 来自该节点的陈旧数据被复制
  • 插入特殊字符

    我试图在我的 Cassandra 表中插入特殊字符 但无法插入 无法在带有变音符号的表中插入数据 https stackoverflow com questions 17425262 inserting data in table with
  • Cassandra cqlsh - 如何显示时间戳列的微秒/毫秒?

    我正在插入带有时间戳列的 Cassandra 表 我的数据具有微秒精度 因此时间数据字符串如下所示 2015 02 16T18 00 03 234 00 00 但是 在 cqlsh 中 当我运行选择查询时 微秒数据不会显示 我只能看到精确到
  • 向 cassandra 表添加列会立即完成吗?

    我们计划在现有的 cassandra 表中添加一列 list 类型的列 该表的数据文件大小约为 350 GB 在应用架构更改时 我们可以暂时停止所有读 写几分钟 我们的理解是 cassandra 在应用架构更改时不会锁定表 但要确保我们的
  • Hector (Cassandra) 删除异常

    当我尝试删除时使用 hector cassandra 客户端 它会删除列 但将行键留在后面 有谁知道为什么 以及如何删除该行键 使用 Cassandra 时这是预期的 由于它通过写入逻辑删除来删除 因此数据仍然存在 直到下一次压缩 最终它会
  • Cassandra 允许过滤

    我有一个如下表 CREATE TABLE test day int id varchar start int action varchar PRIMARY KEY day start id 我想运行这个查询 Select from test
  • 查询 cassandra 表时出现“输入时没有可行的替代方案”错误

    我在 Cassandra 中有一张这样的表 CREATE TABLE vroc sensor data dpnode text year int month int day int data timestamp bigint data se
  • 根据统计数据获取cassandra中的数据点

    我正在测试 Cassandra 2 0 作为存储时间序列数据的可能替代品 我制作了一个简单的表并将一些数据转储到其中 CREATE TABLE DataRaw channelId int sampleTime timestamp value
  • Cassandra公共IP未连接

    我在 ubuntu 服务器中使用 cassandra 当我尝试使用 CLI 与公共 IP 地址进行连接时 它返回连接被拒绝 而如果我尝试使用 localhost 它工作正常 我在 cassandra yaml 和 storage conf
  • 什么时候不应该使用 Cassandra? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 相关话题已经有很多讨论了卡桑德拉 http cassandra apache org lately Twitter Digg Facebook
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • cassandra 添加列(如果不存在)

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

随机推荐

  • 如何在iphone中设置html+css添加

    如何在iphone中设置html css添加 webView UIWebView alloc initWithFrame CGRectMake 0 0 320 458 webView delegate self self view addS
  • Notepad++可以将正则表达式匹配的字符串转换为小写吗?

    我有一个 C 源文件 它使用 getMemberName 形式的函数返回成员数据 相反 我想使用memberName 为了匹配需要更改的函数名称的实例 我使用以下正则表达式 s get A Z 问题是 我不知道如何用小写版本替换 2 的实例
  • Firebase ID 令牌在一小时后过期

    所以我正在使用redux saga在我的react native应用程序中并尝试使用刷新令牌但不起作用 所以我的方法是在app js中执行以下操作 以便专门针对每个请求获取令牌并强制刷新它 handleResponse async gt c
  • Django admin查看上传的照片

    我已经在 Django 中实现了照片上传 但在 Django 管理中查看它时遇到问题 模型 py class WorkPlacePhoto models Model file models FileField storage FileSys
  • 如何在 Android 中创建像 Apple Music App 这样的 UI 和控件?

    视频链接 我想创建视图和动画 例如苹果音乐应用程序在 iOS 中可用 但是 我想在 Android 中执行类似于上面的视频链接的操作 是否可以在 Android 中创建这样的视图 我怎样才能实现这个目标 这方面该如何进行呢 请分享任何链接和
  • 浏览器中并发文件下载的最大数量?

    两个相关问题 网页允许打开的最大并发文件数是多少 例如图像 CSS 文件等 我假设这个值在不同的浏览器中是不同的 也许每个文件类型 例如 我非常确定 javascript 文件一次只能加载一个 对吗 有没有办法可以使用javascript来
  • 在 lmer 输出上运行汽车方差分析后出现列表类型错误

    我正在尝试在 R 中做一个随机效应模型 我想运行一个anova在输出中 我浏览了一些教程并复制了他们的示例 但我的不起作用 我在 Anova 上不断收到以下错误 1 length names which term sapply names
  • chrome和firefox之间的window.innerWidth不同?

    html body position absolute width 100 height 100 margin 0 padding 0 overflow hidden The window innerWidth从 FX 和 chrome 返
  • 将 devtools.js 的内容脚本添加到我的新面板

    我花了很长时间试图在我的内容脚本中获取代码来与我的面板对话 此扩展向开发工具添加了一个新面板 从我的内容脚本中 我可以执行以下操作 chrome extension sendMessage greeting hello function r
  • 如何在DatePickerDialog.OnDateSetListener中获取OnClick?

    我正在使用以下方法弹出对话框来选择日期 private DatePickerDialog OnDateSetListener mDateSetListener new DatePickerDialog OnDateSetListener p
  • 将空 XML 元素反序列化为 Guid.Empty

    我在反序列化方面遇到一些麻烦
  • ocaml printf 函数:如果某些条件成立,则完全跳过格式化

    摘自ocaml 在对象的方法中公开 printf 函数 因此可以独立回答 我有以下 简化的 ocaml 代码 用于记录器 type log level Error Warn Info let ord lvl match lvl with E
  • 从namedtuple中获取特定对象的对象名

    我最近发现namedtuple并想用它来替换我讨厌的大类定义 但我很好奇是否有一种聪明的方法来检索我刚刚选择的值的对象名称 如果不清楚 请参阅下面的示例 MyStruct namedtuple MyStruct Var1 Var2 Var3
  • 在 Python 3 中使用 ANSI 序列确定终端光标位置

    我想编写一个小脚本 将图像打印到终端 usr lib w3mimgdisplay 就像在 mac osx 中一样lsi 因此 当脚本启动时 我需要实际的光标位置 或插入符号位置 到目前为止 我想出了用 ANSI 序列获取 shell 中光标
  • 如何使用 Group By 和自连接返回每日最低、最高、开盘价和收盘价结果集?

    SOLVED 堆栈溢出万岁 当我离开时 人们留下了 2 个解决方案 谢谢大家 为两个可行的解决方案分发业力的协议是什么 这是我回来发布的解决方案 它源自另一个 StackOver 解决方案 如何使用聚合函数在MySQL查询中获取分组记录的第
  • 可空对象必须有一个值#2

    我试图重用我一直使用的相同代码 但现在遇到错误 我正在循环访问各种用户表 并在其中执行以下操作 DateTime dcdt DateTime u DateCreated DateTime lldt DateTime u LastLogon
  • 如何使用js移动输入中的文本

    我只是使用 js 来设置文本输入的值 但是 当文本长度超过输入可容纳的长度时 多余的文本将隐藏在输入的右侧部分 如何像正常打字一样隐藏左侧区域多余的文字 原谅我糟糕的英语 当您执行此操作时 您的插入符位置位于文本的开头 您需要将插入符位置移
  • 使用 common lisp 展平列表

    我正在读 Paul Graham 写的 On Lisp 一书 在第 4 章 实用函数 中 他给出了对列表进行操作的小函数的示例 这在编写较大的程序时会很有帮助 其中之一是flatten 给定任意级别的嵌套列表作为参数 展平将删除所有嵌套元素
  • 改进 HoughLines 以进行水平线检测(Python、OpenCV)

    我有这个源图像 我的目标是删除底线 同时保持字母 数字不变 这是我使用的代码 import cv2 import numpy as np img cv2 imread src png gray cv2 cvtColor img cv2 CO
  • 在 Cassandra 中存储值列表

    版本相关 这个问题的一些答案涉及旧版本的 Cassandra 此类问题的正确答案取决于您使用的 Cassandra 版本 我有一个个人资料列族 想要在每个个人资料中存储技能列表 我不确定这在 Cassandra 中通常是如何完成的 一种选择