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 poin dalam satu permintaan tulis. AWS IoT Core mengonversi 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 kredensional untuk instans InfluxDB Anda. AWS IoT Core memvalidasi kepemilikan endpoint sebelum mengirim lalu lintas. Lihat Tujuan tindakan InfluxDB.

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

  • Kredensyal InfluxDB disimpan di AWS Secrets Manager - Untuk InfluxDB V3, Amazon TimeStream untuk InfluxDB secara otomatis menyediakan rahasia Secrets Manager saat Anda membuat klaster InfluxDB. Rahasianya berisi kredensil cluster. Untuk InfluxDB V2, buat All Access atau token API kustom dari instans InfluxDB Anda. Simpan nilai token sebagai rahasia plaintext di. AWS Secrets Manager Untuk informasi selengkapnya tentang pembuatan token, lihat Membuat token di InfluxData dokumentasi. Saat runtime, tindakan aturan memanggil secretsmanager:GetSecretValue untuk mengambil kredensil ini sebelum mengautentikasi ke titik akhir InfluxDB Anda.

  • Timestamp dalam payload pesan — Setiap objek dalam payload pesan harus berisi kunci bernama timestamp (case-sensitive) dengan nilai epoch Unix integer. Unit stempel waktu juga dapat diatur dalam definisi aturan IoT. AWS IoT Core tidak menghasilkan stempel waktu untuk tindakan InfluxDB, kecuali ketika InfluxDB digunakan sebagai tindakan Kesalahan.

    catatan

    Alias seperti ts atau time tidak dapat digunakan sebagai pengganti. timestamp

  • Konektivitas HTTPS - Instans InfluxDB Anda harus dapat dijangkau dari 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 mempublikasikan data biner atau Protobuf, gunakan decode()fungsi dalam aturan SQL Anda untuk mengonversi ke JSON sebelum tindakan berjalan.

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 instans 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 ketika rahasianya adalah objek JSON dengan beberapa kunci.

Validasi kepemilikan titik akhir

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

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

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

Respons yang berhasil (2xx) menetapkan status tujuan keENABLED. Pada kegagalan, AWS IoT Core atur status keERROR. Untuk mencoba kembali validasi, panggil UpdateTopicRuleDestination dengan status yang disetel ke. IN_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 akan memetakan ke tag dalam tindakan InfluxDB, dan atribut hasil kueri akan dipetakan ke bidang.

Parameter

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

destinationArn

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

roleArn

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

databaseName

Nama database InfluxDB (disebut bucket di InfluxDB v2, atau database di InfluxDB v3) untuk menulis catatan ke. Mendukung template substitusi: No. 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 ke. Mendukung template substitusi: Ya.

organization

Nama organisasi InfluxDB. Diperlukan untuk InfluxDB v2. Jika Anda menyertakan parameter ini untuk InfluxDB v3, itu diabaikan. Mendukung template substitusi: No.

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 di dalam tabel dan tidak dapat menduplikasi nama bidang.

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

timestampUnit

Ketepatan nilai stempel waktu dalam muatan. Nilai yang valid: s (detik) | ms (milidetik) | us (mikrodetik) | ns (nanodetik). Default: ms. Mendukung template substitusi: No.

batchConfig

(Opsional) konfigurasi Server-side batching. 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. Rentang 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 tentang topik yang berbeda. Default: false.

Batching

Tindakan InfluxDB mendukung dua mode batching.

Client-side batching

Perangkat IoT Anda mengumpulkan 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 satu permintaan tulis. Anda tidak perlu konfigurasi tambahan.

Server-side batching

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

catatan

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

Tindakan InfluxDB diukur berdasarkan ukuran muatan keluar dalam peningkatan 5 KiB. Line-protocol Kegagalan konversi juga diukur.

Per-element template untuk muatan array

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

Sintaks dari dua template substitusi

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

  • @{expression}— Menyelesaikan pada lingkup elemen, terhadap elemen individual dari muatan 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

Mengingat 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 line-protocol, 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 dalamnya@{...}. 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.

Konten rekaman 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 timestampKunci diekstraksi dari muatan

Konversi jenis data

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

Jenis JSON Jenis protokol baris Contoh
Integer (−2³ sampai 2³−1) Bilangan bulat yang ditandatangani (iakhiran) 42 → 42i
Bilangan bulat (2³ sampai 2³−1) Bilangan bulat yang tidak ditandatangani (akhiran) u 9223372036854775808 → 9223372036854775808u
Bilangan bulat di luar (−2³ hingga 2³−1) Ditolak (tindakan kesalahan dipicu) —
Mengapung/desimal IEEE-754 64-bit mengapung 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 kosong dilucuti) {"a":1} → "{\"a\":1}"

Pembatasan penamaan

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

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

  • Koma, tanda sama dengan, dan spasi di kunci bidang, kunci tag, dan nilai tag diloloskan secara otomatis.

  • Pengukuran: koma dan spasi lolos secara otomatis.

  • Tag diurutkan menurut 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 stempel waktu titik.

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

  • Kunci 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 muatan ditulis ke satu tableName sebagai satu catatan. Message-scope template substitusi (${...}) didukung dalam tindakan kesalahan tableName dantags.

Output tindakan kesalahan

Ketika tindakan kesalahan dipicu, payload output 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 digunakan, dengan satu entri untuk setiap payloadsWithMetadata pesan MQTT masuk yang berbeda. Nilai setiap kegagalan mengacu pada affectedIds 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 endpoint 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 dikonfigurasi secretKey tidak ada, atau peran tindakan aturan tidak dapat mengambil atau mendekripsi rahasia.
Stempel waktu tidak ada Muatan tidak mengandung timestamp kunci. Setiap objek dalam payload harus menyertakan timestamp bidang dengan nilai epoch Unix integer.
Nilai stempel waktu tidak valid Nilai stempel waktu bukan bilangan bulat (misalnya, string, float, atau tanggal). ISO-8601 Nilai harus berupa epoch Unix integer dalam unit yang ditentukan oleh. timestampUnit
Payload tidak valid (tidak ada bidang) Payload tidak berisi bidang yang valid untuk protokol baris setelah menghapus kunci cadangan.
Kunci bidang tidak valid Kunci bidang kosong atau dimulai dengan_.
Batch klien berisi titik tidak valid Satu atau lebih elemen dalam array JSON gagal validasi line-protocol.
Tags + bidang melebihi batas kolom Gabungan tag 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 di AWS Secrets Manager.
Sumber daya tidak ditemukan Database, tabel, atau organisasi yang ditentukan tidak ada di InfluxDB.
Konflik tipe lapangan 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 sementara tidak tersedia. Rules Engine mencoba lagi dengan backoff eksponensial.
penting

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

Kesalahan yang dapat dicoba ulang (503) dicoba ulang dengan backoff eksponensial. Untuk respons HTTP 401, AWS IoT Core muat ulang token dari AWS Secrets Manager dan coba ulang permintaan sekali. Non-retryable kesalahan (404, 422) segera memicu tindakan kesalahan. 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" } } ] } }

Sampel muatan:

{ "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 menurut abjad.

Client-batched muatan 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" } }

Contoh muatan (dipublikasikan 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 batching 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 dapat batchConfig menyusun ulang poin dari muatan batch sisi klien. Rules Engine mengakumulasi poin dari beberapa pesan masuk ke dalam satu batch sisi server. Karena pesan tiba secara asinkron dari perangkat atau topik yang berbeda, poin yang diurutkan dalam muatan 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 mereka muncul dalam setiap muatan klien. Tiga titik dari Perangkat A (stempel waktu 1700000000000, 1700000000100, 1700000000200) disisipkan 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, sehingga penataan ulang tidak memengaruhi kebenaran kueri. Namun, jika aplikasi Anda bergantung pada semantik urutan tulis (misalnya, menangani konflik tipe bidang atau deduplikasi tulis-menang terakhir dalam milidetik yang sama), ketahuilah bahwa urutan penulisan efektif mungkin berbeda dari urutan publikasi.