Pengembangan Skrip / Objek Konektor DFF.CONN / InfluxDB
Objek operasi Konektor InfluxDB adalah pembungkus dari paket pihak ketiga Python influxdb (versi 5.3.1), yang terutama menyediakan metode untuk kueri dan penulisan InfluxDB. Konektor ini kompatibel dengan database berikut:
- Alibaba Cloud Time Series Database edisi InfluxDB
Konektor ini terhubung melalui protokol HTTP
Parameter DFF.CONN(...) adalah sebagai berikut:
| Parameter | Tipe | Wajib / Nilai Default | Deskripsi |
|---|---|---|---|
connector_id |
str | Wajib | ID Konektor |
database |
str | None |
Menentukan database |
.query(...)
Menjalankan pernyataan InfluxQL, parameter sebagai berikut:
| Parameter | Tipe | Wajib / Nilai Default | Deskripsi |
|---|---|---|---|
sql |
str | Wajib | Pernyataan InfluxQL, dapat berisi placeholder parameter terikat, dalam bentuk $var_name |
bind_params |
dict | None |
Parameter terikat |
database |
str | None |
Menentukan database untuk kueri ini |
dict_output |
bool | False |
Apakah akan mengonversi setiap baris data menjadi bentuk {nama_kolom: nilai} |
| Contoh | |
|---|---|
1 2 3 | |
| Contoh Output | |
|---|---|
1 | |
| Contoh 2 (menentukan hasil yang dikembalikan dalam format dict) | |
|---|---|
1 2 3 | |
| Contoh Output | |
|---|---|
1 | |
Satu kueri mengembalikan dict; ketika driver mengembalikan beberapa kumpulan hasil untuk beberapa pernyataan, metode ini mengembalikan list[dict].
.query2(...)
Metode query2(...) juga digunakan untuk menjalankan pernyataan InfluxQL, tetapi placeholder parameternya berbeda, menggunakan tanda tanya ? sebagai placeholder parameter. Parameternya adalah sebagai berikut:
| Parameter | Tipe | Wajib / Nilai Default | Deskripsi |
|---|---|---|---|
sql |
str | Wajib | Pernyataan InfluxQL, dapat berisi placeholder parameter.? menunjukkan parameter yang perlu di-escape;?? menunjukkan parameter yang tidak perlu di-escape |
sql_params |
list | None |
Parameter InfluxQL |
database |
str | None |
Menentukan database untuk kueri ini |
dict_output |
bool | False |
Apakah akan mengonversi setiap baris data menjadi bentuk {"nama_kolom": "nilai"} |
| Contoh | |
|---|---|
1 2 3 | |
Pernyataan SQL Dinamis
query2(...) secara internal menggunakan DFF.SQL(...) untuk menyusun pernyataan SQL dan mendukung penyusunan pernyataan SQL yang kompleks dan dinamis.
Seperti nilai yang jumlahnya tidak pasti pada WHERE IN (...), atau INSERT INTO ... VALUES ... untuk menulis data secara batch, dan sebagainya.
Untuk detail, silakan lihat Pengembangan Skrip / Konstruksi SQL DFF.SQL
.switch_database(...)
Mengalihkan database default yang digunakan oleh permintaan berikutnya pada objek operasi saat ini.
| Parameter | Tipe | Wajib / Nilai Default | Deskripsi |
|---|---|---|---|
database |
str | Wajib | Nama database |
| Contoh | |
|---|---|
1 2 | |
Jika hanya perlu menentukan database untuk satu kueri atau penulisan, utamakan penggunaan parameter database pada metode yang bersangkutan.
.write_point(...)
Ditambahkan pada versi 1.1.13
Menulis satu titik data. Parameternya adalah sebagai berikut:
| Parameter | Tipe | Wajib / Nilai Default | Deskripsi |
|---|---|---|---|
measurement |
str | Wajib | Kumpulan metrik |
fields |
dict{str: str/int/float/bool} | Wajib | Field Nama kunci harus berupa str Nilai kunci dapat berupa str/int/float/bool |
tags |
dict{str: str} | None |
Tag Nama kunci dan nilai kunci harus berupa str |
timestamp |
str/int | None |
Waktu Format ISO, misalnya: 2020-01-01T01:02:03ZStempel waktu UNIX misalnya: 1577840523 |
database |
str | None |
Menentukan database untuk penulisan ini |
| Contoh | |
|---|---|
1 2 3 | |
.write_points(...)
Ditambahkan pada versi 1.1.13
Menulis titik data secara batch. Parameternya adalah sebagai berikut:
| Parameter | Tipe | Wajib / Nilai Default | Deskripsi |
|---|---|---|---|
points |
list | Wajib | Array titik data |
points[#]['measurement'] |
str | Wajib | Kumpulan metrik |
points[#]['fields'] |
dict{str: str/int/float/bool} | Wajib | Field Nama kunci harus berupa str Nilai kunci dapat berupa str/int/float/bool |
points[#]['tags'] |
dict{str: str} | None |
Tag Nama kunci dan nilai kunci harus berupa str |
points[#]['time'] |
str/int | None |
Waktu Format ISO, misalnya: 2020-01-01T01:02:03ZStempel waktu UNIX misalnya: 1577840523 |
database |
str | None |
Menentukan database untuk penulisan ini |
| Contoh | |
|---|---|
1 2 3 4 5 6 7 8 | |