Ich habe die Datenzuordnung zwischen ArangoDB und Java untersucht

Einführung

Einige Oak-Fans verwenden ArangoDB. ArangoDB ist eine hybride NoSQL-Datenbank, die DocumentDB und GraphDB nutzt.

** Ich werde DocumentDB und GraphDB beiseite lassen. * *

Bei Oak Fan erstellen wir Services, die Daten wie Produktinformationen und Verkaufsinformationen verwenden.

In dem Team, dem ich angehöre, denke ich, dass eine Datenbank wie ArangoDB geeignet ist, wenn Sie Informationen (Spezifikationen usw.) mit unterschiedlichen Eigenschaften für jedes Produkt und jede Daten verarbeiten möchten, wobei das Verhältnis von Daten wie Hersteller und Kategorie zu berücksichtigen ist. ,Ich benutze.

Andererseits wird Java oder Kotlin verwendet, um Software zu erstellen, die auf solche Daten verweist und diese aggregiert. Verwenden Sie daher beim programmgesteuerten Zugriff auf ArangoDB die von ArangoDB bereitgestellte Java-API.

ArangoDB ist kein Java. Die zu verarbeitenden Daten liegen grundsätzlich im JSON-Format vor. Offensichtlich unterscheidet sich die Datentypdefinition vom Programm.

Wenn ich den in Java natürlich verwendeten Datentyp in ArangoDB einfüge, ändert er sich in den Typ, den ArangoDB verarbeiten kann (JSON-Format), und ich habe ihn getestet, damit mich die unbeabsichtigte Typkonvertierung bei der Verwendung von Daten nicht stört. ..

Annahme

Die verschiedenen Versionen sind wie folgt.

Java → ArangoDB Verwenden Sie zum Speichern in ArangoDB die BaseDocument-Klasse und legen Sie die Daten mit der Methode addAttribute () fest.

Überprüfen Sie die gespeicherten Daten mit der ArangoDB-WebUI und überprüfen Sie den gespeicherten Status.

Java-Typ → Arango DB-Typ Bemerkungen
int Numerischer Wert(ganze Zahl)
Integer Numerischer Wert(ganze Zahl)
long Numerischer Wert(ganze Zahl)
Long Numerischer Wert(ganze Zahl)
float Numerischer Wert(Fraktion) * Daten sind beschädigt
Float Numerischer Wert(Fraktion) * Daten sind beschädigt
double Numerischer Wert(Fraktion)
Double Numerischer Wert(Fraktion)
BigDecimal String
boolean Boolescher Wert(true/false)
Boolean Boolescher Wert(true/false)
LocalDate String ISO8601-Format
LocalDateTime String ISO8601-Format
OffsetDateTime String ISO8601-Format
ZonedDateTime String ISO8601(Erweiterung)Format
List Array
Map Objekt Der Typ im Objekt entspricht dem obigen Mapping

ArangoDB → Java Der Datentyp, wenn Daten in ArangoDB von der WebUI gespeichert und von Java erfasst werden, lautet wie folgt.

ArangoDB-Typ → Java-Typ Bemerkungen
String String
Numerischer Wert(ganze Zahl) Long
Numerischer Wert(Fraktion) Double
Boolescher Wert(true/false) Boolean
Array ArrayList Der Innentyp ist der gleiche wie bei den anderen
Objekt HashMap Der Innentyp ist der gleiche wie bei den anderen

Java → ArangoDB → Java Der Fluss der Datentypänderung, wenn die in ArangoDB in Java gespeicherten Daten in Java erfasst werden, ist wie folgt.

Java-Typ → Arango DB-Typ → Java-Typ Bemerkungen
int Numerischer Wert(ganze Zahl) Long
Integer Numerischer Wert(ganze Zahl) Long
long Numerischer Wert(ganze Zahl) Long
Long Numerischer Wert(ganze Zahl) Long
float Numerischer Wert(Fraktion) Double * Daten sind beschädigt
Float Numerischer Wert(Fraktion) Double * Daten sind beschädigt
double Numerischer Wert(Fraktion) Double
Double Numerischer Wert(Fraktion) Double
BigDecimal String String
boolean Boolescher Wert(true/false) Boolean
Boolean Boolescher Wert(true/false) Boolean
LocalDate String String ISO8601-Format
LocalDateTime String String ISO8601-Format
OffsetDateTime String String ISO8601-Format
ZonedDateTime String String ISO8601(Erweiterung)Format
List Array ArrayList Der Innentyp ist der gleiche wie bei den anderen
Map Objekt HashMap Der Typ im Objekt entspricht dem obigen Mapping

Zusammenfassung

Ich habe festgestellt, dass ich bei der Verwendung von ArangoDB mit Java-API etwas vorsichtig sein muss.

Sie können es verwenden, ohne sich darum zu kümmern

Ich möchte ein wenig erweitern

Tatsächlich ist die Berechnung von Brüchen komplizierter. .. .. Wenn Sie interessiert sind ( ̄ ー  ̄)

Recommended Posts

Ich habe die Datenzuordnung zwischen ArangoDB und Java untersucht
Ich habe versucht, die Unterschiede zwischen Java und Python aufzuzählen
Ich habe den Gerätebaum untersucht
Ich habe Java und Python verglichen!
Ich habe versucht, den Chi-Quadrat-Test in Python und Java zu programmieren.
Ich habe Java und Ruby persönlich verglichen
Ich untersuchte das Verhalten bezüglich des Unterschieds zwischen Hard Link und Symbolic Link
Ich untersuchte die Beziehung zwischen Keras 'zustandsbehaftetem LSTM und verstecktem Zustand
Einfacher Datenaustausch zwischen Python, R und Julia im Feather-Format
Unterschiede zwischen Python- und Java-Syntax
Ich habe versucht, die verkratzten Daten in CSV zu speichern!
Die subtile Beziehung zwischen Gentoo und Pip
Über die Beziehung zwischen Git und GitHub
Ich habe das Datenaufbereitungstool Paxata berührt
Kommunikation verschlüsselter Daten zwischen Python und C #
Lassen Sie uns die Beziehung zwischen Durchschnittsgehalt und Industrie mit XBRL-Daten und Seaborn visualisieren! (7/10)
Ich habe versucht, das Bild zu verarbeiten und zu transformieren und die Daten für maschinelles Lernen zu erweitern
Was ist der Unterschied zwischen "pip" und "conda"?
Beziehung zwischen Firestore- und Go-Datentypkonvertierung
Ich habe nach Railway Kawayanagi aus den Daten gesucht
Die Antwort von "1/2" unterscheidet sich zwischen Python2 und 3
Ich habe versucht, die Daten mit Zwietracht zu speichern
Ich habe eine Klasse in Python3 und Java geschrieben
[Python] Konvertierungsnotiz zwischen Zeitdaten und numerischen Daten
Über den Unterschied zwischen "==" und "is" in Python
[Datenanalyse] Soll ich die Harumi-Flagge kaufen?
Ich habe die Varianten von UKR gelesen und implementiert
Über den Unterschied zwischen PostgreSQL su und sudo
Was ist der Unterschied zwischen Unix und Linux?
[Herausforderer suchen] Das schnellste Laden und Erweitern von Daten (Kaggle-Notizbuch), denke ich
Ich wollte nur die Daten des gewünschten Datums und der gewünschten Uhrzeit mit Django extrahieren