语言参考:
https://github.com/apache/iotdb/tree/master/iotdb-client/client-py/tests
CREATE DATABASE root.ftkj
----钒钛-炼钢-转炉
CREATE TIMESERIES root.ftkj.lg01.zl01.a1 WITH DATATYPE=BOOLEAN, ENCODING=PLAIN
CREATE TIMESERIES root.ftkj.lg01.zl01.a2 WITH DATATYPE=FLOAT, ENCODING=RLE
CREATE TIMESERIES root.ftkj.lg01.zl01.a3 WITH DATATYPE=TEXT,ENCODING=PLAIN
CREATE TIMESERIES root.ftkj.lg01.zl01.a4 WITH DATATYPE=DOUBLE,ENCODING=RLE
----钒钛-炼钢-连铸
CREATE TIMESERIES root.ftkj.lg01.lz01.a1 WITH DATATYPE=BOOLEAN, ENCODING=PLAIN
CREATE TIMESERIES root.ftkj.lg01.lz01.a2 WITH DATATYPE=FLOAT, ENCODING=RLE
CREATE TIMESERIES root.ftkj.lg01.lz01.a3 WITH DATATYPE=TEXT,ENCODING=PLAIN
CREATE TIMESERIES root.ftkj.lg01.lz01.a4 WITH DATATYPE=DOUBLE,ENCODING=RLE
select * from root.ftkj.lg01.zl01
INSERT INTO root.ftkj.lg01.zl01(a1,a2,a3,a4) values(1,100.1,'hello',200.12)
2.0
import os
from iotdb.Session import Session
from iotdb.utils.IoTDBConstants import TSDataType
from iotdb.utils.Tablet import Tablet
import datetime, time
import random
# 从环境变量中获取数据库连接信息,提高安全性和可维护性
host = os.getenv("IOTDB_HOST", "192.168.19.162")
port = os.getenv("IOTDB_PORT", "6667")
user = os.getenv("IOTDB_USER", "root")
password = os.getenv("IOTDB_PASSWORD", "root")
zone_id = os.getenv("IOTDB_ZONE_ID", "UTC+8")
# 使用异常处理来增强代码的健壮性
try:
session = Session(host=host, port=port, user=user, password=password, fetch_size=1024, zone_id=zone_id)
session.open(enable_rpc_compression=False)
i = 1
while i <= 10:
a1 = random.randint(0, 1)
a2 = random.randint(1, 100)
a4 = random.randint(1, 1000)
# 确保为每个测量值提供对应的时间戳
td = time.time()*1000 #iotdb 默认存储的是 ms 时间戳 timestamps * 1000
timestamps = [int(td)]
measurements = ["a1", "a2", "a3", "a4"]
data_types = [
# TSDataType.TEXT,
TSDataType.BOOLEAN,
TSDataType.FLOAT,
TSDataType.TEXT,
TSDataType.DOUBLE
]
# 假设values是从某个数据源动态获取的
values = [
# [True, 1101.1, 'abcd', 1.1] # 确保值的数量和类型与measurements和data_types一致
[a1, a2, 'abcd', a4] # 确保值的数量和类型与measurements和data_types一致
]
tablet = Tablet("root.ftkj.lg01.zl01", measurements, data_types, values, timestamps)
session.insert_tablet(tablet)
print(f"{i} times {a1},{a2}, {a4}")
i += 1
time.sleep(1)
# # 使用with语句管理session资源,确保即使发生异常也能正确关闭
# with session.execute_statement("select * from root.ftkj.lg01.zl01") as session_data_set:
# while session_data_set.has_next():
# print(session_data_set.next())
except Exception as e:
print(f"An error occurred: {e}")
finally:
# 确保在最终关闭session
session.close()
1.0
import os
from iotdb.Session import Session
from iotdb.utils.IoTDBConstants import TSDataType
from iotdb.utils.Tablet import Tablet
import datetime, time
# 从环境变量中获取数据库连接信息,提高安全性和可维护性
host = os.getenv("IOTDB_HOST", "192.168.19.162")
port = os.getenv("IOTDB_PORT", "6667")
user = os.getenv("IOTDB_USER", "root")
password = os.getenv("IOTDB_PASSWORD", "root")
zone_id = os.getenv("IOTDB_ZONE_ID", "UTC+8")
# 使用异常处理来增强代码的健壮性
try:
session = Session(host=host, port=port, user=user, password=password, fetch_size=1024, zone_id=zone_id)
session.open(enable_rpc_compression=False)
# 确保为每个测量值提供对应的时间戳
td = time.time()*1000 #iotdb 默认存储的是 ms 时间戳 timestamps * 1000
timestamps = [int(td)]
measurements = ["a1", "a2", "a3", "a4"]
data_types = [
# TSDataType.TEXT,
TSDataType.BOOLEAN,
TSDataType.FLOAT,
TSDataType.TEXT,
TSDataType.DOUBLE
]
# 假设values是从某个数据源动态获取的
values = [
[True, 1101.1, 'abcd', 1.1] # 确保值的数量和类型与measurements和data_types一致
]
tablet = Tablet("root.ftkj.lg01.zl01", measurements, data_types, values, timestamps)
session.insert_tablet(tablet)
# 使用with语句管理session资源,确保即使发生异常也能正确关闭
with session.execute_statement("select * from root.ftkj.lg01.zl01") as session_data_set:
while session_data_set.has_next():
print(session_data_set.next())
except Exception as e:
print(f"An error occurred: {e}")
finally:
# 确保在最终关闭session
session.close()
发表评论