All Products
Search
Document Center

DataWorks:TSDB

Last Updated:Mar 01, 2026

DataWorks Data Integration memungkinkan Anda menggunakan TSDB Writer untuk menulis titik data ke database Alibaba Cloud Lindorm TSDB. Topik ini menjelaskan kemampuan penulisan data TSDB Writer.

Versi yang didukung

TSDB Writer mendukung semua versi Lindorm TSDB dan HiTSDB 2.4.x atau yang lebih baru. Kompatibilitas dengan versi lain tidak dijamin.

Batasan

Cara kerja

Plugin TSDB Writer terhubung ke instans TSDB menggunakan client TSDB (hitsdb-client) dan menulis titik data melalui HTTP API. Untuk informasi lebih lanjut mengenai write API, lihat SDK Reference.

Tipe bidang yang didukung

Jika sourceDbType diatur ke TSDB, yang berarti sumber datanya adalah TSDB Reader atau OpenTSDB Reader, plugin akan langsung menulis data sumber sebagai string JSON. Jika sourceDbType diatur ke RDB, yang berarti sumber datanya adalah database relasional, plugin akan mengurai data tersebut sebagai catatan dari database relasional. Bagian berikut menjelaskan pengaturan columnType dan tipe data yang dapat ditulis ke column yang sesuai ketika sourceDbType diatur ke RDB.

Model data

Pengaturan columnType

Tipe data

Data tag

tag

String. Tag menggambarkan fitur dari sumber data dan biasanya tidak berubah seiring waktu.

Waktu pembuatan data

timestamp

Timestamp. Timestamp merepresentasikan waktu saat data dibuat. Anda dapat menentukannya selama operasi penulisan, atau sistem dapat menghasilkannya secara otomatis.

Konten data

field_string

Nilai bidang ini berupa string. Bidang menggambarkan metrik terukur dari sumber data dan biasanya berubah seiring waktu.

field_double

Nilai bidang ini berupa tipe numerik. Bidang menggambarkan metrik terukur dari sumber data dan biasanya berubah seiring waktu.

field_boolean

Nilai bidang ini berupa tipe Boolean. Bidang menggambarkan metrik terukur dari sumber data dan biasanya berubah seiring waktu.

Kembangkan task sinkronisasi data

Untuk informasi mengenai titik masuk dan prosedur konfigurasi task sinkronisasi, lihat panduan konfigurasi berikut.

Lampiran: Contoh skrip dan deskripsi parameter

Konfigurasikan task sinkronisasi batch menggunakan code editor

Jika Anda ingin mengonfigurasi task sinkronisasi batch menggunakan code editor, Anda harus mengonfigurasi parameter terkait dalam skrip berdasarkan persyaratan format skrip terpadu. Untuk informasi lebih lanjut, lihat Configure a task in the code editor. Informasi berikut menjelaskan parameter yang harus Anda konfigurasi untuk sumber data saat mengonfigurasi task sinkronisasi batch menggunakan code editor.

Contoh skrip Writer

  • Konfigurasi default untuk RDB ke TSDB (Direkomendasikan)

    {
        "type": "job",
        "version": "2.0",
        "steps": [
            {
                "stepType": "stream",// Anda dapat mengganti plugin stream dengan JSON plugin tipe RDB tertentu. Database tipe RDB mencakup MySQL, Oracle, PostgreSQL, dan 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,// Jika throttle diatur ke false, parameter mbps diabaikan dan throttling dinonaktifkan. Jika throttle diatur ke true, throttling diaktifkan.
                "concurrent":1, // Jumlah job konkuren.
                "mbps":"12"// Throttling. Di sini, 1 mbps = 1 MB/s.
            }
        },
        "order": {
            "hops": [
                {
                    "from": "Reader",
                    "to": "Writer"
                }
            ]
        }
    }
  • Sinkronkan data dari database yang mendukung protokol OpenTSDB ke 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,// Jika throttle diatur ke false, parameter mbps diabaikan dan throttling dinonaktifkan. Jika throttle diatur ke true, throttling diaktifkan.
                "concurrent":1, // Jumlah job konkuren.
                "mbps":"12"// Throttling. Di sini, 1 mbps = 1 MB/s.
            }
        },
        "order": {
            "hops": [
                {
                    "from": "Reader",
                    "to": "Writer"
                }
            ]
        }
    }
  • Tulis ke TSDB menggunakan protokol OpenTSDB (single-value) (Tidak direkomendasikan):

    
    {
        "type": "job",
        "version": "2.0",
        "steps": [
            {
                "stepType": "stream",// Anda dapat mengganti plugin stream dengan JSON plugin tipe RDB tertentu. Database tipe RDB mencakup MySQL, Oracle, PostgreSQL, dan 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,// Jika throttle diatur ke false, parameter mbps diabaikan dan throttling dinonaktifkan. Jika throttle diatur ke true, throttling diaktifkan.
                "concurrent":1, // Jumlah job konkuren.
                "mbps":"12"// Throttling. Di sini, 1 mbps = 1 MB/s.
            }
        },
        "order": {
            "hops": [
                {
                    "from": "Reader",
                    "to": "Writer"
                }
            ]
        }
    }
    Catatan

    Nama tabel TSDB tujuan (metric) diturunkan dari nama kolom yang sesuai dengan field dalam column. Berdasarkan konfigurasi di atas, satu baris data relasional ditulis ke tiga metric: field_metric_1, field_metric_2, dan field_metric_3.

Parameter skrip Writer

Sumber data

Parameter

Deskripsi

Wajib

Nilai default

Parameter umum

sourceDbType

Tipe sumber data.

Tidak

TSDB

Catatan

Nilai yang valid adalah `TSDB` dan `RDB`. `TSDB` mencakup OpenTSDB, Prometheus, dan TimeScale. `RDB` mencakup MySQL, Oracle, PostgreSQL, dan DRDS.

endpoint

Titik akhir HTTP dari instans TSDB. Masuk ke konsol produk untuk mendapatkan endpoint tersebut.

Ya. Formatnya adalah http://IP:Port.

Tidak ada

database

Nama database TSDB tempat mengimpor data.

Tidak

default

Catatan

Anda harus membuat database di TSDB terlebih dahulu.

username

Username untuk database TSDB. Ini diperlukan jika autentikasi diaktifkan untuk TSDB.

Tidak

Tidak ada

batchSize

Jumlah entri data yang ditulis dalam setiap batch. Nilai `batchSize` yang besar memerlukan lebih banyak memori untuk task tersebut.

Tidak. Tipe datanya adalah INT. Nilainya harus lebih besar dari 0.

100

Sumber adalah TSDB

maxRetryTime

Jumlah percobaan ulang setelah kegagalan.

Tidak. Tipe datanya adalah INT. Nilainya harus lebih besar dari 1.

3

ignoreWriteError

Jika parameter ini diatur ke true, error penulisan diabaikan dan operasi penulisan dilanjutkan. Jika operasi penulisan gagal setelah jumlah percobaan ulang yang ditentukan, task sinkronisasi dihentikan.

Tidak. Tipe datanya adalah BOOL.

false

Sumber adalah RDB

table

Nama tabel (metric) yang ingin Anda impor ke TSDB. Jika multiField diatur ke `false`, Anda tidak perlu menentukan parameter ini. Sebagai gantinya, tentukan metric yang sesuai di bidang `column`.

Wajib jika multiField bernilai true.

Tidak ada

multiField

Anda dapat menggunakan HTTP API untuk menulis beberapa nilai (fields) ke TSDB.

Catatan

Jika Anda menggunakan kemampuan SQL native Lindorm TSDB untuk mengakses data yang ditulis melalui HTTP API, Anda harus membuat tabel terlebih dahulu di TSDB. Jika tidak, Anda hanya dapat mengkueri data tersebut menggunakan TSDB HTTP API. Untuk informasi lebih lanjut, lihat Query multi-value data.

Wajib.

false

Catatan

Untuk versi TSDB saat ini, nilai ini harus diatur ke `true` untuk penulisan multi-nilai.

column

Nama bidang dari tabel di database relasional.

Ya

Tidak ada

Catatan

Urutan bidang harus sama dengan urutan bidang yang dikonfigurasi di parameter `column` plugin Reader.

columnType

Tipe di TSDB tempat bidang dari tabel database relasional dipetakan. Tipe yang didukung adalah sebagai berikut:

  • timestamp: Bidang ini berupa timestamp.

  • tag: Bidang ini berupa tag.

  • field_string: Nilai bidang ini berupa string.

  • field_double: Nilai bidang ini berupa tipe numerik.

  • field_boolean: Nilai bidang ini berupa tipe Boolean.

Ya

Tidak ada

Catatan

Urutan bidang harus sesuai dengan urutan bidang kolom yang dikonfigurasi di plugin Reader.

batchSize

Jumlah entri data yang ditulis dalam setiap batch.

Tidak. Tipe datanya adalah INT. Nilainya harus lebih besar dari 0.

100

Laporan kinerja

  • Karakteristik data uji kinerja

    • Metric: Metric ditentukan sebagai m.

    • tagkv: Permutasi empat tagkv pertama menghasilkan 10 × 20 × 100 × 100 = 2.000.000 deret waktu. Alamat IP terakhir berkorespondensi dengan 2.000.000 deret waktu dan di-increment otomatis mulai dari 1.

      tag_k

      tag_v

      zone

      z1~z10

      cluster

      c1~c20

      group

      g1~100

      app

      a1~a100

      ip

      ip1~ip2.000.000

    • value: Nilai ukuran adalah nilai acak antara 1 dan 100.

    • interval: Interval pengumpulan adalah 10 detik. Data diingest selama 3 jam. Total volume data adalah 3 × 60 × 60 / 10 × 2.000.000 = 2.160.000.000 titik data.

  • Hasil uji kinerja

    Jumlah saluran

    Kecepatan integrasi data (catatan/detik)

    Traffic integrasi data (MB/detik)

    1

    129.753

    15,45

    2

    284.953

    33,70

    3

    385.868

    45,71