書き込みAPIとして使用
以下の例を実行する前に、次のSQLでテーブルを準備してください。
CREATE TAG TABLE IF NOT EXISTS EXAMPLE (
NAME VARCHAR(20) PRIMARY KEY,
TIME DATETIME BASETIME,
VALUE DOUBLE SUMMARIZED
);INSERT CSV
1. TQLファイルを作成する
次のコードを input-csv.tql として保存してください。
TQLスクリプトを保存すると、エディターの右上に
アイコンが表示されます。クリックすると、スクリプトのアドレスをコピーできます。
| |
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
```レスポンス:
{
"data": {
"message": "2 rows inserted."
},
"elapse": "10ms",
"reason": "success",
"success": true
}3. MQTT PUBLISH
以下の例のように、db/tql/{tql_path} トピックにPUBLISHします。
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. TQLファイルを作成する
次のコードを append-csv.tql として保存してください。
| |
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/input-csv.tql -s << 'EOF'
TAG3,1628866800000000000,12
TAG3,1628953200000000000,13
EOFカスタムJSON
1. TQLファイルを作成する
SCRIPT() 関数でカスタムJSONを解析します。
次のコードを 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
input-json.json ファイルを以下のように用意してください。
{
"data": {
"columns": [ "NAME", "TIME", "VALUE" ],
"types": [ "string", "datetime", "double" ],
"rows": [
[ "TAG1", 1628866800000000000, 12 ],
[ "TAG1", 1628953200000000000, 13 ]
]
}
}mosquitto_pub -h 127.0.0.1 -p 5653 \
-t db/tql/input-json.tql \
-f input-json.jsonカスタムテキスト
データを加工してからデータベースに保存する場合は、適切な tql スクリプトを用意し、db/tql/{tql_file.tql} トピックに送信してください。
1. TQLファイルを作成する
次の例は、複数行のテキストデータを加工してテーブルに書き込む方法を示します。
| |
結果の例
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,90上記のコードを実行して問題がなければ、最後の行の CSV() を SQL(...) に変更してデプロイしてください。
スクリプトを script-post-lines.tql として保存し、テストデータを db/tql/script-post-lines.tql トピックに送信します。
2. HTTP POST
同じTQLファイルをHTTP POSTリクエストでも使用できます。
```http
POST http://127.0.0.1:5654/db/tql/script-post-lines.tql
Content-Type: text/plain
110000
221111
332222
442222
```レスポンス:
{
"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
EOFその後、データが正しく変換・保存されたことを確認します。
$ 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.最終更新日