全部产品
Search
文档中心

Time Series Database:Solusi migrasi data untuk TSDB for InfluxDB®

更新时间:Dec 06, 2025

TSDB for InfluxDB® akan dihentikan pada 23 Oktober 2026. Untuk mencegah gangguan layanan, segera lakukan migrasi data Anda. Topik ini menjelaskan solusi migrasi data untuk TSDB for InfluxDB®.

Penting

Untuk informasi lebih lanjut mengenai penghentian TSDB for InfluxDB®, lihat pemberitahuan terkait.

Pilih solusi migrasi

Pilih solusi migrasi berdasarkan kebutuhan bisnis Anda:

  • Untuk migrasi seperti-ke-seperti (like-for-like): Gunakan instans InfluxDB self-hosted.

  • Untuk data berskala besar yang memerlukan database terdistribusi:

    • Untuk skenario pemantauan deret waktu: Gunakan LindormTSDB. Perlu diperhatikan bahwa LindormTSDB tidak kompatibel dengan bahasa kueri InfluxQL. Anda harus memodifikasi kode kueri dalam aplikasi Anda. Jika Anda dapat memodifikasi kode tersebut, kami merekomendasikan migrasi ke LindormTSDB.

    • Untuk skenario deret waktu lainnya: Evaluasi solusi database deret waktu terdistribusi lainnya.

Migrasi dari TSDB for InfluxDB® ke instans InfluxDB self-hosted

Prasyarat

  • Instans TSDB for InfluxDB® Anda harus ditingkatkan ke versi terbaru (1.8.14).

  • Port backup 8088 harus diaktifkan.

    Anda dapat mengajukan tiket melalui sistem tiket Alibaba Cloud untuk membuka port backup.

  • Instans InfluxDB self-hosted dan instans TSDB for InfluxDB® harus berada di wilayah, zona, dan virtual private cloud (VPC) yang sama. Keduanya juga harus menggunakan tipe instans yang sama serta terhubung ke virtual switch yang sama.

    Topik ini menggunakan lingkungan Elastic Compute Service (ECS) sebagai contoh. Beli instans ECS yang memenuhi persyaratan ini dan instal InfluxDB self-hosted V1.8.10. Untuk informasi selengkapnya, lihat Cara cepat membeli instans langganan.

Untuk memahami proses migrasi, lihat bagian Backup and restore dalam dokumentasi resmi InfluxDB.

Catatan

  • Proses backup dan pemulihan hanya mendukung migrasi data historis. Tidak mendukung migrasi data inkremental. Oleh karena itu, Anda harus menulis data secara bersamaan ke instans TSDB for InfluxDB® dan instans InfluxDB self-hosted sebelum melakukan migrasi data historis.

  • Backup memerlukan ruang penyimpanan tambahan. Pastikan ruang penyimpanan yang tersedia lebih dari dua kali ukuran data Anda.

  • Jika penggunaan memori instans saat ini melebihi 80%, tingkatkan instans tersebut sebelum melakukan backup dan migrasi data.

  • Anda harus melakukan backup data per shard. Hal ini mengharuskan Anda menentukan database, kebijakan retensi, dan shard untuk backup tersebut.

Backup

Jalankan perintah berikut pada instans ECS tempat InfluxDB self-hosted Anda diinstal.

influxd backup -portable \
  -host ts-xxx.influxdata.tsdb.aliyuncs.com:8088 \
  -db example_db \
  -rp example_rp \
  -shard 123 \
  /root/tmp/influx_backup

Parameter:

  • host: Titik akhir VPC dari instans TSDB for InfluxDB®. Anda dapat login ke Konsol TSDB dan menemukan VPC Endpoint pada halaman Instance Details.

  • -db: Nama database yang akan di-backup. Anda dapat menemukan nama database tersebut di Konsol TSDB pada halaman Instance Database Management > Database Management.

  • -rp: Nama kebijakan retensi yang akan di-backup. Untuk menemukan nama tersebut, login ke Konsol TSDB, buka halaman Instance Management > Database Management, lalu klik Storage Policy Management pada kolom Actions untuk database yang dituju.

  • -shard: ID shard yang akan dicadangkan. Anda dapat menjalankan perintah show shards untuk menemukan ID shard tersebut.

  • Jalur ke folder tujuan untuk file backup.

Pulihkan data

Untuk petunjuknya, lihat dokumentasi resmi tentang cara memulihkan data yang telah di-backup ke database yang sudah ada.

  1. Pada instans ECS tempat InfluxDB self-hosted Anda diinstal, jalankan perintah berikut untuk memulihkan data ke database temporary.

    influxd restore -portable \
      -db example_db \
      -rp example_rp \
      -shard 123 \
      -newdb example_tmp_db \
      /root/tmp/influx_backup

    Parameter:

    • -db: Nama database yang telah di-backup.

    • -rp: Nama kebijakan retensi yang telah di-backup.

    • -shard: ID shard yang telah di-backup.

    • newdb: Nama database temporary untuk pemulihan.

    • Jalur ke folder yang berisi file backup.

  2. Gunakan InfluxQL untuk mengkueri data dari database temporary dan menuliskannya kembali ke database tujuan.

    SELECT * INTO "example_db"."example_rp".:MEASUREMENT FROM "example_tmp_db".autogen./.*/ GROUP BY *
  3. Hapus database sementara.

    DROP DATABASE "example_tmp_db"

Migrasi dari TSDB for InfluxDB® ke database lain (termasuk LindormTSDB)

Catatan

Anda harus menambahkan kondisi filter tag dan time pada kueri Anda. Jika tidak, kueri besar dapat menyebabkan instans menjadi tidak stabil.

Ekspor data ke file CSV

Anda dapat menggunakan tool Influx-cli (V1.x) untuk menjalankan kueri dan mengekspor hasilnya ke file CSV.

influx -ssl \
  -host ts-xxx.influxdata.tsdb.aliyuncs.com \
  -port 8086 \
  -username "xxx" \
  -password "xxx" \
  -format "csv" \
  -precision ms \
  -database example_db \
  -execute "select * from sensor" | \
  > /root/tmp/ouput.csv

Kolom pertama dalam file CSV yang diekspor adalah kolom name, yang merepresentasikan measurement. Jika Anda tidak memerlukan kolom ini, jalankan perintah berikut.

influx -ssl \
  -host ts-xxx.influxdata.tsdb.aliyuncs.com \
  -port 8086 \
  -username "xxx" \
  -password "xxx" \
  -format "csv" \
  -precision ms \
  -database example_db \
  -execute "select * from sensor" | \
  sed -r 's/^[^,]+,//' | \
  > /root/tmp/ouput.csv

Impor data ke database lain

Gunakan tool open source atau tulis program untuk mengimpor file CSV ke database lain. Bagian berikut menyediakan contoh.

Contoh 1: Impor data ke LindormTSDB

  1. Gunakan tool Influx-cli (V1.x) untuk mengekspor data dari instans TSDB for InfluxDB® Anda.

    Atur presisi ke ms atau rfc3339, dan hapus kolom measurement.

    influx -ssl \
      -host ts-xxx.influxdata.tsdb.aliyuncs.com \
      -port 8086 \
      -username "xxx" \
      -password "xxx" \
      -format "csv" \
      -precision ms \
      -database example_db \
      -execute "select * from sensor" | \
      sed -r 's/^[^,]+,//' | \
      > /root/tmp/ouput.csv
  2. Di LindormTSDB, buat database dan tabel tujuan. Anda harus membuat semua bidang terlebih dahulu.

  3. Impor file CSV ke tabel tujuan dalam database tujuan dengan menggunakan Lindorm-cli.

lindorm-cli -url jdbc:lindorm:tsdb:url=http://ld-xxx-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242 \
  -format=csv \
  -input /root/tmp/ouput.csv \
  -database example_db \
  -table example_table

Contoh 2: Impor data ke InfluxDB

  1. Unduh alat berikut.

  2. Gunakan tool Influx-cli (V1.x) untuk mengekspor data.

    Perhatikan dua poin berikut:

    1. Anda tidak perlu menentukan presisi.

    2. Pertahankan kolom measurement.

      influx -ssl \
        -host ts-xxx.influxdata.tsdb.aliyuncs.com \
        -port 8086 \
        -username "xxx" \
        -password "xxx" \
        -format "csv" \
        -database example_db \
        -execute "select * from sensor" | \
        > /root/tmp/ouput.csv
  3. Gunakan tool Influx-cli (V2.x) untuk mengonversi file CSV menjadi file line protocol. Untuk informasi selengkapnya, lihat Write CSV data to InfluxDB.

    influx write dryrun \
      --format csv \
      --header "name|measurement,time|dateTime,device_id|tag,humidity|long|0,region|tag,temperature|double|0.0" \
      --skipHeader=1 \
      -f /root/tmp/ouput.csv \
      > /root/tmp/ouput.line

    Parameter:

    header: Formatnya adalah column_name|data_type|default_value. Untuk informasi selengkapnya, lihat format header. Untuk detail tipe waktu, lihat Specify the time type.

  4. Tulis file line protocol ke instans InfluxDB self-hosted V1.x Anda.