Sobes.tech
Junior — Middle

Ako vykonať nútené odoslanie údajov do určitej partície v systéme ukladania údajov?

sobes.tech AI

Odpoveď od AI

V systémoch ukladania dát, ktoré používajú partíciovanie (napríklad Kafka, Cassandra), je potrebné pri zápise výslovne uviesť kľúč partíciovania alebo číslo partície, ak chceme dáta vynútiť do určitej časti.

V jazyku Go sa to zvyčajne robí cez API klienta, kde pri publikovaní správy alebo zápise dát je možné nastaviť kľúč alebo partíciu:

// Príklad pre Kafka s použitím sarama
producer.Input() <- &sarama.ProducerMessage{
    Topic: "moje_téma",
    Partition: 2, // výslovne uvádzame partíciu
    Key:   sarama.StringEncoder("kľúč_pre_partíciovanie"),
    Value: sarama.StringEncoder("dáta"),
}

Ak API neumožňuje priamo špecifikovať číslo partície, môže sa nastaviť kľúč pre partíciovanie, ktorý sa hash-uje a určuje partíciu.

Týmto spôsobom je možné vynútiť odoslanie dát do požadovanej partície, ak využijete možnosti klienta na určenie kľúča alebo čísla partície pri zápise.