すべてのプロダクト
Search
ドキュメントセンター

DataWorks:TSDB

最終更新日:Mar 01, 2026

DataWorks の Data Integration を使用すると、TSDB Writer を利用して Alibaba Cloud Lindorm TSDB データベースにデータポイントを書き込むことができます。このトピックでは、TSDB Writer のデータ書き込み機能について説明します。

サポートされるバージョン

TSDB Writer は、Lindorm TSDB のすべてのバージョンと HiTSDB 2.4.x 以降をサポートしています。他のバージョンとの互換性は保証されていません。

制限事項

仕組み

TSDB Writer プラグインは、TSDB クライアント (hitsdb-client) を使用して TSDB インスタンスに接続し、HTTP API を使用してデータポイントを書き込みます。書き込み API の詳細については、「SDK リファレンス」をご参照ください。

サポートされるフィールドタイプ

`sourceDbType` が `TSDB` に設定されている場合、つまりソースが TSDB Reader または OpenTSDB Reader である場合、プラグインはソースデータを JSON 文字列として直接書き込みます。`sourceDbType` が `RDB` に設定されている場合、つまりソースがリレーショナルデータベースである場合、プラグインはデータをリレーショナルデータベースからのレコードとして解析します。次のセクションでは、`sourceDbType` が `RDB` に設定されている場合の `columnType` の設定と、対応する `column` に書き込むことができるデータの型について説明します。

データモデル

columnType の設定

データの型

データタグ

tag

文字列。タグはデータソースの特性を記述するもので、通常は時間とともに変化しません。

データ生成時間

timestamp

タイムスタンプ。タイムスタンプは、データが生成された時点を表します。書き込み操作中に指定することも、システムが自動的に生成することもできます。

データコンテンツ

field_string

このフィールドの値は文字列です。フィールドは、データソースの測定されたメトリックを記述するもので、通常は時間とともに変化します。

field_double

このフィールドの値は数値型です。フィールドは、データソースの測定されたメトリックを記述するもので、通常は時間とともに変化します。

field_boolean

このフィールドの値はブール型です。フィールドは、データソースの測定されたメトリックを記述するもので、通常は時間とともに変化します。

データ同期タスクの開発

同期タスクの設定のエントリポイントと手順については、以下の設定ガイドをご参照ください。

付録:スクリプトのデモとパラメーターの説明

コードエディタを使用したバッチ同期タスクの設定

コードエディタを使用してバッチ同期タスクを設定する場合、統一されたスクリプトフォーマットの要件に基づいて、スクリプト内の関連パラメーターを設定する必要があります。詳細については、「コードエディタでタスクを設定する」をご参照ください。以下では、コードエディタを使用してバッチ同期タスクを設定する際に、データソースに対して設定する必要があるパラメーターについて説明します。

Writer スクリプトのデモ

  • RDB から TSDB へのデフォルト設定 (推奨)

    {
        "type": "job",
        "version": "2.0",
        "steps": [
            {
                "stepType": "stream",// stream プラグインは、特定の RDB タイプのプラグインの JSON に置き換えることができます。RDB タイプのデータベースには、MySQL、Oracle、PostgreSQL、DRDS が含まれます。
                "parameter": {},
                "name": "Reader",
                "category": "reader"
            },
            {
                "stepType": "tsdb",
                "parameter": {
                    "endpoint": "http://localhost:8242",
                    "username": "xxx",
                    "password": "xxx",
                    "sourceDbType": "RDB",
                    "batchSize": 256,
                    "columnType": [
                        "tag",
                        "tag",
                        "field_string",
                        "field_double",
                        "timestamp",
                        "field_bool"
                    ],
                    "column": [
                        "tag1",
                        "tag2",
                        "field1",
                        "field2",
                        "timestamp",
                        "field3"
                    ],
                    "multiField": "true",
                    "table": "testmetric",
                    "ignoreWriteError": "false",
                    "database": "default"
                },
                "name": "Writer",
                "category": "writer"
            }
        ],
        "setting": {
            "errorLimit": {
                "record": "0"
            },
            "speed": {
                "throttle":true,// throttle が false に設定されている場合、mbps パラメーターは無視され、速度制限は無効になります。throttle が true に設定されている場合、速度制限は有効になります。
                "concurrent":1, // 同時ジョブ数。
                "mbps":"12"// 速度制限。ここでは、1 mbps = 1 MB/秒 です。
            }
        },
        "order": {
            "hops": [
                {
                    "from": "Reader",
                    "to": "Writer"
                }
            ]
        }
    }
  • OpenTSDB プロトコルをサポートするデータベースから TSDB にデータを同期する:

    {
        "type": "job",
        "version": "2.0",
        "steps": [
            {
                "stepType": "opentsdb",
                "parameter": {
                    "endpoint": "http://localhost:4242",
                    "column": [
                        "m1",
                        "m2",
     "m3",
                        "m4",
                        "m5",
                        "m6"
                    ],
                    "startTime": "2019-01-01 00:00:00",
                    "endTime": "2019-01-01 03:00:00"
                },
                "name": "Reader",
                "category": "reader"
            },
            {
                "stepType": "tsdb",
                "parameter": {
                    "endpoint": "http://localhost:8242"
                },
                "name": "Writer",
                "category": "writer"
            }
        ],
        "setting": {
            "errorLimit": {
                "record": "0"
            },
            "speed": {
                "throttle":true,// throttle が false に設定されている場合、mbps パラメーターは無視され、速度制限は無効になります。throttle が true に設定されている場合、速度制限は有効になります。
                "concurrent":1, // 同時ジョブ数。
                "mbps":"12"// 速度制限。ここでは、1 mbps = 1 MB/秒 です。
            }
        },
        "order": {
            "hops": [
                {
                    "from": "Reader",
                    "to": "Writer"
                }
            ]
        }
    }
  • OpenTSDB (単一値) プロトコルを使用して TSDB に書き込む (非推奨):

    
    {
        "type": "job",
        "version": "2.0",
        "steps": [
            {
                "stepType": "stream",// stream プラグインは、特定の RDB タイプのプラグインの JSON に置き換えることができます。RDB タイプのデータベースには、MySQL、Oracle、PostgreSQL、DRDS が含まれます。
                "parameter": {},
                "name": "Reader",
                "category": "reader"
            },
            {
                "stepType": "tsdb",
                "parameter": {
                    "endpoint": "http://localhost:8242",
                    "username": "xxx",
                    "password": "xxx",
                    "sourceDbType": "RDB",
                    "batchSize": 256,
                    "columnType": [
                        "tag",
                        "tag",
                        "field_string",
                        "field_double",
                        "timestamp",
                        "field_boolean"
                    ],
                    "column": [
                        "tag1",
                        "tag2",
                        "field_metric_1",
                        "field_metric_2",
                        "timestamp",
                        "field_metric_3"
                    ],
                    "ignoreWriteError": "false"
                },
                "name": "Writer",
                "category": "writer"
            }
        ],
        "setting": {
            "errorLimit": {
                "record": "0"
            },
            "speed": {
                "throttle":true,// throttle が false に設定されている場合、mbps パラメーターは無視され、速度制限は無効になります。throttle が true に設定されている場合、速度制限は有効になります。
                "concurrent":1, // 同時ジョブ数。
                "mbps":"12"// 速度制限。ここでは、1 mbps = 1 MB/秒 です。
            }
        },
        "order": {
            "hops": [
                {
                    "from": "Reader",
                    "to": "Writer"
                }
            ]
        }
    }
    説明

    宛先の TSDB テーブル名 (メトリック) は、`column` 内のフィールドに対応する列名から派生します。上記の設定に基づき、リレーショナルデータの 1 行が `field_metric_1`、`field_metric_2`、`field_metric_3` の 3 つのメトリックに書き込まれます。

Writer スクリプトのパラメーター

データソース

パラメーター

説明

必須

デフォルト値

共通パラメーター

sourceDbType

データソースのタイプ。

いいえ

TSDB

説明

有効な値は `TSDB` と `RDB` です。`TSDB` には OpenTSDB、Prometheus、TimeScale が含まれます。`RDB` には MySQL、Oracle、PostgreSQL、DRDS が含まれます。

endpoint

TSDB インスタンスの HTTP エンドポイント。プロダクトコンソールにログインしてエンドポイントを取得します。

はい。フォーマットは http://IP:Port です。

なし

database

データをインポートする TSDB データベースの名前。

いいえ

default

説明

事前に TSDB でデータベースを作成する必要があります。

username

TSDB データベースのユーザー名。TSDB で認証が有効になっている場合に必要です。

いいえ

なし

batchSize

各バッチで書き込むデータエントリの数。`batchSize` が大きいと、タスクにより多くのメモリが必要になります。

いいえ。データの型は INT です。値は 0 より大きい必要があります。

100

ソースが TSDB

maxRetryTime

失敗後の再試行回数。

いいえ。データの型は INT です。値は 1 より大きい必要があります。

3

ignoreWriteError

このパラメーターが true に設定されている場合、書き込みエラーは無視され、書き込み操作は続行されます。指定された再試行回数後に書き込み操作が失敗した場合、同期タスクは終了します。

いいえ。データの型は BOOL です。

false

ソースが RDB

table

TSDB にインポートするテーブル (メトリック) の名前。multiField が `false` に設定されている場合、このパラメーターを指定する必要はありません。代わりに、`column` フィールドに対応するメトリックを指定します。

multiField が true の場合に必須。

なし

multiField

HTTP API を使用して、複数の値 (フィールド) を TSDB に書き込むことができます。

説明

Lindorm TSDB のネイティブ SQL 機能を使用して HTTP API 経由で書き込まれたデータにアクセスする場合、事前に TSDB でテーブルを作成する必要があります。そうしないと、TSDB HTTP API を使用してのみデータをクエリできます。詳細については、「複数値データのクエリ」をご参照ください。

必須。

false

説明

現在の TSDB バージョンでは、複数値の書き込みにはこの値を `true` に設定する必要があります。

column

リレーショナルデータベース内のテーブルのフィールド名。

はい

なし

説明

フィールドの順序は、Reader プラグインの `column` パラメーターで設定されたフィールドの順序と同じである必要があります。

columnType

リレーショナルデータベーステーブルのフィールドがマップされる TSDB のタイプ。サポートされているタイプは次のとおりです:

  • timestamp:このフィールドはタイムスタンプです。

  • tag:このフィールドはタグです。

  • field_string:このフィールドの値は文字列です。

  • field_double:このフィールドの値は数値型です。

  • field_boolean:このフィールドの値はブール型です。

はい

なし

説明

フィールドの順序は、Reader プラグインで設定された列フィールドの順序と一致する必要があります。

batchSize

各バッチで書き込むデータエントリの数。

いいえ。データの型は INT です。値は 0 より大きい必要があります。

100

パフォーマンスレポート

  • パフォーマンステストのデータ特性

    • メトリック:メトリックは `m` として指定されます。

    • tagkv:最初の 4 つの tagkv の組み合わせにより、10 × 20 × 100 × 100 = 2,000,000 の時系列が生成されます。最後の IP アドレスは 2,000,000 の時系列に対応し、1 から自動的にインクリメントされます。

      tag_k

      tag_v

      zone

      z1~z10

      cluster

      c1~c20

      group

      g1~100

      app

      a1~a100

      ip

      ip1~ip2,000,000

    • value:メジャー値は 1 から 100 までのランダムな値です。

    • interval:収集間隔は 10 秒です。データは 3 時間取り込まれます。総データ量は 3 × 60 × 60 / 10 × 2,000,000 = 2,160,000,000 データポイントです。

  • パフォーマンステストの結果

    チャネル数

    Data Integration 速度 (レコード/秒)

    Data Integration トラフィック (MB/秒)

    1

    129,753

    15.45

    2

    284,953

    33.70

    3

    385,868

    45.71