一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
print('client info:', conn.client_info)
print('server info:', conn.server_info)
这两行代码分别打印出连接到的客户端信息和服务器信息。这些信息可以帮助你了解当前使用的客户端库版本和服务器版本。
5. 关闭数据库连接:
conn.close()
使用close
方法关闭与数据库的连接。这是一个良好的实践,可以释放服务器资源。
6. 主程序入口:
if __name__ == "\_\_main\_\_":
test_connection()
这段代码检查当前脚本是否作为主程序运行(而不是作为模块导入到其他脚本中)。如果是,那么它会调用test_connection
函数来执行上述的数据库连接测试。
整体来说,这个脚本展示了如何使用taos
库来建立和关闭与TDengine数据库的连接,并获取一些基础的客户端和服务器信息。对于数据库操作的初学者来说,理解这些基本概念是非常重要的。
写入数据 - SQL 写入
import taos
lines = ["d1001,2018-10-03 14:38:05.000,10.30000,219,0.31000,'California.SanFrancisco',2",
"d1004,2018-10-03 14:38:05.000,10.80000,223,0.29000,'California.LosAngeles',3",
"d1003,2018-10-03 14:38:05.500,11.80000,221,0.28000,'California.LosAngeles',2",
"d1004,2018-10-03 14:38:06.500,11.50000,221,0.35000,'California.LosAngeles',3",
"d1002,2018-10-03 14:38:16.650,10.30000,218,0.25000,'California.SanFrancisco',3",
"d1001,2018-10-03 14:38:15.000,12.60000,218,0.33000,'California.SanFrancisco',2",
"d1001,2018-10-03 14:38:16.800,12.30000,221,0.31000,'California.SanFrancisco',2",
"d1003,2018-10-03 14:38:16.600,13.40000,223,0.29000,'California.LosAngeles',2"]
def get\_connection() -> taos.TaosConnection:
"""
create connection use firstEp in taos.cfg and use default user and password.
"""
return taos.connect()
def create\_stable(conn: taos.TaosConnection):
conn.execute("CREATE DATABASE power keep 36500")
conn.execute("USE power")
conn.execute("CREATE STABLE meters (ts TIMESTAMP, current FLOAT, voltage INT, phase FLOAT) "
"TAGS (location BINARY(64), groupId INT)")
# The generated SQL is:
# INSERT INTO d1001 USING meters TAGS('California.SanFrancisco', 2) VALUES ('2018-10-03 14:38:05.000', 10.30000, 219, 0.31000) ('2018-10-03 14:38:15.000', 12.60000, 218, 0.33000) ('2018-10-03 14:38:16.800', 12.30000, 221, 0.31000)
# d1002 USING meters TAGS('California.SanFrancisco', 3) VALUES ('2018-10-03 14:38:16.650', 10.30000, 218, 0.25000)
# d1003 USING meters TAGS('California.LosAngeles', 2) VALUES ('2018-10-03 14:38:05.500', 11.80000, 221, 0.28000) ('2018-10-03 14:38:16.600', 13.40000, 223, 0.29000)
# d1004 USING meters TAGS('California.LosAngeles', 3) VALUES ('2018-10-03 14:38:05.000', 10.80000, 223, 0.29000) ('2018-10-03 14:38:06.500', 11.50000, 221, 0.35000)
def get\_sql():
global lines
lines = map(lambda line: line.split(','), lines) # [['d1001', ...]...]
lines = sorted(lines, key=lambda ls: ls[0]) # sort by table name
sql = "INSERT INTO "
tb_name = None
for ps in lines:
tmp_tb_name = ps[0]
if tb_name != tmp_tb_name:
tb_name = tmp_tb_name
sql += f"{tb\_name} USING meters TAGS({ps[5]}, {ps[6]}) VALUES "
sql += f"('{ps[1]}', {ps[2]}, {ps[3]}, {ps[4]}) "
return sql
def insert\_data(conn: taos.TaosConnection):
sql = get_sql()
affected_rows = conn.execute(sql)
print("affected\_rows", affected_rows) # 8
if __name__ == '\_\_main\_\_':
connection = get_connection()
try:
create_stable(connection)
insert_data(connection)
finally:
connection.close()
这个Python脚本利用taos
库与TDengine数据库交互,展示了如何创建稳定表(超级表)、批量插入数据等操作。下面是一个详细的步骤解释,以帮助初学者理解每个部分的功能和目的。
导入taos
库
import taos
首先,导入taos
库,它是TDengine的Python客户端,提供了与TDengine数据库交互的接口。
数据准备
lines = [...]
这里定义了一个名为lines
的列表,包含了待插入数据库的数据。每个字符串代表一行数据,格式为"设备ID,时间戳,电流,电压,相位,位置,组ID"。
获取数据库连接 get_connection()
def get\_connection() -> taos.TaosConnection:
return taos.connect()
这个函数使用taos.connect()
无参数调用来建立数据库连接。这意味着它依赖于taos.cfg
配置文件中的默认设置,如服务器地址、端口、用户名和密码。函数返回一个TaosConnection
对象,代表与TDengine数据库的连接,用于执行后续的SQL操作。
创建稳定表 create_stable(conn: taos.TaosConnection)
def create\_stable(conn: taos.TaosConnection):
conn.execute("CREATE DATABASE power keep 36500")
conn.execute("USE power")
conn.execute("CREATE STABLE meters (ts TIMESTAMP, current FLOAT, voltage INT, phase FLOAT) TAGS (location BINARY(64), groupId INT)")
- 创建数据库:首先执行
CREATE DATABASE power keep 36500
,创建一个名为power
的数据库,并设置数据保留期限为36500天。这表示数据将在数据库中保留100年,适用于长期数据存储的需求。 - 使用数据库:通过
USE power
命令选择power
数据库作为后续操作的目标。 - 创建稳定表:执行
CREATE STABLE meters...
命令创建一个稳定表(超级表),定义了表的结构,包括时间戳(ts
)、测量值(current
,voltage
,phase
)和标签(location
,groupId
)。稳定表是一种模板,用于创建结构相同的子表,标签用于区分不同的子表。
生成SQL语句 get_sql()
def get\_sql():
global lines
lines = map(lambda line: line.split(','), lines) # Split each line into a list
lines = sorted(lines, key=lambda ls: ls[0]) # Sort by table name (device ID)
sql = "INSERT INTO "
tb_name = None
for ps in lines:
tmp_tb_name = ps[0]
if tb_name != tmp_tb_name:
tb_name = tmp_tb_name
sql += f"{tb\_name} USING meters TAGS({ps[5]}, {ps[6]}) VALUES "
sql += f"('{ps[1]}', {ps[2]}, {ps[3]}, {ps[4]}) "
return sql
这个函数处理lines
列表,为每一行数据生成SQL插入命令。
- 分割数据:使用
map
和lambda
将每行数据(一个长字符串)分割成列表形式,方便访问每个字段。 - 排序:按照设备ID(列表的第一个元素,即表名)对数据进行排序,以确保相同设备ID的数据被连续处理。
- 构建SQL:遍历排序后的数据,动态构建
INSERT INTO
语句。当遇到新的设备ID时,会在SQL语句中添加新的插入段。对于每一行数据,都会添加一个VALUES
部分,包含时间戳、电流、电压和相位值。使用TAGS
指定每个子表的位置和组ID。
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、全套PDF电子书
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
四、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
五、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!