Wenn Sie Ihre Objekte im Value-Teil des KeyValue-Paars speichern, handelt es sich tatsächlich nur um ein Array/eine Folge von Bytes (d. H. Im Code für die KeyValue-Klasse gibt es eine getValue-Methode, die ein Byte-Array zurückgibt).
An diesem Punkt können Sie die Serialisierung ablehnen, und es gibt eine Vielzahl von Bibliotheken, die Sie mit verschiedenen Benutzerfreundlichkeit, Leistungsmerkmalen und Details der Implementierung verwenden können. Avro ist eine Art von Serialisierung Bibliothek, die das Schema mit jedem Datensatz gespeichert werden, aber man könnte theoretisch Gebrauch:
- Standard-Java-Serialisierung (Serializable implementieren)
- Kryo
- Protobuf
Nur um ein paar zu nennen. Vielleicht möchten Sie die verschiedenen Stärken der einzelnen Bibliotheken untersuchen und das Gleichgewicht zwischen der Art der Objekte, die Sie speichern wollen, ausbalancieren (dh ob es sich tatsächlich um die gleiche Art von Objekten handelt oder sind die Typen sehr unterschiedlich? Werden sie es sein?) langlebig dh Jahre und haben die Erwartung der Schemaevolution & Abwärtskompatibilität etc.)