Bagikan melalui


Jenis data string

Jenis data string mewakili urutan nol atau beberapa karakter Unicode.

Untuk informasi tentang operator kueri string, lihat Operator string.

Catatan

  • Secara internal, string dikodekan dalam UTF-8. Karakter tidak valid (non-UTF8) diganti dengan karakter pengganti U +FFFD Unicode pada waktu penyerapan.
  • Kusto tidak memiliki jenis data yang setara dengan satu karakter. Satu karakter diwakili sebagai string panjang 1.
  • Saat menyerap jenis data string, jika nilai string tunggal dalam rekaman melebihi 1 MB (diukur menggunakan pengodean UTF-8), nilainya dipotong dan penyerapan berhasil. Anda dapat meningkatkan MaxValueSize kolom dengan mengubah kebijakan pengodeannya.
  • Jika satu nilai string dalam rekaman, atau seluruh rekaman, melebihi batas data yang diizinkan sebesar 64 MB, penyerapan gagal.

Literal string

Anda dapat menggunakan tanda kutip ganda atau tanda kutip tunggal untuk mengodekan literal string dalam teks kueri. Dengan tanda kutip ganda, Anda harus menghindari karakter kutipan ganda berlapis dengan garis miring terbelakang (\). Dengan tanda kutip tunggal, Anda harus menghindari karakter kutipan tunggal berlapis, dan Anda tidak perlu menghindari tanda kutip ganda.

Gunakan karakter garis miring terbelakang untuk meloloskan karakter kutipan, karakter tab (\t), karakter garis baru (\n), dan garis miring terbelakang itu sendiri (\\).

Catatan

Karakter baris baru (\n) dan karakter pengembalian (\r) harus diapit dalam tanda kutip kecuali menggunakan literal string multibaris.

Harfiah string verbatim

Harfiah string verbatim juga didukung. Dalam bentuk ini, karakter garis miring terbelakang (\) adalah singkatan dari dirinya sendiri dan bukan karakter escape. Prepending @ karakter untuk string literal berfungsi sebagai pengidentifikasi verbatim. Dalam literal string verbatim, tanda kutip ganda lolos dengan tanda kutip ganda dan tanda kutip tunggal diloloskan dengan tanda kutip tunggal.

Misalnya, lihat String verbatim.

Catatan

Karakter baris baru (\n) dan karakter pengembalian (\r) harus diapit dalam tanda kutip kecuali menggunakan literal string multibaris.

Harfiah string multibaris

Menunjukkan literal string multibaris dengan "akord triple-backtick" (''') di awal dan akhir harfiah.

Misalnya, lihat String multibaris literal.

Catatan

  • Literal string multibaris mendukung karakter baris baru (\n) dan mengembalikan (\r).
  • Harfiah string multibaris tidak mendukung karakter yang escape. Mirip dengan literal string verbatim.
  • Literal string multibaris tidak mendukung obfuscation.

Perangkaian literal string yang dipisahkan

Dalam kueri Kusto, ketika dua literal string atau lebih yang berdekatan tidak memiliki pemisahan di antara mereka, mereka secara otomatis digabungkan untuk membentuk string literal baru. Demikian pula, jika literal string hanya dipisahkan oleh spasi kosong atau komentar, string tersebut juga digabungkan untuk membentuk string literal baru.

Misalnya, lihat Literal string yang digabungkan.

Harfiah string yang dikaburkan

Kueri disimpan untuk telemetri dan analisis. Untuk melindungi informasi sensitif seperti kata sandi dan rahasia, Anda dapat menandai string sebagai string yang dikaburkan secara harfiah. String yang ditandai ini diganti dengan tanda bintang (*) dalam teks kueri.

String harfiah yang dikaburkan dibuat dengan prepending atau hH karakter di depan literal string standar atau verbatim.

Misalnya, lihat Untai (karakter) yang dikaburkan secara harfiah.

Penting

Tandai semua literal string yang berisi informasi rahasia sebagai literal string yang dikaburkan.

Tip

Dalam beberapa situasi, hanya sebagian string yang berisi informasi rahasia. Dalam kasus seperti itu, bagi harfiah menjadi bagian non-rahasia dan bagian rahasia. Kemudian, beri label hanya bagian rahasia sebagai dikaburkan.

Contoh

String literal dengan tanda kutip

Contoh berikut menunjukkan cara menggunakan tanda kutip dalam literal string yang dilapisi oleh tanda kutip tunggal dan tanda kutip ganda. Untuk informasi selengkapnya, lihat Literal string.

print
    s1 = 'string with "double quotes"',
    s2 = "string with 'single quotes'"

Hasil

s1 s2
string dengan "tanda kutip ganda" string dengan 'tanda kutip tunggal'

String literal dengan backslash melarikan diri

Contoh berikut membuat pola ekspresi reguler menggunakan garis miring terbelakang untuk menghindari karakter khusus. Untuk informasi selengkapnya, lihat Literal string.

print pattern = '\\n.*(>|\'|=|\")[a-zA-Z0-9/+]{86}=='

Hasil

pola
\n.*(>|'|=|") [a-zA-Z0-9/+]{86}==

String literal dengan Unicode

Contoh berikut menunjukkan bahwa garis miring terbalik diperlukan untuk menyertakan karakter Unicode dalam string literal.

print space = "Hello\u00A0World"

Hasil

space
Halo Dunia

String verbatim harfiah

Contoh berikut membuat jalur di mana garis miring terbelakang adalah bagian dari jalur alih-alih karakter escape. Untuk melakukan ini, tanda string @ didahului ke string, membuat string verbatim literal.

print myPath = @'C:\Folder\filename.txt'

Hasil

myPath
C:\Folder\filename.txt

String multibaris literal

Contoh berikut menunjukkan sintaksis untuk string multibaris literal, yang menggunakan baris baru dan tab untuk menata blok kode. Untuk informasi selengkapnya, lihat Literal string multibaris.

print program = ```
  public class Program {
    public static void Main() {
      System.Console.WriteLine("Hello!");
    }
  }```

Hasil

program
Program kelas publik { public static void Main() { System.Console.WriteLine("Hello!"); } }

Literal string yang digabungkan

Ekspresi berikut semuanya menghasilkan untai panjang 13. Untuk informasi selengkapnya, lihat Penggalian literal string yang dipisahkan.

print 
    none = strlen("Hello"', '@"world!"),
    whitespace = strlen("Hello" ', ' @"world!"),
    whitespaceAndComment = strlen("Hello" 
        // Comment
        ', '@"world!"
    );

Hasil

tidak ada spasi kosong whitespaceAndComment
13 13 13

Untai (karakter) yang dikaburkan secara harfiah

Dalam output kueri berikut, h string terlihat. Namun, dalam pelacakan atau telemetri, h string diganti dengan tanda bintang. Untuk informasi selengkapnya, lihat Literal string yang dikaburkan.

print blob="https://contoso.blob.core.windows.net/container/blob.txt?"
    h'sv=2012-02-12&se=2013-04-13T0...'

Hasil

blob
https://contoso.blob.core.windows.net/container/blob.txt?sv=2012-02-12& se=2013-04-13T0...