DS201:使用Python驱动程序插入cassandra时,如何获取“ timeuuid类型”的值?

奈克

这是我在论坛上的第一个查询,因此如果我的理解有误,请更正。

我正在从DS201执行练习“应用程序驱动程序连接”。

表格如下:

cqlsh:killrvideo> SELECT * FROM videos_by_tag ;

       tag | added_date                      | video_id                             | title
-----------+---------------------------------+--------------------------------------+------------------------------  
  datastax | 2013-10-16 00:00:00.000000+0000 | 4845ed97-14bd-11e5-8a40-8338255b7e33 | DataStax Studio

现在,我想按照实验室执行一项任务“将新视频插入数据库的Python代码”。

我尝试了这段代码并出现错误:

>>> session.execute(
... "INSERT INTO videos_by_tag (tag, added_date, video_id, title)" +
... "VALUES ('cassandra', '2013-01-10', uuid(), 'Cassandra Is My Friend')")

Traceback (most recent call last):
File "<stdin>", line 3, in <module>
File "cassandra/cluster.py", line 2618, in cassandra.cluster.Session.execute
File "cassandra/cluster.py", line 4877, in cassandra.cluster.ResponseFuture.result
cassandra.InvalidRequest: Error from server: code=2200 [Invalid query] message="Type error: cannot assign result of function system.uuid (type uuid) to video_id (type timeuuid)"
>>>

我在下面尝试了但失败了:

  1. UUIDs.timeBased()

错误:

cassandra.InvalidRequest: Error from server: code=2200 [Invalid query] message="Unknown function uuids.timebased called"
  1. cassandra.util.uuid_from_time

错误:

cassandra.protocol.SyntaxException: <Error from server: code=2000 [Syntax error in CQL query] message="line 1:109 no viable alternative at input '.' (...)VALUES ('cassandra', '2013-01-10', [cassandra].util...)">

暂时我已经将值硬编码了。

session.execute(
... "INSERT INTO videos_by_tag (tag, added_date, video_id, title)" +
... "VALUES ('cassandra', '2013-01-10', 245e8024-14bd-11e5-9743-8238357b7e32, 'Cassandra Is My Friend')")

DB成功:

cassandra | 2013-01-10 00:00:00.000000+0000 | 245e8024-14bd-11e5-9743-8238357b7e32 | Cassandra Is My Friend

但是我想知道吗?

亚伦

您是正确的,因为对该uuid()函数的调用是您的问题:

INSERT INTO videos_by_tag (tag,added_date,video_id,title)
VALUES ('cassandra', '2013-01-10', uuid(), 'Cassandra Is My Friend');

uuid()函数生成4型UUID,而该video_id列定义为1型UUID(又名a TIMEUUID)。

而是调用now()函数以获取TIMEUUID

INSERT INTO videos_by_tag (tag,added_date,video_id,title)
VALUES ('cassandra', '2013-01-10', now(), 'Cassandra Is My Friend');

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用cassandra驱动程序将地图类型插入cassandra

Datastax C#驱动程序中的Cassandra timeuuid

Cassandra:使用DataStax Java驱动程序选择一系列TimeUUID

cassandra timeuuid列,显示由字符串插入的缓冲区类型数据

保存java.util.UUID时,Cassandra说“ InvalidQueryException:TimeUUID类型的无效版本”

如何使用lib / pq驱动程序插入NUMERIC字段类型?

如何使用 Python 驱动程序获取 Cassandra 表的大小?

如何使用 Java 驱动程序在 MongoDB 中获取嵌入文档数组的特定值

使用 Datastax Cassandra 驱动程序时出现无效类型错误

DynamoDB中的Cassandra TimeUUID

如何在INSERT,Cassandra C ++驱动程序中将值绑定到TTL

如何使用Selenium Web驱动程序获取具有下一个div值的标签名称?

如何确定值类型的类型

NodeJS MongoDB驱动程序:在插入时指定字段类型

获取接口值的类型

获取类型而不是值

如何从量角器网络驱动程序获取文本字段值

如何获取输入值的类型?

Cassandra UUID与TimeUUID的优缺点

如何使用 CData Salesforce 驱动程序找出 Salesforce 多态关系中的对象类型

如何使用Java驱动程序将单个元素添加到CQL集类型

如何在MongoDB 2.7中使用MongoDB C#驱动程序更新通用类型

如何使用MongoDB C#驱动程序更新泛型类型

如何在cassandra中更新timeuuid列

类型错误:在Python中使用OGR / GDAL读取ESRI shapefile驱动程序

gocql - 使用 Cassandra 3 timeuuid 函数

如何使用NodeJS驱动程序对字段的值使用OR过滤MongoDB集合?

如何使用类型谓词为未知类型的值赋予类型?

在类型映射中插入值