View a markdown version of this page

InfluxDB - AWS IoT Core

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

InfluxDB

Pilih tindakan ini saat Anda ingin menanyakan telemetri perangkat untuk tren operasional atau memantau data deret waktu secara real time. Anda dapat menggunakan batching sisi klien atau sisi server untuk menggabungkan beberapa titik dalam satu permintaan tulis. AWS IoT Core mengkonversi setiap pesan ke protokol baris InfluxDB dan menulisnya ke database dan tabel yang ditentukan. Untuk informasi selengkapnya tentang format, lihat protokol baris InfluxDB dalam dokumentasi InfluxData . Untuk informasi tentang cluster terkelola, lihat Amazon Timestream untuk InfluxDB.

Prasyarat

Tindakan aturan ini memiliki prasyarat berikut:

  • Tujuan tindakan InfluxDB — Buat tujuan tindakan InfluxDB yang menentukan titik akhir, versi, dan kredenSIAL untuk instans InfluxDB Anda. AWS IoT Core memvalidasi kepemilikan titik akhir sebelum mengirim lalu lintas. Lihat Tujuan tindakan InfluxDB.

  • Peran IAM yang AWS IoT dapat diasumsikan untuk menulis ke database InfluxDB Anda dan melakukan GetSecretValue operasi pada rahasia yang menyimpan kredenSIAL InfluxDB Anda. Untuk informasi selengkapnya, lihat Pemberian AWS IoT mengatur akses yang dibutuhkannya.

  • KredenSIAL InfluxDB disimpan di AWS Secrets Manager — Untuk InfluxDB V3, Amazon Timestream untuk InfluxDB secara otomatis menyediakan rahasia Manajer Rahasia saat Anda membuat cluster InfluxDB. Rahasianya berisi kredenSIAL cluster. Untuk InfluxDB V2, buat All Access atau token API kustom dari instance InfluxDB Anda. Simpan nilai token sebagai rahasia plaintext di AWS Secrets Manager. Untuk informasi selengkapnya tentang pembuatan token, lihat Membuat token dalam InfluxData dokumentasi. Saat runtime, tindakan aturan memanggil secretsmanager:GetSecretValue untuk mengambil kredensional ini sebelum mengotentikasi ke titik akhir InfluxDB Anda.

  • Stempel waktu dalam payload pesan — Setiap objek dalam payload pesan harus berisi kunci bernama timestamp (peka huruf besar/kecil) dengan nilai zaman Unix integer. Unit stempel waktu juga dapat diatur dalam definisi aturan IoT. AWS IoT Core tidak menghasilkan cap waktu untuk tindakan InfluxDB, kecuali ketika InfluxDB digunakan sebagai tindakan Kesalahan.

    catatan

    Alias seperti ts atau time tidak dapat digunakan sebagai penggantitimestamp.

  • Konektivitas HTTPS — Instans InfluxDB Anda harus dapat dijangkau melalui HTTPS. AWS IoT Core Port keluar yang didukung adalah: 443, 8443, 8086 (port default untuk InfluxDB V2), dan 8181 (port default untuk InfluxDB V3).

  • JSON-format payload — Tindakan InfluxDB hanya memproses muatan JSON. Jika perangkat Anda menerbitkan data biner atau Protobuf, gunakan decode() fungsi dalam aturan SQL Anda untuk mengonversi ke JSON sebelum tindakan dijalankan.

Tujuan tindakan InfluxDB

Sebelum Anda dapat menggunakan tindakan aturan InfluxDB, Anda harus membuat tujuan tindakan InfluxDB. Tujuan menentukan parameter koneksi untuk instans InfluxDB Anda. AWS IoT Core kemudian memvalidasi kepemilikan titik akhir.

Membuat tujuan

Gunakan CreateTopicRuleDestination API untuk membuat tujuan InfluxDB:

{ "destinationConfiguration": { "influxDBConfiguration": { "endpoint": "https://my-instance.timestream-influxdb.us-west-2.amazonaws.com:8086", "influxDBVersion": "V2", "secretId": "arn:aws:secretsmanager:us-west-2:111122223333:secret:my-influxdb-credentials-AbCdEf" } } }

Parameter tujuan

Parameter Tipe Diperlukan Deskripsi
endpoint Tali Ya URL titik akhir HTTPS dari instance InfluxDB Anda. HTTP tidak didukung. Port yang didukung: 443, 8086, 8181, 8443.
influxDBVersion Tali Ya Versi InfluxDB. Nilai-nilai yang valid: V2, V3.
secretId Tali Ya Nama atau ARN AWS Secrets Manager rahasia yang berisi token InfluxDB Anda.
secretType String Tidak Jenis nilai rahasia. Nilai-nilai yang valid: SecretString, SecretBinary.
secretKey String Tidak Kunci dalam JSON rahasia yang berisi token otentikasi. Diperlukan hanya jika rahasianya adalah objek JSON dengan beberapa kunci.

Validasi kepemilikan titik akhir

Saat Anda membuat tujuan tindakan InfluxDB, AWS IoT Core memvalidasi kepemilikan titik akhir dengan mengautentikasi terhadap API InfluxDB menggunakan kredenSIAL yang Anda berikan:

  • InfluxDB V2: AWS IoT Core memanggil titik akhir/api/v2/me.

  • InfluxDB V3: AWS IoT Core memanggil daftar database endpoint ()GET /api/v3/configure/database.

Respons yang berhasil (2xx) menetapkan status tujuan keENABLED. Jika gagal, AWS IoT Core atur status keERROR. Untuk mencoba kembali validasi, panggil UpdateTopicRuleDestination dengan status disetel keIN_PROGRESS.

Pemetaan terminologi InfluxDB

Istilah berikut berbeda antara InfluxDB V2 dan V3.

AWS IoT Core Parameter Istilah InfluxDB V2 Istilah InfluxDB V3
databaseName Bucket Basis Data
tableName Pengukuran Tabel
catatan

Jika Anda bermigrasi dari tindakan aturan Amazon Timestream, dimensions parameter dipetakan ke tag dalam tindakan InfluxDB, dan atribut hasil kueri dipetakan ke bidang.

Parameter

Saat Anda membuat AWS IoT aturan dengan tindakan InfluxDB, Anda harus menentukan informasi berikut:

destinationArn

ARN tujuan tindakan InfluxDB. Lihat Tujuan tindakan InfluxDB. Mendukung template substitusi: Tidak

roleArn

ARN dari peran IAM yang memberikan AWS IoT izin untuk mengakses rahasia Manajer Rahasia. Lihat Prasyarat. Mendukung template substitusi: Tidak

databaseName

Nama database InfluxDB (disebut bucket di InfluxDB v2, atau database di InfluxDB v3) untuk menulis catatan. Men dukung template substitusi: Tidak. Untuk merutekan data ke database yang berbeda, buat tindakan aturan terpisah untuk setiap database.

tableName

Nama tabel (disebut pengukuran di InfluxDB v2, atau tabel di InfluxDB v3) untuk menulis catatan. Men dukung template substitusi: Ya.

organization

Nama organisasi InfluxDB. Diperlukan untuk InfluxDB v2. Jika Anda menyertakan parameter ini untuk InfluxDB v3, parameter ini diabaikan. Men dukung template substitusi: Tidak.

tags

Metadata untuk setiap titik, ditentukan sebagai peta. Setiap kunci peta adalah nama tag, dan setiap nilai peta adalah nilai tag yang sesuai. Tag diindeks untuk kinerja kueri.

  • Di InfluxDB V3, setiap nama tag harus unik dalam tabel dan tidak dapat menduplikasi nama bidang.

  • Nilai tag mendukung templat cakupan pesan dan substitusi per elemen.

timestampUnit

Ketepatan nilai stempel waktu dalam payload. Nilai yang valid: s (detik) | ms (milidetik) | (mikrodetik) | us (nanodetik). ns Default: ms. Men dukung template substitusi: Tidak.

batchConfig

Konfigurasi Server-side batching (Opsional). Untuk informasi selengkapnya, lihat Batching.

  • maxBatchSize— Jumlah poin maksimum di setiap batch. Kisaran yang valid: 1—500.

  • maxBatchOpenMs— Waktu maksimum dalam milidetik untuk menahan batch terbuka. Kisaran yang valid: 5—1.000.

  • maxBatchSizeBytes— Ukuran total maksimum dalam byte sebelum pembilasan. Kisaran yang valid: 100—131.072.

  • batchAcrossTopics – Boolean. Kapantrue, batch menyertakan poin dari pesan pada topik yang berbeda. Default: false.

Batching

Tindakan InfluxDB mendukung dua mode batching.

Client-side menggumpal

Perangkat IoT Anda menggabungkan data deret waktu sebagai array JSON dan menerbitkannya sebagai pesan MQTT tunggal. Dengan batching sisi klien, setiap elemen array menjadi satu titik protokol baris dalam permintaan tulis tunggal. Anda tidak memerlukan konfigurasi tambahan.

Server-side menggumpal

Gunakan batching sisi server untuk mengelompokkan pesan individual sebelum menulisnya ke InfluxDB. Konfigurasikan batching sisi server menggunakan parameter. batchConfig Batch disiram ketika batas (maxBatchSize,maxBatchOpenMs, ataumaxBatchSizeBytes) yang dikonfigurasi tercapai terlebih dahulu.

catatan

Batching sisi server dan batching sisi klien (muatan array JSON) dapat dikonfigurasi secara bersamaan.

Tindakan InfluxDB diukur berdasarkan ukuran payload keluar dengan penambahan 5 KiB. Line-protocol Kegagalan konversi juga diukur.

Per-element template untuk muatan array

Saat perangkat IoT Anda mengirim data deret waktu berkelompok sebagai larik JSON, Anda dapat menggunakan “templat substitusi per-elemen” untuk menyelesaikan nilai dari setiap elemen array individu. Ini merutekan setiap titik data ke tabel yang berbeda atau menerapkan tag khusus elemen. Untuk informasi selengkapnya, lihat Per-element template.

Sintaks dua templat substitusi

  • ${expression}— Menyelesaikan pada cakupan pesan, terhadap pesan perangkat yang masuk. Dievaluasi sekali untuk setiap pesan; nilai yang sama berlaku untuk setiap titik dalam array.

  • @{expression}- Menyelesaikan pada cakupan elemen, terhadap elemen individual dari payload yang dihasilkan oleh pernyataan SQL SELECT aturan. Re-evaluated untuk setiap elemen array, sehingga setiap titik bisa mendapatkan nilai yang berbeda. Untuk informasi lebih lanjut, lihat @{expression} referensi.

Gunakan nilai @{...} in tableName dan tag untuk menyelesaikan ekspresi terhadap setiap elemen array secara individual.

Contoh

Diberikan payload perangkat berikut (array JSON):

[ {"measurement_type": "temperature", "room": "kitchen", "timestamp": 1700000000000, "value": 23.5}, {"measurement_type": "humidity", "room": "bedroom", "timestamp": 1700000001000, "value": 60.1} ]

Dan konfigurasi tindakan berikut:

{ "influxDB": { "destinationArn": "arn:aws:iot:us-west-2:111122223333:ruledestination/influxdb/abc123", "roleArn": "arn:aws:iam::111122223333:role/iot-influxdb-role", "databaseName": "sensor_data", "tableName": "@{measurement_type}", "tags": { "room": "@{room}" }, "timestampUnit": "ms" } }

Output line-protocol yang dihasilkan berisi dua poin:

temperature,room=kitchen value=23.5 1700000000000 humidity,room=bedroom value=60.1 1700000001000
catatan

Bidang yang @{...} direferensikan oleh dihapus dari set bidang protokol baris, sehingga tidak juga muncul sebagai bidang. Dalam contoh ini, measurement_type menjadi nama tabel dan room menjadi tag, jadi tidak ada yang muncul di set bidang - value adalah satu-satunya bidang.

Pembatasan

  • @{...}didukung hanya dalam konfigurasi tindakan InfluxDB (tableNamedan nilai tag).

  • Anda tidak dapat menggunakan @{...} dalam aturan SQL (SELECT/WHEREklausa), definisi tindakan kesalahan, atau tindakan aturan lainnya.

  • Hanya referensi bidang yang didukung di dalam@{...}. Fungsi tidak didukung.

  • Setiap nilai mendukung paling banyak satu @{...} penanda. Beberapa penanda dalam satu nilai menghasilkan pengecualian API.

  • Anda tidak dapat mencampur ${...} dan @{...} dalam nilai yang sama. Pencampuran menghasilkan pengecualian API.

  • Sebuah objek JSON tunggal diperlakukan sebagai array satu elemen.

Rekaman konten InfluxDB

Untuk setiap catatan dalam hasil kueri pasca-SQL, titik protokol baris InfluxDB yang dihasilkan berisi komponen-komponen ini:

Komponen Sumber
Tabel Nilai tableName parameter
Tanda Pasangan kunci-nilai dari parameter tags
Bidang Atribut payload yang tersisa tidak digunakan sebagai tag, nama tabel, atau stempel waktu
Stempel waktu K timestamp unci diekstraksi dari payload

Konversi jenis data

AWS IoT Core mengkonversi nilai JSON ke jenis protokol baris InfluxDB sebagai berikut:

Jenis JSON Jenis protokol garis Contoh
Integer (−2³ hingga 2³−1) Integer bertanda tangan (iakhiran) 42 → 42i
Integer (2³ hingga 2−1) Bilangan bulat tanpa tanda tangan (akhiranu) 9223372036854775808 → 9223372036854775808u
Bilangan bulat di luar (−2³ hingga 2−1) Ditolak (tindakan kesalahan dipicu) —
Mengapung/desimal IEEE-754 Pelampung 64-bit 23.5 → 23.5
Boolean t atau f true → t
String String yang dikutip "active" → "active"
Null Dihilangkan (tidak tertulis) —
Objek atau array String JSON yang dipadatkan (spasi dilucuti) {"a":1} → "{\"a\":1}"

Pembatasan penamaan

  • Tombol bidang dan kunci tag tidak boleh kosong atau dimulai dengan garis bawah (_).

  • Di InfluxDB V3, nama tabel dan kunci tag harus dimulai dengan huruf atau digit.

  • Koma, tanda sama, dan spasi di tombol bidang, kunci tag, dan nilai tag dihapus secara otomatis.

  • Pengukuran: koma dan spasi dilepaskan secara otomatis.

  • Tag diurutkan berdasarkan abjad berdasarkan kunci sebelum serialisasi untuk meningkatkan kinerja konsumsi.

  • Nilai tag kosong dihilangkan dari output.

Kunci yang dipesan

Kunci payload berikut dilucuti dari bidang yang ditetapkan selama konversi protokol baris:

  • timestamp— Digunakan sebagai titik timestamp.

  • Kunci yang direferensikan oleh tableName (via ${...} atau@{...}) — Digunakan sebagai nama tabel.

  • Kunci yang direferensikan oleh nilai tag (via ${...} atau@{...}) — Digunakan sebagai nilai tag.

Tindakan kesalahan

Jika tindakan InfluxDB gagal, tindakan kesalahan yang dikonfigurasi dipicu.

Menggunakan InfluxDB sebagai tindakan kesalahan

Anda dapat mengonfigurasi tindakan InfluxDB sebagai tindakan kesalahan untuk aturan apa pun. Seluruh payload ditulis ke satu catatan tableName sebagai satu catatan. Message-scope template substitusi (${...}) didukung dalam tindakan kesalahan tableName dantags.

Keluaran tindakan kesalahan

Ketika tindakan kesalahan dipicu, muatan keluaran berisi:ruleName,,topic,cloudwatchTraceId, clientIdsourceIp, base64OriginalPayload (pesan Base64-encoded asli), dan failures array di mana setiap entri memilikifailedAction,failedResource, danerrorMessage.

Dengan batching sisi server, payload menggunakanpayloadsWithMetadata, dengan satu entri untuk setiap pesan MQTT masuk yang berbeda. Setiap affectedIds nilai kegagalan mengacu pada id nilai entri pesan tersebut; mereka bukan indeks titik. Array JSON sisi klien adalah satu pesan masuk meskipun menghasilkan beberapa titik InfluxDB. Untuk format payload lengkap, lihatTindakan Kesalahan untuk Batching.

Skenario kegagalan Deskripsi
Tujuan DINONAKTIFKAN atau ERROR Tujuan tindakan InfluxDB tidak diaktifkan. Verifikasi validasi kepemilikan titik akhir berhasil.
ARN tujuan tidak valid Tujuan yang ditentukan tidak ada.
Peran ARN tidak valid Peran IAM tidak ada atau tidak memiliki izin.
Kegagalan pengambilan rahasia Rahasia atau konfigurasi secretKey tidak ada, atau peran tindakan aturan tidak dapat mengambil atau mendekripsi rahasia.
Stempel waktu hilang Payload tidak berisi timestamp kunci. Setiap objek dalam payload harus menyertakan timestamp bidang dengan nilai zaman Unix integer.
Nilai stempel waktu tidak valid Nilai timestamp bukan integer (misalnya, string, float, atau ISO-8601 tanggal). Nilai harus berupa zaman Unix integer dalam unit yang ditentukan olehtimestampUnit.
Payload tidak valid (tidak ada bidang) Payload tidak berisi bidang yang valid untuk protokol baris setelah menghapus kunci yang dicadangkan.
Kunci bidang tidak valid Kunci bidang kosong atau dimulai dengan_.
Kumpulan klien berisi titik yang tidak valid Satu atau lebih elemen dalam array JSON gagal validasi line-protocol.
Tag+bidang melebihi batas kolom Tag gabungan dan kunci bidang melebihi jumlah kolom maksimum (250).
Kegagalan koneksi AWS IoT Core tidak dapat terhubung ke titik akhir InfluxDB.
Kegagalan otentikasi Token InfluxDB tidak valid atau kedaluwarsa. Perbarui rahasianya AWS Secrets Manager.
Sumber daya tidak ditemukan Database, tabel, atau organisasi yang ditentukan tidak ada di InfluxDB.
Konflik jenis bidang Satu atau lebih bidang bertentangan dengan skema yang ada. Seluruh penulisan batch gagal.
Kesalahan server InfluxDB Terjadi kesalahan internal di InfluxDB.
Layanan InfluxDB tidak tersedia InfluxDB untuk sementara tidak tersedia. Mesin Aturan mencoba lagi dengan mundur eksponensial.
penting

Konflik jenis bidang pada titik mana pun dalam batch menyebabkan seluruh penulisan batch gagal. InfluxDB tidak memberikan sebagian poin — baik semua poin berhasil atau seluruh penulisan ditolak.

Kesalahan yang dapat dicoba ulang (503) dicoba ulang dengan mundur eksponensial. Untuk respon HTTP 401, AWS IoT Core muat ulang token dari AWS Secrets Manager dan coba lagi permintaan sekali. Non-retryable kesalahan (404, 422) memicu tindakan kesalahan segera. Untuk batas coba lagi, lihat kuota AWS IoT Core layanan.

Contoh

Tindakan aturan InfluxDB

{ "topicRulePayload": { "sql": "SELECT * FROM 'devices/+/telemetry'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "influxDB": { "destinationArn": "arn:aws:iot:us-west-2:111122223333:ruledestination/influxdb/a1b2c3d4", "roleArn": "arn:aws:iam::111122223333:role/iot-influxdb-role", "organization": "my-org", "databaseName": "sensor_data", "tableName": "device_metrics", "tags": { "device_id": "${clientid()}", "location": "building-a" }, "timestampUnit": "ms" } } ] } }

Muatan sampel:

{ "timestamp": 1700000000000, "temperature": 23.5, "humidity": 60.1, "pressure": 1013.25, "battery_level": 87 }

Protokol baris yang dihasilkan:

device_metrics,device_id=myDevice123,location=building-a temperature=23.5,humidity=60.1,pressure=1013.25,battery_level=87i 1700000000000

Urutan bidang dalam output dapat bervariasi - bidang tidak diurutkan berdasarkan abjad.

Client-batched payload array dengan templat per elemen

{ "influxDB": { "destinationArn": "arn:aws:iot:us-west-2:111122223333:ruledestination/influxdb/a1b2c3d4", "roleArn": "arn:aws:iam::111122223333:role/iot-influxdb-role", "organization": "my-org", "databaseName": "sensor_data", "tableName": "@{measurement_type}", "tags": { "sensor_id": "@{sensor_id}", "location": "${topic(2)}" }, "timestampUnit": "ns" } }

Muatan sampel (diterbitkan kedevices/floor3/telemetry):

[ {"measurement_type": "temperature", "sensor_id": "sensor-42", "timestamp": 1700000000000000000, "value": 23.5}, {"measurement_type": "humidity", "sensor_id": "sensor-42", "timestamp": 1700000001000000000, "value": 60.1}, {"measurement_type": "pressure", "sensor_id": "sensor-43", "timestamp": 1700000002000000000, "value": 1013.25} ]

Protokol baris yang dihasilkan:

temperature,location=floor3,sensor_id=sensor-42 value=23.5 1700000000000000000 humidity,location=floor3,sensor_id=sensor-42 value=60.1 1700000001000000000 pressure,location=floor3,sensor_id=sensor-43 value=1013.25 1700000002000000000

Server-side batch dengan InfluxDB

Untuk menambahkan batching sisi server ke tindakan InfluxDB apa pun, sertakan dalam konfigurasi tindakan: batchConfig

"batchConfig": { "maxBatchSize": 50, "maxBatchOpenMs": 1000, "maxBatchSizeBytes": 65536, "batchAcrossTopics": false }

Kebijakan IAM untuk peran tindakan aturan

Kebijakan kepercayaan:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"Service": "iot.amazonaws.com"}, "Action": "sts:AssumeRole" } ] }

Kebijakan izin:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:us-west-2:111122223333:secret:my-influxdb-secret-a1b2c3" } ] }

Gabungan batching sisi klien dan sisi server (penataan ulang titik)

Saat Anda mengaktifkan batching sisi klien (muatan array JSON) dan batching sisi server (), ketahuilah bahwa batch sisi server batchConfig dapat menyusun ulang poin dari payload batched sisi klien. Mesin Aturan mengakumulasi poin dari beberapa pesan masuk ke dalam satu batch sisi server. Karena pesan datang secara asinkron dari perangkat atau topik yang berbeda, poin yang diurutkan dalam payload klien asli dapat disisipkan dengan poin dari pesan lain dalam penulisan akhir.

Konfigurasi tindakan:

{ "influxDB": { "destinationArn": "arn:aws:iot:us-west-2:111122223333:ruledestination/influxdb/abc123", "roleArn": "arn:aws:iam::111122223333:role/iot-influxdb-role", "databaseName": "sensor_data", "tableName": "@{measurement_type}", "tags": { "device_id": "${topic(2)}", "floor": "@{floor}" }, "timestampUnit": "ms", "batchConfig": { "maxBatchSize": 100, "maxBatchOpenMs": 500, "maxBatchSizeBytes": 65536, "batchAcrossTopics": true } } }

Perangkat A menerbitkan devices/deviceA/telemetry pada waktu T:

[ {"measurement_type": "temperature", "floor": "1", "timestamp": 1700000000000, "value": 22.1}, {"measurement_type": "temperature", "floor": "2", "timestamp": 1700000000100, "value": 23.4}, {"measurement_type": "humidity", "floor": "1", "timestamp": 1700000000200, "value": 55.0} ]

Perangkat B menerbitkan devices/deviceB/telemetry pada waktu T+10ms:

[ {"measurement_type": "temperature", "floor": "3", "timestamp": 1700000000050, "value": 21.8}, {"measurement_type": "humidity", "floor": "3", "timestamp": 1700000000150, "value": 62.3} ]

Kedua pesan tiba dalam jendela batch 500ms (maxBatchOpenMs), sehingga Rules Engine menggabungkan kelima poin menjadi satu batch sisi server.

Protokol baris yang dihasilkan (penulisan batch sisi server):

temperature,device_id=deviceB,floor=3 value=21.8 1700000000050 temperature,device_id=deviceA,floor=1 value=22.1 1700000000000 temperature,device_id=deviceA,floor=2 value=23.4 1700000000100 humidity,device_id=deviceB,floor=3 value=62.3 1700000000150 humidity,device_id=deviceA,floor=1 value=55.0 1700000000200

Perhatikan bahwa poin tidak lagi dalam urutan yang muncul dalam setiap payload klien. Tiga titik dari Perangkat A (stempel waktu 1700000000000, 1700000000100, 1700000000200) diselingi dengan dua titik dari Perangkat B (stempel waktu 1700000000050, 1700000000150). Batch sisi server tidak menjamin pemesanan asli dalam setiap pesan. InfluxDB menggunakan bidang stempel waktu untuk menempatkan setiap titik pada timeline, jadi penataan ulang tidak mempengaruhi kebenaran kueri. Namun, jika aplikasi Anda bergantung pada semantik urutan tulis (misalnya, menangani konflik jenis bidang atau deduplikasi last-write-wins dalam milidetik yang sama), ketahuilah bahwa urutan penulisan yang efektif mungkin berbeda dari urutan publikasi.