Назад к вопросам
Senior
3
Как вы писали данные в базу — по одной записи или батчами? В одном Kafka-сообщении могло прилетать 500 записей?
Компании, где спрашивали
МВидео/эльдорадо
Ответ от нейросети
sobes.tech AI
В большинстве случаев для повышения производительности и снижения нагрузки на базу данные пишутся батчами, а не по одной записи. Если в одном Kafka-сообщении приходит 500 записей, то логично обработать их как один батч и выполнить одну транзакцию или пакетную вставку.
Пример на Go с использованием базы данных и батчевой вставки:
records := getRecordsFromKafkaMessage(msg) // []Record
// Подготовка батча
var values []interface{}
query := "INSERT INTO table_name (col1, col2) VALUES "
placeholders := []string{}
for i, r := range records {
placeholders = append(placeholders, fmt.Sprintf("($%d, $%d)", i*2+1, i*2+2))
values = append(values, r.Field1, r.Field2)
}
query += strings.Join(placeholders, ",")
// Выполнение запроса
_, err := db.Exec(query, values...)
if err != nil {
log.Fatal(err)
}
Такой подход уменьшает количество запросов к базе и повышает общую пропускную способность системы.