我学会了如何下载客户端库并在influxdb OSS v1.8中编写influxdb数据库:
https://docs.influxdata.com/influxdb/v1.8/tools/api_client_libraries/install-and-use-the-python-client-library
但是我不知道如何用它来查询。我担心的是,这个版本的涌入似乎不使用桶,和github上的解释:
https://github.com/influxdata/influxdb-client-python
只解释如何使用bucket编写和查询。它包括使v1.8查询成为可能的代码,但没有解释如何使用它。如果有人有任何建议或资源可以帮助,请告诉我!
Python Client库是使用InfluxDB Cloud和InfluxDB 2.0 api开发的。其中一些api被反向移植到InfluxDB 1.8,但正如您所看到的,它们之间存在一些差异。
对于InfluxDB 1.8,有两个关键的事情要记住:
-
"bucket"参数是要从中读取的数据库。对于查询,您只需要指定数据库名称。当写入数据时,它也可以通过
database/retention_policy
(例如testing/autogen
)这样的字符串获取保留策略。 -
要查询,您的数据库将需要启用Flux支持,这在默认情况下是禁用的。请参阅此选项以启用它。如果你是Flux的新手,看看这个关于如何构建查询的基础页面。
下面是一个简单的例子,使用python客户端库编写一个点,然后使用flux查询将其查询回来:
from influxdb_client import InfluxDBClient, Point
username = ''
password = ''
database = 'testing'
with InfluxDBClient(url='http://localhost:8086', token=f'{username}:{password}', org='-') as client:
with client.write_api() as writer:
point = Point("mem").tag("host", "host1").field("used_percent", 25.43234543)
writer.write(bucket=database, record=point)
querier = client.query_api()
tables = querier.query(f'from(bucket: "{database}") |> range(start: -1h)')
for record in tables[0].records:
print(f'{record.get_measurement()} {record.get_field()}={record.get_value()} {record.get_time()}')
希望有帮助!