Udostępnij za pośrednictwem


Typ danych ciągu

Dotyczy: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Typ string danych reprezentuje sekwencję zero lub więcej znaków Unicode .

Aby uzyskać informacje na temat operatorów zapytań ciągów, zobacz Operatory ciągów.

Uwaga

  • Wewnętrznie ciągi są kodowane w formacie UTF-8. Nieprawidłowe znaki (inne niż UTF8) są zastępowane znakami zastępczymi U+FFFD Unicode w czasie pozyskiwania.
  • Usługa Kusto nie ma typu danych, który jest odpowiednikiem pojedynczego znaku. Pojedynczy znak jest reprezentowany jako ciąg o długości 1.
  • W przypadku pozyskiwania string typu danych, jeśli pojedyncza wartość ciągu w rekordzie przekracza 1 MB (mierzone przy użyciu kodowania UTF-8), wartość zostanie obcięta i pozyskiwanie zakończy się powodzeniem. Jeśli pojedyncza wartość ciągu w rekordzie lub cały rekord przekroczy dozwolony limit danych 64 MB, pozyskiwanie nie powiedzie się.
  • W przypadku pozyskiwania string typu danych, jeśli pojedyncza wartość ciągu w rekordzie przekracza 1 MB (mierzone przy użyciu kodowania UTF-8), wartość zostanie obcięta i pozyskiwanie zakończy się powodzeniem. Kolumnę MaxValueSize można zwiększyć, zmieniając jej zasady kodowania.
  • Jeśli pojedyncza wartość ciągu w rekordzie lub cały rekord przekroczy dozwolony limit danych 64 MB, pozyskiwanie nie powiedzie się.

string Literały

Literał ciągu jest ciągiem ujętym w cudzysłów. Możesz użyć cudzysłowów podwójnych lub pojedynczych cudzysłowów, aby zakodować literały ciągu w tekście zapytania. W przypadku cudzysłowów należy unikać zagnieżdżonych podwójnych znaków cudzysłowu z ukośnikiem odwrotnym (\). W przypadku pojedynczych cudzysłowów należy unikać zagnieżdżonych znaków pojedynczego cudzysłowu i nie trzeba uciekać przed podwójnymi cudzysłowami.

Użyj znaku ukośnika odwrotnego, aby uciec od otaczającego cudzysłowu, znaków tabulatora (\t), znaków nowego wiersza (\n) i samego ukośnika odwrotnego (\\).

Uwaga

Znak nowego wiersza (\n) i znak zwracany (\r) muszą być ujęte w cudzysłowy, chyba że są używane literały ciągu wielowierszowego.

Literały ciągów dosłownych

Literały ciągu dosłownego są literałami ciągów wypełnionymi @ znakiem, który służy jako identyfikator dosłowny. W tej formie znak ukośnika odwrotnego (\) oznacza sam siebie i nie jest znakiem ucieczki. W literałach ciągów dosłownych cudzysłowy podwójne są ucieczki z cudzysłowami podwójnymi, a cudzysłowy pojedyncze są ucieczki za pomocą cudzysłowów pojedynczych.

Aby zapoznać się z przykładem, zobacz Ciąg dosłowny.

Uwaga

Znak nowego wiersza (\n) i znak zwracany (\r) muszą być ujęte w cudzysłowy, chyba że są używane literały ciągu wielowierszowego.

Literały ciągu wielowierszowego

Wskazuje literały ciągu wielowierszowego według "potrójnego akordu backtick" (''') na początku i na końcu literału.

Aby zapoznać się z przykładem, zobacz Literał ciągu wielowierszowego.

Uwaga

  • Literały ciągów wielowierszowych obsługują znaki nowego wiersza (\n) i zwracania (\r).
  • Literały ciągu wielowierszowego nie obsługują znaków ucieczki. Podobnie jak literały ciągu dosłowne.
  • Literały ciągu wielowierszowego nie obsługują zaciemniania.

Łączenie literałów rozdzielonych ciągów

W zapytaniu Kusto, gdy dwa lub więcej sąsiednich literałów ciągu nie ma separacji między nimi, są one automatycznie łączone w celu utworzenia nowego literału ciągu. Podobnie, jeśli literały ciągu są oddzielone tylko białym znakiem lub komentarzami, są one również łączone w celu utworzenia nowego literału ciągu.

Aby zapoznać się z przykładem, zobacz Łączenie literałów ciągu.

Zaciemnione literały ciągu

Zapytania są przechowywane na potrzeby telemetrii i analizy. Aby chronić poufne informacje, takie jak hasła i wpisy tajne, możesz oznaczyć ciąg jako zaciemniony literał ciągu. Te oznaczone ciągi są rejestrowane w postaci zaciemnionej zastąpionej gwiazdkami (*) w tekście zapytania.

Zaciemniony literał ciągu jest tworzony przez poprzedzanie h znaku lub H przed standardowym lub dosłownym literałem ciągu.

Aby zapoznać się z przykładem, zobacz Zaciemniony literał ciągu.

Ważne

Oznacz wszystkie literały ciągu zawierające informacje tajne jako zaciemnione literały ciągu.

Napiwek

W niektórych sytuacjach tylko część literału ciągu zawiera informacje tajne. W takich przypadkach należy podzielić literał na część nieskrytą i część wpisu tajnego. Następnie oznacz tylko część wpisu tajnego jako zaciemnioną.

Przykłady

Literał ciągu z cudzysłowami

W poniższym przykładzie pokazano, jak używać cudzysłowów w literałach ciągu obejmujących pojedyncze cudzysłowy i cudzysłowy. Aby uzyskać więcej informacji, zobacz Literały ciągu.

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

Wyjście

s1 s2
ciąg z cudzysłowami podwójnymi ciąg z cudzysłowami pojedynczymi

Literał ciągu z ukośnikiem odwrotnym

Poniższy przykład tworzy wzorzec wyrażenia regularnego przy użyciu ukośników odwrotnych w celu ucieczki znaków specjalnych. Aby uzyskać więcej informacji, zobacz Literały ciągu.

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

Wyjście

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

Literał ciągu z unicode

W poniższym przykładzie pokazano, że do uwzględnienia znaku Unicode w literału ciągu jest wymagany ukośnik odwrotny.

print space = "Hello\u00A0World"

Wyjście

miejsca
Witaj, świecie

Literał ciągu dosłowny

Poniższy przykład tworzy ścieżkę, w której ukośniki odwrotne są częścią ścieżki zamiast znaków ucieczki. W tym celu znak ciągu @ jest poprzedzany ciągiem, tworząc literał ciągu dosłownego.

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

Wyjście

myPath
C:\Folder\filename.txt

Literał ciągu wielowierszowego

W poniższym przykładzie pokazano składnię literału ciągu wielowierszowego, który używa nowych linii i kart do tworzenia stylu bloku kodu. Aby uzyskać więcej informacji, zobacz Literały ciągu wielowierszowego.

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

Wyjście

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

Łączenie literałów ciągu

Poniższe wyrażenia dają ciąg o długości 13. Aby uzyskać więcej informacji, zobacz Łączenie rozdzielonych literałów ciągów.

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

Wyjście

Brak znak odstępu biały znakAndComment
13 13 13

Zaciemniony literał ciągu

W poniższych danych wyjściowych h zapytania ciąg jest widoczny w wynikach. Jednak w śledzeniu lub telemetrii h ciąg jest przechowywany w postaci zaciemnionej i zastępowany gwiazdkami w dzienniku. Aby uzyskać więcej informacji, zobacz Zaciemnione literały ciągu.

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

Wyjście

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