我想在 Postgres 中即时创建 TimescaleDB 表,因为我正在处理随时间变化的数据源(财务提要,因此可能是 100,可能是 1000)并且我希望每个数据源一个表。
我可以从 Python 创建表没有问题,但是当我调用 SELECT create_hypertable(test_table1, time)
时它会抛出错误。当然,当从 pSQL 执行时,相同的查询似乎工作正常,所以看起来 timescale API 可能无法通过 psycopg2 获得?
环境:
- 蟒蛇 3.6.4
- psycopg2-binary-2.7.4(使用标志安装:–no-binary :all :)
- Postgres:10.3
- 时标数据库:0.8.0-2
- 苹果操作系统:10.13.3
测试代码:
db.query("CREATE TABLE test_table1 (time TIMESTAMP NOT NULL, name CHAR(100) NOT NULL")
db.query("SELECT create_hypertable('test_table1', 'time')")
错误:
2018-03-05 11:45:36,901 [MainThread] [错误] 函数 create_hypertable(未知,未知)不存在
第 1 行:SELECT create_hypertable(‘temp_table1’, ‘time’)
… … … … . . ^
提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。
有谁知道目前是否可以进行这项工作?我错过了一些简单的事情吗?或者是否有其他服务可以替代支持动态创建的时间刻度功能?
原文由 William Tonkin-Howe 发布,翻译遵循 CC BY-SA 4.0 许可协议
该输出意味着您尚未在正在运行的数据库上安装
TimescaleDB
扩展create_hypertable
。确保你运行:在运行之前在你的数据库上
create_hypertable
。为确保已创建扩展,请运行以下查询:psycopg
不应对此产生任何影响,因为.query()
调用似乎只是在执行您传递给它的原始 SQL。确保您的psycopg
客户端连接到与您最初安装TimescaleDB
扩展的数据库相同的数据库。