全部产品
Search
文档中心

DataWorks:Sumber data TSDB

更新时间:Jul 02, 2025

DataWorks Data Integration menyediakan TSDB Writer untuk menulis titik data ke Lindorm Time Series Database (TSDB) yang disediakan oleh Alibaba Cloud ApsaraDB for Lindorm. Topik ini menjelaskan kemampuan sinkronisasi data ke sumber data TSDB.

Versi TSDB yang didukung

TSDB Writer mendukung semua versi ApsaraDB for Lindorm dan HiTSDB V2.4.X atau yang lebih baru.

Batasan

Cara kerjanya

TSDB Writer terhubung ke instance TSDB menggunakan klien TSDB hitsdb-client dan menulis titik data melalui Titik akhir API HTTP. Untuk informasi lebih lanjut, lihat Dokumentasi SDK TSDB.

Pemetaan tipe data

Jika parameter sourceDbType diatur ke TSDB, data sumber dibaca menggunakan TSDB Reader atau OpenTSDB Reader. Dalam hal ini, TSDB Writer menulis data sumber ke Lindorm TSDB dalam format string JSON. Jika parameter sourceDbType diatur ke RDB, sumbernya adalah database relasional. Dalam hal ini, TSDB Writer mengurai data sumber berdasarkan catatan dari database relasional. Tabel berikut mencantumkan nilai valid dari parameter columnType dan tipe data yang sesuai dengan jenis kolom ketika parameter sourceDbType diatur ke RDB.

Model data

Nilai valid columnType

Tipe data

Tag

tag

Tipe data string. Tag menggambarkan fitur dari sumber data. Dalam sebagian besar kasus, tag tidak berubah seiring waktu.

Timestamp

timestamp

Tipe data TIMESTAMP. Timestamp menentukan titik waktu saat data dihasilkan. Timestamp dapat ditentukan secara manual saat penulisan data atau dihasilkan otomatis oleh sistem.

Field

field_string

Tipe data string. Field menggambarkan metrik pengukuran dari sumber data. Dalam sebagian besar kasus, field berubah seiring waktu.

field_double

Tipe data numerik. Field menggambarkan metrik pengukuran dari sumber data. Dalam sebagian besar kasus, field berubah seiring waktu.

field_boolean

Tipe data Boolean. Field menggambarkan metrik pengukuran dari sumber data. Dalam sebagian besar kasus, field berubah seiring waktu.

Mengembangkan tugas sinkronisasi data

Lampiran: Kode dan parameter

Lampiran: Mengonfigurasi tugas sinkronisasi batch menggunakan editor kode

Kode untuk TSDB Writer

  • Menulis data dari RDB ke TSDB menggunakan konfigurasi default berikut (direkomendasikan)

    {
        "type": "job",
        "version": "2.0",
        "steps": [
            {
                "stepType": "stream",// Anda dapat mengganti plugin stream dengan plugin RDB tertentu. Basis data RDB termasuk basis data 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,// Menentukan apakah akan mengaktifkan pembatasan laju. Nilai false menunjukkan bahwa pembatasan laju dinonaktifkan, dan nilai true menunjukkan bahwa pembatasan laju diaktifkan. Parameter mbps hanya berlaku jika parameter throttle diatur ke true.
                "concurrent":1, // Jumlah maksimum thread paralel.
                "mbps":"12"// Laju transmisi maksimum. Unit: MB/s.
            }
        },
        "order": {
            "hops": [
                {
                    "from": "Reader",
                    "to": "Writer"
                }
            ]
        }
    }
  • Menulis data dari basis data 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,// Menentukan apakah akan mengaktifkan pembatasan laju. Nilai false menunjukkan bahwa pembatasan laju dinonaktifkan, dan nilai true menunjukkan bahwa pembatasan laju diaktifkan. Parameter mbps hanya berlaku jika parameter throttle diatur ke true.
                "concurrent":1, // Jumlah maksimum thread paralel.
                "mbps":"12"// Laju transmisi maksimum. Unit: MB/s.
            }
        },
        "order": {
            "hops": [
                {
                    "from": "Reader",
                    "to": "Writer"
                }
            ]
        }
    }
  • Menggunakan protokol OpenTSDB untuk menulis titik data univariat ke TSDB (tidak direkomendasikan)

    
    {
        "type": "job",
        "version": "2.0",
        "steps": [
            {
                "stepType": "stream",// Anda dapat mengganti plugin stream dengan plugin RDB tertentu. Basis data RDB termasuk basis data 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,// Menentukan apakah akan mengaktifkan pembatasan laju. Nilai false menunjukkan bahwa pembatasan laju dinonaktifkan, dan nilai true menunjukkan bahwa pembatasan laju diaktifkan. Parameter mbps hanya berlaku jika parameter throttle diatur ke true.
                "concurrent":1, // Jumlah maksimum thread paralel.
                "mbps":"12"// Laju transmisi maksimum. Unit: MB/s.
            }
        },
        "order": {
            "hops": [
                {
                    "from": "Reader",
                    "to": "Writer"
                }
            ]
        }
    }
    Catatan

    Nama metrik TSDB ditentukan oleh nama kolom field untuk parameter kolom. Dalam kode sebelumnya, satu baris data dalam basis data relasional ditulis ke tiga metrik: field_metric_1, field_metric_2, dan field_metric_3.

Parameter dalam kode untuk TSDB Writer

Tipe parameter

Parameter

Deskripsi

Diperlukan

Nilai default

Parameter umum

sourceDbType

Tipe basis data sumber.

Tidak

TSDB

Catatan

Nilai valid: TSDB dan RDB. Nilai TSDB menunjukkan bahwa basis data sumber adalah OpenTSDB, Prometheus, atau Timescale. Nilai RDB menunjukkan bahwa basis data sumber adalah basis data relasional, seperti basis data MySQL, Oracle, PostgreSQL, atau DRDS.

endpoint

URL HTTP dari basis data TSDB tujuan. Tentukan endpoint dalam format http://Alamat IP:Nomor port. Anda dapat memperoleh endpoint HTTP di konsol ApsaraDB for Lindorm.

Ya

Tidak ada nilai default

database

Nama basis data TSDB tempat data ditulis.

Tidak

default

Catatan

Anda harus membuat basis data terlebih dahulu.

username

Nama pengguna basis data TSDB. Anda harus menentukan nilai untuk parameter ini jika Anda mengonfigurasi autentikasi untuk basis data TSDB.

Tidak

Tidak ada nilai default

batchSize

Jumlah catatan data yang ditulis sekaligus. Nilai parameter ini bertipe INT dan harus lebih besar dari 0. Jika Anda ingin mengonfigurasi nilai besar untuk parameter batchSize, Anda harus menyediakan lebih banyak ruang memori.

Tidak

100

Parameter untuk TSDB

maxRetryTime

Jumlah maksimum percobaan ulang setelah kegagalan. Nilai parameter ini bertipe INT dan harus lebih besar dari 1.

Tidak

3

ignoreWriteError

Menentukan apakah akan mengabaikan kesalahan penulisan. Nilai parameter ini bertipe BOOLEAN. Jika Anda mengatur parameter ini ke true, TSDB Writer melanjutkan operasi penulisan setelah terjadi kesalahan penulisan. Jika operasi penulisan gagal setelah jumlah percobaan ulang yang ditentukan, tugas sinkronisasi dihentikan.

Tidak

false

Parameter untuk RDB

table

Nama metrik yang ingin Anda impor ke TSDB. Jika parameter multiField diatur ke false, Anda dapat meninggalkan parameter ini kosong. Dalam hal ini, Anda perlu menentukan nama metrik untuk parameter kolom. Jika multiField diatur ke true, Anda harus mengonfigurasi parameter ini.

Tidak

Tidak ada nilai default

multiField

Menentukan apakah akan menulis titik data multivariat ke TSDB menggunakan Titik akhir API HTTP.

Catatan

Jika Anda ingin menggunakan kemampuan SQL asli Lindorm TSDB untuk mengakses data yang ditulis menggunakan Titik akhir API HTTP, Anda harus membuat tabel di TSDB. Jika tidak, Anda hanya dapat menanyakan titik data multivariat menggunakan Titik akhir API HTTP TSDB. Untuk informasi lebih lanjut, lihat Menanyakan titik data multivariat.

Ya

false

Catatan

Untuk menulis titik data multivariat ke TSDB, Anda harus mengatur nilainya menjadi true.

column

Nama kolom yang datanya ingin Anda tulis ke basis data TSDB.

Ya

Tidak ada nilai default

Catatan

Anda harus menentukan kolom dalam urutan yang sama dengan kolom yang ditentukan untuk pembaca.

columnType

Tipe data kolom dalam basis data relasional. Jenis berikut didukung:

  • timestamp: kolom timestamp.

  • tag: kolom tag.

  • field_string: kolom metrik yang nilainya bertipe data string.

  • field_double: kolom metrik yang nilainya bertipe data numerik.

  • field_boolean: kolom metrik yang nilainya bertipe data Boolean.

Ya

Tidak ada nilai default

Catatan

Anda harus menentukan kolom dalam urutan yang sama dengan kolom yang ditentukan untuk pembaca.

batchSize

Jumlah catatan data yang ditulis sekaligus. Nilai parameter ini bertipe INT dan harus lebih besar dari 0.

Tidak

100

Laporan uji kinerja

  • Karakteristik Data Uji

    • Metric: sebuah metrik, yaitu m.

    • tag_k dan tag_v: kunci dan nilai tag. Kunci dan nilai dari empat tag pertama membentuk deret waktu dari 2.000.000 titik data. Jumlah titik data dihitung menggunakan rumus berikut: 10 (zones) × 20 (clusters) × 100 (groups) × 100 (applications). Tag ip sesuai dengan indeks dari 2.000.000 titik data, dimulai dari 1.

      tag_k

      tag_v

      zone

      z1 hingga z10

      cluster

      c1 hingga c20

      group

      g1 hingga g100

      app

      a1 hingga a100

      ip

      ip1 hingga ip2.000.000

    • value: nilai acak dari 1 hingga 100.

    • interval: interval pengumpulan 10 detik. Durasi total pengumpulan data adalah 3 jam, dan total jumlah titik data yang dikumpulkan adalah 2.160.000.000. Jumlah titik data dihitung menggunakan rumus berikut: 3 × 60 × 60/10 × 2.000.000.

  • Hasil Uji Kinerja

    Jumlah saluran

    Kecepatan integrasi data (catatan/detik)

    Bandwidth integrasi data (Mbit/detik)

    1

    129.753

    15,45

    2

    284.953

    33,70

    3

    385.868

    45,71