cassandra 中的行何时被覆盖

2024-03-19

我的理解是,当插入具有相同主键的另一行时,行将被覆盖。

例如:

我有专栏(user_id int, item_id int, site_id int), 和我的PRIMARY KEY(user_id, item_id)

如果我有下表:

user_id, item_id, site_id
   2       3        4

我插入user_id : 2, item_id : 3, site_id : 10,我的新表将是:

user_id, item_id, site_id
   2       3        10

not

user_id, item_id, site_id
   2       3        4
   2       3        10

这个简单的案例是否适用于所有情况?有什么我可能没有意识到的微妙之处吗?另外,我在文档中找不到这个,并通过使用 cassandra 得出了这个结论,任何人都可以提供文档源吗?


是的,这就是 Cassandra 的设计运作方式。在所有情况下,如果UPDATE or INSERT执行后,如果数据存在,则更新数据(基于键),如果不存在,则插入数据。要记住的重要一点是,在幕后,UPDATE and INSERT是同义的。如果您认为这两者是相同的,那么您就可以开始理解为什么它会以这种方式工作。

话虽如此,您是正确的,因为您必须仔细查看才能在文档中找到对此行为的明确引用。我在文档中找到了最接近的参考文献并将其列出如下:

来自UPDATE http://www.datastax.com/documentation/cql/3.1/cql/cql_reference/update_r.html文档:

如果之前不存在该行,则创建该行,否则更新该行。通过包含组成分区键的所有列来指定要在 WHERE 子句中更新的行。 ... UPDATE SET 操作在主键字段上无效。

来自INSERT http://www.datastax.com/documentation/cql/3.1/cql/cql_reference/insert_r.html文档:

您不必定义除构成键的列之外的所有列。 ...如果该列存在,则会更新。如果不存在该行,则创建该行。

现在,虽然这些摘录可能不会直接说“小心不要覆盖”,但我确实找到了一篇关于卡桑德拉星球的更明确的文章:如何在 Cassandra 中进行更新插入 http://planetcassandra.org/blog/how-to-do-an-upsert-in-cassandra/

Cassandra 是一个分布式数据库,它避免在写入之前进行读取,因此 INSERT 或 UPDATE 会设置您指定的列值,无论该行是否已存在。这意味着插入可以更新现有行,更新可以创建新行。这也意味着很容易意外覆盖现有数据,因此请记住这一点。

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

cassandra 中的行何时被覆盖 的相关文章

  • 如何将图像路径和名称上传到数据库 - Codeigniter

    我知道这个问题已经被问过好几次了 但是我发现的所有其他问题都与我想要的不同 我想将文件名和文件路径上传到名为 工厂图像 的表 这样做的最佳方法是什么 我的控制器功能 function do upload config upload path
  • Cassandra - 使用主键列的任意子集按主键搜索

    是否有可能在 Cassandra 中找到主键与所有主键字段的任意子集匹配的记录 Example 使用下面描述的表 可以找到主键具有特定的记录type and name没有指定id or size CREATE TABLE playlists
  • 如何使用 DevCenter 远程连接到 Cassandra

    我使用他们的镜像在 Azure 上设置了 DataStax Cassandra Sandbox 我能够在服务器上本地运行 OpsCenter 没有任何问题 安装的是Ubuntu 我对它很陌生 根据这篇文章Apache Cassandra 远
  • 如果缺少一台主机,Datastax Java 驱动程序将无法连接

    如果我没记错的话 可以连接到 Cassandra 集群 至少知道集群中的一个节点 然后可以发现其他节点 假设我有三个节点 1 2 和 3 并且我像这样连接到这些节点 Cluster builder addContactPoints 1 2
  • 在 PHP 中的任意位置插入数组中的新项目

    如何将新项目插入到数组的任意位置 例如数组的中间 您可能会发现这更直观一些 它只需要一个函数调用array splice http www php net manual en function array splice php origin
  • 如何理解Cassandra中的“灵活模式”?

    我是 Cassandra 的新手 可以在下面的维基百科中找到 列族 自 CQL 3 起称为 表 类似于 RDBMS 关系数据库管理系统 中的表 列族包含行和列 每行都由行键唯一标识 每行有多列 每列都有名称 值和时间戳 与 RDBMS 中的
  • Cassandra cli:将十六进制值转换为人类可读的格式

    我开始于卡桑德拉 questions tagged cassandra 当我跑步时list or get命令在cassandra cli questions tagged cassandra cli 我得到这样的结果 default use
  • 从 C* 表中获取不同的分区键

    cqlsh 不允许嵌套查询 因此我无法将所选数据导出到 csv 我正在尝试使用以下命令从 cassandra 导出选定的数据 大约 200 000 行 单列 echo SELECT distinct imei FROM listener s
  • Java:如何将哈希图插入 MongoDB?

    我有一个哈希图 我试图将其插入到 MongoDB 版本 3 6 中 我知道 insertMany 方法 它只接受文档列表 我无法创建列表 因为我的数据中有重复项 我想删除它们 这就是我创建哈希图的原因 有什么办法可以将 hashmap 插入
  • 如何将 FOR AUTO XML 结果插入表中?

    我已经使用从表中检索了值 select from tableABC for xml auto elements 现在 有这个精确的表tableABC在另一台服务器上 我需要将这些检索到的值插入其中 如何实现这一目标 测试表及数据 creat
  • 如何从 Spark UI 检索输出大小和写入记录等指标?

    如何在任务或作业完成后立即在控制台 Spark Shell 或 Spark 提交作业 上收集这些指标 我们使用 Spark 将数据从 Mysql 加载到 Cassandra 数据非常庞大 例如 200 GB 和 600M 行 当任务完成后
  • 删除键空间挂起

    问题 drop keyspace MyKeyspace hangs 环境 这是 virtualbox 中的 Ubuntu 12 04 64 位 运行单个 Cassandra 实例 在开发计算机上 卡桑德拉是 1 1 6 myuser myh
  • MySql:将多项选择数据存储在数据库中

    我的表单中有一个复选框列表 用户可以选择其中任何一个 也可以选择全部 认为用户选择他感兴趣的运动类型 我需要最好的数据库结构来存储这个用户选择 这样 将来我就可以获得所有这些数据 我想 我无法将每个 用户 ID 运动 选择作为新行存储在数据
  • Cassandra CQL 查询检查多个值

    如何使用 Cassandra CQL 查询检查非主键字段的值是 A 还是 B 我使用的是Cassandra 2 0 1 这是表定义 CREATE TABLE my table my field text my field2 text PRI
  • 如何使用 javascript 从 UUID v1 (TimeUUID) 中提取时间戳?

    我使用 Cassandra DB 和 Nodejs 的 Helenus 模块来操作它 我有一些包含 TimeUUID 列的行 如何在javascript中从TimeUUID获取时间戳 这个库 UUID 至今 https github com
  • 如何将数据插入 Microsoft Access 数据库?

    我正在尝试将数据插入 Microsoft Access 数据库 我将数据插入到 Access 数据库中 但只有第一次和第二次显示我插入的数据 当我重建应用程序时 我插入的数据消失了 我不知道他们去了哪里并且没有出现 我使用 C 和 NET
  • MySQL INSERT 无需指定每个非默认字段(#1067 - “表”的默认值无效)

    我已经见过好几次了 我有一台服务器允许我插入一些值 而无需指定其他值 如下所示 INSERT INTO table SET value a a value b b value c 是一个没有设置默认值的字段 但在这里工作正常 当脚本移动到新
  • Mysql获取特定表的最后一个id

    我必须从特定的插入表中获取最后的插入 ID 可以说我有这个代码 INSERT INTO blahblah test1 test 2 VALUES test1 test2 INSERT INTO blahblah2 test1 test 2
  • Cassandra data stax 查询生成器更新

    我正在尝试编写一个简单的更新查询 更新表 set col1 val1 col2 val2 where col3 val3 您能否提供一个使用查询生成器 API 在 Cassandra 中编写简单 UPDATE 的示例 试试这个 v1 x Q
  • 有没有办法在插入查询中执行另一个查询?

    好的 这是我的查询 我刚刚添加了 ACCOUNTID 和 accountID 部分 这显然不起作用 INSERT INTO Leads LEADID CREATEUSER CREATEDATE FIRSTNAME MODIFYDATE AC

随机推荐

  • Blowfish 和 Blowfish-compat 有什么区别?

    我似乎找不到差异的来源 我在这个在线解密工具中发现了这个区别 http www tools4noobs com online tools decrypt http www tools4noobs com online tools decry
  • Yargs 帮助不显示所有帮助选项

    我在用yargs为传递给脚本的参数添加命令行选项 当我发出帮助命令以及脚本名称时 它不会显示以下内容的帮助add范围 const yargs require yargs const argv yargs command add ADD A
  • 如何在nodejs中使用sweetalert?

    我有一个带有html代码的nodejs代码 我想在处理nodejs中的函数之后在客户端显示一个甜蜜的警报 var express require express var router express Router const Swal re
  • 度分秒 (DMS) 正则表达式

    我有一个正则表达式 我想以各种方式匹配纬度 经度对 例如 123 34 42 123 34 42 123 34 42 123 34 42 45 12 22 N 45 12 22 S 90 00 00 0N 我希望能够将它们配对 这样 90
  • 为什么当您在 package.json 中设置 "private": true 时,“无许可证字段”警告消失

    我有一个反应应用程序 通过安装其依赖项yarn install 当我运行此命令时 我得到以下信息No license field相关警告 warning package json No license field warning email
  • 如何对熔化的数据帧进行零归一化?

    假设我有这个熔化的 data frame molten lt data frame gene c a1 b1 a1 b1 a1 b1 count c 3 4 5 2 6 7 condition c A A B B C C gene coun
  • PHP 框架与内容管理系统

    您如何向精通技术 主要精通硬件 网络 但很少或根本不编程 的人解释 PHP 框架和 CMS 例如 Wordpress 之间的区别 作为一名业余到中级程序员 我可以尝试回答这些问题 但我更重视那些对框架和 CMS 更有经验的人的意见 您可以查
  • 如何在 NSMenu 中放置水平滑块(Swift 3,Xcode 8)

    从 macOS Sierra 开始 音量菜单栏项目提供了一个水平滑块项目来更改系统的音量 我想在我自己的应用程序中采用这个概念 并提出了以下课程 import Cocoa NSApplicationMain class AppDelegat
  • XSLT:如果满足条件,如何退出“for-each”循环

    如果满足条件 如何退出 XSL 中的 for each 循环 例如假设我希望 XSL 显示具有 2 间卧室且租金
  • iPhone 开发:处理大量数据时 Core-Plot 性能缓慢

    iPhone 开发 处理大量数据时 Core Plot 性能缓慢 我尝试将 500 个数据放入绘图中 性能表明它确实很慢 大多数烛台图都混合在一起 请问有人可以帮我解决吗 注意绘图区域的大小 如果数据点多于像素 请按照 benzado 建议
  • 软件测试 pdf 是否正确创建[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我用 Laravel 编写了一个 REST 应用程序 它接受 Json 有效负载并使用该数据创建格式化的 pdf 是否可以编写一个测试
  • 实体框架与 AssociateWith

    当我使用 Linq2Sql 时 我可以通过在 DataLoadOptions AssociateWith 方法中使用 lambda 表达式来过滤表 我用它来过滤所使用的语言 所以我有一个包含所有语言的语言表和一个包含对象的对象表 Like
  • 从子类访问私有继承类的名称

    以下代码无法编译 g 会出现此错误 clang 也会出现类似错误 main cpp 16 19 error QByteArray is a private member of QByteArray Container2 const QByt
  • Json 字符串到地图的转换,

    我正在尝试编写嵌套 JsonObject 到映射转换的通用代码 我有一个示例 JSONObject 作为 glossary title example glossary GlossDiv title S GlossList GlossEnt
  • ASP.Net 中的图表助手显示日期时间

    在 asp net mvc 应用程序中 我需要创建一个简单的折线图 所以我尝试了图表助手 该图表是使用两个列表创建的 x 轴应显示日期时间 y 轴应显示每个时间的值 现在使用下面的代码可以正常工作 listOfDateTimes 包含日期时
  • 当应用程序通过 gradle run 启动时,java.util.scanner 抛出 NoSuchElementException

    我创建了一个简单的 java echo 应用程序 它接受用户的输入并将其显示给他们以演示问题 我可以使用 IntelliJ 的内部 运行 命令毫无问题地运行该应用程序 并且在执行由gradle build 但是 如果我尝试使用执行应用程序g
  • 哪些递归函数不能使用循环重写? [复制]

    这个问题在这里已经有答案了 据我所知 大多数递归函数都可以使用循环重写 有些可能比其他的更难 但大多数都可以重写 在什么条件下不可能使用循环重写递归函数 如果存在这种条件 当您递归地使用函数时 编译器会为您处理堆栈管理 这使得递归成为可能
  • UIViewController 在 vi​​ewWillAppear 和 viewDidAppear 之间调整自身大小?

    我的项目中有一个非常奇怪的错误 我有一个UIScrollView作为我的主要观点 在它里面 我有一个UIViewController not UITableViewController 其中有一个UITableView实例变量 以及一些杂项
  • Wordpress 中的登录用户列表?

    是否可以获取 WordPress 中登录用户的列表 是的 有一个插件 WP OnlineUsers 您可以在这里找到这个插件 http lesterchan net portfolio programming php http lester
  • cassandra 中的行何时被覆盖

    我的理解是 当插入具有相同主键的另一行时 行将被覆盖 例如 我有专栏 user id int item id int site id int 和我的PRIMARY KEY user id item id 如果我有下表 user id ite