nodejs example modify
This commit is contained in:
parent
7c13635487
commit
ba9c99385b
|
@ -2,13 +2,13 @@ const taos = require("@tdengine/websocket");
|
||||||
|
|
||||||
let db = 'power';
|
let db = 'power';
|
||||||
let stable = 'meters';
|
let stable = 'meters';
|
||||||
let tags = ['California.SanFrancisco', 3];
|
let numOfSubTable = 10;
|
||||||
let values = [
|
let numOfRow = 10;
|
||||||
[1706786044994, 1706786044995, 1706786044996],
|
function getRandomInt(min, max) {
|
||||||
[10.2, 10.3, 10.4],
|
min = Math.ceil(min);
|
||||||
[292, 293, 294],
|
max = Math.floor(max);
|
||||||
[0.32, 0.33, 0.34],
|
return Math.floor(Math.random() * (max - min + 1)) + min;
|
||||||
];
|
}
|
||||||
|
|
||||||
async function prepare() {
|
async function prepare() {
|
||||||
let dsn = 'ws://localhost:6041'
|
let dsn = 'ws://localhost:6041'
|
||||||
|
@ -29,24 +29,36 @@ async function prepare() {
|
||||||
connector = await prepare();
|
connector = await prepare();
|
||||||
stmt = await connector.stmtInit();
|
stmt = await connector.stmtInit();
|
||||||
await stmt.prepare(`INSERT INTO ? USING ${db}.${stable} (location, groupId) TAGS (?, ?) VALUES (?, ?, ?, ?)`);
|
await stmt.prepare(`INSERT INTO ? USING ${db}.${stable} (location, groupId) TAGS (?, ?) VALUES (?, ?, ?, ?)`);
|
||||||
await stmt.setTableName('d1001');
|
for (let i = 0; i < numOfSubTable; i++) {
|
||||||
let tagParams = stmt.newStmtParam();
|
await stmt.setTableName(`d_bind_${i}`);
|
||||||
tagParams.setVarchar([tags[0]]);
|
let tagParams = stmt.newStmtParam();
|
||||||
tagParams.setInt([tags[1]]);
|
tagParams.setVarchar([`location_${i}`]);
|
||||||
await stmt.setTags(tagParams);
|
tagParams.setInt([i]);
|
||||||
|
await stmt.setTags(tagParams);
|
||||||
let bindParams = stmt.newStmtParam();
|
let timestampParams = [];
|
||||||
bindParams.setTimestamp(values[0]);
|
let currentParams = [];
|
||||||
bindParams.setFloat(values[1]);
|
let voltageParams = [];
|
||||||
bindParams.setInt(values[2]);
|
let phaseParams = [];
|
||||||
bindParams.setFloat(values[3]);
|
const currentMillis = new Date().getTime();
|
||||||
await stmt.bind(bindParams);
|
for (let j = 0; j < numOfRow; j++) {
|
||||||
await stmt.batch();
|
timestampParams.push(currentMillis + j);
|
||||||
await stmt.exec();
|
currentParams.push(Math.random() * 30);
|
||||||
console.log(stmt.getLastAffected());
|
voltageParams.push(getRandomInt(100, 300));
|
||||||
|
phaseParams.push(Math.random());
|
||||||
|
}
|
||||||
|
let bindParams = stmt.newStmtParam();
|
||||||
|
bindParams.setTimestamp(timestampParams);
|
||||||
|
bindParams.setFloat(currentParams);
|
||||||
|
bindParams.setInt(voltageParams);
|
||||||
|
bindParams.setFloat(phaseParams);
|
||||||
|
await stmt.bind(bindParams);
|
||||||
|
await stmt.batch();
|
||||||
|
await stmt.exec();
|
||||||
|
console.log(`d_bind_${i} insert ` + stmt.getLastAffected() + " rows.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (e) {
|
||||||
console.error(err.code, err.message);
|
console.error(e);
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
if (stmt) {
|
if (stmt) {
|
||||||
|
|
|
@ -7,24 +7,30 @@ const topics = ['power_meters_topic'];
|
||||||
// ANCHOR: create_consumer
|
// ANCHOR: create_consumer
|
||||||
async function createConsumer() {
|
async function createConsumer() {
|
||||||
let configMap = new Map([
|
let configMap = new Map([
|
||||||
[taos.TMQConstants.GROUP_ID, "gId"],
|
[taos.TMQConstants.GROUP_ID, "group1"],
|
||||||
|
[taos.TMQConstants.CLIENT_ID, 'client1'],
|
||||||
[taos.TMQConstants.CONNECT_USER, "root"],
|
[taos.TMQConstants.CONNECT_USER, "root"],
|
||||||
[taos.TMQConstants.CONNECT_PASS, "taosdata"],
|
[taos.TMQConstants.CONNECT_PASS, "taosdata"],
|
||||||
[taos.TMQConstants.AUTO_OFFSET_RESET, "latest"],
|
[taos.TMQConstants.AUTO_OFFSET_RESET, "latest"],
|
||||||
[taos.TMQConstants.CLIENT_ID, 'test_tmq_client'],
|
|
||||||
[taos.TMQConstants.WS_URL, 'ws://localhost:6041'],
|
[taos.TMQConstants.WS_URL, 'ws://localhost:6041'],
|
||||||
[taos.TMQConstants.ENABLE_AUTO_COMMIT, 'true'],
|
[taos.TMQConstants.ENABLE_AUTO_COMMIT, 'true'],
|
||||||
[taos.TMQConstants.AUTO_COMMIT_INTERVAL_MS, '1000']
|
[taos.TMQConstants.AUTO_COMMIT_INTERVAL_MS, '1000']
|
||||||
]);
|
]);
|
||||||
return await taos.tmqConnect(configMap);
|
try {
|
||||||
|
return await taos.tmqConnect(configMap);
|
||||||
|
}catch (err) {
|
||||||
|
console.log(err);
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
// ANCHOR_END: create_consumer
|
// ANCHOR_END: create_consumer
|
||||||
|
|
||||||
async function prepare() {
|
async function prepare() {
|
||||||
let conf = new taos.WSConfig('ws://localhost:6041');
|
let conf = new taos.WSConfig('ws://localhost:6041');
|
||||||
conf.setUser('root')
|
conf.setUser('root');
|
||||||
conf.setPwd('taosdata')
|
conf.setPwd('taosdata');
|
||||||
conf.setDb('power')
|
conf.setDb('power');
|
||||||
const createDB = `CREATE DATABASE IF NOT EXISTS POWER ${db} KEEP 3650 DURATION 10 BUFFER 16 WAL_LEVEL 1;`;
|
const createDB = `CREATE DATABASE IF NOT EXISTS POWER ${db} KEEP 3650 DURATION 10 BUFFER 16 WAL_LEVEL 1;`;
|
||||||
const createStable = `CREATE STABLE IF NOT EXISTS ${db}.${stable} (ts timestamp, current float, voltage int, phase float) TAGS (location binary(64), groupId int);`;
|
const createStable = `CREATE STABLE IF NOT EXISTS ${db}.${stable} (ts timestamp, current float, voltage int, phase float) TAGS (location binary(64), groupId int);`;
|
||||||
|
|
||||||
|
|
|
@ -4,14 +4,14 @@ def create_connection():
|
||||||
# all parameters are optional.
|
# all parameters are optional.
|
||||||
conn = None
|
conn = None
|
||||||
try:
|
try:
|
||||||
conn = taosws.connect(
|
conn = taos.connect(
|
||||||
user="root",
|
user="root",
|
||||||
password="taosdata",
|
password="taosdata",
|
||||||
host="192.168.1.98",
|
host="localhost",
|
||||||
port=6041,
|
port=6041,
|
||||||
)
|
)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
print(f'Exception {err}')
|
print(err)
|
||||||
finally:
|
finally:
|
||||||
if conn:
|
if conn:
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
# ANCHOR: connect
|
# ANCHOR: connect
|
||||||
from taosrest import connect, TaosRestConnection, TaosRestCursor
|
from taosrest import connect, TaosRestConnection, TaosRestCursor
|
||||||
|
|
||||||
conn = connect(url="http://localhost:6041",
|
|
||||||
user="root",
|
|
||||||
password="taosdata",
|
|
||||||
timeout=30)
|
|
||||||
|
|
||||||
|
conn = connect(url="http://localhost:6041",
|
||||||
|
user="root",
|
||||||
|
password="taosdata",
|
||||||
|
timeout=30)
|
||||||
|
|
||||||
# ANCHOR_END: connect
|
# ANCHOR_END: connect
|
||||||
# ANCHOR: basic
|
# ANCHOR: basic
|
||||||
# create STable
|
# create STable
|
||||||
|
|
|
@ -1,19 +1,20 @@
|
||||||
|
# ANCHOR: connect
|
||||||
import taosws
|
import taosws
|
||||||
|
|
||||||
def create_connection():
|
def create_connection():
|
||||||
conn = None
|
conn = None
|
||||||
# ANCHOR: connect
|
|
||||||
try:
|
try:
|
||||||
conn = taosws.connect(
|
conn = taosws.connect(
|
||||||
user="root",
|
user="root",
|
||||||
password="taosdata",
|
password="taosdata",
|
||||||
host="192.168.1.98",
|
host="localhost",
|
||||||
port=6041,
|
port=6041,
|
||||||
)
|
)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
print(f'Exception {err}')
|
print(err)
|
||||||
# ANCHOR_END: connect
|
|
||||||
return conn
|
return conn
|
||||||
|
# ANCHOR_END: connect
|
||||||
|
|
||||||
def create_db_table(conn):
|
def create_db_table(conn):
|
||||||
# ANCHOR: create_db
|
# ANCHOR: create_db
|
||||||
|
|
|
@ -1,26 +1,33 @@
|
||||||
import taos
|
import taos
|
||||||
|
|
||||||
conn = taos.connect(
|
conn = None
|
||||||
host="localhost",
|
try:
|
||||||
user="root",
|
conn = taos.connect(host="localhost",
|
||||||
password="taosdata",
|
user="root",
|
||||||
port=6030,
|
password="taosdata",
|
||||||
)
|
port=6030)
|
||||||
|
|
||||||
db = "power"
|
db = "power"
|
||||||
|
# create database
|
||||||
|
rowsAffected = conn.execute(f"CREATE DATABASE IF NOT EXISTS {db}")
|
||||||
|
assert rowsAffected == 0
|
||||||
|
|
||||||
conn.execute(f"DROP DATABASE IF EXISTS {db}")
|
# change database. same as execute "USE db"
|
||||||
conn.execute(f"CREATE DATABASE {db}")
|
rowsAffected = conn.select_db(db)
|
||||||
|
assert rowsAffected == 0
|
||||||
|
|
||||||
|
# create super table
|
||||||
|
rowsAffected = conn.execute(
|
||||||
|
"CREATE TABLE IF NOT EXISTS `meters` (`ts` TIMESTAMP, `current` FLOAT, `voltage` INT, `phase` FLOAT) TAGS (`groupid` INT, `location` BINARY(16))"
|
||||||
|
)
|
||||||
|
assert rowsAffected == 0
|
||||||
|
|
||||||
# change database. same as execute "USE db"
|
# create table
|
||||||
conn.select_db(db)
|
rowsAffected = conn.execute("CREATE TABLE IF NOT EXISTS `d0` USING `meters` (groupid, location) TAGS(0, 'Los Angles')")
|
||||||
|
assert rowsAffected == 0
|
||||||
|
|
||||||
# create super table
|
except Exception as err:
|
||||||
conn.execute(
|
print(err)
|
||||||
"CREATE TABLE `meters` (`ts` TIMESTAMP, `current` FLOAT, `voltage` INT, `phase` FLOAT) TAGS (`groupid` INT, `location` BINARY(16))"
|
finally:
|
||||||
)
|
if conn:
|
||||||
|
conn.close()
|
||||||
# create table
|
|
||||||
conn.execute("CREATE TABLE `d0` USING `meters` TAGS(0, 'Los Angles')")
|
|
||||||
|
|
||||||
conn.close()
|
|
||||||
|
|
|
@ -1,18 +1,28 @@
|
||||||
import taosrest
|
import taosrest
|
||||||
|
|
||||||
conn = taosrest.connect(url="http://localhost:6041")
|
conn = None
|
||||||
|
try:
|
||||||
|
conn = taosrest.connect(url="http://localhost:6041",
|
||||||
|
user="root",
|
||||||
|
password="taosdata",
|
||||||
|
timeout=30)
|
||||||
|
|
||||||
db = "power"
|
db = "power"
|
||||||
|
# create database
|
||||||
|
rowsAffected = conn.execute(f"CREATE DATABASE IF NOT EXISTS {db}")
|
||||||
|
assert rowsAffected == 0
|
||||||
|
|
||||||
conn.execute(f"DROP DATABASE IF EXISTS {db}")
|
# create super table
|
||||||
conn.execute(f"CREATE DATABASE {db}")
|
rowsAffected = conn.execute(
|
||||||
|
f"CREATE TABLE IF NOT EXISTS `{db}`.`meters` (`ts` TIMESTAMP, `current` FLOAT, `voltage` INT, `phase` FLOAT) TAGS (`groupid` INT, `location` BINARY(16))"
|
||||||
|
)
|
||||||
|
assert rowsAffected == 0
|
||||||
|
# create table
|
||||||
|
rowsAffected = conn.execute(f"CREATE TABLE IF NOT EXISTS `{db}`.`d0` USING `{db}`.`meters` (groupid, location) TAGS(0, 'Los Angles')")
|
||||||
|
assert rowsAffected == 0
|
||||||
|
|
||||||
# create super table
|
except Exception as err:
|
||||||
conn.execute(
|
print(err)
|
||||||
f"CREATE TABLE `{db}`.`meters` (`ts` TIMESTAMP, `current` FLOAT, `voltage` INT, `phase` FLOAT) TAGS (`groupid` INT, `location` BINARY(16))"
|
finally:
|
||||||
)
|
if conn:
|
||||||
|
conn.close()
|
||||||
# create table
|
|
||||||
conn.execute(f"CREATE TABLE `{db}`.`d0` USING `{db}`.`meters` TAGS(0, 'Los Angles')")
|
|
||||||
|
|
||||||
conn.close()
|
|
||||||
|
|
|
@ -1,22 +1,34 @@
|
||||||
import taosws
|
import taosws
|
||||||
|
|
||||||
dsn = "taosws://root:taosdata@localhost:6041"
|
conn = None
|
||||||
conn = taosws.connect(dsn)
|
|
||||||
|
|
||||||
db = "power"
|
try:
|
||||||
|
conn = taosws.connect(user="root",
|
||||||
|
password="taosdata",
|
||||||
|
host="localhost",
|
||||||
|
port=6041)
|
||||||
|
|
||||||
conn.execute(f"DROP DATABASE IF EXISTS {db}")
|
db = "power"
|
||||||
conn.execute(f"CREATE DATABASE {db}")
|
# create database
|
||||||
|
rowsAffected = conn.execute(f"CREATE DATABASE IF NOT EXISTS {db}")
|
||||||
|
assert rowsAffected == 0
|
||||||
|
|
||||||
# change database.
|
# change database.
|
||||||
conn.execute(f"USE {db}")
|
rowsAffected = conn.execute(f"USE {db}")
|
||||||
|
assert rowsAffected == 0
|
||||||
|
|
||||||
|
# create super table
|
||||||
|
rowsAffected = conn.execute(
|
||||||
|
"CREATE TABLE IF NOT EXISTS `meters` (`ts` TIMESTAMP, `current` FLOAT, `voltage` INT, `phase` FLOAT) TAGS (`groupid` INT, `location` BINARY(16))"
|
||||||
|
)
|
||||||
|
assert rowsAffected == 0
|
||||||
|
|
||||||
# create super table
|
# create table
|
||||||
conn.execute(
|
rowsAffected = conn.execute("CREATE TABLE IF NOT EXISTS `d0` USING `meters` (groupid, location) TAGS(0, 'Los Angles')")
|
||||||
"CREATE TABLE `meters` (`ts` TIMESTAMP, `current` FLOAT, `voltage` INT, `phase` FLOAT) TAGS (`groupid` INT, `location` BINARY(16))"
|
assert rowsAffected == 0
|
||||||
)
|
|
||||||
|
|
||||||
# create table
|
except Exception as err:
|
||||||
conn.execute("CREATE TABLE `d0` USING `meters` TAGS(0, 'Los Angles')")
|
print(err)
|
||||||
|
finally:
|
||||||
conn.close()
|
if conn:
|
||||||
|
conn.close()
|
||||||
|
|
|
@ -1,76 +1,26 @@
|
||||||
import taos
|
import taos
|
||||||
|
|
||||||
conn = taos.connect(
|
conn = None
|
||||||
host="localhost",
|
|
||||||
user="root",
|
|
||||||
password="taosdata",
|
|
||||||
port=6030,
|
|
||||||
)
|
|
||||||
|
|
||||||
db = "power"
|
try:
|
||||||
|
conn = taos.connect(user="root",
|
||||||
|
password="taosdata",
|
||||||
|
host="localhost",
|
||||||
|
port=6041)
|
||||||
|
|
||||||
conn.execute(f"DROP DATABASE IF EXISTS {db}")
|
sql = """
|
||||||
conn.execute(f"CREATE DATABASE {db}")
|
INSERT INTO
|
||||||
|
power.d1001 USING power.meters (groupid, location) TAGS(2, 'California.SanFrancisco')
|
||||||
|
VALUES (NOW + 1a, 10.30000, 219, 0.31000)
|
||||||
|
(NOW + 2a, 12.60000, 218, 0.33000) (NOW + 3a, 12.30000, 221, 0.31000)
|
||||||
|
power.d1002 USING power.meters (groupid, location) TAGS(3, 'California.SanFrancisco')
|
||||||
|
VALUES (NOW + 1a, 10.30000, 218, 0.25000)
|
||||||
|
"""
|
||||||
|
inserted = conn.execute(sql)
|
||||||
|
print("inserted into {affectedRows} rows to power.meters successfully.")
|
||||||
|
|
||||||
# change database. same as execute "USE db"
|
except Exception as err:
|
||||||
conn.select_db(db)
|
print(err)
|
||||||
|
finally:
|
||||||
# create super table
|
if conn:
|
||||||
conn.execute(
|
conn.close()
|
||||||
"CREATE STABLE power.meters (ts TIMESTAMP, current FLOAT, voltage INT, phase FLOAT) TAGS (location BINARY(64), groupId INT)"
|
|
||||||
)
|
|
||||||
|
|
||||||
# ANCHOR: insert
|
|
||||||
# insert data
|
|
||||||
sql = """
|
|
||||||
INSERT INTO
|
|
||||||
power.d1001 USING power.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)
|
|
||||||
power.d1002 USING power.meters TAGS('California.SanFrancisco', 3)
|
|
||||||
VALUES ('2018-10-03 14:38:16.650', 10.30000, 218, 0.25000)
|
|
||||||
power.d1003 USING power.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)
|
|
||||||
power.d1004 USING power.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)
|
|
||||||
"""
|
|
||||||
|
|
||||||
inserted = conn.execute(sql)
|
|
||||||
assert inserted == 8
|
|
||||||
# ANCHOR_END: insert
|
|
||||||
|
|
||||||
# ANCHOR: query
|
|
||||||
# Execute a sql and get its result set. It's useful for SELECT statement
|
|
||||||
result = conn.query("SELECT * from meters")
|
|
||||||
|
|
||||||
# Get fields from result
|
|
||||||
fields = result.fields
|
|
||||||
for field in fields:
|
|
||||||
print(field)
|
|
||||||
|
|
||||||
"""
|
|
||||||
output:
|
|
||||||
{name: ts, type: 9, bytes: 8}
|
|
||||||
{name: current, type: 6, bytes: 4}
|
|
||||||
{name: voltage, type: 4, bytes: 4}
|
|
||||||
{name: phase, type: 6, bytes: 4}
|
|
||||||
{name: location, type: 8, bytes: 64}
|
|
||||||
{name: groupid, type: 4, bytes: 4}
|
|
||||||
"""
|
|
||||||
|
|
||||||
# Get data from result as list of tuple
|
|
||||||
data = result.fetch_all()
|
|
||||||
for row in data:
|
|
||||||
print(row)
|
|
||||||
|
|
||||||
"""
|
|
||||||
output:
|
|
||||||
(datetime.datetime(2018, 10, 3, 14, 38, 16, 650000), 10.300000190734863, 218, 0.25, 'California.SanFrancisco', 3)
|
|
||||||
...
|
|
||||||
"""
|
|
||||||
# ANCHOR_END: query
|
|
||||||
|
|
||||||
# ANCHOR: req_id
|
|
||||||
result = conn.query("SELECT * from meters", req_id=1)
|
|
||||||
# ANCHOR_END: req_id
|
|
||||||
conn.close()
|
|
||||||
|
|
|
@ -1,48 +1,26 @@
|
||||||
import taosrest
|
import taosrest
|
||||||
|
|
||||||
conn = taosrest.connect(url="http://localhost:6041")
|
conn = None
|
||||||
|
|
||||||
db = "power"
|
try:
|
||||||
|
conn = taosrest.connect(url="http://localhost:6041",
|
||||||
|
user="root",
|
||||||
|
password="taosdata",
|
||||||
|
timeout=30)
|
||||||
|
|
||||||
conn.execute(f"DROP DATABASE IF EXISTS {db}")
|
sql = """
|
||||||
conn.execute(f"CREATE DATABASE {db}")
|
INSERT INTO
|
||||||
|
power.d1001 USING power.meters (groupid, location) TAGS(2, 'California.SanFrancisco')
|
||||||
|
VALUES (NOW + 1a, 10.30000, 219, 0.31000)
|
||||||
|
(NOW + 2a, 12.60000, 218, 0.33000) (NOW + 3a, 12.30000, 221, 0.31000)
|
||||||
|
power.d1002 USING power.meters (groupid, location) TAGS(3, 'California.SanFrancisco')
|
||||||
|
VALUES (NOW + 1a, 10.30000, 218, 0.25000)
|
||||||
|
"""
|
||||||
|
affectedRows = conn.execute(sql)
|
||||||
|
print(f"inserted into {affectedRows} rows to power.meters successfully.")
|
||||||
|
|
||||||
# create super table
|
except Exception as err:
|
||||||
conn.execute(
|
print(err)
|
||||||
"CREATE STABLE power.meters (ts TIMESTAMP, current FLOAT, voltage INT, phase FLOAT) TAGS (location BINARY(64), groupId INT)"
|
finally:
|
||||||
)
|
if conn:
|
||||||
|
conn.close()
|
||||||
# ANCHOR: insert
|
|
||||||
# rest insert data
|
|
||||||
sql = """
|
|
||||||
INSERT INTO
|
|
||||||
power.d1001 USING power.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)
|
|
||||||
power.d1002 USING power.meters TAGS('California.SanFrancisco', 3)
|
|
||||||
VALUES ('2018-10-03 14:38:16.650', 10.30000, 218, 0.25000)
|
|
||||||
power.d1003 USING power.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)
|
|
||||||
power.d1004 USING power.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)
|
|
||||||
"""
|
|
||||||
|
|
||||||
inserted = conn.execute(sql)
|
|
||||||
assert inserted == 8
|
|
||||||
# ANCHOR_END: insert
|
|
||||||
|
|
||||||
# ANCHOR: query
|
|
||||||
client = taosrest.RestClient("http://localhost:6041")
|
|
||||||
result = client.sql(f"SELECT * from {db}.meters")
|
|
||||||
print(result)
|
|
||||||
|
|
||||||
"""
|
|
||||||
output:
|
|
||||||
{'code': 0, 'column_meta': [['ts', 'TIMESTAMP', 8], ['current', 'FLOAT', 4], ['voltage', 'INT', 4], ['phase', 'FLOAT', 4], ['location', 'VARCHAR', 64], ['groupid', 'INT', 4]], 'data': [[datetime.datetime(2018, 10, 3, 14, 38, 5), 10.3, 219, 0.31, 'California.SanFrancisco', 2], [datetime.datetime(2018, 10, 3, 14, 38, 15), 12.6, 218, 0.33, 'California.SanFrancisco', 2], [datetime.datetime(2018, 10, 3, 14, 38, 16, 800000), 12.3, 221, 0.31, 'California.SanFrancisco', 2], [datetime.datetime(2018, 10, 3, 14, 38, 16, 650000), 10.3, 218, 0.25, 'California.SanFrancisco', 3], [datetime.datetime(2018, 10, 3, 14, 38, 5, 500000), 11.8, 221, 0.28, 'California.LosAngeles', 2], [datetime.datetime(2018, 10, 3, 14, 38, 16, 600000), 13.4, 223, 0.29, 'California.LosAngeles', 2], [datetime.datetime(2018, 10, 3, 14, 38, 5), 10.8, 223, 0.29, 'California.LosAngeles', 3], [datetime.datetime(2018, 10, 3, 14, 38, 6, 500000), 11.5, 221, 0.35, 'California.LosAngeles', 3]], 'rows': 8}
|
|
||||||
"""
|
|
||||||
# ANCHOR_END: query
|
|
||||||
|
|
||||||
# ANCHOR: req_id
|
|
||||||
result = client.sql(f"SELECT * from {db}.meters", req_id=1)
|
|
||||||
# ANCHOR_END: req_id
|
|
||||||
conn.close()
|
|
||||||
|
|
|
@ -1,71 +1,26 @@
|
||||||
import taosws
|
import taosws
|
||||||
|
|
||||||
dsn = "taosws://root:taosdata@localhost:6041"
|
conn = None
|
||||||
conn = taosws.connect(dsn)
|
|
||||||
|
|
||||||
db = "power"
|
try:
|
||||||
|
conn = taosws.connect(user="root",
|
||||||
|
password="taosdata",
|
||||||
|
host="localhost",
|
||||||
|
port=6041)
|
||||||
|
|
||||||
conn.execute(f"DROP DATABASE IF EXISTS {db}")
|
sql = """
|
||||||
conn.execute(f"CREATE DATABASE {db}")
|
INSERT INTO
|
||||||
|
power.d1001 USING power.meters (groupid, location) TAGS(2, 'California.SanFrancisco')
|
||||||
|
VALUES (NOW + 1a, 10.30000, 219, 0.31000)
|
||||||
|
(NOW + 2a, 12.60000, 218, 0.33000) (NOW + 3a, 12.30000, 221, 0.31000)
|
||||||
|
power.d1002 USING power.meters (groupid, location) TAGS(3, 'California.SanFrancisco')
|
||||||
|
VALUES (NOW + 1a, 10.30000, 218, 0.25000)
|
||||||
|
"""
|
||||||
|
inserted = conn.execute(sql)
|
||||||
|
print("inserted into {affectedRows} rows to power.meters successfully.")
|
||||||
|
|
||||||
# change database.
|
except Exception as err:
|
||||||
conn.execute(f"USE {db}")
|
print(err)
|
||||||
|
finally:
|
||||||
# create super table
|
if conn:
|
||||||
conn.execute(
|
conn.close()
|
||||||
"CREATE STABLE power.meters (ts TIMESTAMP, current FLOAT, voltage INT, phase FLOAT) TAGS (location BINARY(64), groupId INT)"
|
|
||||||
)
|
|
||||||
|
|
||||||
# ANCHOR: insert
|
|
||||||
# ws insert data
|
|
||||||
sql = """
|
|
||||||
INSERT INTO
|
|
||||||
power.d1001 USING power.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)
|
|
||||||
power.d1002 USING power.meters TAGS('California.SanFrancisco', 3)
|
|
||||||
VALUES ('2018-10-03 14:38:16.650', 10.30000, 218, 0.25000)
|
|
||||||
power.d1003 USING power.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)
|
|
||||||
power.d1004 USING power.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)
|
|
||||||
"""
|
|
||||||
|
|
||||||
inserted = conn.execute(sql)
|
|
||||||
assert inserted == 8
|
|
||||||
# ANCHOR_END: insert
|
|
||||||
|
|
||||||
# ANCHOR: query
|
|
||||||
# Execute a sql and get its result set. It's useful for SELECT statement
|
|
||||||
result = conn.query("SELECT * from meters")
|
|
||||||
|
|
||||||
# Get fields from result
|
|
||||||
fields = result.fields
|
|
||||||
for field in fields:
|
|
||||||
print(field)
|
|
||||||
|
|
||||||
"""
|
|
||||||
output:
|
|
||||||
{name: ts, type: TIMESTAMP, bytes: 8}
|
|
||||||
{name: current, type: FLOAT, bytes: 4}
|
|
||||||
{name: voltage, type: INT, bytes: 4}
|
|
||||||
{name: phase, type: FLOAT, bytes: 4}
|
|
||||||
{name: location, type: BINARY, bytes: 64}
|
|
||||||
{name: groupid, type: INT, bytes: 4}
|
|
||||||
"""
|
|
||||||
|
|
||||||
# Get rows from result
|
|
||||||
for row in result:
|
|
||||||
print(row)
|
|
||||||
|
|
||||||
"""
|
|
||||||
output:
|
|
||||||
('2018-10-03 14:38:05 +08:00', 10.300000190734863, 219, 0.3100000023841858, 'California.SanFrancisco', 2)
|
|
||||||
...
|
|
||||||
"""
|
|
||||||
# ANCHOR_END: query
|
|
||||||
|
|
||||||
# ANCHOR: req_id
|
|
||||||
result = conn.query_with_req_id("SELECT * from meters", req_id=1)
|
|
||||||
# ANCHOR_END: req_id
|
|
||||||
conn.close()
|
|
||||||
|
|
|
@ -536,7 +536,7 @@ DSN 的详细说明和如何使用详见 [连接功能](../../reference/connecto
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem label="Python" value="python">
|
<TabItem label="Python" value="python">
|
||||||
```python
|
```python
|
||||||
{{#include docs/examples/python/connect_rest_examples.py:connect}}
|
{{#include docs/examples/python/connect_rest_example.py:connect}}
|
||||||
```
|
```
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem label="Go" value="go">
|
<TabItem label="Go" value="go">
|
||||||
|
|
|
@ -33,8 +33,18 @@ REST API:通过 `curl` 命令进行数据写入和查询操作。
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem label="Python" value="python">
|
<TabItem label="Python" value="python">
|
||||||
- Websocket 连接
|
|
||||||
|
|
||||||
|
```python title="Websocket 连接"
|
||||||
|
{{#include docs/examples/python/create_db_ws.py}}
|
||||||
|
```
|
||||||
|
|
||||||
|
```python title="原生连接"
|
||||||
|
{{#include docs/examples/python/create_db_native.py}}
|
||||||
|
```
|
||||||
|
|
||||||
|
```python title="Rest 连接"
|
||||||
|
{{#include docs/examples/python/create_db_rest.py}}
|
||||||
|
```
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem label="Go" value="go">
|
<TabItem label="Go" value="go">
|
||||||
```go
|
```go
|
||||||
|
@ -47,6 +57,11 @@ REST API:通过 `curl` 命令进行数据写入和查询操作。
|
||||||
{{#include docs/examples/rust/nativeexample/examples/query.rs:create_db_and_table}}
|
{{#include docs/examples/rust/nativeexample/examples/query.rs:create_db_and_table}}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
</TabItem>
|
||||||
|
<TabItem label="Node.js" value="node.js">
|
||||||
|
```js
|
||||||
|
{{#include docs/examples/node/websocketexample/sql_example.js:create_db_and_table}}
|
||||||
|
```
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem label="C#" value="csharp">
|
<TabItem label="C#" value="csharp">
|
||||||
```csharp
|
```csharp
|
||||||
|
@ -98,6 +113,19 @@ NOW 为系统内部函数,默认为客户端所在计算机当前时间。 NOW
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem label="Python" value="python">
|
<TabItem label="Python" value="python">
|
||||||
|
|
||||||
|
```python title="Websocket 连接"
|
||||||
|
{{#include docs/examples/python/insert_ws.py}}
|
||||||
|
```
|
||||||
|
|
||||||
|
```python title="原生连接"
|
||||||
|
{{#include docs/examples/python/insert_native.py}}
|
||||||
|
```
|
||||||
|
|
||||||
|
```python title="Rest 连接"
|
||||||
|
{{#include docs/examples/python/insert_rest.py}}
|
||||||
|
```
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem label="Go" value="go">
|
<TabItem label="Go" value="go">
|
||||||
```go
|
```go
|
||||||
|
@ -110,6 +138,11 @@ NOW 为系统内部函数,默认为客户端所在计算机当前时间。 NOW
|
||||||
{{#include docs/examples/rust/nativeexample/examples/query.rs:insert_data}}
|
{{#include docs/examples/rust/nativeexample/examples/query.rs:insert_data}}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
</TabItem>
|
||||||
|
<TabItem label="Node.js" value="node.js">
|
||||||
|
```js
|
||||||
|
{{#include docs/examples/node/websocketexample/sql_example.js:insertData}}
|
||||||
|
```
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem label="C#" value="csharp">
|
<TabItem label="C#" value="csharp">
|
||||||
```csharp
|
```csharp
|
||||||
|
@ -154,6 +187,18 @@ curl --location -uroot:taosdata 'http://127.0.0.1:6041/rest/sql' \
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem label="Python" value="python">
|
<TabItem label="Python" value="python">
|
||||||
|
|
||||||
|
```python title="Websocket 连接"
|
||||||
|
{{#include docs/examples/python/query_ws.py}}
|
||||||
|
```
|
||||||
|
|
||||||
|
```python title="原生连接"
|
||||||
|
{{#include docs/examples/python/query_native.py}}
|
||||||
|
```
|
||||||
|
|
||||||
|
```python title="Rest 连接"
|
||||||
|
{{#include docs/examples/python/query_rest.py}}
|
||||||
|
```
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem label="Go" value="go">
|
<TabItem label="Go" value="go">
|
||||||
```go
|
```go
|
||||||
|
@ -166,6 +211,11 @@ curl --location -uroot:taosdata 'http://127.0.0.1:6041/rest/sql' \
|
||||||
{{#include docs/examples/rust/nativeexample/examples/query.rs:query_data}}
|
{{#include docs/examples/rust/nativeexample/examples/query.rs:query_data}}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
</TabItem>
|
||||||
|
<TabItem label="Node.js" value="node.js">
|
||||||
|
```js
|
||||||
|
{{#include docs/examples/node/websocketexample/sql_example.js:queryData}}
|
||||||
|
```
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem label="C#" value="csharp">
|
<TabItem label="C#" value="csharp">
|
||||||
```csharp
|
```csharp
|
||||||
|
@ -227,6 +277,11 @@ reqId 可用于请求链路追踪,reqId 就像分布式系统中的 traceId
|
||||||
{{#include docs/examples/rust/nativeexample/examples/query.rs:query_with_req_id}}
|
{{#include docs/examples/rust/nativeexample/examples/query.rs:query_with_req_id}}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
</TabItem>
|
||||||
|
<TabItem label="Node.js" value="node.js">
|
||||||
|
```js
|
||||||
|
{{#include docs/examples/node/websocketexample/sql_example.js:sqlWithReqid}}
|
||||||
|
```
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem label="C#" value="csharp">
|
<TabItem label="C#" value="csharp">
|
||||||
```csharp
|
```csharp
|
||||||
|
|
|
@ -189,6 +189,11 @@ writer.write(lineDemo, SchemalessProtocolType.LINE, SchemalessTimestampType.NANO
|
||||||
{{#include docs/examples/rust/restexample/examples/schemaless.rs}}
|
{{#include docs/examples/rust/restexample/examples/schemaless.rs}}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
</TabItem>
|
||||||
|
<TabItem label="Node.js" value="node.js">
|
||||||
|
```js
|
||||||
|
{{#include docs/examples/node/websocketexample/line_example.js}}
|
||||||
|
```
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem label="C#" value="csharp">
|
<TabItem label="C#" value="csharp">
|
||||||
```csharp
|
```csharp
|
||||||
|
|
|
@ -52,9 +52,9 @@ import TabItem from "@theme/TabItem";
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem label="Node.js" value="node">
|
<TabItem label="Node.js" value="node">
|
||||||
|
|
||||||
```js
|
```js
|
||||||
{{#include docs/examples/node/websocketexample/sql_example.js:createConnect}}
|
{{#include docs/examples/node/websocketexample/stmt_example.js:createConnect}}
|
||||||
```
|
```
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem label="C#" value="csharp">
|
<TabItem label="C#" value="csharp">
|
||||||
```csharp
|
```csharp
|
||||||
|
|
|
@ -142,6 +142,9 @@ Rust 连接器创建消费者的参数为 DSN, 可以设置的参数列表请
|
||||||
|
|
||||||
<TabItem label="Node.js" value="node">
|
<TabItem label="Node.js" value="node">
|
||||||
|
|
||||||
|
```js
|
||||||
|
{{#include docs/examples/node/websocketexample/tmq_example.js:create_consumer}}
|
||||||
|
```
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
|
||||||
<TabItem label="C#" value="csharp">
|
<TabItem label="C#" value="csharp">
|
||||||
|
|
Loading…
Reference in New Issue