Sie könnten kombinieren the TSV importer, wenn es nicht fehlschlagen würde die Umwandlung der IPs (behoben in ArangoDB 3.0), so dass Sie ein bisschen mehr Konvertierungslogik benötigen, um gültige CSV zu erhalten. Man wird die ede attribute conversion option verwenden, um die ersten beiden Spalten während des Imports in gültige Attribute _from
und _to
zu konvertieren.
Sie sollten keine Spaltensubjekte mit Leerzeichen in ihnen angeben, und es sollte wirklich Registerkarten oder eine konstante Anzahl von Spalten sein. In der Betreffzeile müssen wir ein _from
und ein _to
Feld angeben.
Um es funktioniert, würden Sie Rohr der oben durch sed
wie diese gültige CSV und richtige Spaltennamen zu erhalten:
cat /tmp/test.tsv | \
sed -e "s;source IP;_from;g;" \
-e "s;target IP;_to;" \
-e "s; port;Port;g" \
-e 's; *;",";g' \
-e 's;^;";' \
-e 's;$;";' | \
arangoimp --file - \
--type csv \
--from-collection-prefix sourceHosts \
--to-collection-prefix targetHosts \
--collection "ipEdges" \
--create-collection true \
--create-collection-type edge
Sed mit dieser regulären Ausdrücken wird eine Zwischendarstellung wie die Suche erstellen:
"_from","_to","sourcePort","targetPort"
"192.168.84.3","192.189.42.52","5868","1214"
Die erzeugten Kanten so aussehen:
{
"_key" : "21056",
"_id" : "ipEdges/21056",
"_from" : "sourceHosts/192.168.84.3",
"_to" : "targetHosts/192.189.42.52",
"_rev" : "21056",
"sourcePort" : "5868",
"targetPort" : "1214"
}
Danke dafür. Gibt es ein Arangodb 3.0-Veröffentlichungsdatum? (Ich weiß, es ist derzeit in der Beta.) – Guido
Wir nähern uns später in dieser Woche. RC3 wird gerade veröffentlicht. – dothebart