As Writing API
CREATE TAG TABLE IF NOT EXISTS EXAMPLE (
NAME VARCHAR(20) PRIMARY KEY,
TIME DATETIME BASETIME,
VALUE DOUBLE SUMMARIZED
);INSERT CSV
1. Create tql file
Save the code below as input-csv.tql.
When you save a TQL script, the editor displays a link icon
in the top right corner. Click it to copy the script file’s address.
| |
2. HTTP POST
```http
POST http://127.0.0.1:5654/db/tql/input-csv.tql
Content-Type: text/csv
TAG0,1628866800000000000,12
TAG0,1628953200000000000,13
```Response:
{
"data": {
"message": "2 rows inserted."
},
"elapse": "10ms",
"reason": "success",
"success": true
}3. MQTT PUBLISH
Publish to the topic db/tql/{tql_path} as shown in the example below.
mosquitto_pub -h 127.0.0.1 -p 5653 -t db/tql/input-csv.tql -s << 'EOF'
TAG1,1628866800000000000,12
TAG1,1628953200000000000,13
EOFAPPEND CSV
1. Create tql file
Save the code below as append-csv.tql.
When you save a TQL script, the editor displays a link icon
in the top right corner. Click it to copy the script file’s address.
| |
2. HTTP POST
```http
POST http://127.0.0.1:5654/db/tql/append-csv.tql
Content-Type: text/csv
TAG0,1628866800000000000,12
TAG0,1628953200000000000,13
```3. MQTT PUBLISH
mosquitto_pub -h 127.0.0.1 -p 5653 -t db/tql/append-csv.tql -s << 'EOF'
TAG3,1628866800000000000,12
TAG3,1628953200000000000,13
EOFCustom JSON
1. Create tql file
Use the SCRIPT() function to parse custom-format JSON.
Save the code below as input-json.tql.
| |
2. HTTP POST
```http
POST http://127.0.0.1:5654/db/tql/input-json.tql
Content-Type: application/json
{
"data": {
"columns": [ "NAME", "TIME", "VALUE" ],
"types": [ "string", "datetime", "double" ],
"rows": [
[ "TAG0", 1628866800000000000, 12 ],
[ "TAG0", 1628953200000000000, 13 ]
]
}
}
```3. MQTT PUBLISH
mosquitto_pub -h 127.0.0.1 -p 5653 -t db/tql/input-json.tql -s << 'EOF'
{
"data": {
"columns": [ "NAME", "TIME", "VALUE" ],
"types": [ "string", "datetime", "double" ],
"rows": [
[ "TAG1", 1628866800000000000, 12 ],
[ "TAG1", 1628953200000000000, 13 ]
]
}
}
EOFCustom Text
If data needs to be transformed before it is written to the database, prepare a proper tql script and publish the data to the topic db/tql/{tql_file.tql}.
1. Create tql file
The example code below shows how to handle multi-line text data for writing into a table.
| |
Result
text_0,2023-12-02 11:03:36.054,12
text_1,2023-12-02 11:03:36.054,23
text_2,2023-12-02 11:03:36.054,78
text_3,2023-12-02 11:03:36.054,89
text_4,2023-12-02 11:03:36.054,90Run the code above, and if it works as expected without errors, replace the last line CSV() with SQL(...).
Save the code as script-post-lines.tql, then send some test data to the topic db/tql/script-post-lines.tql.
2. HTTP POST
The same tql file also works with HTTP POST.
```http
POST http://127.0.0.1:5654/db/tql/script-post-lines.tql
Content-Type: text/plain
110000
221111
332222
442222
```Response:
{
"data": {
"message": "4 rows inserted."
},
"elapse": "15.80275ms",
"reason": "success",
"success": true
}3. MQTT PUBLISH
mosquitto_pub -h 127.0.0.1 -p 5653 \
-t db/tql/script-post-lines.tql -s << 'EOF'
110000
221111
332222
442222
EOFThen check whether the data was transformed and stored successfully.
$ machbase-neo shell "select * from example where name like 'text_%'"
┌────────┬────────┬─────────────────────────┬───────┐
│ ROWNUM │ NAME │ TIME │ VALUE │
├────────┼────────┼─────────────────────────┼───────┤
│ 1 │ text_0 │ 2026-06-26 09:25:57.535 │ 11 │
│ 2 │ text_1 │ 2026-06-26 09:25:57.535 │ 22 │
│ 3 │ text_2 │ 2026-06-26 09:25:57.544 │ 33 │
│ 4 │ text_3 │ 2026-06-26 09:25:57.545 │ 44 │
└────────┴────────┴─────────────────────────┴───────┘
4 rows selected.