Alapszintű lekérdezés futtatása és az eredmények feldolgozása
Az előnyben részesített IDE- vagy szövegszerkesztőben hozzon létre egy egyszerű lekérdezés nevű projektet vagy fájlt az előnyben részesített nyelvnek megfelelő konvenció használatával. Ezután írja be a következő kódot:
Hozzon létre egy ügyfélalkalmazást, amely csatlakozik a súgófürthöz.
using Kusto.Data;
using Kusto.Data.Net.Client;
namespace BasicQuery {
class BasicQuery {
static void Main(string[] args) {
var clusterUri = "https://help.kusto.windows.net/";
var kcsb = new KustoConnectionStringBuilder(clusterUri)
.WithAadUserPromptAuthentication();
using (var kustoClient = KustoClientFactory.CreateCslQueryProvider(kcsb)) {
}
}
}
}
from azure.kusto.data import KustoClient, KustoConnectionStringBuilder
def main():
cluster_uri = "https://help.kusto.windows.net"
kcsb = KustoConnectionStringBuilder.with_interactive_login(cluster_uri)
with KustoClient(kcsb) as kusto_client:
if __name__ == "__main__":
main()
import { Client as KustoClient, KustoConnectionStringBuilder } from "azure-kusto-data";
import { InteractiveBrowserCredentialInBrowserOptions } from "@azure/identity";
async function main() {
const clusterUri = "https://help.kusto.windows.net";
const authOptions = {
clientId: "5e39af3b-ba50-4255-b547-81abfb507c58",
redirectUri: "http://localhost:5173",
} as InteractiveBrowserCredentialInBrowserOptions;
const kcsb = KustoConnectionStringBuilder.withUserPrompt(clusterUri, authOptions);
const kustoClient = new KustoClient(kcsb);
}
main();
Megjegyzés
Node.js alkalmazásokhoz használja a helyett a parancsot InteractiveBrowserCredentialNodeOptionsInteractiveBrowserCredentialInBrowserOptions.
Határozza meg a futtatni kívánt adatbázist és lekérdezést. A lekérdezés visszaadja a dátumot, az állapotot és a tornádóval kapcsolatos összes kárt, ahol a teljes kár meghaladta a 100 millió dollárt.
Sorszámpozíciók használata az oszlopértékek eléréséhez
Ha egy lekérdezés eredményében az oszlopok sorrendje ismert, hatékonyabban érheti el az oszlopok értékeit az eredményhalmaz sorszáma alapján, mint az oszlop neve alapján. Futtatókörnyezetben egy kódtármetódussal is meghatározhatja az oszlop sorszámát az oszlop nevéből.
Megjegyzés
A lekérdezés eredményében szereplő oszlopok jelenlétét és sorrendjét az vagy project-away operátorokkal project szabályozhatja.
Módosíthatja például az előző kódot, hogy az eredményhalmazban lévő sorszámuk alapján elérhesse a StartTime, Statea és DailyDamage az oszlop értékeit:
A C#-ban az oszlopok értékeit csak az eredményhalmazban lévő sorszámuk alapján érheti el. Nem használhatja az oszlopneveket; így a kód változatlan marad.
int columnNoStartTime = response.GetOrdinal("StartTime");
int columnNoState = response.GetOrdinal("State");
int columnNoDailyDamage = response.GetOrdinal("DailyDamage");
Console.WriteLine("Daily tornado damages over 100,000,000$:");
while (response.Read()) {
Console.WriteLine("{0} - {1}, {2}",
response.GetDateTime(columnNoStartTime),
response.GetString(columnNoState),
response.GetInt64(columnNoDailyDamage));
}
state_col = 0
start_time_col = next(col.ordinal for col in response.primary_results[0].columns if col.column_name == "StartTime")
damage_col = 2
print("Daily damages over 100,000,000$:")
for row in response.primary_results[0]:
print(row[start_time_col], "-", row[state_col], ",", row[damage_col], "$")
A lekérdezési viselkedés testreszabása az ügyfélkérés tulajdonságaival
A lekérdezések viselkedését az ügyfélkérés tulajdonságainak beállításával szabhatja testre. Az elérhető lehetőségekről további információt az ügyfélkérés tulajdonságai című témakörben talál.
Lecserélheti például az kusto_client.execute_query előző kódban szereplő hívást egy egyéni kérésazonosító átadására, és beállíthatja a lekérdezés időtúllépését 1 percre. Az ügyfélkérés tulajdonságainak használatához importálnia kell az osztályt ClientRequestProperties .
using Kusto.Data.Common;
var crp = new ClientRequestProperties();
// Set a custom client request identifier
crp.ClientRequestId = "QueryDemo" + Guid.NewGuid().ToString();
// Set the query timeout to 1 minute
crp.SetOption(ClientRequestProperties.OptionServerTimeout, "1m");
using (var response = kustoClient.ExecuteQuery(database, query, crp)) {
}
from azure.kusto.data import ClientRequestProperties
from datetime import datetime
import uuid;
crp = ClientRequestProperties()
# Set a custom client request identifier
crp.client_request_id = "QueryDemo" + str(uuid.uuid4())
# Set the query timeout to 1 minute
crp.set_option(crp.request_timeout_option_name, datetime.timedelta(minutes=1))
response = kusto_client.execute_query(database, query, crp)
import { ClientRequestProperties } from "azure-kusto-data";
import { v4 as uuidv4 } from "uuid";
const crp = new ClientRequestProperties();
// Set a custom client request identifier
crp.clientRequestId = "QueryDemo" + uuidv4();
// Set the query timeout to 1 minute
crp.setServerTimeout(1000 * 60);
const response = await kustoClient.execute(database, query, crp);
import com.microsoft.azure.kusto.data.ClientRequestProperties;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
ClientRequestProperties crp = new ClientRequestProperties();
// Set a custom client request identifier
crp.setClientRequestId("QueryDemo" + UUID.randomUUID());
// Set the query timeout to 1 minute
crp.setTimeoutInMilliSec(TimeUnit.MINUTES.toMillis(60));
KustoOperationResult response = kusto_client.execute(database, query, crp);
Lekérdezési paraméterek használata a felhasználói bevitel védelméhez
A lekérdezési paraméterek fontosak az adatok biztonságának és védelmének fenntartásához. Megvédi azokat a potenciális rosszindulatú szereplőktől, amelyek jogosulatlan hozzáférést próbálnak szerezni az adatokhoz, vagy megrongálhatják azokat. További információ a paraméteres lekérdezésekről: Lekérdezési paraméterek deklarációs utasítása.
Módosíthatja például az előző kódot úgy, hogy paraméterként adja át az EventType és a DailyDamage minimális értéket a lekérdezésnek. Paraméterek használata:
A paraméterek deklarálása a lekérdezés szövegében
Cserélje le a lekérdezés szövegében lévő tulajdonságértékeket a paraméternevekre
Állítsa be a paraméterértékeket a végrehajtási metódusnak átadott ügyfélkérési tulajdonságokban
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ó: https://aka.ms/ContentUserFeedback.
Visszajelzés küldése és megtekintése a következőhöz: