当前位置: 首页 > 知识库问答 >
问题:

使用python cassandra准备的语句插入时间戳

郎宏浚
2023-03-14

是否可以使用 Python 卡桑德拉驱动程序的预准备语句将时间戳值插入到卡桑德拉键空间中?当我尝试这样做时,我收到以下错误消息:

预期:<code>

我看到这个问题以前已经讨论过了。但不确定是否已经解决了。怎么做?使用简单的语句做同样的事情效率低下。

共有2个答案

崔博延
2023-03-14

正如Aaron所说,您需要使用datetime对象。给定一个简单的表定义:

CREATE TABLE stackoverflow2.timestamps (
    bucket text,
    value timestamp,
    PRIMARY KEY (bucket, value)
) WITH CLUSTERING ORDER BY (value DESC)

如果给定有效(连接的)会话,此代码将在timestamptable中插入十个时间戳:

preparedInsert = session.prepare(
"""
    INSERT INTO stackoverflow2.timestamps (bucket,value) VALUES (?,?);
"""
)
#end prepare statements

for counter in range(1,10):
    currentTime = datetime.datetime.today()
    bucket = currentTime.strftime("%Y%m")
    session.execute(preparedInsert,[bucket,currentTime])

本质上,datetime.datetime.today()行创建一个带有当前时间的日期时间对象。strftime从中创建一个字符串time,然后准备插入将它们都放入Cassandra。

徐鸿文
2023-03-14

是的,您可以通过绑定datetime对象通过准备好的语句插入时间戳值。我已经成功尝试过了。

 类似资料:
  • 我想知道是否可以使用一个准备好的语句插入多行。下面是我通常如何在DB中插入一行的示例: 我要插入的值将来自一个数组,例如:$values[0]['val1'];$values[0]["val2“];$values[0]['val3'];$values[1]['val1'];$values[2]['val2']; 等等。 这段代码可能需要一次插入几百行,我想过创建一个循环来创建数百个参数,然后为每一

  • 我有一个脚本可以插入大量的数据。此数据主要是前一个insert的复制,但至少有一个值不同。因此,我准备语句并绑定参数以执行和重复。 我现在使用的代码(一次全部大容量插入): 我想要实现的是,数据将用像上面这样的准备好的语句插入,但每个批处理的限制是1000(或任何其他数字)。我不能让这件事发生。我尝试使用和其他方法,但无法使其工作。

  • 下面是准备好的语句代码的片段: 它完成工作,但只有在数百次插入之后。是否有方法将列表或数组绑定到bind_param()参数,只需运行$stmtability->execute one time或其他可以提高性能的方法。 抱歉,如果这是问和回答之前。我四处看了一会儿,发现了一些类似的问题,但没有什么能明确地回答我的要求。

  • 问题内容: 我试图用大约50,000行10列填充Java中的resultSet,然后使用的方法将它们插入到另一个表中。 为了使过程更快,我进行了一些研究,发现在将数据读入resultSet时,fetchSize起着重要的作用。 如果fetchSize太低,可能会导致到服务器的行程过多,而fetchSize太高则会阻塞网络资源,因此我做了一些尝试,并设置了适合我的基础结构的最佳大小。 我正在阅读此r

  • 将Camel 2.13.1与Spring 2.7.11一起使用,并在尝试使用SQL组件运行更新查询时收到SQL异常。下面是如何将更新查询添加到路由中,并使用主体中的java.util.Map将输入参数值传递给该语句。 主要问题:如果我在准备好的语句中只有一个输入参数,那么它工作得很好…如果我有以下更新查询中的多个,那么它将失败,出现sql异常

  • 问题内容: 使用JDBC(Oracle),我需要在两个表的每一个中插入大约一千行。像这样: 问题在于两个表都是通过公共序列连接的,因此语句的顺序很重要。 如果我只有一张桌子,那会很容易。在这种情况下,我使用了代码: 但是,这种方法只能用一个准备好的语句,因此只能用一个插入。我该如何解决这个问题? 问题答案: 你可以试试 然后