akpaevj / OneSTools.EventLog

Библиотеки и готовые инструменты для чтения и экспорта журнала регистрации 1С в ClickHouse и ElasticSearch
MIT License
126 stars 45 forks source link

Добавить в экспорт имя базы данных в кластере 1С #37

Open Daabramov opened 2 years ago

Daabramov commented 2 years ago

Привет! В случае когда надо собирать ошибки по большому количеству баз, требуется хранить имя самой БД в логах, чтобы понять, где именно произошла ошибка.

Предложение: Добавить в таблицу EventLogItem колонку DataBaseName, которая будет означать имя базы данных в кластере 1С.

milanse commented 2 years ago

Я тоже хочу )

CryptKat commented 2 years ago

Для ClickHouse:

CREATE TABLE eventlog.EventLogItems
(
    `FileName` LowCardinality(String),
    `EndPosition` Int64 CODEC(DoubleDelta, LZ4),
    `LgfEndPosition` Int64 CODEC(DoubleDelta, LZ4),
    `Id` Int64 CODEC(DoubleDelta, LZ4),
    `DateTime` DateTime('UTC') CODEC(Delta(4), LZ4),
    `TransactionStatus` LowCardinality(String),
    `TransactionDate` DateTime('UTC') CODEC(Delta(4), LZ4),
    `TransactionNumber` Int64 CODEC(DoubleDelta, LZ4),
    `UserUuid` LowCardinality(String),
    `User` LowCardinality(String),
    `Computer` LowCardinality(String),
    `Application` LowCardinality(String),
    `Connection` Int64 CODEC(DoubleDelta, LZ4),
    `Event` LowCardinality(String),
    `Severity` LowCardinality(String),
    `Comment` String CODEC(ZSTD(1)),
    `MetadataUuid` String CODEC(ZSTD(1)),
    `Metadata` LowCardinality(String),
    `Data` String CODEC(ZSTD(1)),
    `DataPresentation` String CODEC(ZSTD(1)),
    `Server` LowCardinality(String),
    `MainPort` Int32 CODEC(DoubleDelta, LZ4),
    `AddPort` Int32 CODEC(DoubleDelta, LZ4),
    `Session` Int64 CODEC(DoubleDelta, LZ4)
)
ENGINE = Merge(REGEXP('.*'), 'EventLogItems')

Виртуальная таблица, объединяющая все таблицы с именем EventLogItems из баз данных, имена которых соответствуют шаблону - в данном случае - ".*" (любое имя). Имя базы данных содержится в колонке "_database".

ibragimovrs commented 2 years ago

https://github.com/ibragimovrs/OneSTools.EventLog рабочий варриант. За качество кода не отвечаю, если кто-нибудь сделает код ревью буду признателен