- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些数据位于 2 个 CSV 文件中,一个包含顶点,另一个文件包含另一个文件中的边。我正在研究如何使用 ETL 来设置它,已经接近但还没有完全实现——它基本上可以工作,但我的边缘有属性,我不确定它们是否正确加载。 This question很有帮助,但我仍然缺少一些东西......
这是我的数据:
顶点.csv:
label,data,date
v01,0.1234,2015-01-01
v02,0.5678,2015-01-02
v03,0.9012,2015-01-03
edges.csv:
u,v,weight,date
v01,v02,12.4,2015-06-17
v02,v03,17.9,2015-09-14
我使用这个导入我的顶点:
commonVertices.json:
{
"begin": [
{ "let": { "name": "$filePath",
"expression": "$fileDirectory.append($fileName)"
}
},
],
"config": { "log": "info"},
"source": { "file": { "path": "$filePath" } },
"extractor": { "csv": { "ignoreEmptyLines": true,
"nullValue": "N/A",
"dateFormat": "yyyy-mm-dd"
}
},
"transformers": [
{ "vertex": { "class": "myVertex" } },
{ "code": { "language": "Javascript",
"code": "print(' Current record: ' + record); record;" }
}
],
"loader": { "orientdb": {
"dbURL": "plocal:my_orientdb",
"dbType": "graph",
"batchCommit": 1000,
"classes": [ { "name": "myVertex", "extends", "V" },
],
"indexes": []
}
}
}
vertices.json:
{ "config": { "log": "info",
"fileDirectory": "./",
"fileName": "vertices.csv"
}
}
commonEdges.json:
{
"begin": [
{ "let": { "name": "$filePath",
"expression": "$fileDirectory.append($fileName )"
}
},
],
"config": { "log": "info"
},
"source": { "file": { "path": "$filePath" } },
"extractor": { "csv": { "ignoreEmptyLines": true,
"nullValue": "N/A",
"dateFormat": "yyyy-mm-dd"
}
},
"transformers": [
{ "merge": { "joinFieldName": "u", "lookup": "myVertex.label" } },
{ "edge": { "class": "myEdge",
"joinFieldName": "v",
"lookup": "myVertex.label",
"direction": "out",
"unresolvedLinkAction": "NOTHING"
}
},
{ "field": { "fieldNames": ["u", "v"], "operation": "remove" } }
],
"loader": {
"orientdb": {
"dbURL": "plocal:my_orientdb",
"dbType": "graph",
"batchCommit": 1000,
"useLightweightEdges": false,
"classes": [
{ "name": "myEdge", "extends", "E" }
],
"indexes": []
}
}
}
edges.json:
{
"config": {
"log": "info",
"fileDirectory": "./",
"fileName": "edges.csv"
}
}
我正在使用 oetl.sh 运行它,如下所示:
$ oetl.sh vertices.json commonVertices.json
$ oetl.sh edges.json commonEdges.json
一切都在运行,但是当我查询边缘时...我是 OrientDB 的新手,所以也许它正在获取我的边缘中的属性,但是当我查询边缘时,我看不到权重和日期字段:
orientdb {db=my_orientdb}> SELECT FROM myEdge
+----+-----+------+-----+-----+
|# |@RID |@CLASS|out |in |
+----+-----+------+-----+-----+
|0 |#33:0|myEdge|#25:0|#26:0|
|1 |#34:0|myEdge|#26:0|#27:0|
+----+-----+------+-----+-----+
顶点表包含来自 Edges.csv 的 [weight] 字段,而 [date] 字段正以一种奇怪的方式被破坏。该月的日期被 Edge.csv 文件中的日期覆盖,这是不可取的,但对我来说奇怪的是月份本身并没有发生变化:
orientdb {db=my_orientdb}> SELECT FROM myVertex
+----+-----+--------+------+-------------------+-----+------+----------+---------+
|# |@RID |@CLASS |data |date |label|weight|out_myEdge|in_myEdge|
+----+-----+--------+------+-------------------+-----+------+----------+---------+
|0 |#25:0|myVertex|0.1234|2015-01-17 00:06:00|v01 |12.4 |[#33:0] | |
|1 |#26:0|myVertex|0.5678|2015-01-14 00:09:00|v02 |17.9 |[#34:0] |[#33:0] |
|2 |#27:0|myVertex|0.9012|2015-01-03 00:01:00|v03 | | |[#34:0] |
+----+-----+--------+------+-------------------+-----+------+----------+---------+
我确信这可能是一个简单的调整,任何帮助都会很棒!
最佳答案
在边缘转换器中使用edgeFields来绑定(bind)边缘中的属性。示例:
"transformers": [
{ "merge": { "joinFieldName": "u", "lookup": "myVertex.label" } },
{ "edge": { "class": "myEdge",
"joinFieldName": "v",
"lookup": "myVertex.label",
"edgeFields": { "weight": "${input.weight}", "date": "${input.date}" },
"direction": "out",
"unresolvedLinkAction": "NOTHING"
}
},
{ "field": { "fieldNames": ["u", "v"], "operation": "remove" } }
],
希望有帮助。
关于OrientDB ETL 加载 CSV,其中顶点在一个文件中,边在另一个文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38628356/
我正在编写一个 ETL(在带有 mongodb 后端的 python 中)并且想知道:应该将 ETL 什么样的标准函数和工具称为 ETL? 此 ETL 将尽可能通用,采用可编写脚本和模块化的方法。大多
我正在构建一个从 informatica cdc 获取数据的暂存区。现在,例如,假设我正在复制两个表以进行增量加载。每次加载后,我必须从暂存表中删除已处理的数据。我连接这两个表来填充我的目标维度。问题
我们目前使用 Datastage ETL 来 - 每天从 15 个表(3 个不同的架构)导出一个 CSV/文本文件,其中包含数据。 我想知道是否有一种更简单的方法可以在不使用 ETL 的情况下完成此操
我有两个 CSV 文件: 首先包含以下格式的 ~ 500M 记录 id,name 10000023432,Tom User 13943423235,Blah Person 第二个包含 ~ 1.5B 以
在这篇文章中,我不是在问任何教程,如何做某事,在这篇文章中,我请求您的帮助,如果有人可以用简单的话解释我,什么是 DWH(数据仓库)以及什么是 ETL。 当然,我在 google 和 youtube
在这篇文章中,我不是在问任何教程,如何做某事,在这篇文章中,我请求您的帮助,如果有人可以用简单的话解释我,什么是 DWH(数据仓库)以及什么是 ETL。 当然,我在 google 和 youtube
我有多个日志文件 1.csv、2.csv 和 3.csv 由日志报告生成。我想读取这些文件并使用 Scriptella 同时解析它们。 最佳答案 Scriptella 不提供开箱即用的并行作业执行。相
我正在构建一个 ETL,它将通过一个变量在不同的源上运行。 我如何执行我的工作(rake 任务) Kiba.run(Kiba.parse(IO.read(etl_file),etl_file)) 并为
我有 3 个表,一个用于顶点 A,一个用于顶点 B,第三个用于从 B 到 A 的边。如何将此图导入 OrientDB? 目前,教程只说如何导入两个csv文件,一个用于顶点A,另一个用于顶点B和从A连接
将 Apache NIFI 用于 ETL 过程的效果如何,源为 HDFS,目标为 Oracle DB。 Apache NIFI 与 Pentaho、Datastage 等其他 ETL 工具相比有哪些局
我最近才开始使用 Rhino-Etl对于非常简单的 ETL 过程,并取得了巨大的成功。我现在有一个稍微复杂的场景要解决,但我没有发现 ConventionInputCommandOperation 以
我正忙于处理 ETL 管道,但对于这个特定问题,我需要获取一个数据表,并将每一列变成一个集合 - 即一个唯一数组。 我正在努力思考如何在 Kiba 框架内实现这一目标。 这是我要实现的目标的本质: 来
我读过 Presto 用于临时查询,而 Hive/spark 更适用于 ETL 场景。在 ETL 中不使用 Presto 的原因似乎是因为 Presto 查询可能会失败并且没有中间查询容错。 然而,看
我有 2 个 csv 文件。 人.csv ID,PetID,Jumps 1,101,Yes 2,102,No 3,103,Yes 宠物.csv ID,Name 101,Dog 102,Cat 103,
我正在寻找 ETL 工具,在谷歌上发现了很多关于 Pentaho Kettle 的信息。 我还需要一个数据分析器在 Star Schema 上运行,以便业务用户可以玩转并生成任何类型的报告或矩阵。 P
我目前正在评估 Talend ETL(用于数据集成的 Talend Open Studio)。 我想知道如何/是否可以将 ETL 作业公开为 Web 服务。 我知道我可以将作业导出为 Web 服务并通
我是 Actor 建模领域的新手,我爱上了这个想法。但是,是否存在某种模式来以安全的方式处理一批仅用于大容量存储的消息? 恐怕如果我阅读了预期 500 条的 400 条消息并将它们放入列表中,如果系统
我在 Heroku 服务器上收到此错误,但它在本地完全正常工作。 这是从表单获取 CSV 文件并尝试存储在资源文件夹中的 Controller 。 @PostMapping(value = "/imp
我们正在重组我们的整个数据库。也就是说,数据库结构发生了翻天覆地的变化。一些表字段将被转换为表行;会有很多验证;一些表被分解成多个表,而另一些则合并在一起。基本上我们正在将遗留数据库更改为 3NF。
我正在尝试创建一个可以通过 HTTP 下载多个文件的作业。这些文件的列表位于 MySQL 表中。我通过以下步骤创建了一个主要作业:开始、设置变量、FILELIST(我创建的转换)、下载(我创建的作业)
我是一名优秀的程序员,十分优秀!