|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
Вставляются данные в такие таблицы: Главная Код: 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.
Производная от главной: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Могу отказаться от всех индексов, кроме Primary и idxDateTimeSend в главной таблице и idxMessageIDFirewalls в производной от главной. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2018, 15:20 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
MS SQL, Cache, любая in-memory. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2018, 15:22 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
А если говорить в целом, то с таким потоком данных проблема не в том, чтобы их вставить в БД, а чтобы понять "а назачем они туда вставляются", ибо плоские CSV-файлы со вставкой справятся лучше. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2018, 15:24 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovMS SQL, Cache, любая in-memory. А что-то полегче не потянет: Firebird, ADS? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2018, 15:32 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
flight-opА что-то полегче не потянет: Firebird, ADS? Как написано выше: плоский CSV файл потянет. Firebird... ну, это будет зависеть от ловкости твоих рук и мощности железа. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2018, 15:35 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
flight-op, SAP HANA 2.0 Express Edition (бесплатно) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2018, 17:20 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
Barclayflight-op, SAP HANA 2.0 Express Edition (бесплатно) (*Перекрестился*) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2018, 18:04 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovплоские CSV-файлы со вставкой справятся лучше.+1 С промежуточной буферизаций в CSV/TSV потянет, наверное, практически любая СУБД. И типы данных стоило бы пересмотреть. Например, дату/время явно будет экономичнее хранить в специализированных типах данных. В MySQL одно поле DATETIME занимает всего 5 байт, а у вас 20 отведено. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2018, 20:05 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
> "DateTimeSend" DATETIME, > "DateSend" CHAR(10), > "TimeSend" CHAR(10), Зачем последние два? > inInterface VARCHAR, > outInterface VARCHAR, Почему не номер интерфейса? > SrcMAC VARCHAR, > DstMAC VARCHAR, byte(6) > SrcIP VARCHAR, > DstIP VARCHAR, byte(4) > SrcPort INTEGER, > DstPort INTEGER, Целое, 2 байта. > Protocol VARCHAR); Целое, 1 байт. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2018, 23:22 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
miksoftDimitry Sibiryakovплоские CSV-файлы со вставкой справятся лучше.+1 С промежуточной буферизаций в CSV/TSV потянет, наверное, практически любая СУБД. А идея-то, по факту хороша. Простой парсер csv обработал миллион строк за ~6 секунд. Сразу, было дело, подумал "Да нет, бред какой-то" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2018, 23:36 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
Alibek B.> "DateTimeSend" DATETIME, > "DateSend" CHAR(10), > "TimeSend" CHAR(10), Зачем последние два? для группировки > inInterface VARCHAR, > outInterface VARCHAR, Почему не номер интерфейса? Код: pascal 1.
Тут нет номера интерфейса. Здесь вообще может быть что угодно - от лога Cisco ASA до Windows Security EventLog. За универсальность решения приходится чем-то платить, в данном случае - избыточностью данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2018, 23:51 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
flight-op, до varchar без размера запись где-то 52 байта (если однобайтовые символы в строках). это значит, что 100к записей по 52 байта в секунду это 5 мегабайт в секунду, что не бог весть что. Но если перемножить на минуты и т.д., выходит 300 мегабайт в минуту 18 гиг в час 423 гигабайта в сутки 157 терабайт в год. Хрень какая-то. А если еще безразмерные варчары сюда приклеить, вообще бред какой-то. Очередная супер-база? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2018, 02:13 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
собственно, я тут 15 лет, и за это время вижу, что мало кто из постановщиков таких задач освоил простое умножение. Парадокс? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2018, 02:15 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
kdvНо если перемножить на минутыДля этого пока мало информации. Возможно, желаемые 100000 в секунду - это всего лишь пиковая нагрузка, у которой неизвестна ни длительность, ни периодичность. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2018, 02:54 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
Зависит от того, для чего оно будет пользоваться и сколько храниться. Если будет храниться долго и ещё запросы к нему нужно делать, то можно какой-нибудь хадуп с паркетом. Записи сливаются в текстовое файло. Файло сливается в паркет с сжатием. Над ним какой-нибудь hive, да сейчас уже кучу движков придумали - выбирай на вкус. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2018, 06:59 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
kdvflight-op, до varchar без размера запись где-то 52 байта (если однобайтовые символы в строках). это значит, что 100к записей по 52 байта в секунду это 5 мегабайт в секунду, что не бог весть что. Но если перемножить на минуты и т.д., выходит 300 мегабайт в минуту 18 гиг в час 423 гигабайта в сутки 157 терабайт в год. Хрень какая-то. А если еще безразмерные варчары сюда приклеить, вообще бред какой-то. Очередная супер-база? Не надо перемножать, всё-таки актуальность логов имеет временные ограничения. Преамбула: Есть самописная система анализа логов. Скриптами парсит входящие данные и раскладывает их по таблицам. База SQLite, благо ничего критичного нет и данных максимум на сотню INSERT-ов в секунду. Временами, почитывая всякое-разное из опыта эксплуатации людьми enterprise-решений удается почерпнуть что-то полезное для себя - где интересный отчет, где идею стэктрейса логов. В-общем, в мире больших решений есть вещи, полезные и для "игрушечных" систем. Перечитывая Хабр, наткнулся на интересный комментарий: На данный момент у меня кластер А 10 машин (каждая машина 24 ядра 48 гб памяти) с трудом тянет 15к логов в секунду. На кластере Б памяти 128 гб на машину, что дает порядка 50к логов в секунду. Это при дневных индексах, 7-ми дневно ретеншене и около 1000 шард на кластер А, около 3000 шард на кластер Б. Если переключится на часовые индексы и снизить ретеншен до 3-х дней количество шард на кластере Б поднимается до 25к и он начинает падать с завидной периодичностью. У всех машин стоит по 4 диска 1.8тб. На кластере А количество документов около 7г и диски заняты от 26% до 45%, на кластере Б документов около 3.5г, диски заняты от 9% до 14%. Полный траффик логов у меня 130 логов/с, что значит мне нужно кластер А расширить до как минимум 200 машин, что будет 2 миллиона долларов только на покупку железа, обслуживание встанет в отдельные деньги. Глядя на подобные суммы начинаешь уже задумываться о спланке, который безумно дорог, но тебе вообще не надо думать об инфраструктуре. Решил глянуть - а что же у меня с производительностью, получил (в зависимости от вида лога) цифры порядка 10-15к на ядро. Упаси господь, думать что я со своей приблудой на Delphi собрался покорять мир, но нездоровое любопытство и толика свободного времени располагают попробовать реализовать полную производительность. Преамбула закончилась Я тут что подумал: можно действительно писать в csv-файл, производительность будет лимитирована дисковой подсистемой, а чтобы вытаскивать оттуда информацию - создать разреженный внешний индекс - с MessageID и временем с разрешением, скажем, в 0.5-1 сек. Да, спасибо за идею! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2018, 15:43 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
flight-opа чтобы вытаскивать оттуда информацию - создать разреженный внешний индекс - с MessageID и временем с разрешением, скажем, в 0.5-1 сек. Обычно информация из логов нужна исключительно в виде каких-то агрегатов. Эти агрегаты имеют гораздо меньший объём, чем сырые данные, так что тебе агрегатор, складывающий выжимку в базу будет, вероятнее всего, полезнее, чем индекс. Ну а хабар уже давно стал блогом чайников, хвастающихся как они смогли чего-то достичь своими руками с нулевым радиусом кривизны. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2018, 17:25 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovОбычно информация из логов нужна исключительно в виде каких-то агрегатов. Эти агрегаты имеют гораздо меньший объём, чем сырые данные, так что тебе агрегатор, складывающий выжимку в базу будет, вероятнее всего, полезнее, чем индекс. А оно так и работает, по сырым данным формируются alert-ы. Но при разборе инцидента зачастую желательно знать, что происходило до и после. Так сказать, нужен контекст alert-а. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2018, 17:35 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
flight-opданных максимум на сотню INSERT-ов в секунду.flight-opполучил (в зависимости от вида лога) цифры порядка 10-15к на ядро.У вас и так запас в 100-150 раз. Зачем вам вся эта деятельность? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2018, 20:08 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
"Почему кот яйца лижет? Потому что может" :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2018, 20:12 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
flight-op, а говорил что у тебя всё чики пуки - 21730248 , а оно вон оно что, в базу он складывает.... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 00:31 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
kealon(Ruslan)flight-op, а говорил что у тебя всё чики пуки - 21730248 , а оно вон оно что, в базу он складывает.... Прости, с трудом тебя понимаю, в базу нынче складывать постыдно и осуждается соборно? Да, у меня есть проблемы записать то, что я могу обработать. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 00:59 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
flight-op, По моему опыту, скрипт написанный даже самым криворуким инженером, шпарит данные куда быстрее. Просто по факту, вы подняля сабж о потоках не выяснив где у программы узкое место. Это первое что нужно делать при оптимизациях. Я в том сабже указал что что-то не так. Судя по тому что какое-то сомнение у вас зародилось, мой пост пошёл куда нужно. В базу скидывать не постыдно, это определённый уровень. Но если программа претендует на что-то большее, то универсальные детские песочницы идут в топку. Представьте, например, что Procmon обрабатывал бы со скоростью 16к/с и грузил все процы под завязку. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 08:55 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
kealon(Ruslan)flight-op, По моему опыту, скрипт написанный даже самым криворуким инженером, шпарит данные куда быстрее. Просто по факту, вы подняля сабж о потоках не выяснив где у программы узкое место. Это первое что нужно делать при оптимизациях. Я в том сабже указал что что-то не так. Судя по тому что какое-то сомнение у вас зародилось, мой пост пошёл куда нужно. (*Миролюбиво*) Извини, Руслан, я что-то опять тебя не понимаю. В однопоточной программе я мог записать то, что обрабатываю. При повышении производительности за счет использования потоков возникло узкое место - запись на диск. Всегда возникает следующее бутылочное горлышко - в пределе это законы физики. В чём проблемы-то? И да, старик, чуть не забыл я в суматохе - априори ставя своего собеседника ниже "криворукого инженера" ты пытаешься поднять свою самооценку? Разочарую тебя, тот кому нужно поднятие самооценки таким образом получает все остальные проблемы в жизни бесплатно. WBR ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 13:14 |
|
Подскажите БД для 100000 INSERT-ов в секунду
|
|||
---|---|---|---|
#18+
flight-opkealon(Ruslan)flight-op, По моему опыту, скрипт написанный даже самым криворуким инженером, шпарит данные куда быстрее. Просто по факту, вы подняля сабж о потоках не выяснив где у программы узкое место. Это первое что нужно делать при оптимизациях. Я в том сабже указал что что-то не так. Судя по тому что какое-то сомнение у вас зародилось, мой пост пошёл куда нужно. (*Миролюбиво*) Извини, Руслан, я что-то опять тебя не понимаю. В однопоточной программе я мог записать то, что обрабатываю. При повышении производительности за счет использования потоков возникло узкое место - запись на диск. Всегда возникает следующее бутылочное горлышко - в пределе это законы физики. В чём проблемы-то? И да, старик, чуть не забыл я в суматохе - априори ставя своего собеседника ниже "криворукого инженера" ты пытаешься поднять свою самооценку? Разочарую тебя, тот кому нужно поднятие самооценки таким образом получает все остальные проблемы в жизни бесплатно. WBRОпять же вам говорю, у вас не хватит терпения пригрузить любой более-менее посредственный диск на запись, это надо сотнями мегабайт шпарить. Узкое горлышко у вас межпроцессное взаимодействие с БД. мы на разных языках говорим, по поводу ваших неуверенности в себе: скрипты же вы не для себя добавили? наверное для кого-то? каким образом вы этого "кого-то" ассоциировали с собой? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 16:01 |
|
|
Start [/forum/topic.php?fid=35&fpage=2&tid=1552204]: |
0ms |
get settings: |
2ms |
get forum list: |
7ms |
check forum access: |
0ms |
check topic access: |
0ms |
track hit: |
11ms |
get topic data: |
8ms |
get forum data: |
1ms |
get page messages: |
24ms |
get tp. blocked users: |
0ms |
others: | 83ms |
total: | 136ms |
0 / 0 |