Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sucht Zeilen, die einem Prädikat in einer Reihe von Tabellen entsprechen.
Der Umfang des find Operators kann auch datenbankübergreifend oder clusterübergreifend sein.
find in (Table1, Table2, Table3) where Fruit=="apple"
find in (database('*').*) where Fruit == "apple"
find in (cluster('cluster_name').database('MyDB*').*) where Fruit == "apple"
find in (Table1, Table2, Table3) where Fruit=="apple"
Hinweis
find Operator ist wesentlich weniger effizient als spaltenspezifische Textfilterung. Wann immer die Spalten bekannt sind, empfehlen wir die Verwendung des Where-Operators.
find funktioniert nicht gut, wenn der Arbeitsbereich eine große Anzahl von Tabellen und Spalten enthält und das zu scannende Datenvolumen hoch ist und der Zeitraum der Abfrage hoch ist.
Syntax
find[withsource= ColumnName] [in(Tables)]wherePrädikat [project-smart|projectColumnName[:ColumnType,... ] [,pack_all()]]findPrädikat [project-smart|projectColumnName[:ColumnType,... ] [ ]],pack_all()
Erfahren Sie mehr über Syntaxkonventionen.
Parameter
| Name | Typ | Erforderlich | Beschreibung des Dataflows |
|---|---|---|---|
| "ColumnName" | string |
Standardmäßig enthält die Ausgabe eine Spalte namens source_, deren Werte angeben, welche Quelltabelle zu jeder Zeile beigetragen hat. Wenn angegeben, wird ColumnName- anstelle von source_verwendet. Wenn die Abfrage tabellen aus mehr als einer Datenbank einschließlich der Standarddatenbank referenziert, weist der Wert dieser Spalte einen Tabellennamen auf, der mit der Datenbank qualifiziert ist. Ebenso sind Cluster- und Datenbank Qualifikationen im Wert vorhanden, wenn auf mehrere Cluster verwiesen wird. | |
| Prädikat | bool |
✔️ | Dieser boolesche Ausdruck wird für jede Zeile in jeder Eingabetabelle ausgewertet. Weitere Informationen finden Sie unter Prädikatsyntaxdetails. |
| Tabellen | string |
Null- oder mehr durch Trennzeichen getrennte Tabellenverweise. Standardmäßig sucht find in allen Tabellen in der aktuellen Datenbank. Verwenden Sie Folgendes:1. Der Name einer Tabelle, z. B. Events2. Ein Abfrageausdruck, z. B. (Events | where id==42)3. Eine Gruppe von Tabellen, die mit einem Wildcard angegeben sind. Würde beispielsweise die Vereinigung aller Tabellen in der Datenbank bilden, E* deren Namen mit E. |
|
project-smart oder project |
string |
Wenn nicht angegeben, wird project-smart standardmäßig verwendet. Weitere Informationen finden Sie unter Ausgabeschemadetails. |
withsource=ColumnName: Optional. Standardmäßig enthält die Ausgabe eine Spalte namens source_, deren Werte angeben, welche Quelltabelle jede Zeile beigetragen hat. Wenn angegeben, wird ColumnName- anstelle von source_verwendet.Prädikat: Ein
booleanAusdruck über den Spalten der Eingabetabellen Tabelle [,Tabelle, ...]. Sie wird für jede Zeile in jeder Eingabetabelle ausgewertet. Weitere Informationen finden Sie unter Prädikatsyntaxdetails.Tabellen: Optional. Null- oder mehr durch Trennzeichen getrennte Tabellenverweise. Standardmäßig suchen alle Tabellen nach:
- Der Name einer Tabelle, z. B.
Events. - Ein Abfrageausdruck, z.B.
(Events | where id==42). - Ein Satz von Tabellen, die mit einem Platzhalterzeichen angegeben sind. Würde beispielsweise die Vereinigung aller Tabellen bilden,
E*deren Namen mitE.
- Der Name einer Tabelle, z. B.
project-smart|project: Wenn nicht angegeben, wird standardmäßigproject-smartverwendet. Weitere Informationen finden Sie unter Ausgabeschemadetails.
Gibt zurück
Transformation von Zeilen in Tabelle [,, ...] für das Prädikat ist true. Die Zeilen werden gemäß dem Ausgabeschema transformiert.
Ausgabeschema
spalte source_
Die ausgabe des find Operators enthält immer eine source_ Spalte mit dem Quelltabellennamen. Die Spalte kann mit dem withsource Parameter umbenannt werden.
Ergebnisspalten
Quelltabellen, die keine Spalten enthalten, die von der Prädikatauswertung verwendet werden, werden herausgefiltert.
Wenn Sie project-smartverwenden, sind die spalten, die in der Ausgabe angezeigt werden:
- Spalten, die explizit im Prädikat angezeigt werden.
- Spalten, die allen gefilterten Tabellen gemeinsam sind.
Die restlichen Spalten werden in einen Eigenschaftenbehälter verpackt und in einer zusätzlichen pack Spalte angezeigt.
Eine Spalte, auf die explizit vom Prädikat verwiesen wird und in mehreren Tabellen mit mehreren Typen angezeigt wird, weist für jeden solchen Typ eine andere Spalte im Ergebnisschema auf. Jede der Spaltennamen wird aus dem ursprünglichen Spaltennamen und -typ erstellt, getrennt durch einen Unterstrich.
Bei Verwendung von projectColumnName[ : ColumnType, ... ] [,pack_all()]:
- Die Ergebnistabelle enthält die in der Liste angegebenen Spalten. Wenn eine Quelltabelle keine bestimmte Spalte enthält, sind die Werte in den entsprechenden Zeilen null.
- Wenn Sie einen ColumnType- mit einem ColumnName-angeben, weist diese Spalte im "Ergebnis" den angegebenen Typ auf, und die Werte werden bei Bedarf in diesen Typ umgegossen. Die Umwandlung wirkt sich nicht auf den Spaltentyp aus, wenn das Prädikatausgewertet wird.
- Wenn
pack_all()verwendet wird, werden alle Spalten, einschließlich der projizierten Spalten, in einen Eigenschaftenbehälter gepackt und in einer zusätzlichen Spalte angezeigt, standardmäßig "Spalte1". Im Eigenschaftenbehälter dient der Name der Quellspalte als Eigenschaftsname, und der Wert der Spalte dient als Eigenschaftswert.
Prädikatsyntax
Der find-Operator unterstützt eine alternative Syntax für den * has Ausdruck und durchsucht nur Ausdruckeinen Begriff über alle Eingabespalten.
Eine Zusammenfassung einiger Filterfunktionen finden Sie unter dem Operator.
Betrachtungen
- Wenn die
projectKlausel auf eine Spalte verweist, die in mehreren Tabellen angezeigt wird und mehrere Typen aufweist, muss ein Typ diesem Spaltenverweis in der Projektklausel folgen. - Wenn eine Spalte in mehreren Tabellen angezeigt wird und mehrere Typen aufweist und
project-smartverwendet wird, gibt es eine entsprechende Spalte für jeden Typ im Ergebnis desfind, wie in Union - Wenn Sie projektbasiertenverwenden, können Änderungen im Prädikat, im Satz der Quelltabellen oder im Tabellenschema zu einer Änderung des Ausgabeschemas führen. Wenn ein konstantes Ergebnisschema erforderlich ist, verwenden Sie stattdessen das Projekt.
-
findBereich kann keine Funktionen enthalten. Um eine Funktion in den bereichfindeinzuschließen, definieren Sie eine let-Anweisung mit Ansicht-Schlüsselwort.
Leistungstipps
- Verwenden Sie Tabellen im Gegensatz zu tabellarischen Ausdrücken.
Wenn ein tabellarischer Ausdruck auftritt, greift der Suchoperator auf eine
unionAbfrage zurück, die zu einer beeinträchtigten Leistung führen kann. - Wenn eine Spalte, die in mehreren Tabellen angezeigt wird und mehrere Typen aufweist, Teil der Projektklausel ist, bevorzugen Sie das Hinzufügen eines ColumnType-Werts zur Projektklausel, um die Tabelle zu ändern, bevor Sie sie
findan übergeben. - Fügen Sie dem Prädikat zeitbasierte Filter hinzu. Verwenden Sie einen Datetime-Spaltenwert oder ingestion_time().
- Suchen Sie in bestimmten Spalten anstelle einer Volltextsuche.
- Es ist besser, nicht auf Spalten zu verweisen, die in mehreren Tabellen angezeigt werden und über mehrere Typen verfügen. Wenn das Prädikat gültig ist, wenn ein solcher Spaltentyp für mehrere Typen aufgelöst wird, wird die Abfrage wieder auf Union zurückgestellt.
Beispiele für Fälle, in denen
findals Union fungiert, finden Sie unterBeispielen.
Beispiele
Allgemeine Beispiele
Im folgenden Beispiel werden alle Zeilen aus allen Tabellen in der aktuellen Datenbank gefunden, in denen jede Spalte das Wort Hernandezenthält. Die resultierenden Datensätze werden gemäß dem Ausgabeschema transformiert. Die Ausgabe enthält Zeilen aus der Customers Tabelle und die SalesTable Tabelle der ContosoSales Datenbank.
find "Hernandez"
Ausgabe
Diese Tabelle zeigt die ersten drei Zeilen der Ausgabe an.
| Quelle_ | packen_ |
|---|---|
| Kundschaft | {"CityName":"Ballard","CompanyName":"NULL","ContinentName":"North America","CustomerKey":5023,"Education":"Partial High School","FirstName":"Devin","Gender ":"M","LastName":"Hernandez","MaritalStatus":"S","Occupation":"Clerical","RegionCountryName":"United States","StateProvinceName":"Washington"} |
| Kundschaft | {"CityName":"Ballard","CompanyName":"NULL","ContinentName":"North America","CustomerKey":7814,"Education":"Partial College","FirstName":"Kristy","Kristy","Gender":"F","LastName":"Hernandez","MaritalStatus":"S","Occupation":"Professional","RegionCountryName":"United States","StateProvinceName":"Washington"} |
| Kundschaft | {"CityName":"Ballard","CompanyName":"NULL","ContinentName":"North America","CustomerKey":7888,"Education":"Partial High School","FirstName":"Kari","Gender ":"F","LastName":"Hernandez","MaritalStatus":"S","Occupation":"Clerical","RegionCountryName":"United States","StateProvinceName":"Washington"} |
| ... | ... |
Im folgenden Beispiel werden alle Zeilen aus allen Tabellen in der aktuellen Datenbank gefunden, deren Name mit Cdem Wort beginnt und in dem eine Spalte das Wort Hernandezenthält. Die resultierenden Datensätze werden gemäß dem Ausgabeschema transformiert. Jetzt enthält die Ausgabe nur Datensätze aus der Customers Tabelle.
find in (C*) where * has "Hernandez"
Ausgabe
Diese Tabelle zeigt die ersten drei Zeilen der Ausgabe an.
| Quelle_ | packen_ |
|---|---|
| ConferenceSessions | {"conference":"Build 2021","sessionid":"CON-PRT103","session_title":"Roundtable: Advanced Kusto query language topics","session_type":"Roundtable","owner":"Avner Aharoni","participants":"Alexander Sloutsky, Tzvia Gitlin-Troyna","URL":"https://sessions.mybuild.microsoft.com/sessions/details/4d4887e9-f08d-4f88-99ac-41e5feb869e7","level":200,"session_location":"Online","starttime":"2021-05-26T08:30:00.0000000Z","duration":60,"time_and_duration":"Mittwoch, 26. Mai\n8:30 - 9:30 UHR GMT","kusto_affinity":"Focused"} |
| ConferenceSessions | {"conference":"Ignite 2018","sessionid":"THR3115","session_title":"Azure Log Analytics: Deep dive into the Azure Kusto query language. ","session_type":"Theater","owner":"Jean Francois Berenguer","participants":"""url":"https://myignite.techcommunity.microsoft.com/sessions/66329","level":300,"session_location":"","starttime":null,"duration":null,"time_and_duration":"","kusto_affinity":"Focused"} |
| ConferenceSessions | {"conference":"Build 2021","sessionid":"CON-PRT103","session_title":"Roundtable: Advanced Kusto query language topics","session_type":"Roundtable","owner":"Avner Aharoni","participants":"Alexander Sloutsky, Tzvia Gitlin-Troyna","URL":"https://sessions.mybuild.microsoft.com/sessions/details/4d4887e9-f08d-4f88-99ac-41e5feb869e7","level":200,"session_location":"Online","starttime":"2021-05-26T08:30:00.0000000Z","duration":60,"time_and_duration":"Mittwoch, 26. Mai\n8:30 - 9:30 UHR GMT","kusto_affinity":"Focused"} |
| ... | ... |
Im folgenden Beispiel werden alle Zeilen aus allen Tabellen in allen Datenbanken im Cluster gefunden, in denen jede Spalte das Wort Kustoenthält.
Diese Abfrage ist eine datenbankübergreifende Abfrage.
Die resultierenden Datensätze werden gemäß dem Ausgabeschema transformiert.
find in (database('*').*) where * has "Kusto"
Ausgabe
Diese Tabelle zeigt die ersten drei Zeilen der Ausgabe an.
| Quelle_ | packen_ |
|---|---|
| database("Samples"). ConferenceSessions | {"conference":"Build 2021","sessionid":"CON-PRT103","session_title":"Roundtable: Advanced Kusto query language topics","session_type":"Roundtable","owner":"Avner Aharoni","participants":"Alexander Sloutsky, Tzvia Gitlin-Troyna","URL":"https://sessions.mybuild.microsoft.com/sessions/details/4d4887e9-f08d-4f88-99ac-41e5feb869e7","level":200,"session_location":"Online","starttime":"2021-05-26T08:30:00.0000000Z","duration":60,"time_and_duration":"Mittwoch, 26. Mai\n8:30 - 9:30 UHR GMT","kusto_affinity":"Focused"} |
| database("Samples"). ConferenceSessions | {"conference":"Ignite 2018","sessionid":"THR3115","session_title":"Azure Log Analytics: Deep dive into the Azure Kusto query language. ","session_type":"Theater","owner":"Jean Francois Berenguer","participants":"""url":"https://myignite.techcommunity.microsoft.com/sessions/66329","level":300,"session_location":"","starttime":null,"duration":null,"time_and_duration":"","kusto_affinity":"Focused"} |
| database("Samples"). ConferenceSessions | {"conference":"Build 2021","sessionid":"CON-PRT103","session_title":"Roundtable: Advanced Kusto query language topics","session_type":"Roundtable","owner":"Avner Aharoni","participants":"Alexander Sloutsky, Tzvia Gitlin-Troyna","URL":"https://sessions.mybuild.microsoft.com/sessions/details/4d4887e9-f08d-4f88-99ac-41e5feb869e7","level":200,"session_location":"Online","starttime":"2021-05-26T08:30:00.0000000Z","duration":60,"time_and_duration":"Mittwoch, 26. Mai\n8:30 - 9:30 UHR GMT","kusto_affinity":"Focused"} |
| ... | ... |
Im folgenden Beispiel werden alle Zeilen aus allen Tabellen gefunden, deren Name mit K allen Datenbanken beginnt, deren Name mit B und in der spalte das Wort Kustoenthält.
Die resultierenden Datensätze werden gemäß dem Ausgabeschema transformiert.
find in (database("S*").C*) where * has "Kusto"
Ausgabe
Diese Tabelle zeigt die ersten drei Zeilen der Ausgabe an.
| Quelle_ | packen_ |
|---|---|
| ConferenceSessions | {"conference":"Build 2021","sessionid":"CON-PRT103","session_title":"Roundtable: Advanced Kusto query language topics","session_type":"Roundtable","owner":"Avner Aharoni","participants":"Alexander Sloutsky, Tzvia Gitlin-Troyna","URL":"https://sessions.mybuild.microsoft.com/sessions/details/4d4887e9-f08d-4f88-99ac-41e5feb869e7","level":200,"session_location":"Online","starttime":"2021-05-26T08:30:00.0000000Z","duration":60,"time_and_duration":"Mittwoch, 26. Mai\n8:30 - 9:30 UHR GMT","kusto_affinity":"Focused"} |
| ConferenceSessions | {"conference":"Build 2021","sessionid":"CON-PRT103","session_title":"Roundtable: Advanced Kusto query language topics","session_type":"Roundtable","owner":"Avner Aharoni","participants":"Alexander Sloutsky, Tzvia Gitlin-Troyna","URL":"https://sessions.mybuild.microsoft.com/sessions/details/4d4887e9-f08d-4f88-99ac-41e5feb869e7","level":200,"session_location":"Online","starttime":"2021-05-26T08:30:00.0000000Z","duration":60,"time_and_duration":"Mittwoch, 26. Mai\n8:30 - 9:30 UHR GMT","kusto_affinity":"Focused"} |
| ConferenceSessions | {"conference":"Build 2021","sessionid":"CON-PRT103","session_title":"Roundtable: Advanced Kusto query language topics","session_type":"Roundtable","owner":"Avner Aharoni","participants":"Alexander Sloutsky, Tzvia Gitlin-Troyna","URL":"https://sessions.mybuild.microsoft.com/sessions/details/4d4887e9-f08d-4f88-99ac-41e5feb869e7","level":200,"session_location":"Online","starttime":"2021-05-26T08:30:00.0000000Z","duration":60,"time_and_duration":"Mittwoch, 26. Mai\n8:30 - 9:30 UHR GMT","kusto_affinity":"Focused"} |
| ... | ... |
Im folgenden Beispiel werden alle Zeilen aus allen Tabellen gefunden, deren Name mit K allen Datenbanken beginnt, deren Name mit B und in der spalte das Wort Kustoenthält.
Die resultierenden Datensätze werden gemäß dem Ausgabeschema transformiert.
find in (cluster("cluster1").database("B*").K*, cluster("cluster2").database("C*".*))
where * has "Kusto"
Im folgenden Beispiel werden alle Zeilen aus allen Tabellen gefunden, in denen jede Spalte das Wort Kustoenthält.
Die resultierenden Datensätze werden gemäß dem Ausgabeschema transformiert.
find "Kusto"
Beispiele für find Ausgabeergebnisse
Gehen Sie davon aus, dass wir den nächsten Inhalt dieser beiden Tabellen haben:
EventsTable1
| Session_Id | Ebene | EreignisText | Version |
|---|---|---|---|
| acbd207d-51aa-4df7-bfa7-be70eb68f04e | Informationen | Some Text1 | v1.0.0 |
| acbd207d-51aa-4df7-bfa7-be70eb68f04e | Fehler | Some Text2 | v1.0.0 |
| 28b8e46e-3c31-43cf-83cb-48921c3986fc | Fehler | Some Text3 | v1.0.1 |
| 8f057b11-3281-45c3-a856-05ebb18a3c59 | Informationen | Some Text4 | 1\.1.0 |
EventsTable2
| Session_Id | Ebene | EreignisText | Ereignisname |
|---|---|---|---|
| f7d5f95f-f580-4ea6-830b-5776c8d64fdd | Informationen | Anderer Text1 | Ereignis1 |
| acbd207d-51aa-4df7-bfa7-be70eb68f04e | Informationen | Anderer Text2 | Ereignis2 |
| acbd207d-51aa-4df7-bfa7-be70eb68f04e | Fehler | Anderer Text3 | Ereignis3 |
| 15eaeab5-8576-4b58-8fc6-478f75d8fee4 | Fehler | Anderer Text4 | Ereignis4 |
Im folgenden Beispiel wird anhand eines bestimmten Session_Id und einer Fehlerstufe nach bestimmten Datensätzen in EventsTable1 und EventsTable2 gesucht. Anschließend werden drei bestimmte Spalten projiziert: EventText-, Versionund EventName-und alle anderen verbleibenden Spalten in ein dynamisches Objekt.
find in (EventsTable1, EventsTable2)
where Session_Id == 'acbd207d-51aa-4df7-bfa7-be70eb68f04e' and Level == 'Error'
project EventText, Version, EventName, pack_all()
Ausgabe
| Quelle_ | EreignisText | Version | Ereignisname | packen_ |
|---|---|---|---|---|
| EventsTable1 | Some Text2 | v1.0.0 | {"Session_Id":"acbd207d-51aa-4df7-bfa7-be70eb68f04e", "Level":"Error"} | |
| EventsTable2 | Anderer Text3 | Ereignis3 | {"Session_Id":"acbd207d-51aa-4df7-bfa7-be70eb68f04e", "Level":"Error"} |
Im folgenden Beispiel wird nach Datensätzen gesucht, die entweder "Version " als "v1.0.0" oder "EventName " als "Event1" aufweisen, und dann werden vier bestimmte Spalten markiert: Session_Id, EventText, Version und EventName aus diesen gefilterten Ergebnissen.
find Version == 'v1.0.0' or EventName == 'Event1' project Session_Id, EventText, Version, EventName
Ausgabe
| Quelle_ | Session_Id | EreignisText | Version | Ereignisname |
|---|---|---|---|---|
| EventsTable1 | acbd207d-51aa-4df7-bfa7-be70eb68f04e | Some Text1 | v1.0.0 | |
| EventsTable1 | acbd207d-51aa-4df7-bfa7-be70eb68f04e | Some Text2 | v1.0.0 | |
| EventsTable2 | f7d5f95f-f580-4ea6-830b-5776c8d64fdd | Anderer Text1 | Ereignis1 |
Hinweis
In der Praxis werden EventsTable1- Zeilen mit Version == 'v1.0.0' Prädikat gefiltert, und EventsTable2- Zeilen werden mit EventName == 'Event1' Prädikat gefiltert.
Im folgenden Beispiel wird die Datenbank nach datensätzen mit einer Session_Id durchsucht, die mit "acbd207d-51aa-4df7-bfa7-be70eb68f04e" übereinstimmt. Es ruft Datensätze aus allen Tabellen und Spalten ab, die diese spezifische Session_Identhalten.
find Session_Id == 'acbd207d-51aa-4df7-bfa7-be70eb68f04e'
Ausgabe
| Quelle_ | Session_Id | Ebene | EreignisText | packen_ |
|---|---|---|---|---|
| EventsTable1 | acbd207d-51aa-4df7-bfa7-be70eb68f04e | Informationen | Some Text1 | {"Version":"v1.0.0"} |
| EventsTable1 | acbd207d-51aa-4df7-bfa7-be70eb68f04e | Fehler | Some Text2 | {"Version":"v1.0.0"} |
| EventsTable2 | acbd207d-51aa-4df7-bfa7-be70eb68f04e | Informationen | Anderer Text2 | {"EventName":"Event2"} |
| EventsTable2 | acbd207d-51aa-4df7-bfa7-be70eb68f04e | Fehler | Anderer Text3 | {"EventName":"Event3"} |
Im folgenden Beispiel wird die Datenbank nach Datensätzen mit der angegebenen Session_Id durchsucht und alle Spalten dieser Datensätze als einzelnes dynamisches Objekt zurückgegeben.
find Session_Id == 'acbd207d-51aa-4df7-bfa7-be70eb68f04e' project pack_all()
Ausgabe
| Quelle_ | packen_ |
|---|---|
| EventsTable1 | {"Session_Id":"acbd207d-51aa-4df7-bfa7-be70eb68f04e", "Level":"Information", "EventText":"Some Text1", "Version":"v1.0.0"} |
| EventsTable1 | {"Session_Id":"acbd207d-51aa-4df7-bfa7-be70eb68f04e", "Level":"Error", "EventText":"Some Text2", "Version":"v1.0.0"} |
| EventsTable2 | {"Session_Id":"acbd207d-51aa-4df7-bfa7-be70eb68f04e", "Level":"Information", "EventText":"Some Other Text2", "EventName":"Event2"} |
| EventsTable2 | {"Session_Id":"acbd207d-51aa-4df7-bfa7-be70eb68f04e", "Level":"Error", "EventText":"Some Other Text3", "EventName":"Event3"} |
Beispiele für Fälle, in denen find sie als Vereinigung fungieren
Der find-Operator in Kusto kann manchmal wie ein union-Operator wirken, hauptsächlich wenn er zum Durchsuchen mehrerer Tabellen verwendet wird.
Im folgenden Beispiel wird zuerst eine Ansicht erstellt, die EventsTable1 so filtert, dass nur Datensätze auf Fehlerebene enthalten sind. Anschließend wird in dieser gefilterten Ansicht und in der Tabelle "EventsTable2" nach Datensätzen mit einem bestimmten Session_Idgesucht.
let PartialEventsTable1 = view() { EventsTable1 | where Level == 'Error' };
find in (PartialEventsTable1, EventsTable2)
where Session_Id == 'acbd207d-51aa-4df7-bfa7-be70eb68f04e'
Die folgenden Beispiele veranschaulichen, wie der find Operator als union eine Spalte in mehreren Tabellen mit unterschiedlichen Typen angezeigt werden kann. In diesem Fall ist die ProcessId Spalte sowohl in Tabelle1 als auch in Tabelle2 vorhanden, jedoch mit unterschiedlichen Typen.
Erstellen Sie in diesem Beispiel zwei Tabellen, indem Sie Folgendes ausführen:
.create tables
Table1 (Level:string, Timestamp:datetime, ProcessId:string),
Table2 (Level:string, Timestamp:datetime, ProcessId:int64)
- Die folgende Abfrage wird als
unionausgeführt.
find in (Table1, Table2) where ProcessId == 1001
Das Ausgabeergebnisschema ist (Level:string, Timestamp, ProcessId_string, ProcessId_int).
- Die folgende Abfrage wird als
unionausgeführt, erzeugt jedoch ein anderes Ergebnisschema.
find in (Table1, Table2) where ProcessId == 1001 project Level, Timestamp, ProcessId:string
Das Ausgabeergebnisschema ist (Level:string, Timestamp, ProcessId_string)