Сохранение данных в БД Kusto
У меня возникли проблемы при сохранении данных в Kusto Db из кода C#. я запускаю следующий код, и я получаю ошибку в ExecuteControlCommand. Может ли кто-нибудь помочь по этому вопросу. я перепробовал все варианты, но все равно не повезло
public static void LogMessage(string message)
{
var clusterName = "ABC";
var db = "Kusto";
var table = "Log";
var mappingName = "KustoJsonMapping";
// Set up table
var kcsbEngine =
new KustoConnectionStringBuilder($"https://KustoDB.kusto.windows.net");
using (var kustoAdminClient = KustoClientFactory.CreateCslAdminProvider(kcsbEngine))
{
var columns = new List<Tuple<string, string>>()
{
new Tuple<string, string>("logId", "System.String"),
new Tuple<string, string>("logDtm", "System.DateTime"),
new Tuple<string, string>("userName", "System.String"),
};
var command = CslCommandGenerator.GenerateTableCreateCommand(table, columns);
kustoAdminClient.ExecuteControlCommand(databaseName: db, command: command);
// Set up mapping
var columnMappings = new List<JsonColumnMapping>();
columnMappings.Add(new JsonColumnMapping()
{ ColumnName = "logId", JsonPath = "$.Id" });
columnMappings.Add(new JsonColumnMapping()
{ ColumnName = "logDtm", JsonPath = "$.Timestamp" });
columnMappings.Add(new JsonColumnMapping()
{ ColumnName = "userName", JsonPath = "$.Message" });
command = CslCommandGenerator.GenerateTableJsonMappingCreateCommand(
table, mappingName, columnMappings);
kustoAdminClient.ExecuteControlCommand(databaseName: db, command: command);
}
}
}
1 ответ
Решение
Есть ли у приложения необходимые разрешения на доступ к таблице? Сообщение об ошибке из вашего комментария предполагает, что это не так.
Вы можете предоставить ему разрешения, используя команды управления, упомянутые здесь.
Или, используя Kusto.Explorer, если он у вас установлен.
После предоставления разрешения приложению вам также необходимо предоставить учетные данные кластеру.