All Products
Search
Document Center

Time Series Database:Referensi protokol baris

Last Updated:Mar 29, 2026

Protokol baris adalah format berbasis teks untuk menulis titik data ke TSDB for InfluxDB®.

Sintaks

<measurement>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>]

Setiap baris merepresentasikan satu titik data dan dipisahkan oleh line feed (\n). Protokol baris sensitif terhadap spasi.

Contoh

myMeasurement,tag1=val1,tag2=val2 field1="v1",field2=1i 1465839830100400200

Pada contoh ini:

  • myMeasurement adalah nama measurement

  • tag1=val1,tag2=val2 adalah tag set

  • field1="v1",field2=1i adalah field set

  • 1465839830100400200 adalah stempel waktu dalam nanodetik.

Elemen

ElemenWajibDeskripsiTipe
measurementYaNama measurement. Hanya satu measurement per titik data.String
tag setTidakSemua pasangan kunci-nilai tag untuk titik data tersebut.Kunci dan nilai harus berupa string
field setYa. Minimal satu field wajib ada.Semua pasangan kunci-nilai field untuk titik data tersebut.Kunci field: string. Nilai field: float, integer, string, atau Boolean
timestampTidak. Default-nya menggunakan waktu UTC lokal server dalam nanodetik.Timestamp dari titik data. Hanya satu timestamp per titik data.UNIX timestamp dalam nanodetik

Tipe data

TipeBerlaku untukDetail
FLOATNilai fieldBilangan titik mengambang 64-bit IEEE-754. Merupakan tipe numerik default. Contoh: 1, 1.0, 1.e+78, 1.E+78. Notasi ilmiah didukung.
INTEGERNilai fieldInteger bertanda 64-bit, rentang dari -9223372036854775808 hingga 9223372036854775807. Tambahkan akhiran i pada nilai. Contoh: 1i.
STRINGMeasurement, kunci tag, nilai tag, kunci field, nilai fieldMaksimal 64 KB.
BOOLEANNilai fieldTulis nilai TRUE sebagai t, T, true, True, atau TRUE. Tulis nilai FALSE sebagai f, F, false, False, atau FALSE.
TIMESTAMPTimestampTimestamp UNIX dalam nanodetik. Minimum: -9223372036854775806 (1677-09-21T00:12:43.145224194Z). Maksimum: 9223372036854775806 (2262-04-11T23:47:16.854775806Z). Gunakan HTTP API untuk menulis timestamp dengan presisi lain.
Sintaks penulisan nilai Boolean berbeda dengan sintaks saat mengkuerinya. Untuk informasi lebih lanjut, lihat FAQ.
Tipe nilai field harus konsisten dalam satu shard, tetapi dapat berbeda antar shard. Mengenai bagaimana konflik tipe memengaruhi kueri SELECT *, lihat FAQ.

Contoh tipe data

Tuliskan 1.0 sebagai float

> INSERT mymeas value=1

Menulis 1 sebagai float

> INSERT mymeas value=1

Literal numerik tanpa akhiran i secara bawaan merupakan tipe float.

Menulis -1.234456e+78 sebagai float

> INSERT mymeas value=-1.234456e+78

Menulis 1 sebagai integer

> INSERT mymeas value=1i

Menulis nilai field berupa string

> INSERT mymeas value="stringing along"

Nilai field berupa string harus diapit tanda kutip ganda.

Menulis nilai field Boolean

> INSERT mymeas value=true

Jangan membungkus nilai field Boolean dengan tanda kutip. Pernyataan berikut menulis true sebagai string, bukan Boolean:

> INSERT mymeas value="true"

Konflik tipe dalam shard yang sama

> INSERT mymeas value=3 1465934559000000000
> INSERT mymeas value="stringing along" 1465934559000000001
ERR: {"error":"field type conflict: input field \"value\" on measurement \"mymeas\" is type string, already exists as type float"}

Konflik tipe antar shard (berhasil)

> INSERT mymeas value=3 1465934559000000000
> INSERT mymeas value="stringing along" 1466625759000000000
>

Ketika dua timestamp tersebut berada di shard yang berbeda, konflik tipe tidak menghasilkan error.

Tanda kutip, karakter khusus, dan panduan penamaan tambahan

Tanda kutip

ElemenTanda kutip ganda (")Tanda kutip tunggal (')
TimestampTidak digunakanTidak digunakan
measurement, kunci tag, nilai tag, kunci fieldTidak digunakanTidak digunakan
Nilai field (STRING)Wajib. Nilai field STRING harus diapit tanda kutip ganda. Jangan gunakan tanda kutip untuk float, integer, atau Boolean.Tidak digunakan

Menggunakan tanda kutip ganda atau tunggal di sekitar nama measurement, kunci tag, nilai tag, atau kunci field akan menjadikannya bagian dari nama tersebut — yang dapat mempersulit sintaks kueri. Hindari penggunaan tanda kutip pada elemen-elemen tersebut dalam data protokol baris.

Tidak valid: timestamp dalam tanda kutip ganda

> INSERT mymeas value=9 "1466625759000000000"
ERR: {"error":"unable to parse 'mymeas value=9 \"1466625759000000000\"': bad timestamp"}

Membungkus timestamp dengan tanda kutip menyebabkan error bad timestamp.

Error semantik: nilai field Boolean dalam tanda kutip ganda

> INSERT mymeas value="true"
> SHOW FIELD KEYS FROM "mymeas"
name: mymeas
------------
fieldKey         fieldType
value            string

TSDB for InfluxDB® memperlakukan semua nilai field yang diapit tanda kutip ganda sebagai string.

Error semantik: nama measurement dalam tanda kutip ganda

> INSERT "mymeas" value=200
> SHOW MEASUREMENTS
name: measurements
------------------
name
"mymeas"
> SELECT * FROM mymeas
> SELECT * FROM "mymeas"
> SELECT * FROM "\"mymeas\""
name: "mymeas"
--------------
time                              value
2016-06-14T20:36:21.836131014Z   200

Ketika nama measurement diapit tanda kutip ganda, tanda kutip tersebut menjadi bagian dari nama. Untuk mengkueri measurement tersebut, escape setiap tanda kutip ganda dengan backslash pada klausa FROM: "\"mymeas\"".

Karakter khusus

Escape karakter-karakter berikut dengan backslash (\):

ElemenKarakter yang harus di-escape
Nama PengukuranKoma (,), spasi ( )
Kunci tagKoma (,), tanda sama dengan (=), spasi ( )
Nilai tagKoma (,), tanda sama dengan (=), spasi ( )
Kunci fieldKoma (,), tanda sama dengan (=), spasi ( )
Nilai field (STRING)Tanda kutip ganda (")

Backslash (\) tidak perlu di-escape. Karakter khusus lain yang tidak tercantum di atas juga tidak perlu di-escape.

Contoh: titik data dengan karakter khusus

> INSERT "measurement\ with\ quo⚡️es\ and\ emoji",tag\ key\ with\ sp⚡️ces=tag\,value\,with"commas" field_k\ey="string field value, only \" need be esc⚡️ped"

Panduan penamaan tambahan

  • Komentar: Tanda pagar (#) di awal baris menandai komentar. TSDB for InfluxDB® mengabaikan semua karakter antara # dan line feed berikutnya (\n).

  • Sensitivitas huruf besar/kecil: Nama measurement, kunci tag, nilai tag, kunci field, dan nilai field semuanya bersifat case-sensitive.

  • Kata kunci InfluxQL: Hindari penggunaan kata kunci InfluxQL sebagai nama identifier. Jika digunakan sebagai identifier, kata kunci InfluxQL dapat diinterpretasikan sebagai kata kunci kueri, sehingga menyebabkan error kueri.

  • Kata kunci `time`: time dapat digunakan sebagai nama continuous query, nama database, nama measurement, nama retention policy, nama subscription, atau username — tanpa tanda kutip ganda. Namun, time tidak dapat digunakan sebagai kunci field atau kunci tag. TSDB for InfluxDB® menolak permintaan penulisan seperti itu dengan error. Untuk informasi lebih lanjut, lihat FAQ.

Menulis data protokol baris

Untuk petunjuk menulis data protokol baris ke database, lihat bab Tools.

Titik data duplikat

Sebuah titik data diidentifikasi secara unik berdasarkan nama measurement, tag set, dan timestamp-nya. Jika Anda menulis titik data dengan measurement, tag set, dan timestamp yang sama dengan titik yang sudah ada:

  • Jika titik baru memiliki field set yang berbeda dari titik yang sudah ada, field set-nya menjadi gabungan (union) dari field set lama dan baru.

  • Jika terjadi konflik pada kunci field, nilai baru akan menggantikan nilai lama.

Untuk contoh dan panduan menghindari duplikasi, lihat FAQ.

Catatan penggunaan

  • Urutkan tag sebelum menulis: Urutkan tag berdasarkan kunci tag menggunakan urutan yang sama seperti fungsi Go bytes.Compare. Pengurutan tag yang konsisten meningkatkan performa penulisan.

  • Gunakan presisi timestamp yang lebih kasar: Kami menyarankan menggunakan timestamp bergranularitas kasar untuk meningkatkan performa kompresi data.

  • Sinkronkan jam dengan NTP: TSDB for InfluxDB® menggunakan waktu UTC lokal host untuk memberikan timestamp. Jika jam host tidak disinkronkan dengan server Network Time Protocol (NTP), data yang ditulis mungkin memiliki timestamp yang tidak akurat.

InfluxDB® adalah merek dagang terdaftar milik InfluxData, yang tidak berafiliasi dengan, dan tidak mendukung, TSDB for InfluxDB®.