Sobes.tech
Senior

Hogyan írtad az adatokat az adatbázisba — egyenként vagy batch-ben? Előfordulhatott, hogy egy Kafka üzenetben 500 rekord volt?

sobes.tech MI

Válasz az MI-től

A legtöbb esetben a teljesítmény növelése és a terhelés csökkentése érdekében az adatokat batch-ekben írják, nem egyenként. Ha egy Kafka üzenetben 500 rekord érkezik, logikus, hogy azokat egy batch-ként kezeljük, és egy tranzakciót vagy tömeges beszúrást hajtsunk végre.

Példa Go nyelven, adatbázis és batch beszúrás használatával:

records := getRecordsFromKafkaMessage(msg) // []Record

// Batch előkészítése
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, ",")

// Lekérdezés végrehajtása
_, err := db.Exec(query, values...)
if err != nil {
    log.Fatal(err)
}

Ez a megközelítés csökkenti az adatbázisba küldött lekérdezések számát, és növeli a rendszer összteljesítményét.