我正在编写一些将随时间收集数据的python代码。我需要将它存储在Cassandra中。 我花了整整一天的时间,却找不到有用的东西。
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 / min)。
这是我要插入的代码。如果我将timestamp / blob的格式更改为int / text。
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)
问题:
1)如何在python中创建一个cql时间戳:timenow?
这没有帮助(对我的Cassandra级别来说太复杂了):
Cassandra 1.2 inserting/updating a blob column type using Python and the cql library
2)我的数据是一个字典。这将是一个大词典和其他数据。
(我发现了各种讨论,但没有任何效果。似乎有一些更新〜6个月前,但没有简单的例子:https://github.com/datastax/python-driver/pull/39)
我该怎么说:
my_dict = {'one': 1, 'two': 2, 'three': 3}
...
my_blob = ???
答案 0 :(得分:0)
解决。 需要为blob使用最新的Datastax驱动程序,以及上面的INSERT方法(不是字符串转换),以及正确的pickle和bytearray。