【问题标题】:Create Edges by ETL in same Class通过 ETL 在同一类中创建边
【发布时间】:2016-10-26 11:27:16
【问题描述】:

1) 在数据库中准备好具有 ItemId 和 Name 的 Class Items。 2) CSV 文件:两列,

ItemId1,ItemId2001

ItemId1,ItemId2345

ItemId1,ItemId2381

...

ItemId2,ItemId8393

ItemId2,ItemId8743

.. 等等

问题:

如何定义 ETL json 文件以在 ItemId1 和 col#2 中的所有 ItemId 之间以及 ItemId2 与其 col#2-peers 之间创建边缘。

【问题讨论】:

    标签: orientdb orientdb2.2 orientdb-etl


    【解决方案1】:

    我试图重现你的问题。

    我有这个项目

    我用这段代码连接了它们

    {
      "source": { "file": { "path": "myPath/item.csv" } },
      "extractor": {"row": {}},
        "transformers": [{
            "csv": {
                "separator": ","
            }
        },
        {
        "command" : {
                "command" : "create edge from (select from Item where idItem= '${input.idItem1}') to (select from Item where idItem= '${input.idItem2}')",
                "output" : "edge"
            }
        }
      ],
      "loader": {
        "orientdb": {
           "dbURL": "plocal:myPath/myDb",
           "dbType": "graph"
        }
      }
    }
    

    我得到了

    希望对你有帮助。

    【讨论】:

    • 这里可以添加“unresolvedLinkAction”吗?如果是的话,在哪里?
    • 我认为不可能。阅读文档orientdb.com/docs/2.2/Transformer.html 似乎您只能将它与合并和边缘转换器一起使用,而不是与命令一起使用
    • 这个过程疯狂地创建了数百万条边。在问题跟踪器中添加条目。
    • 不是问题。关键是选择中的重复键。需要@rid 使源顶点唯一。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    • 2020-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多