我正在尝试将两个csv文件导入ArangoDB。一个作为文档“帐户”创建,另一个作为边缘“事务”创建。对账户来说,这是可行的。但是,当导入事务数据时,会发生错误。我尝试用以下代码从命令提示符(windows 10)导入这个csv文件:
arangoimport --file transactions.csv --type csv --create-collection true -server.database AML --create-collection-type edge --collection transactions --translate "SENDER_ACCOUNT_ID =_from" --translate " RECEIVER_ACCOUNT_ID =_to"
在我的数据中,第一行是头,其中包括TX_ID,SENDER_ACCOUNT_ID,RECEIVER_ACCOUNT_ID,TX_TYPE,TX_AMOUNT,TIMESTAMP,IS_FRAUD,ALERT_ID。我的原始数据如下所示:交易记录
我知道边缘需要_from和_to属性。因此,在我的命令行中,我使用“转换”将输入文件中的列重命名为_from和_to,如上面所示。但它仍然给出了以下错误信息:
缺少“_from”或“_to”属性,违规文档:
{"TX_ID":17144,"_from":84,"_to":87, ... }
你能给我一点提示吗?我在这个问题上挣扎了好几个小时,一个月前也看到过类似的问题,但没有答案。希望有人能帮我。非常感谢。
发布于 2021-02-15 10:15:39
正如古利斯科在评论中指出的那样,_from和_to必须是有效的文档标识符。也就是说,顶点集合的名称,后面跟着一个正斜杠和顶点的文档键,例如"accounts/87"。
在错误消息中,可以看到属性值是数字,但必须是字符串,集合名必须加在前面。但是,您不需要修改CSV文件,因为arangoimport让我们通过启动选项 --from-collection-prefix和--to-collection-prefix预置集合名。
arangoimport --file transactions.csv --type csv --server.database AML --create-collection --create-collection-type edge --collection transactions --translate SENDER_ACCOUNT_ID=_from --translate RECEIVER_ACCOUNT_ID=_to --from-collection-prefix accounts --to-collection-prefix accounts
然后,导入的文档应该如下所示:
{ "TX_ID": 17144, "_from": "accounts/84", "_to": "accounts/87", ... }https://stackoverflow.com/questions/66195759
复制相似问题