CSV文件中图形的arangoimp

CSV文件中图形的arangoimp,csv,graph,arangodb,Csv,Graph,Arangodb,我有一个TSV文件中的网络扫描,该文件包含以下示例形式的数据 source IP target IP source port target port 192.168.84.3 192.189.42.52 5868 1214 192.168.42.52 192.189.42.19 1214 5968 192.168.4.3 192.189.42.52 60680 22 .... 192

我有一个TSV文件中的网络扫描,该文件包含以下示例形式的数据

source IP      target IP       source port    target port
192.168.84.3   192.189.42.52   5868           1214
192.168.42.52  192.189.42.19   1214           5968
192.168.4.3    192.189.42.52   60680          22
....  
192.189.42.52  192.168.4.3     22             61969
有没有一种简单的方法可以使用arangoimp将其导入(预先创建的)边缘采集网络数据?

如果转换IP不会失败(ArangoDB 3.0中已修复),您可以进行组合,因此需要更多的转换逻辑才能获得有效的CSV。在导入期间,将使用将前两列从转换为有效的
\u,并将
\u转换为
属性

您不应该指定包含空格的列主题,它实际上应该是制表符或恒定数量的列。我们需要在主题行中指定一个
\u from
和一个
\u to
字段

为了使其正常工作,您可以通过
sed
来获取有效的CSV和正确的列名,如下所示:

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将创建如下所示的中间表示:

"_from","_to","sourcePort","targetPort"
"192.168.84.3","192.189.42.52","5868","1214"
{ 
  "_key" : "21056", 
  "_id" : "ipEdges/21056", 
  "_from" : "sourceHosts/192.168.84.3", 
  "_to" : "targetHosts/192.189.42.52", 
  "_rev" : "21056", 
  "sourcePort" : "5868", 
  "targetPort" : "1214" 
} 
生成的边将如下所示:

"_from","_to","sourcePort","targetPort"
"192.168.84.3","192.189.42.52","5868","1214"
{ 
  "_key" : "21056", 
  "_id" : "ipEdges/21056", 
  "_from" : "sourceHosts/192.168.84.3", 
  "_to" : "targetHosts/192.189.42.52", 
  "_rev" : "21056", 
  "sourcePort" : "5868", 
  "targetPort" : "1214" 
} 
如果转换IP不会失败(ArangoDB 3.0中已修复),您可以进行组合,因此需要更多的转换逻辑才能获得有效的CSV。在导入期间,将使用将前两列从
转换为有效的
\u,并将
\u转换为
属性

您不应该指定包含空格的列主题,它实际上应该是制表符或恒定数量的列。我们需要在主题行中指定一个
\u from
和一个
\u to
字段

为了使其正常工作,您可以通过
sed
来获取有效的CSV和正确的列名,如下所示:

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将创建如下所示的中间表示:

"_from","_to","sourcePort","targetPort"
"192.168.84.3","192.189.42.52","5868","1214"
{ 
  "_key" : "21056", 
  "_id" : "ipEdges/21056", 
  "_from" : "sourceHosts/192.168.84.3", 
  "_to" : "targetHosts/192.189.42.52", 
  "_rev" : "21056", 
  "sourcePort" : "5868", 
  "targetPort" : "1214" 
} 
生成的边将如下所示:

"_from","_to","sourcePort","targetPort"
"192.168.84.3","192.189.42.52","5868","1214"
{ 
  "_key" : "21056", 
  "_id" : "ipEdges/21056", 
  "_from" : "sourceHosts/192.168.84.3", 
  "_to" : "targetHosts/192.189.42.52", 
  "_rev" : "21056", 
  "sourcePort" : "5868", 
  "targetPort" : "1214" 
} 

谢谢你。Arangodb3.0是否有发布日期?(我知道它目前处于测试阶段。)我们将在本周晚些时候进行研究。RC3刚刚发布,谢谢。Arangodb3.0是否有发布日期?(我知道它目前处于测试阶段。)我们将在本周晚些时候进行研究。RC3刚刚发布。