Typ danych ciągu
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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... |