As Writing 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
```Response:
{
"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
```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
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.최근 업데이트