Topik ini menjelaskan cara menggunakan konektor TSDB for InfluxDB.
Konektor TSDB for InfluxDB akan ditinggalkan pada rilis mendatang. Setelah ditinggalkan, konektor ini akan dihapus dari Konsol dan tidak lagi menerima pembaruan fitur atau pemeliharaan. Untuk informasi jadwal penghentian dukungan, lihat pengumuman mengenai akhir dukungan untuk konektor TSDB for InfluxDB. Kami menyarankan Anda segera memigrasikan beban kerja Anda untuk menghindari gangguan pada pekerjaan produksi.
Latar Belakang
TSDB for InfluxDB adalah layanan database deret waktu yang dirancang untuk menangani beban tulis dan kueri tinggi. Layanan ini memungkinkan Anda menyimpan dan menganalisis data deret waktu skala besar secara real-time dari berbagai sumber, seperti pemantauan DevOps, metrik aplikasi, dan sensor IoT. Untuk informasi lebih lanjut tentang TSDB for InfluxDB, lihat Pengenalan InfluxDB.
Tabel berikut menjelaskan kemampuan yang didukung oleh konektor TSDB for InfluxDB.
Item | Deskripsi |
Jenis tabel | Sink table |
Mode eksekusi | Streaming mode |
Format data | Point |
Metric |
Catatan Untuk detail mengenai metrik ini, lihat Metrik Pemantauan. |
Jenis API | SQL |
Pembaruan atau penghapusan data dalam tabel sink | Tidak didukung |
Prasyarat
Anda telah membuat database di TSDB for InfluxDB. Untuk informasi lebih lanjut, lihat Kelola akun pengguna dan database.
Batasan
Konektor TSDB for InfluxDB hanya didukung oleh penerapan Realtime Compute for Apache Flink yang menggunakan Ververica Runtime (VVR) versi 2.1.5 atau lebih baru.
Sintaks
CREATE TABLE stream_test_influxdb(
`metric` VARCHAR,
`timestamp` BIGINT,
`tag_value1` VARCHAR,
`field_fieldValue1` DOUBLE
) WITH (
'connector' = 'influxdb',
'url' = 'http://service.cn.influxdb.aliyuncs.com:****',
'database' = '<yourDatabaseName>',
'username' = '<yourDatabaseUserName>',
'password' = '<yourDatabasePassword>',
'batchSize' ='300',
'retentionPolicy' = 'autogen',
'ignoreErrorData' = 'false'
);Skema default untuk tabel sink adalah sebagai berikut:
Kolom 0: metric (VARCHAR). Kolom ini wajib ada.
Kolom 1: timestamp (BIGINT). Kolom ini wajib ada. Satuan harus dalam milidetik.
Kolom 2: tag_value1 (VARCHAR). Ini adalah kolom tag. Minimal satu kolom tag wajib ada.
Kolom 3: field_fieldValue1 (DOUBLE). Ini adalah kolom field. Minimal satu kolom field wajib ada.
Untuk menulis data ke beberapa kolom field, gunakan format berikut.
field_fieldValue1 DataType, field_fieldValue2 DataType, ... field_fieldValueN DataTypeContoh:
field_fieldValue1 DOUBLE, field_fieldValue2 INTEGER, ... field_fieldValueN INTEGER
Tabel hasil hanya mendukung metric, timestamp, tag_*, dan field_*.
Parameter WITH
Parameter | Deskripsi | Wajib | Keterangan |
connector | Jenis tabel sink. | Ya | Nilainya harus |
url | URL layanan instans TSDB for InfluxDB. | Ya | Di InfluxDB, URL merupakan titik akhir VPC, contohnya: https://localhost:8086 atau http://localhost:3242. HTTP dan HTTPS keduanya didukung. |
database | Nama database di instans TSDB for InfluxDB Anda. | Ya | Contoh: |
username | Username untuk mengakses database. | Ya | Pengguna harus memiliki izin tulis pada database tujuan. Untuk detailnya, lihat Kelola akun pengguna dan database. |
password | Password untuk pengguna yang ditentukan. | Ya | Untuk detailnya, lihat Kelola akun pengguna dan database. |
batchSize | Jumlah catatan yang ditulis dalam satu batch. | Tidak | Nilai default: 300. |
retentionPolicy | Kebijakan retensi. | Tidak | Jika parameter ini tidak ditentukan, kebijakan retensi default database, yaitu |
ignoreErrorData | Menentukan apakah data yang gagal ditulis akan diabaikan. | Tidak | Nilai yang valid:
|
Pemetaan tipe data
Tipe InfluxDB | Tipe Flink |
BOOLEAN | BOOLEAN |
INT | INT |
BIGINT | BIGINT |
FLOAT | FLOAT |
DECIMAL | DECIMAL |
DOUBLE | DOUBLE |
DATE | DATE |
TIME | TIME |
TIMESTAMP | TIMESTAMP |
VARCHAR | VARCHAR |
Contoh
CREATE TEMPORARY TABLE datahub_source(
`metric` VARCHAR,
`timestamp` BIGINT,
`fieldvalue` DOUBLE,
`tagvalue` VARCHAR
) WITH (
'connector' = 'datagen',
'fields.metric.length' = '3',
'fields.tagvalue.length' = '3',
'fields.timestamp.min' = '1587539547000',
'fields.timestamp.max' = '1619075547000',
'fields.fieldvalue.min' = '1',
'fields.fieldvalue.max' = '100000',
'rows-per-second' = '50'
);
CREATE TEMPORARY TABLE influxdb_sink(
`metric` VARCHAR,
`timestamp` BIGINT,
`field_fieldValue1` DOUBLE,
`tag_value1` VARCHAR
) WITH (
'connector' = 'influxdb',
'url' = 'https://***********.influxdata.tsdb.aliyuncs.com:****',
'database' = '<yourDatabaseName>',
'username' = '<yourDatabaseUserName>',
'password' = '<yourDatabasePassword>',
'batchSize' ='100',
'retentionPolicy' = 'autogen',
'ignoreErrorData' = 'false'
);
INSERT INTO influxdb_sink
SELECT
`metric`,
`timestamp`,
`fieldvalue`,
`tagvalue`
FROM datahub_source;