Ejecución de un comando de administración y procesamiento de los resultados
En el IDE o editor de texto que prefiera, cree un proyecto o un archivo denominado comandos de administración mediante la convención adecuada para su idioma preferido. Después agregue el siguiente código:
Cree una aplicación cliente que conecte el clúster. Reemplace el marcador de <your_cluster_uri> posición por el nombre del clúster.
En el caso de los comandos de administración, usará el método de fábrica de CreateCslAdminProvider cliente.
using Kusto.Data;
using Kusto.Data.Net.Client;
namespace ManagementCommands {
class ManagementCommands {
static void Main(string[] args) {
var clusterUri = "<your_cluster_uri>";
var kcsb = new KustoConnectionStringBuilder(clusterUri)
.WithAadUserPromptAuthentication();
using (var kustoClient = KustoClientFactory.CreateCslAdminProvider(kcsb)) {
}
}
}
}
from azure.kusto.data import KustoClient, KustoConnectionStringBuilder
def main():
cluster_uri = "<your_cluster_uri>"
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 = "<your_cluster_uri>";
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();
Nota
Para Node.js aplicaciones, use InteractiveBrowserCredentialNodeOptions en lugar de InteractiveBrowserCredentialInBrowserOptions.
Defina una función que imprima el comando que se ejecuta y sus tablas resultantes. Esta función desempaqueta los nombres de columna en las tablas de resultados e imprime cada par nombre-valor en una nueva línea.
static void PrintResultsAsValueList(string command, IDataReader response) {
while (response.Read()) {
Console.WriteLine("\n{0}\n", new String('-', 20));
Console.WriteLine("Command: {0}", command);
Console.WriteLine("Result:");
for (int i = 0; i < response.FieldCount; i++) {
Console.WriteLine("\t{0} - {1}", response.GetName(i), response.IsDBNull(i) ? "None" : response.GetString(i));
}
}
}
def print_result_as_value_list(command, response):
# create a list of columns
cols = (col.column_name for col in response.primary_results[0].columns)
print("\n" + "-" * 20 + "\n")
print("Command: " + command)
# print the values for each row
for row in response.primary_results[0]:
print("Result:")
for col in cols:
print("\t", col, "-", row[col])
function printResultsAsValueList(command: string, response: KustoResponseDataSet) {
// create a list of columns
const cols = response.primaryResults[0].columns;
console.log("\n" + "-".repeat(20) + "\n")
console.log("Command: " + command)
// print the values for each row
for (const row of response.primaryResults[0].rows()) {
console.log("Result:")
for (col of cols)
console.log("\t", col.name, "-", row.getValueAt(col.ordinal) ? row.getValueAt(col.ordinal).toString() : "None")
}
}
Defina el comando que se va a ejecutar. El comando crea una tabla denominada MyStormEvents y define el esquema de tabla como una lista de tipos y nombres de columna. Reemplace el marcador de posición por el <your_database> nombre de la base de datos.
Cambio de la directiva de procesamiento por lotes de ingesta de nivel de tabla
Puede personalizar el comportamiento de procesamiento por lotes de ingesta para las tablas cambiando la directiva de tabla correspondiente. Para obtener más información, vea la directiva IngestionBatching.
Nota
Si no especifica todos los parámetros de un PolicyObject, los parámetros no especificados se establecerán en valores predeterminados. Por ejemplo, al especificar solo "MaximumBatchingTimeSpan", se establecerá "MaximumNumberOfItems" y "MaximumRawDataSizeMB" en el valor predeterminado.
Por ejemplo, puede modificar la aplicación para cambiar el valor de tiempo de espera de la directiva de procesamiento por lotes de ingesta a 30 segundos modificando la ingestionBatching directiva de la MyStormEvents tabla mediante el siguiente comando:
Próximamente: A lo largo de 2024 iremos eliminando gradualmente las Cuestiones de GitHub como mecanismo de retroalimentación para el contenido y lo sustituiremos por un nuevo sistema de retroalimentación. Para más información, consulta: https://aka.ms/ContentUserFeedback.