将csv文件导入ArangoDB时缺少'_from'或'_to'属性

pgky5nke  于 2022-12-09  发布在  Go
关注(0)|答案(1)|浏览(195)

我尝试将两个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"
在我的数据中,第一行是header,其中包含TX_ID,SENDER_ACCOUNT_ID,RECEIVER_ACCOUNT_ID,TX_TYPE,TX_AMOUNT,TIMESTAMP,IS_FRAUD,ALERT_ID。我的原始数据如下所示:transactions
我知道边需要_from和_to属性。因此,在我的命令行中,我使用“translate”将输入文件中的列重命名为_from和_to,如上面的代码所示。但它仍然给出如下错误消息:
error message
缺少'_from'或'_to'属性,有问题的文档:{"TX_ID":17144,"_from":84,"_to":87, ... }
你能给予我一些提示吗?我已经为这个问题纠结了好几个小时了,一个月前也看到过类似的问题,但是没有答案。希望有人能帮助我。非常感谢。

xiozqbni

xiozqbni1#

正如gurisko在注解中指出的那样,_from_to必须是有效的文档标识符,即顶点集合的名称,后跟正斜杠和顶点的文档键,例如"accounts/87"
在错误消息中,您可以看到属性值是数字,但必须是字符串,并在前面加上集合名称。不过,您不必修改CSV文件,因为 arangoimport 允许您通过startup options--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", ... }

相关问题