SINK
모든 tql 스크립트는 반드시 하나의 싱크(SINK) 함수로 끝나야 합니다.
기본 싱크 함수는 입력 레코드를 Machbase Neo 데이터베이스에 저장하는 INSERT()입니다. CHART()는 입력 레코드를 다양한 차트로 렌더링하고, JSON()과 CSV()는 입력 데이터를 각각 JSON·CSV 형식으로 인코딩합니다.

INSERT()
구문: INSERT( [bridge(),] columns..., table() [, tag()] )
INSERT()는 입력 레코드마다 INSERT 문을 실행해 지정한 데이터베이스 테이블에 저장합니다.
bridge()bridge(’name’): 선택 옵션입니다.columnsstring: 컬럼 이름 목록입니다.table()table(’name’): 대상 테이블 이름을 지정합니다.tag()tag(’name’): 선택 옵션으로, 태그 테이블에만 사용할 수 있습니다.
태그 이름이 들어 있는 레코드를 Machbase에 기록합니다.
| |
브리지로 연결한 외부 데이터베이스에 레코드를 삽입할 수도 있습니다.
| |
APPEND()
구문: APPEND( table() )
APPEND()는 Machbase Neo의 append 메서드로 입력 레코드를 지정한 데이터베이스 테이블에 저장합니다.
table()table(string): 대상 테이블을 지정합니다.
| |
CSV()
구문: CSV( [tz(), timeformat(), precision(), rownum(), heading(), delimiter(), nullValue(), binaryformat() ] )
결과 레코드를 CSV 형식으로 출력합니다. 각 레코드의 값이 CSV 행의 필드가 됩니다.
데이터의 끝은 마지막에 연속된 개행 문자 두 개(\n\n)로 구분합니다.
예를 들어 레코드가 {key: k, value:[v1,v2]}라면 CSV 레코드 v1,v2를 생성합니다.
tztz(name): 시간대, 기본값은tz('UTC')입니다.timeformattimeformat(string):DATETIME필드의 출력 형식, 기본값은timeformat('ns')입니다.rownumrownum(boolean): 행 번호 컬럼을 추가합니다.precisionprecision(int): 부동소수점 필드의 정밀도입니다.precision(-1)은 제한 없음,precision(0)은 정수로 변환합니다.headingheading(boolean): 첫 행에 필드 이름을 추가합니다.delimiterdelimiter(string): 기본값인 쉼표(,) 대신 사용할 필드 구분자를 지정합니다.nullValue():NULL값을 대체할 문자열을 지정합니다. 기본값은nullValue('NULL')입니다. Since v8.0.14cache(): 결과 데이터를 캐시합니다. 자세한 내용은 결과 데이터 캐시를 참고해 주십시오. Since v8.0.43binaryformat()binaryformat(string): BINARY 컬럼의 출력 형식을 지정합니다.hex,base64,bytes,preview를 지원합니다. Since v8.5.2
| |
1,10
2,20
3,30JSON()
구문: JSON( [transpose(), tz(), timeformat(), precision(), rownum(), rowsFlatten(), rowsArray(), binaryformat() ] )
레코드의 값으로 JSON 결과를 생성합니다.
transposetranspose(boolean): 행과 열을 전치합니다. 대부분의 차트 라이브러리에서는transpose(true)를 지정하는 편이 편리합니다.tztz(name): 시간대, 기본값은tz('UTC')입니다.timeformattimeformat(string):DATETIME필드의 출력 형식, 기본값은timeformat('ns')입니다.rownumrownum(boolean): 행 번호 컬럼을 추가합니다.precisionprecision(int): 부동소수점 필드의 정밀도입니다.precision(-1)은 제한 없음,precision(0)은 정수로 변환합니다.rowsFlattenrowsFlatten(boolean): JSON 객체의 rows 필드 배열 차원을 한 단계 줄입니다.JSON()에transpose(true)와rowsFlatten(true)를 함께 지정하면rowsFlatten(true)는 무시되고transpose(true)만 결과에 적용됩니다. Since v8.0.12rowsArrayrowsArray(boolean): 각 레코드를 객체로 표현한 배열만 담은 JSON을 생성합니다.rowsArray(true)는transpose(true)와rowsFlatten(true)보다 우선합니다. Since v8.0.12cache(): 결과 데이터를 캐시합니다. 자세한 내용은 결과 데이터 캐시를 참고해 주십시오. Since v8.0.43binaryformat()binaryformat(string): BINARY 컬럼의 출력 형식을 지정합니다.hex,base64,bytes,preview를 지원합니다. Since v8.5.2
| |
{
"data": {
"columns": [ "x", "column" ],
"types": [ "double", "double" ],
"rows": [ [ 1, 10 ], [ 2, 20 ], [ 3, 30 ] ]
},
"success": true,
"reason": "success",
"elapse": "228.541µs"
}NDJSON()
구문: NDJSON( [tz(), timeformat(), rownum(), binaryformat()] )
Since v8.0.33
레코드의 값으로 NDJSON 결과를 생성합니다.
NDJSON(Newline Delimited JSON)은 각 줄이 유효한 JSON 객체인 스트리밍용 JSON 데이터 형식입니다. JSON 객체를 한 번에 하나씩 처리할 수 있으므로 대용량 데이터셋이나 스트리밍 데이터를 처리할 때 유용합니다.
데이터의 끝은 마지막에 연속된 개행 문자 두 개(\n\n)로 구분합니다.
tztz(name): 시간대, 기본값은tz('UTC')입니다.timeformattimeformat(string):DATETIME필드의 출력 형식, 기본값은timeformat('ns')입니다.rownumrownum(boolean): 행 번호 컬럼을 추가합니다.cache(): 결과 데이터를 캐시합니다. 자세한 내용은 결과 데이터 캐시를 참고해 주십시오. Since v8.0.43binaryformat()binaryformat(string): BINARY 컬럼의 출력 형식을 지정합니다.hex,base64,bytes,preview를 지원합니다. Since v8.5.2
| |
{"NAME":"neo_load1","ROWNUM":1,"TIME":"2024-09-06 14:46:19.852","VALUE":4.58}
{"NAME":"neo_load1","ROWNUM":2,"TIME":"2024-09-06 14:46:22.853","VALUE":4.69}
{"NAME":"neo_load1","ROWNUM":3,"TIME":"2024-09-06 14:46:25.852","VALUE":4.69}MARKDOWN()
마크다운 또는 HTML 형식의 표를 생성합니다.
구문: MARKDOWN( [ options... ] )
tz(string): 시간대, 기본값은tz('UTC')입니다.timeformat(string):DATETIME필드의 출력 형식, 기본값은timeformat('ns')입니다.html(boolean): HTML 렌더러로 결과를 생성합니다. 기본값은false입니다.rownum(boolean): 행 번호 컬럼을 표시합니다.precisionprecision(int): 부동소수점 필드의 정밀도입니다.precision(-1)은 제한 없음,precision(0)은 정수로 변환합니다.brief(boolean): 결과 행을 생략합니다.brief(true)는briefCount(5)와 같습니다.briefCount(limit int): 레코드 수가 지정한 한도를 넘으면 결과 행을 생략합니다. 한도가0이면 생략하지 않습니다.binaryformat()binaryformat(string): BINARY 컬럼의 출력 형식을 지정합니다.hex,base64,bytes,preview를 지원합니다. Since v8.5.2
| |
|column0 | column1 |
|:-------|:---------|
| 10 | The first line |
| 20 | 2nd line |
| 30 | Third line |
| 40 | 4th line |
| 50 | The last is 5th |HTML()
구문: HTML(templates...)
Since v8.0.52
제공한 템플릿으로 HTML 문서를 생성합니다.
자세한 사용법과 예제는 HTML 문서를 참고해 주십시오.
TEXT()
구문: TEXT(templates...)
Since v8.0.52
제공한 템플릿으로 텍스트 문서를 생성합니다.
HTML()과 비슷하게 동작하지만 데이터에 HTML 이스케이프를 적용하지 않습니다.
DISCARD()
구문: DISCARD()
Since v8.0.7
DISCARD()는 이름 그대로 모든 레코드를 조용히 버리므로 아무것도 출력하지 않습니다.
| |
CHART()
구문: CHART()
Since v8.0.8
Apache ECharts로 차트를 생성합니다.
다양한 사용법은 CHART() 예제를 참고해 주십시오.