Kusto .NET-ügyfélkódtárak használata a PowerShellből
A PowerShell-szkriptek használhatják a Kusto-ügyfélkódtárakat, mivel a PowerShell eredendően .NET-kódtárakkal integrálható. Ebből a cikkből megtudhatja, hogyan töltheti be és használhatja az ügyfélkódtárakat lekérdezések és felügyeleti parancsok futtatásához.
Előfeltételek
- Zip-fájlok kinyerésére szolgáló archiváló eszköz, például 7-Zip vagy WinRAR.
A kódtárak lekérése
A Kusto .NET-ügyfélkódtárak használata a PowerShellben:
Töltse le
Microsoft.Azure.Kusto.Tools
a fájlt.Kattintson a jobb gombbal a letöltött csomagra. A menüben válassza ki az archiváló eszközt, és bontsa ki a csomag tartalmát. Ha az archiváló eszköz nem látható a menüben, válassza a További beállítások megjelenítése lehetőséget. A kinyerés több mappát eredményez, amelyek közül az egyik neve eszközök.
Az eszközök mappában különböző almappák találhatók, amelyek különböző PowerShell-verziókhoz tartoznak. A PowerShell 5.1-es verziójához használja a net472 mappát. A PowerShell 7-es vagy újabb verziójához használja bármelyik verziómappát. Másolja ki a megfelelő mappa elérési útját.
A PowerShellből töltse be a kódtárakat, és cserélje le a elemet
<path>
a másolt mappa elérési útjára:[System.Reflection.Assembly]::LoadFrom("<path>\Kusto.Data.dll")
A következőhöz hasonló kimenetnek kell megjelennie:
GAC Verzió Hely Hamis v4.0.30319 C:\Downloads\tools\net472\Kusto.Data.dll
A betöltés után a kódtárak segítségével csatlakozhat egy fürthöz és egy adatbázishoz.
Csatlakozás fürthöz és adatbázishoz
Hitelesítés fürtben és adatbázisban az alábbi módszerek egyikével:
- Felhasználói hitelesítés: Kérje meg a felhasználót, hogy ellenőrizze az identitását egy webböngészőben.
- Alkalmazáshitelesítés:Hozzon létre egy MS Entra-alkalmazást, és használja a hitelesítő adatokat a hitelesítéshez.
- Azure CLI-hitelesítés: Jelentkezzen be az Azure CLI-be a gépén, és a Kusto lekéri a jogkivonatot az Azure CLI-ből.
Válassza ki a megfelelő lapot.
Az első lekérdezés vagy parancs futtatása után ez a metódus megnyit egy interaktív böngészőablakot a felhasználói engedélyezéshez.
$clusterUrl = "<Your cluster URI>"
$databaseName = "<Your database name>"
$kcsb = New-Object Kusto.Data.KustoConnectionStringBuilder($clusterUrl, $databaseName)
Lekérdezés futtatása
Hozzon létre egy lekérdezésszolgáltatót, és futtassa Kusto lekérdezésnyelv lekérdezéseket.
Az alábbi példa egy egyszerű take lekérdezést definiál az adatok mintavételéhez. A lekérdezés futtatásához cserélje le <TableName>
a elemet egy tábla nevére az adatbázisban. A lekérdezés futtatása előtt a ClientRequestProperties osztály az ügyfélkérés azonosítójának és a kiszolgáló időtúllépésének beállítására szolgál. Ezután a rendszer futtatja a lekérdezést, és az eredményhalmazt formázza és rendezi.
$queryProvider = [Kusto.Data.Net.Client.KustoClientFactory]::CreateCslQueryProvider($kcsb)
$query = "<TableName> | take 5"
Write-Host "Executing query: '$query' with connection string: '$($kcsb.ToString())'"
# Optional: set a client request ID and set a client request property (e.g. Server Timeout)
$crp = New-Object Kusto.Data.Common.ClientRequestProperties
$crp.ClientRequestId = "MyPowershellScript.ExecuteQuery." + [Guid]::NewGuid().ToString()
$crp.SetOption([Kusto.Data.Common.ClientRequestProperties]::OptionServerTimeout, [TimeSpan]::FromSeconds(30))
# Run the query
$reader = $queryProvider.ExecuteQuery($query, $crp)
# Do something with the result datatable
# For example: print it formatted as a table, sorted by the "StartTime" column in descending order
$dataTable = [Kusto.Cloud.Platform.Data.ExtendedDataReader]::ToDataSet($reader).Tables[0]
$dataView = New-Object System.Data.DataView($dataTable)
$dataView | Sort StartTime -Descending | Format-Table -AutoSize
Kimenet
StartTime | EndTime | EpisodeID | Eseményazonosító | Állapot | EventType | InjuriesDirect | SérülésekIndirect | DeathsDirect | DeathsIndirect |
---|---|---|---|---|---|---|---|---|---|
2007-12-30 16:00:00 | 2007-12-30 16:05:00 | 11749 | 64588 | GRÚZIA | Zivatar szél | 0 | 0 | 0 | 0 |
2007-12-20 07:50:00 | 2007-12-20 07:53:00 | 12554 | 68796 | MISSISSIPPI | Zivatar szél | 0 | 0 | 0 | 0 |
2007-09-29 08:11:00 | 2007-09-29 08:11:00 | 11091 | 61032 | ATLANTI-ÓCEÁN DÉLI RÉGIÓJA | Vízcsúcs | 0 | 0 | 0 | 0 |
2007-09-20 21:57:00 | 2007-09-20 22:05:00 | 11078 | 60913 | FLORIDA | Tornádó | 0 | 0 | 0 | 0 |
2007-09-18 20:00:00 | 2007-09-19 18:00:00 | 11074 | 60904 | FLORIDA | Nagy eső | 0 | 0 | 0 | 0 |
Felügyeleti parancs futtatása
Hozzon létre egy CSL-rendszergazdai szolgáltatót, és futtassa a felügyeleti parancsokat.
Az alábbi példa egy felügyeleti parancsot futtat a fürt állapotának ellenőrzéséhez.
$adminProvider = [Kusto.Data.Net.Client.KustoClientFactory]::CreateCslAdminProvider($kcsb)
$command = [Kusto.Data.Common.CslCommandGenerator]::GenerateDiagnosticsShowCommand()
Write-Host "Executing command: '$command' with connection string: '$($kcsb.ToString())'"
# Run the command
$reader = $adminProvider.ExecuteControlCommand($command)
# Read the results
$reader.Read() # this reads a single row/record. If you have multiple ones returned, you can read in a loop
$isHealthy = $Reader.GetBoolean(0)
Write-Host "IsHealthy = $isHealthy"
Kimenet
IsHealthy = True
A felügyeleti parancsok Kusto-ügyfélkódtárakkal való futtatásával kapcsolatos további útmutatásért lásd: Alkalmazás létrehozása felügyeleti parancsok futtatásához.
Példa
Az alábbi példa bemutatja a kódtárak betöltésének folyamatát, a hitelesítést és a lekérdezések végrehajtását a nyilvánosan elérhető help
fürtön.
# This is an example of the location from where you extract the Microsoft.Azure.Kusto.Tools package
# Make sure you load the types from a local directory and not from a remote share
# Make sure you load the version compatible with your PowerShell version (see explanations above)
# Use `dir "$packagesRoot\*" | Unblock-File` to make sure all these files can be loaded and executed
$packagesRoot = "C:\Microsoft.Azure.Kusto.Tools\tools\net472"
# Load the Kusto client library and its dependencies
[System.Reflection.Assembly]::LoadFrom("$packagesRoot\Kusto.Data.dll")
# Define the connection to the help cluster and database
$clusterUrl = "https://help.kusto.windows.net;Fed=True"
$databaseName = "Samples"
# MS Entra user authentication with interactive prompt
$kcsb = New-Object Kusto.Data.KustoConnectionStringBuilder($clusterUrl, $databaseName)
# Run a simple query
$queryProvider = [Kusto.Data.Net.Client.KustoClientFactory]::CreateCslQueryProvider($kcsb)
$query = "StormEvents | take 5"
$reader = $queryProvider.ExecuteQuery($query, $crp)
Kapcsolódó tartalom
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: