docs: support schemaless insert (#20944)
* docs: support schemaless insert * docs: code reformat
This commit is contained in:
parent
61ef12a1c0
commit
6c3a2e2c5b
|
@ -459,6 +459,56 @@ For a more detailed description of the `sql()` method, please refer to [RestClie
|
|||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
### Schemaless Insert
|
||||
|
||||
Connector support schemaless insert.
|
||||
|
||||
<Tabs defaultValue="list">
|
||||
<TabItem value="list" label="List Insert">
|
||||
|
||||
Simple insert
|
||||
|
||||
```python
|
||||
{{#include docs/examples/python/schemaless_insert.py}}
|
||||
```
|
||||
|
||||
Insert with ttl argument
|
||||
|
||||
```python
|
||||
{{#include docs/examples/python/schemaless_insert_ttl.py}}
|
||||
```
|
||||
|
||||
Insert with req_id argument
|
||||
|
||||
```python
|
||||
{{#include docs/examples/python/schemaless_insert_req_id.py}}
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
|
||||
<TabItem value="raw" label="Raw Insert">
|
||||
|
||||
Simple insert
|
||||
|
||||
```python
|
||||
{{#include docs/examples/python/schemaless_insert_raw.py}}
|
||||
```
|
||||
|
||||
Insert with ttl argument
|
||||
|
||||
```python
|
||||
{{#include docs/examples/python/schemaless_insert_raw_ttl.py}}
|
||||
```
|
||||
|
||||
Insert with req_id argument
|
||||
|
||||
```python
|
||||
{{#include docs/examples/python/schemaless_insert_raw_req_id.py}}
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
### Other sample programs
|
||||
|
||||
| Example program links | Example program content |
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
import taos
|
||||
|
||||
conn = taos.connect()
|
||||
dbname = "pytest_line"
|
||||
conn.execute("drop database if exists %s" % dbname)
|
||||
conn.execute("create database if not exists %s precision 'us'" % dbname)
|
||||
conn.select_db(dbname)
|
||||
|
||||
lines = [
|
||||
'st,t1=3i64,t2=4f64,t3="t3" c1=3i64,c3=L"pass",c2=false,c4=4f64 1626006833639000000',
|
||||
]
|
||||
conn.schemaless_insert(lines, taos.SmlProtocol.LINE_PROTOCOL, taos.SmlPrecision.NOT_CONFIGURED)
|
||||
print("inserted")
|
||||
|
||||
conn.schemaless_insert(lines, taos.SmlProtocol.LINE_PROTOCOL, taos.SmlPrecision.NOT_CONFIGURED)
|
||||
|
||||
result = conn.query("show tables")
|
||||
for row in result:
|
||||
print(row)
|
||||
|
||||
conn.execute("drop database if exists %s" % dbname)
|
|
@ -0,0 +1,74 @@
|
|||
import taos
|
||||
from taos import utils
|
||||
from taos import TaosConnection
|
||||
from taos.cinterface import *
|
||||
from taos.error import OperationalError, SchemalessError
|
||||
|
||||
conn = taos.connect()
|
||||
dbname = "taos_schemaless_insert"
|
||||
try:
|
||||
conn.execute("drop database if exists %s" % dbname)
|
||||
|
||||
if taos.IS_V3:
|
||||
conn.execute("create database if not exists %s schemaless 1 precision 'ns'" % dbname)
|
||||
else:
|
||||
conn.execute("create database if not exists %s update 2 precision 'ns'" % dbname)
|
||||
|
||||
conn.select_db(dbname)
|
||||
|
||||
lines = '''st,t1=3i64,t2=4f64,t3="t3" c1=3i64,c3=L"passit",c2=false,c4=4f64 1626006833639000000
|
||||
st,t1=4i64,t3="t4",t2=5f64,t4=5f64 c1=3i64,c3=L"passitagin, abc",c2=true,c4=5f64,c5=5f64,c6=7u64 1626006933640000000
|
||||
stf,t1=4i64,t3="t4",t2=5f64,t4=5f64 c1=3i64,c3=L"passitagin_stf",c2=false,c5=5f64,c6=7u64 1626006933641000000'''
|
||||
|
||||
res = conn.schemaless_insert_raw(lines, 1, 0)
|
||||
print("affected rows: ", res)
|
||||
assert (res == 3)
|
||||
|
||||
lines = '''stf,t1=5i64,t3="t4",t2=5f64,t4=5f64 c1=3i64,c3=L"passitagin_stf",c2=false,c5=5f64,c6=7u64 1626006933641000000'''
|
||||
res = conn.schemaless_insert_raw(lines, 1, 0)
|
||||
print("affected rows: ", res)
|
||||
assert (res == 1)
|
||||
|
||||
result = conn.query("select * from st")
|
||||
dict2 = result.fetch_all_into_dict()
|
||||
print(dict2)
|
||||
print(result.row_count)
|
||||
|
||||
all = result.rows_iter()
|
||||
for row in all:
|
||||
print(row)
|
||||
result.close()
|
||||
assert (result.row_count == 2)
|
||||
|
||||
# error test
|
||||
lines = ''',t1=3i64,t2=4f64,t3="t3" c1=3i64,c3=L"passit",c2=false,c4=4f64 1626006833639000000'''
|
||||
try:
|
||||
res = conn.schemaless_insert_raw(lines, 1, 0)
|
||||
print(res)
|
||||
# assert(False)
|
||||
except SchemalessError as err:
|
||||
print('**** error: ', err)
|
||||
# assert (err.msg == 'Invalid data format')
|
||||
|
||||
result = conn.query("select * from st")
|
||||
print(result.row_count)
|
||||
all = result.rows_iter()
|
||||
for row in all:
|
||||
print(row)
|
||||
result.close()
|
||||
|
||||
conn.execute("drop database if exists %s" % dbname)
|
||||
conn.close()
|
||||
except InterfaceError as err:
|
||||
conn.execute("drop database if exists %s" % dbname)
|
||||
conn.close()
|
||||
print(err)
|
||||
except SchemalessError as err:
|
||||
conn.execute("drop database if exists %s" % dbname)
|
||||
conn.close()
|
||||
print(err)
|
||||
except Exception as err:
|
||||
conn.execute("drop database if exists %s" % dbname)
|
||||
conn.close()
|
||||
print(err)
|
||||
raise err
|
|
@ -0,0 +1,76 @@
|
|||
import taos
|
||||
from taos import utils
|
||||
from taos import TaosConnection
|
||||
from taos.cinterface import *
|
||||
from taos.error import OperationalError, SchemalessError
|
||||
|
||||
conn = taos.connect()
|
||||
dbname = "taos_schemaless_insert"
|
||||
try:
|
||||
conn.execute("drop database if exists %s" % dbname)
|
||||
|
||||
if taos.IS_V3:
|
||||
conn.execute("create database if not exists %s schemaless 1 precision 'ns'" % dbname)
|
||||
else:
|
||||
conn.execute("create database if not exists %s update 2 precision 'ns'" % dbname)
|
||||
|
||||
conn.select_db(dbname)
|
||||
|
||||
lines = '''st,t1=3i64,t2=4f64,t3="t3" c1=3i64,c3=L"passit",c2=false,c4=4f64 1626006833639000000
|
||||
st,t1=4i64,t3="t4",t2=5f64,t4=5f64 c1=3i64,c3=L"passitagin, abc",c2=true,c4=5f64,c5=5f64,c6=7u64 1626006933640000000
|
||||
stf,t1=4i64,t3="t4",t2=5f64,t4=5f64 c1=3i64,c3=L"passitagin_stf",c2=false,c5=5f64,c6=7u64 1626006933641000000'''
|
||||
|
||||
ttl = 1000
|
||||
req_id = utils.gen_req_id()
|
||||
res = conn.schemaless_insert_raw(lines, 1, 0, ttl=ttl, req_id=req_id)
|
||||
print("affected rows: ", res)
|
||||
assert (res == 3)
|
||||
|
||||
lines = '''stf,t1=5i64,t3="t4",t2=5f64,t4=5f64 c1=3i64,c3=L"passitagin_stf",c2=false,c5=5f64,c6=7u64 1626006933641000000'''
|
||||
ttl = 1000
|
||||
req_id = utils.gen_req_id()
|
||||
res = conn.schemaless_insert_raw(lines, 1, 0, ttl=ttl, req_id=req_id)
|
||||
print("affected rows: ", res)
|
||||
assert (res == 1)
|
||||
|
||||
result = conn.query("select * from st")
|
||||
dict2 = result.fetch_all_into_dict()
|
||||
print(dict2)
|
||||
print(result.row_count)
|
||||
|
||||
all = result.rows_iter()
|
||||
for row in all:
|
||||
print(row)
|
||||
result.close()
|
||||
assert (result.row_count == 2)
|
||||
|
||||
# error test
|
||||
lines = ''',t1=3i64,t2=4f64,t3="t3" c1=3i64,c3=L"passit",c2=false,c4=4f64 1626006833639000000'''
|
||||
try:
|
||||
ttl = 1000
|
||||
req_id = utils.gen_req_id()
|
||||
res = conn.schemaless_insert_raw(lines, 1, 0, ttl=ttl, req_id=req_id)
|
||||
print(res)
|
||||
# assert(False)
|
||||
except SchemalessError as err:
|
||||
print('**** error: ', err)
|
||||
# assert (err.msg == 'Invalid data format')
|
||||
|
||||
result = conn.query("select * from st")
|
||||
print(result.row_count)
|
||||
all = result.rows_iter()
|
||||
for row in all:
|
||||
print(row)
|
||||
result.close()
|
||||
|
||||
conn.execute("drop database if exists %s" % dbname)
|
||||
conn.close()
|
||||
except InterfaceError as err:
|
||||
conn.execute("drop database if exists %s" % dbname)
|
||||
conn.close()
|
||||
print(err)
|
||||
except Exception as err:
|
||||
conn.execute("drop database if exists %s" % dbname)
|
||||
conn.close()
|
||||
print(err)
|
||||
raise err
|
|
@ -0,0 +1,73 @@
|
|||
import taos
|
||||
from taos import utils
|
||||
from taos import TaosConnection
|
||||
from taos.cinterface import *
|
||||
from taos.error import OperationalError, SchemalessError
|
||||
|
||||
conn = taos.connect()
|
||||
dbname = "taos_schemaless_insert"
|
||||
try:
|
||||
conn.execute("drop database if exists %s" % dbname)
|
||||
|
||||
if taos.IS_V3:
|
||||
conn.execute("create database if not exists %s schemaless 1 precision 'ns'" % dbname)
|
||||
else:
|
||||
conn.execute("create database if not exists %s update 2 precision 'ns'" % dbname)
|
||||
|
||||
conn.select_db(dbname)
|
||||
|
||||
lines = '''st,t1=3i64,t2=4f64,t3="t3" c1=3i64,c3=L"passit",c2=false,c4=4f64 1626006833639000000
|
||||
st,t1=4i64,t3="t4",t2=5f64,t4=5f64 c1=3i64,c3=L"passitagin, abc",c2=true,c4=5f64,c5=5f64,c6=7u64 1626006933640000000
|
||||
stf,t1=4i64,t3="t4",t2=5f64,t4=5f64 c1=3i64,c3=L"passitagin_stf",c2=false,c5=5f64,c6=7u64 1626006933641000000'''
|
||||
|
||||
ttl = 1000
|
||||
res = conn.schemaless_insert_raw(lines, 1, 0, ttl=ttl)
|
||||
print("affected rows: ", res)
|
||||
assert (res == 3)
|
||||
|
||||
lines = '''stf,t1=5i64,t3="t4",t2=5f64,t4=5f64 c1=3i64,c3=L"passitagin_stf",c2=false,c5=5f64,c6=7u64 1626006933641000000'''
|
||||
ttl = 1000
|
||||
res = conn.schemaless_insert_raw(lines, 1, 0, ttl=ttl)
|
||||
print("affected rows: ", res)
|
||||
assert (res == 1)
|
||||
|
||||
result = conn.query("select * from st")
|
||||
dict2 = result.fetch_all_into_dict()
|
||||
print(dict2)
|
||||
print(result.row_count)
|
||||
|
||||
all = result.rows_iter()
|
||||
for row in all:
|
||||
print(row)
|
||||
result.close()
|
||||
assert (result.row_count == 2)
|
||||
|
||||
# error test
|
||||
lines = ''',t1=3i64,t2=4f64,t3="t3" c1=3i64,c3=L"passit",c2=false,c4=4f64 1626006833639000000'''
|
||||
try:
|
||||
ttl = 1000
|
||||
res = conn.schemaless_insert_raw(lines, 1, 0, ttl=ttl)
|
||||
print(res)
|
||||
# assert(False)
|
||||
except SchemalessError as err:
|
||||
print('**** error: ', err)
|
||||
# assert (err.msg == 'Invalid data format')
|
||||
|
||||
result = conn.query("select * from st")
|
||||
print(result.row_count)
|
||||
all = result.rows_iter()
|
||||
for row in all:
|
||||
print(row)
|
||||
result.close()
|
||||
|
||||
conn.execute("drop database if exists %s" % dbname)
|
||||
conn.close()
|
||||
except InterfaceError as err:
|
||||
conn.execute("drop database if exists %s" % dbname)
|
||||
conn.close()
|
||||
print(err)
|
||||
except Exception as err:
|
||||
conn.execute("drop database if exists %s" % dbname)
|
||||
conn.close()
|
||||
print(err)
|
||||
raise err
|
|
@ -0,0 +1,22 @@
|
|||
import taos
|
||||
from taos import SmlProtocol, SmlPrecision
|
||||
|
||||
conn = taos.connect()
|
||||
dbname = "pytest_line"
|
||||
conn.execute("drop database if exists %s" % dbname)
|
||||
conn.execute("create database if not exists %s precision 'us'" % dbname)
|
||||
conn.select_db(dbname)
|
||||
|
||||
lines = [
|
||||
'st,t1=3i64,t2=4f64,t3="t3" c1=3i64,c3=L"pass",c2=false,c4=4f64 1626006833639000000',
|
||||
]
|
||||
conn.schemaless_insert(lines, taos.SmlProtocol.LINE_PROTOCOL, taos.SmlPrecision.NOT_CONFIGURED, req_id=1)
|
||||
print("inserted")
|
||||
|
||||
conn.schemaless_insert(lines, taos.SmlProtocol.LINE_PROTOCOL, taos.SmlPrecision.NOT_CONFIGURED, req_id=2)
|
||||
|
||||
result = conn.query("show tables")
|
||||
for row in result:
|
||||
print(row)
|
||||
|
||||
conn.execute("drop database if exists %s" % dbname)
|
|
@ -0,0 +1,22 @@
|
|||
import taos
|
||||
from taos import SmlProtocol, SmlPrecision
|
||||
|
||||
conn = taos.connect()
|
||||
dbname = "pytest_line"
|
||||
conn.execute("drop database if exists %s" % dbname)
|
||||
conn.execute("create database if not exists %s precision 'us'" % dbname)
|
||||
conn.select_db(dbname)
|
||||
|
||||
lines = [
|
||||
'st,t1=3i64,t2=4f64,t3="t3" c1=3i64,c3=L"pass",c2=false,c4=4f64 1626006833639000000',
|
||||
]
|
||||
conn.schemaless_insert(lines, taos.SmlProtocol.LINE_PROTOCOL, taos.SmlPrecision.NOT_CONFIGURED, ttl=1000)
|
||||
print("inserted")
|
||||
|
||||
conn.schemaless_insert(lines, taos.SmlProtocol.LINE_PROTOCOL, taos.SmlPrecision.NOT_CONFIGURED, ttl=1000)
|
||||
|
||||
result = conn.query("show tables")
|
||||
for row in result:
|
||||
print(row)
|
||||
|
||||
conn.execute("drop database if exists %s" % dbname)
|
|
@ -484,6 +484,56 @@ TaosCursor 类使用原生连接进行写入、查询操作。在客户端多线
|
|||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
### 无模式写入
|
||||
|
||||
连接器支持无模式写入功能。
|
||||
|
||||
<Tabs defaultValue="list">
|
||||
<TabItem value="list" label="List 写入">
|
||||
|
||||
简单写入
|
||||
|
||||
```python
|
||||
{{#include docs/examples/python/schemaless_insert.py}}
|
||||
```
|
||||
|
||||
带有 ttl 参数的写入
|
||||
|
||||
```python
|
||||
{{#include docs/examples/python/schemaless_insert_ttl.py}}
|
||||
```
|
||||
|
||||
带有 req_id 参数的写入
|
||||
|
||||
```python
|
||||
{{#include docs/examples/python/schemaless_insert_req_id.py}}
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
|
||||
<TabItem value="raw" label="Raw 写入">
|
||||
|
||||
简单写入
|
||||
|
||||
```python
|
||||
{{#include docs/examples/python/schemaless_insert_raw.py}}
|
||||
```
|
||||
|
||||
带有 ttl 参数的写入
|
||||
|
||||
```python
|
||||
{{#include docs/examples/python/schemaless_insert_raw_ttl.py}}
|
||||
```
|
||||
|
||||
带有 req_id 参数的写入
|
||||
|
||||
```python
|
||||
{{#include docs/examples/python/schemaless_insert_raw_req_id.py}}
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
### 其它示例程序
|
||||
|
||||
| 示例程序链接 | 示例程序内容 |
|
||||
|
|
Loading…
Reference in New Issue