powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Log4j + clickhouse
34 сообщений из 34, показаны все 2 страниц
Log4j + clickhouse
    #40114209
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую! Подскажите, как перенаправить логи приложения посредством log4j на clickhouse.
Пробовал через mysql и pgsql протоколы. В локальные БД MySql и PostgreSQL записи пишутся нормально, а в Clickhouse не хотят писаться.

Настройки делал согласно описанию JDBCAppender через ConnectionFactory. Ни в какую не лезут
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114215
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажи свой конфиг. Особенно ignoreExceptions.
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114232
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

На самом деле ignoreException не использовал, так как делал по инструкции с сайта

log4j2.xml
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="trace">
    <Appenders>
        <JDBC name="databaseAppender" tableName="requests">
            <ConnectionFactory class="request.ConnectionFactory" method="getDatabaseConnection"/>
            <Column name="log_date" isEventTimestamp="true"/>
            <Column name="body" pattern="%message" isUnicode="false"/>
        </JDBC>
    </Appenders>
    <Loggers>
        <Root level="trace">
            <AppenderRef ref="databaseAppender"/>
        </Root>
    </Loggers>
</Configuration>



Ошибка, которая выдается при запуске программы:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
2021-11-23 19:00:47,759 main ERROR Unable to write to database [JdbcManager{name=databaseAppender, bufferSize=0, tableName=requests, columnConfigs=[{ name=log_date, layout=null, literal=null, timestamp=true }, { name=body, layout=%message, literal=null, timestamp=false }], columnMappings=[]}] for appender [databaseAppender]. org.apache.logging.log4j.core.appender.db.DbAppenderLoggingException: Failed to commit transaction logging event or flushing buffer [columnConfigs=[{ name=log_date, layout=null, literal=null, timestamp=true }, { name=body, layout=%message, literal=null, timestamp=false }], sqlStatement=insert into requests (log_date,body) values (?,?), factoryData=FactoryData [connectionSource=factory{ public static java.sql.Connection request.ConnectionFactory.getDatabaseConnection() }, tableName=requests, columnConfigs=[{ name=log_date, layout=null, literal=null, timestamp=true }, { name=body, layout=%message, literal=null, timestamp=false }], columnMappings=[], immediateFail=false, retry=true, reconnectIntervalMillis=5000, truncateStrings=true], connection=jdbc:mysql://127.0.0.1:15004/chatserver, UserName=htzsg2, MySQL Connector/J, statement=com.mysql.cj.jdbc.ClientPreparedStatement: insert into requests (log_date,body) values (** NOT SPECIFIED **,** NOT SPECIFIED **), reconnector=null, isBatchSupported=true, columnMetaData={LOG_DATE=ColumnMetaData [schemaName=, catalogName=, tableName=, name=log_date, nameKey=LOG_DATE, label=log_date, displaySize=0, type=1, typeName=CHAR, className=java.lang.String, precision=0, scale=0, isStringType=true], BODY=ColumnMetaData [schemaName=, catalogName=, tableName=, name=body, nameKey=BODY, label=body, displaySize=0, type=1, typeName=CHAR, className=java.lang.String, precision=0, scale=0, isStringType=true]}]
	at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.commitAndClose(JdbcDatabaseManager.java:564)
	at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.writeThrough(JdbcDatabaseManager.java:900)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.write(AbstractDatabaseManager.java:264)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseAppender.append(AbstractDatabaseAppender.java:110)
	at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
	at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:540)
	at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:498)
	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:481)
	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:410)
	at org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:63)
	at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:153)
	at org.apache.log4j.Category.maybeLog(Category.java:512)
	at org.apache.log4j.Category.info(Category.java:294)
	at request.Request.main(Request.java:16)
Caused by: java.sql.SQLException: Code: 62. DB::Exception: Syntax error: failed at position 1 ('commit'): commit. Expected one of: ALTER query, Query with output, ALTER PROFILE, RENAME DATABASE, SHOW PRIVILEGES query, TRUNCATE, KILL, KILL QUERY query, SELECT query, possibly with UNION, list of union elements, ALTER ROLE, SELECT subquery, DESCRIBE query, SELECT query, subquery, possibly with UNION, SHOW GRANTS, SHOW CREATE, CREATE SETTINGS PROFILE or ALTER SETTINGS PROFILE query, WATCH, SHOW PROCESSLIST query, ALTER POLICY, ALTER USER, CREAT
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
	at com.mysql.cj.jdbc.ConnectionImpl.commit(ConnectionImpl.java:806)
	at org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:334)
	at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:211)
	at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.commitAndClose(JdbcDatabaseManager.java:560)
	... 16 more

2021-11-23 19:00:47,760 main ERROR An exception occurred processing Appender databaseAppender org.apache.logging.log4j.core.appender.db.DbAppenderLoggingException: Failed to commit transaction logging event or flushing buffer [columnConfigs=[{ name=log_date, layout=null, literal=null, timestamp=true }, { name=body, layout=%message, literal=null, timestamp=false }], sqlStatement=insert into requests (log_date,body) values (?,?), factoryData=FactoryData [connectionSource=factory{ public static java.sql.Connection request.ConnectionFactory.getDatabaseConnection() }, tableName=requests, columnConfigs=[{ name=log_date, layout=null, literal=null, timestamp=true }, { name=body, layout=%message, literal=null, timestamp=false }], columnMappings=[], immediateFail=false, retry=true, reconnectIntervalMillis=5000, truncateStrings=true], connection=jdbc:mysql://127.0.0.1:15004/chatserver, UserName=htzsg2, MySQL Connector/J, statement=com.mysql.cj.jdbc.ClientPreparedStatement: insert into requests (log_date,body) values (** NOT SPECIFIED **,** NOT SPECIFIED **), reconnector=null, isBatchSupported=true, columnMetaData={LOG_DATE=ColumnMetaData [schemaName=, catalogName=, tableName=, name=log_date, nameKey=LOG_DATE, label=log_date, displaySize=0, type=1, typeName=CHAR, className=java.lang.String, precision=0, scale=0, isStringType=true], BODY=ColumnMetaData [schemaName=, catalogName=, tableName=, name=body, nameKey=BODY, label=body, displaySize=0, type=1, typeName=CHAR, className=java.lang.String, precision=0, scale=0, isStringType=true]}]
	at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.commitAndClose(JdbcDatabaseManager.java:564)
	at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.writeThrough(JdbcDatabaseManager.java:900)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.write(AbstractDatabaseManager.java:264)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseAppender.append(AbstractDatabaseAppender.java:110)
	at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
	at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:540)
	at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:498)
	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:481)
	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:410)
	at org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:63)
	at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:153)
	at org.apache.log4j.Category.maybeLog(Category.java:512)
	at org.apache.log4j.Category.info(Category.java:294)
	at request.Request.main(Request.java:16)
Caused by: java.sql.SQLException: Code: 62. DB::Exception: Syntax error: failed at position 1 ('commit'): commit. Expected one of: ALTER query, Query with output, ALTER PROFILE, RENAME DATABASE, SHOW PRIVILEGES query, TRUNCATE, KILL, KILL QUERY query, SELECT query, possibly with UNION, list of union elements, ALTER ROLE, SELECT subquery, DESCRIBE query, SELECT query, subquery, possibly with UNION, SHOW GRANTS, SHOW CREATE, CREATE SETTINGS PROFILE or ALTER SETTINGS PROFILE query, WATCH, SHOW PROCESSLIST query, ALTER POLICY, ALTER USER, CREAT
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
	at com.mysql.cj.jdbc.ConnectionImpl.commit(ConnectionImpl.java:806)
	at org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:334)
	at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:211)
	at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.commitAndClose(JdbcDatabaseManager.java:560)
	... 16 more
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114251
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего не понятно. А эта mysql база вообще доступна на запись?
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114317
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это результат попытки записи в ClickHouse по MySQL интерфейсу. Если писать с этими параметрами в реальную MySQL базу, то все пишется без проблем. Такая же картина, если пробовать записать в ClickHouse через PostgreSQL интерфейс: в реальную PostgreSQL базу все пишется без ошибок, а в ClickHouse через предоставленный интерфейс - ошибка
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114321
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему ты решил что к ClickHouse можно подключатся используя MySQL драйвер?

Есть где-то на сайте производителя туториал о том что так можно?
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114326
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
А почему ты решил что к ClickHouse можно подключатся используя MySQL драйвер?

Есть где-то на сайте производителя туториал о том что так можно?


Вроде бы тут ...но это интерфейсы...даже вроде есть JDBC интерфейс.
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114327
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ip,
1) по архитектуре бд не подходит для логирования
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114328
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ip,

2) сам инсерти в бд и потестируй ее.
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114330
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
qi_ip,

2) сам инсерти в бд и потестируй ее.

Через sql клиент к ClickHouse работает через mysql драйвер....а вот именно связка log4j2 + clickhouse (mysql, pgsql драйвера) не работает ((
Поэтому тут спросил, может у кого был опыт.
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114331
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ip
mayton
А почему ты решил что к ClickHouse можно подключатся используя MySQL драйвер?

Есть где-то на сайте производителя туториал о том что так можно?


Вроде бы тут ...но это интерфейсы...даже вроде есть JDBC интерфейс.

Попробуй вот этот драйвер https://github.com/ClickHouse/clickhouse-jdbc

И кстати Петро прав. Колончато-ориентированные DBMS обычно не умеют инсертить 1 строку.
Они грузят пачками или стримят (с буферизацией естественно).
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114332
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
qi_ip,
1) по архитектуре бд не подходит для логирования

Подскажите, пожалуйста, какая связка лучше с log4j2 для консолидации логов. До этого момента юзал только сохранение в файлы на диске. Теперь вот возникла необходимость консолидировать.
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114333
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
qi_ip
пропущено...


Вроде бы тут ...но это интерфейсы...даже вроде есть JDBC интерфейс.

Попробуй вот этот драйвер https://github.com/ClickHouse/clickhouse-jdbc

И кстати Петро прав. Колончато-ориентированные DBMS обычно не умеют инсертить 1 строку.
Они грузят пачками или стримят (с буферизацией естественно).

Пробовал..проблема как подогнать к ConnectionFactory. Вроде бы передаю datasource, но он его не принимает



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
public class ClickhouseFactory {
    private static interface Singleton {
        final ClickhouseFactory INSTANCE = new ClickhouseFactory();
    }
    private final ClickHouseDataSource dataSource;

    private ClickhouseFactory() {
        try {
            Class.forName("ru.yandex.clickhouse.ClickHouseDriver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            System.exit(0);
        }
        ClickHouseProperties properties = new ClickHouseProperties();
        properties.setUser("user");
        properties.setPassword("password");

        this.dataSource = new ClickHouseDataSource("jdbc:clickhouse://localhost:8123/chatserver", properties);
    }

    public static Connection getDatabaseConnection() throws SQLException {
        return Singleton.INSTANCE.dataSource.getConnection();
    }
}
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114336
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ip,
Админская задача же.
40 машин и нет админа?
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114338
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
qi_ip,
Админская задача же.
40 машин и нет админа?

Вот он и предложил clickhouse...я пока на стадии исследования, насколько это подходит для логирования ))) Ну, машин пока не 40, раз в 10 меньше )
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114341
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ip

Подскажите, пожалуйста, какая связка лучше с log4j2 для консолидации логов.

Расскажи что такое консолидация? Нет. я конечно могу сам предположить какой тут смысл. Но мне
кажется что есть нюансы. А также различные SLA. Как быстро консолидированный лог должен
быть доступен для поиска например.
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114343
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
qi_ip

Подскажите, пожалуйста, какая связка лучше с log4j2 для консолидации логов.

Расскажи что такое консолидация? Нет. я конечно могу сам предположить какой тут смысл. Но мне
кажется что есть нюансы. А также различные SLA. Как быстро консолидированный лог должен
быть доступен для поиска например.

В моем случае, под консолидацией, я подразумеваю следующее:
Есть три сервера. На каждом сервере есть приложение у которого логи с помощью Log4j2 пишутся в три разных файла: один основной, второй чисто данные по запрос-ответ, третий-статистические данные. То есть full.log, request.log, statistic.log
То есть по факту, в случае необходимости, для поиска проблемы нужно будет просмотреть 9 файлов на трех серверах.
Если это все слить в одну БД/хранилище, то теоретически, поиск нужных данных будет происходить быстрее.
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114348
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я понял. Как по мне - дорогое и ненадёжное решение. Для логов что важно.
Анализ инцедентов. А если инцедент - отказ БД и при этом лог надо писать
в эту-же БД то мы получаем такое себе дедлок. Или парадокс реализации.

Стоимость владения БД всегда дороже чем файловой системой. Положите туда 1 терабайт
табличных пространств - и уже плохо. Хрен почистишь. В файловой системе всяко легче.

Вобщем в пирамиде надежности файловая система стоит поближе к Java-процессу.

А вы - попробуйте синхронизировать все логи на сетевое хранилище через rsync.
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114350
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114352
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ip,

Веб приложение не должно слать по сети логи. Это же очевидно.
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114354
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
Я понял. Как по мне - дорогое и ненадёжное решение. Для логов что важно.
Анализ инцедентов. А если инцедент - отказ БД и при этом лог надо писать
в эту-же БД то мы получаем такое себе дедлок. Или парадокс реализации.

Стоимость владения БД всегда дороже чем файловой системой. Положите туда 1 терабайт
табличных пространств - и уже плохо. Хрен почистишь. В файловой системе всяко легче.

Вобщем в пирамиде надежности файловая система стоит поближе к Java-процессу.

А вы - попробуйте синхронизировать все логи на сетевое хранилище через rsync.

Почитаю про это...спасибо большое за советы ))
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114355
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость

Благодарю, тоже изучу эту тему
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114409
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Колончато-ориентированные DBMS обычно не умеют инсертить 1 строку.
Можно, конечно, догадаться, что на самом деле вы хотели сказать, но если формулировать утверждения так, чтобы не приходилось додумывать - будет гораздо гораздее.
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114410
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
1) по архитектуре бд не подходит для логирования
"вы тут самые умные? Вам это кто-то сказал или вы сами так решили?" (ц)
Это же очевидно, что СУБД ClickHouse не подходит именно для той задачи, для которой её делали.
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114415
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
)))) ну дак выскажись. Ее разве делали для логирования?
Я вот прочитал инфу что для слабоструктуированных данных.
А вы что прочитали?
Колись)
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114417
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Ее разве делали для логирования?
Я вот прочитал инфу что для слабоструктуированных данных.
А вы что прочитали?
Колись)
ну вот убер вполне себе полагает что в ClickHouse логи хранить лучше чем в ELK , хотя у меня после прочтения сложилось несколько иное впечатление, а именно:
- в работе с логами традиционно присутствует определенная степень бардака, поэтому любая интервенция, направленная на реструктуризацию этой экосистемы, так или иначе приводит к профиту, поэтому если убер получил какой-то профит, то далеко не факт что он был получен за счет использования ClickHouse
- несколько неочевидна идея натравливания аналитики непосредственно на ELK, чего бы через ETL не преобразовывать данные к нужному виду и потом строить отчеты?

по теме топика: вот в этом Петро явно прав:
PetroNotC Sharp
1) по архитектуре бд не подходит для логирования
что ELK что ClickHouse "любят" когда вставка идет батчами, поэтому самый бронебойный вариант такой: логировать в структурированном виде в какое-то довольно простое место (например в файл), а оттуда уже лить батчами.
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114446
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Ее разве делали для логирования?
Ключевые особенности .
Подходит всё, кроме "вставка большими пачками".
А "размер пачки" это то, что должен уметь appender (под)системы логирования.
Настройкой размера буфера, который будет заполняться перед "сбросом" данных в JPA-совместимый приёмник.
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114461
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
Ну дак столбцовые это когда столбцы гуляют.
Где они гуляют в логах?
Наоборот всегда идут или 3 или 4.
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114462
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
Она ближе к key-value
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114507
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно опыт убера не подходит для случая автора. В статье они обосновывают сложность своей схемы логгирования.

А автор просто просил объединения логов с нескольких серверов в некий единый источник данных.
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114511
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Ну дак столбцовые это когда столбцы гуляют
По барабану - гуляют или нет.
ClickHouse затачивалась на оперативную обработку больших рядов данных.
Всё, что касается размеров вставляемой пачки - проблема буферизации в (под)системы логирования. Не проблема (любой) СУБД.
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114521
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
Большие данные и пачки не относятся к Модели.
Они к размеру и....
А вот, колоночная и по_записям харктеризует куда гуляют данные. Либо идут вниз с константой колонки, либо идут вправо с разными колонками при каждой записи.
Имхо.
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114548
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
В статье они обосновывают сложность своей схемы логгирования.
Да как-то особо не обосновыают... первоначальный тезис у них: "ну вот в разных системах набор полей почему-то разный, да и типы тоже разные бывают, а ELK такое не прожовывает" - здесь уже непонятно зачем логи из разных систем складывать в один индекс, а решение возникает такое: "давайте ELK выставим на мороз (при этом синтаксис запросов попытаемся сохранить), вместо него поставим кликахаус, кафку и напишем загрузчик, который будет заниматься трансформацией данных" - а что мешало для ELK данные точно также трансформировать-то?
...
Рейтинг: 0 / 0
Log4j + clickhouse
    #40114551
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
mayton
В статье они обосновывают сложность своей схемы логгирования.
Да как-то особо не обосновыают... первоначальный тезис у них: "ну вот в разных системах набор полей почему-то разный, да и типы тоже разные бывают, а ELK такое не прожовывает" - здесь уже непонятно зачем логи из разных систем складывать в один индекс, а решение возникает такое: "давайте ELK выставим на мороз (при этом синтаксис запросов попытаемся сохранить), вместо него поставим кликахаус, кафку и напишем загрузчик, который будет заниматься трансформацией данных" - а что мешало для ELK данные точно также трансформировать-то?

У меня есть своя версия. Они скорее всего логами называют некие свои данные по которым они потом гоняют
аналитику. Тоесть то что Uber называет логами - это скорее всего просто некие евенты с сложным набором колонок.
И если у них там 100500 колонок (где каждая - это уникальный JSonPath)

Тоесть если ELK годится в анализе инцедентов, например найти отказы системы за период.

То ClickHouse они скорее всего используют для сбора сведений. Им тогда уже удобнее резать логи
"вдоль" на узкие полосочки по роду аналитики. Транспорт. Платежи.
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Log4j + clickhouse
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]