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®.
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_backupParameter:
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 .
-rp: Nama kebijakan retensi yang akan di-backup. Untuk menemukan nama tersebut, login ke Konsol TSDB, buka halaman , lalu klik Storage Policy Management pada kolom Actions untuk database yang dituju.
-shard: ID shard yang akan dicadangkan. Anda dapat menjalankan perintah
show shardsuntuk 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.
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_backupParameter:
-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.
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 *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.csvKolom 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.csvImpor 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
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.csvDi LindormTSDB, buat database dan tabel tujuan. Anda harus membuat semua bidang terlebih dahulu.
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_tableContoh 2: Impor data ke InfluxDB
Unduh alat berikut.
Tersedia dalam paket penyebaran InfluxDB: Influx-cli (V1.x)
Paket penyebaran terpisah: Influx-cli (V2.x)
Gunakan tool Influx-cli (V1.x) untuk mengekspor data.
Perhatikan dua poin berikut:
Anda tidak perlu menentukan presisi.
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
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.lineParameter:
header: Formatnya adalah
column_name|data_type|default_value. Untuk informasi selengkapnya, lihat format header. Untuk detail tipe waktu, lihat Specify the time type.Tulis file line protocol ke instans InfluxDB self-hosted V1.x Anda.