시간 타입 값은 time(), parseTime() 함수로 생성하거나 SQL 쿼리 결과의 DATETIME 컬럼에서 얻을 수 있습니다.
타임존(timeZone)
타임존 타입 값은 tz() 함수로 생성합니다.
예) tz('UTC'), tz('Local'), tz('Asia/Seoul')
리스트(list)
리스트는 다른 값들의 배열이며, list() 함수로 생성합니다.
예) list(1, 2, 3)
딕셔너리(dictionary)
딕셔너리는 (문자열) 이름과 값의 쌍으로 이루어진 집합이며, dict() 함수로 생성합니다.
예) dict("name", "pi", "value", 3.14)
문장 작성 규칙
문자열·숫자·불리언 리터럴 상수를 제외한 모든 문장은 함수 호출 형태여야 합니다.
// A comment line starts with '//'
SQL_SELECT('time','value',from('example','temperature'),limit(10))CSV()
SRC와 SINK
모든 .tql 스크립트는 레코드를 생성하는 소스(SRC) 문장 하나로 시작해야 합니다.
예를 들어 SQL(), SQL_SELECT(), 그리고 $.yield(), $.yieldKey()로 레코드를 생성하는 SCRIPT()가 소스가 될 수 있습니다.
마지막 문장은 결과를 인코딩하거나 데이터베이스에 기록하는 싱크(SINK) 문장이어야 합니다.
예를 들어 CSV(), JSON(), INSERT(), APPEND()와 모든 CHART() 계열 함수가 싱크가 될 수 있습니다.
MAP 함수
소스와 싱크 사이에는 0개 이상의 MAP 함수를 넣을 수 있습니다.
MAP 함수의 이름은 모두 대문자이며, 반대로 소문자로 시작하는 카멜 표기 함수는 다른 MAP 함수의 인자로 사용됩니다.
외부 애플리케이션이 HTTP로 .tql 스크립트를 호출할 때 쿼리 파라미터로 인자를 전달할 수 있습니다.
TQL 스크립트에서는 param() 함수로 쿼리 파라미터 값을 읽습니다.
아래 스크립트를 hello2.tql로 저장하면 애플리케이션은 HTTP GET 메서드로 http://127.0.0.1:5654/db/tql/hello2.tql?name=temperature&count=10을 호출해 이 스크립트를 실행할 수 있습니다.
이때 param('name')은 "temperature", param('count')는 문자열 "10"을 반환합니다.
?? 연산자는 왼쪽과 오른쪽 피연산자를 받습니다. 왼쪽 피연산자가 정의되어 있으면 그 값을 반환하고, 정의되어 있지 않으면 오른쪽 피연산자를 반환합니다.
아래 예시는 ?? 연산자의 일반적인 사용 사례입니다. 호출자가 쿼리 파라미터를 전달하지 않으면 오른쪽 피연산자가 기본값으로 사용됩니다.