private void CheckDatabaseSettings(string connectionSettings)
        {
            var connectionParams = ClickHouseHelpers.GetConnectionParams(connectionSettings);
            var databaseParam    = connectionParams.FirstOrDefault(e => e.Key.ToUpper() == "DATABASE");

            _databaseName = databaseParam.Value;

            ClickHouseHelpers.CreateDatabaseIfNotExist(connectionSettings);
        }
        private void ExportToClickHouse(EventLogExportSettings eventLogSettings)
        {
            Console.WriteLine(_settings.ConnectionString);

            ClickHouseHelpers.DropDatabaseIfExist(_settings.ConnectionString);

            EventLogOnClickHouse target = new EventLogOnClickHouse(_settings.ConnectionString, eventLogSettings.Portion);

            target.SetInformationSystem(new InformationSystemsBase()
            {
                Name        = eventLogSettings.InforamtionSystemName,
                Description = eventLogSettings.InforamtionSystemDescription
            });

            ExportHelper.ExportToTargetStorage(eventLogSettings, target);

            long rowsInDB;

            using (var connection = new ClickHouseConnection(_settings.ConnectionString))
            {
                connection.Open();
                using (var cmd = connection.CreateCommand())
                {
                    cmd.CommandText =
                        @"SELECT 
                            COUNT(*) CNT 
                        FROM RowsData rd
                        WHERE InformationSystem = {InformationSystem:String}";
                    cmd.Parameters.Add(new ClickHouseDbParameter
                    {
                        ParameterName = "InformationSystem",
                        Value         = eventLogSettings.InforamtionSystemName
                    });
                    using (var cmdReader = cmd.ExecuteReader())
                    {
                        if (cmdReader.Read())
                        {
                            rowsInDB = Convert.ToInt64(cmdReader.GetValue(0));
                        }
                        else
                        {
                            rowsInDB = 0;
                        }
                    }
                }
            }

            long rowsInSourceFiles;

            using (EventLogReader reader = EventLogReader.CreateReader(eventLogSettings.EventLogPath))
                rowsInSourceFiles = reader.Count();

            Assert.NotEqual(0, rowsInSourceFiles);
            Assert.NotEqual(0, rowsInDB);
            Assert.Equal(rowsInSourceFiles, rowsInDB);
        }
示例#3
0
        public ClickHouseContext(string connectionSettings)
        {
            ClickHouseHelpers.CreateDatabaseIfNotExist(connectionSettings);

            _connection = new ClickHouseConnection(connectionSettings);
            _connection.Open();

            var cmdDDL = _connection.CreateCommand();

            cmdDDL.CommandText = Resources.Query_CreateTable_XEventData;
            cmdDDL.ExecuteNonQuery();

            cmdDDL.CommandText = Resources.Query_CreateTable_LogFiles;
            cmdDDL.ExecuteNonQuery();
        }
 private void CheckDatabaseSettings(string connectionSettings)
 {
     ClickHouseHelpers.CreateDatabaseIfNotExist(connectionSettings);
 }