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

Python Cassandra Cql:插入时间戳和blob

潘慈
2023-03-14

我正在编写一些python代码,这些代码将随着时间的推移收集数据。我要把这个存放在卡桑德拉。我花了一整天的时间在这个问题上,但找不到有效的东西。

CREATE TABLE timearchive 
  (name_yymmddhh text, name text, ip text, time_current timestamp, data blob, 
   PRIMARY KEY (name_yymmddhh, time_current));

我可以创建表,但在插入各种数据时遇到了麻烦(time_current timestamp,data blob)。我无法正确格式化它。我计划按小时划分行(在我的用例中,数据大小应该很好),每个数据条目都有列(2-3/分钟)。

query = """INSERT INTO timearchive
            (name_yymmddhh, name, ip, time_current, data)
            VALUES (:name_yymmddhh, :name, :ip, :time_current, :data)"""
values = {'name_yymmddhh':rowkey,
          'name': dcname,
          'ip': ip,
          'time_current': timenow,
          'data': my_blob}
cursor.execute(query, values)

2)我的数据是一个小纸条。它将是一个由小纸条和其他数据组成的大纸条。(我发现了各种各样的讨论,但没有任何工作。似乎有一些更新~6个月前,但没有简单的例子:https://github.com/datastax/python-driver/pull/39)
我怎么说:

my_dict = {'one': 1, 'two': 2, 'three': 3}  
 ...  
my_blob = ???

共有1个答案

公冶元青
2023-03-14

解决了。需要使用最新的Datastax驱动程序进行blob,以及上面的INSERT方法(不是字符串转换),以及适当的pickle和bytearray。

 类似资料:
  • 我有带有时间戳(UTC时间)的json日志。我将键和值映射到Cassandra表键并插入记录。但是,Cassandra通过从时间戳中减去5小时,再次将已有的UTC时间戳转换为UTC。这里的时区是(GMT+5)。 现在时间已经是UTC时间,并且仍然插入5小时前的时间戳。 我如何解决这个问题?

  • 嗨,我是Hive的新手,我想把当前的时间戳和一行数据一起插入到我的表中。 我得到的错误是: 如果有人能帮忙,那就太好了,非常感谢frostie

  • 我有一个Java客户机,它正在以UTC格式在MySQL DB中插入(通过CSV和'Load DATA Infile')时间戳(type TIMESTAMP)。我的服务器的时区是“America/New_York”,我需要保留夏令时信息。11月5日凌晨2点是美国东部时间转换到东部时间的时候,时钟拨回一个小时到凌晨1点。例如,11月5日凌晨1:30,发生两次;EDT和EST各一次。 我该如何让服务器区

  • 我正在使用Query builder插入数据所有字段都已插入,但像created_at和updated_at这样的时间戳没有插入,它们都具有默认的0:0:0值

  • 我们有带有日期字段(类型date)的表,将时间戳插入日期字段在某些oracle环境中工作(我们有多种开发环境),但在某些环境中失败。

  • 我在红移中创建了一个表: 但是,我希望包含额外的3秒,例如:。 我需要如何修改我的时间戳字段,以便以秒为单位插入它的额外精度?