SINK
すべての tql スクリプトは、いずれか1つのシンク(SINK)関数で終える必要があります。
INSERT() は、入力レコードをMachbase Neoデータベースに保存する基本的なシンクです。CHART() は入力レコードをさまざまなチャートとして描画し、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行のフィールドになります。
末尾の連続する2つの改行文字(\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):各レコードをオブジェクトとする配列を生成します。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オブジェクトを1つずつ扱えるため、大規模なデータセットやストリーミングデータの処理に適しています。
末尾の連続する2つの改行文字(\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()
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()の例を参照してください。