From 0a1e5569d7019f443bcc465640cd0422554e7679 Mon Sep 17 00:00:00 2001 From: menshibin Date: Mon, 5 Aug 2024 11:26:59 +0800 Subject: [PATCH 1/2] add python example --- docs/examples/python/connect_example.py | 2 +- docs/examples/python/create_db_native.py | 3 +- docs/examples/python/schemaless_ws.py | 97 +++++++++++++++--------- 3 files changed, 63 insertions(+), 39 deletions(-) diff --git a/docs/examples/python/connect_example.py b/docs/examples/python/connect_example.py index 72d17020c9..095696f9a5 100644 --- a/docs/examples/python/connect_example.py +++ b/docs/examples/python/connect_example.py @@ -21,4 +21,4 @@ def create_connection(): if __name__ == "__main__": - create_connection() + create_connection() \ No newline at end of file diff --git a/docs/examples/python/create_db_native.py b/docs/examples/python/create_db_native.py index 46f33dbc6e..df29c730b5 100644 --- a/docs/examples/python/create_db_native.py +++ b/docs/examples/python/create_db_native.py @@ -15,8 +15,7 @@ try: assert rowsAffected == 0 # change database. same as execute "USE db" - rowsAffected = conn.select_db(db) - assert rowsAffected == 0 + conn.select_db(db) # create super table rowsAffected = conn.execute( diff --git a/docs/examples/python/schemaless_ws.py b/docs/examples/python/schemaless_ws.py index effa3e851e..46ee303179 100644 --- a/docs/examples/python/schemaless_ws.py +++ b/docs/examples/python/schemaless_ws.py @@ -1,47 +1,72 @@ import taosws -conn = None +db = "power" +def prepare(): + conn = None + try: + conn = taosws.connect(user="root", + password="taosdata", + host="localhost", + port=6041) -lineDemo = [ - "meters,groupid=2,location=California.SanFrancisco current=10.3000002f64,voltage=219i32,phase=0.31f64 1626006833639" -] + # create database + rowsAffected = conn.execute(f"CREATE DATABASE IF NOT EXISTS {db}") + assert rowsAffected == 0 -telnetDemo = ["metric_telnet 1707095283260 4 host=host0 interface=eth0"] + except Exception as err: + print(f"Failed to create db and table, err:{err}") + finally: + if conn: + conn.close() -jsonDemo = [ - '{"metric": "metric_json","timestamp": 1626846400,"value": 10.3, "tags": {"groupid": 2, "location": "California.SanFrancisco", "id": "d1001"}}' -] +def schemaless_insert(): -try: - conn = taosws.connect(user="root", - password="taosdata", - host="localhost", - port=6041) + conn = None - conn.execute("CREATE DATABASE IF NOT EXISTS power") - conn = conn.execute("USE power") + lineDemo = [ + "meters,groupid=2,location=California.SanFrancisco current=10.3000002f64,voltage=219i32,phase=0.31f64 1626006833639" + ] - conn.schemaless_insert( - lines=lineDemo, - protocol=taosws.PySchemalessProtocol.Line, - precision=taosws.PySchemalessPrecision.Millisecond - ) + telnetDemo = ["metric_telnet 1707095283260 4 host=host0 interface=eth0"] - conn.schemaless_insert( - lines=telnetDemo, - protocol=taosws.PySchemalessProtocol.Telnet, - precision=taosws.PySchemalessPrecision.Microsecond - ) + jsonDemo = [ + '{"metric": "metric_json","timestamp": 1626846400,"value": 10.3, "tags": {"groupid": 2, "location": "California.SanFrancisco", "id": "d1001"}}' + ] - conn.schemaless_insert( - lines=jsonDemo, - protocol=taosws.PySchemalessProtocol.Json, - precision=taosws.PySchemalessPrecision.Millisecond - ) -except Exception as err: - print(f"Failed to insert data with schemaless, err:{err}") - -finally: - if conn: - conn.close() + try: + conn = taosws.connect(user="root", + password="taosdata", + host="localhost", + port=6041, + database=db) + conn.schemaless_insert( + lines=lineDemo, + protocol=taosws.PySchemalessProtocol.Line, + precision=taosws.PySchemalessPrecision.Millisecond, + ttl=1, + req_id=1, + ) + + conn.schemaless_insert( + lines=telnetDemo, + protocol=taosws.PySchemalessProtocol.Telnet, + precision=taosws.PySchemalessPrecision.Microsecond, + ttl=1, + req_id=2, + ) + + conn.schemaless_insert( + lines=jsonDemo, + protocol=taosws.PySchemalessProtocol.Json, + precision=taosws.PySchemalessPrecision.Millisecond, + ttl=1, + req_id=3, + ) + + except Exception as err: + print(f"Failed to insert data with schemaless, err:{err}") + + finally: + if conn: + conn.close() \ No newline at end of file From 0fa4d67c405ee85546c74acad038417ddf22b6ac Mon Sep 17 00:00:00 2001 From: menshibin Date: Mon, 5 Aug 2024 12:08:17 +0800 Subject: [PATCH 2/2] add python example --- docs/examples/python/schemaless_ws.py | 6 +++--- docs/examples/python/stmt_native.py | 5 ++--- docs/examples/python/stmt_ws.py | 7 ++++--- docs/examples/python/tmq_websocket_example.py | 16 +++++++++++++--- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/docs/examples/python/schemaless_ws.py b/docs/examples/python/schemaless_ws.py index 46ee303179..c08b9b574d 100644 --- a/docs/examples/python/schemaless_ws.py +++ b/docs/examples/python/schemaless_ws.py @@ -41,9 +41,9 @@ def schemaless_insert(): database=db) conn.schemaless_insert( - lines=lineDemo, - protocol=taosws.PySchemalessProtocol.Line, - precision=taosws.PySchemalessPrecision.Millisecond, + lines = lineDemo, + protocol = taosws.PySchemalessProtocol.Line, + precision = taosws.PySchemalessPrecision.Millisecond, ttl=1, req_id=1, ) diff --git a/docs/examples/python/stmt_native.py b/docs/examples/python/stmt_native.py index 8484b57e7e..5b7bc3f487 100644 --- a/docs/examples/python/stmt_native.py +++ b/docs/examples/python/stmt_native.py @@ -42,7 +42,7 @@ try: for j in range (numOfRow): timestamps.append(current + i) currents.append(random.random() * 30) - voltages.append(random.random(100, 300)) + voltages.append(random.randint(100, 300)) phases.append(random.random()) params = taos.new_bind_params(4) @@ -52,8 +52,7 @@ try: params[3].float(phases) stmt.bind_param_batch(params) stmt.execute() - affected = stmt.affected_rows() - print(f"table {tbname} insert {affected} rows.") + print(f"stmt insert successfully.") except Exception as err: print(f"Failed to insert to table meters using stmt, error: {err}") diff --git a/docs/examples/python/stmt_ws.py b/docs/examples/python/stmt_ws.py index c213be3566..9e5f34fc22 100644 --- a/docs/examples/python/stmt_ws.py +++ b/docs/examples/python/stmt_ws.py @@ -41,7 +41,7 @@ try: for j in range (numOfRow): timestamps.append(current + i) currents.append(random.random() * 30) - voltages.append(random.random(100, 300)) + voltages.append(random.randint(100, 300)) phases.append(random.random()) stmt.bind_param( @@ -54,8 +54,9 @@ try: ) stmt.add_batch() - rows = stmt.execute() - print(f"insert {rows} rows.") + stmt.execute() + + print(f"stmt insert successfully.") except Exception as err: print(f"Failed to insert to table meters using stmt, error: {err}") diff --git a/docs/examples/python/tmq_websocket_example.py b/docs/examples/python/tmq_websocket_example.py index 638a79eced..a0aff17c42 100644 --- a/docs/examples/python/tmq_websocket_example.py +++ b/docs/examples/python/tmq_websocket_example.py @@ -1,5 +1,8 @@ #!/usr/bin/python3 import taosws + +topic = "topic_meters" + def prepareMeta(): conn = None @@ -29,6 +32,13 @@ def prepareMeta(): "CREATE TABLE IF NOT EXISTS `d0` USING `meters` (groupid, location) TAGS(0, 'Los Angles')") assert rowsAffected == 0 + # ANCHOR: create_topic + # create topic + conn.execute( + f"CREATE TOPIC IF NOT EXISTS {topic} AS SELECT ts, current, voltage, phase, groupid, location FROM meters" + ) + # ANCHOR_END: create_topic + sql = """ INSERT INTO power.d1001 USING power.meters (groupid, location) TAGS(2, 'California.SanFrancisco') @@ -91,9 +101,9 @@ def seek_offset(consumer): # ANCHOR: subscribe def subscribe(consumer): try: - consumer.subscribe(["topic_meters"]) + consumer.subscribe([topic]) print("subscribe topics successfully") - for i in range(5): + for i in range(50): records = consumer.poll(timeout=1.0) if records: for block in records: @@ -110,7 +120,7 @@ def subscribe(consumer): # ANCHOR: commit_offset def commit_offset(consumer): try: - for i in range(5): + for i in range(50): records = consumer.poll(timeout=1.0) if records: for block in records: