Сохранение данных в БД Kusto - PullRequest
0 голосов
/ 16 января 2019

У меня проблема при сохранении данных в 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 Ответ

0 голосов
/ 17 января 2019

Имеет ли приложение необходимые разрешения на доступ к таблице? Сообщение об ошибке из вашего комментария предполагает, что это не так.

Вы можете предоставить ему разрешения, используя упомянутые команды управления здесь .

Или, используя Kusto.Explorer , если он установлен.

Требуемое разрешение: TableIngestor (объяснено здесь и здесь )

...