【发布时间】:2018-09-12 11:13:06
【问题描述】:
我是 OrientDB 的新用户,我正在评估它以供我的团队使用。我无法导入我的 CSV 文件。 CSV是一个非常简单的文件,如下:
fld1,fld2,fld3
a,b,c
d,e,f
g,h,i
JSON 配置文件包含以下内容:
{
"config": {
"log": "debug"
},
"begin": [],
"source": { "file": { "path": "../databases/metjsd.csv" } },
"extractor": { "csv": {} },
"transformers": [
{
"vertex": { "class": "metjsd" },
"log" : {}
}
],
"loader": {
"orientdb": {
"dbURL": "plocal:../databases/demodb",
"dbAutoCreateProperties": true,
"dbUser": "Admin",
"dbPassword": "Admin",
"classes": [
{"name": "metjsd", "extends": "V"}
]
}
},
"end": []
}
我在命令窗口中运行的脚本是:
oetl metjsd.json
这是 Windows 上的 Community Edition 3.0.7。上面的命令就是oetl.bat文件。
我尝试过的一些事情:
-
删除 JSON 配置文件中我认为不必要的所有单个元素,使其看起来像这样:
{ “源”:{“文件”:{“路径”:“../databases/metjsd.csv”}}, “提取器”:{“csv”:{}}, “变压器”:[ { “顶点”:{“类”:“metjsd”}, } ], “装载机”:{ “东方数据库”:{ "dbURL": "plocal:../databases/demodb", “类”:[ {“名称”:“metjsd”,“扩展”:“V”} ] } }
当我将 dbURL 更改为另一个名称时,会创建一个新数据库,因此我知道正在读取 JSON 脚本。
当我将源文件路径更改为不存在的文件时,返回错误,表示文件丢失,同时表示正在读取 JSON 文件。
我是否创建目标顶点类并没有什么区别 - 没有数据被导入。
向 JSON 配置文件添加调试不会显示调试信息。
每次的结果都是相同的 - 一行显示 ETL 版本号,但没有其他内容。没有调试信息。没有日志输出。就是这样:
C:\Users\John\Downloads\orientdb-3.0.7\orientdb-3.0.7\bin>oetl metjsd.json
OrientDB etl v.3.0.7 - Veloce (build eba5b2a2d63bf1b013db11db277226fcc4b9a34c, branch 3.0.x) https://www.orientdb.com
我已经在两台 Windows 机器上进行了尝试,结果相同。
作为一个非常新手的用户,我所看到的一切都表明 OrientDB 服务和数据库都正常。 OrientDB Studio 中的基本操作按预期工作。
任何人都可以从 JSON 配置文件中看到错误或缺失的内容吗?我还能检查什么?
附加于 2018 年 9 月 13 日
以下是我根据以下请求使用的修改后的 CSV 文件和配置文件:
"fld1","fld2","fld3"
"a","b","c"
"d","e","f"
"g","h","i"
{
"config":{
"log":"debug"
},
"begin": [],
"source": { "file": { "path": "C:\Users\john.demar\Downloads\orientdb-3.0.7\orientdb-3.0.7\databases\metjsd.csv" } },
"extractor": { "csv": {} },
"loader": {
"orientdb": {
"dbURL": "remote:localhost/john",
"serverUser":"root",
"serverPassword":"orientdb",
"dbType":"document",
"dbAutoCreateProperties":true,
"classes": [
{"name": "metjsd"}
]
}
},
"end": []
}
【问题讨论】:
-
我的建议是使用绝对路径。此外,当服务器运行时,您不能使用 plocal 数据库(嵌入式)。停止服务器或将配置从 plocal: 更改为 remote:localhost/
-
谢谢。我进行了这些更改,现在出现此错误:Suppressed: com.orientechnologies.orient.core.exception.OSecurityAccessException: Wrong user/password to [connect] to the remote OrientDB Server instance。无论我将 dbUser/dbPassword 设置为 admin/admin、从配置文件中排除这些用户,还是使用我设置的非默认管理员用户,这都是正确的。
-
跟进 - 我尝试过的所有用户都可以在 OrientDB Studio 中毫无问题地进行身份验证,并且可以使用 Postman 进行成功的 API 调用。
-
我在您的配置文件中看到 Admin 的第一个大写字母,使用“admin”,全部小写。
-
谢谢。自发布此消息以来,我已经尝试了所有小写用户名+密码的用户。此后,我添加了 dbServerUser 和 dbServerPassword 并走得更远 - 添加了顶点,但 CSV 文件列名中没有隐含的属性。此外,控制台中没有更多反馈。所以,数据仍然没有导入。除了那个问题,我想知道为什么我必须作为服务器用户+密码。没有任何在线示例表明这种需要。