Orientdb和传送器问题

时间:2016-04-29 14:56:24

标签: etl orientdb

我很难用Orientdb和teleporter做一个简单的用例

堆栈:

操作系统:Windows 10 / Java:v8 / Orientdb:2.2 beta2 / Teleporter:1.0.0 /    数据库:MS SQL Express 2014

设定:

  1. 已安装,MS SQL Express 2014,实例名称为SQL2014
  2. 使用两个表创建新的db Graphdb,具有PK国家ID的国家/地区以及具有PK省ID和FK国家ID的省
  3. 已安装,并启动Orient db 2.2 beta 2
  4. 创建了新的oteleporter_graphdb.bat

    oteleporter.bat -jdriver sqlserver -jurl jdbc:sqlserver://:54963; instance:SQL2014; databaseName:graphdb -juser sa -jpasswd -ourl plocal:$ ORIENTDB_HOME / databases / graphdb -s naive -nr java -v 2

  5. 测试用例:

    1. 按原样运行oteleporter_graph.bat
    2. 此测试用例读取db并为表的sql元数据部分创建了警告,但Country&省不属于它。

      1. 修改oteleporter_graph.bat以包含国家和省表

        oteleporter.bat -jdriver sqlserver -jurl jdbc:sqlserver://:54963; instance:SQL2014; databaseName:graphdb -juser sa -jpasswd -ourl plocal:$ ORIENTDB_HOME / databases / graphdb -s naive -nr java -v 2 -include Country,Province

      2. 此测试已中止!

        1. 修改oteleporter_graph.bat以仅包含国家/地区表。

          oteleporter.bat -jdriver sqlserver -jurl jdbc:sqlserver://:54963; instance:SQL2014; databaseName:graphdb -juser sa -jpasswd -ourl plocal:$ ORIENTDB_HOME / databases / graphdb -s naive -nr java -v 2 -include Country

        2. 此测试用例运行时没有任何错误,但未从数据库中读取任何表,也未输出任何内容。

          问题:

          1. 我错过了任何配置步骤吗?
          2. 测试用例#2,如何定义多个表? 其他问题:
          3. 可以在表格中添加过滤器吗?
          4. 可以包含视图而不是表格吗?传送器将如何识别PK / FK?
          5. 提前致谢

2 个答案:

答案 0 :(得分:2)

我会尝试按顺序回答您的问题。

  1. 要安装和运行Teleporter,您必须:
    • orientdb-teleporter-1.0.0.jar路径中提取ORIENTDB_HOME/plugins
    • 提取oteleporter.bat路径中的oteleporter.shORIENTDB_HOME/bin脚本,并使用预期参数从该位置启动它们。
  2. 您可以使用您使用的语法简单地在多个表上定义过滤器: -include <tableName1>,<tableName2>,...,<tableNameX> 但如果您在Windows上运行Teleporter,可能需要在最后一个参数中添加引号,因此请尝试: –include "Country,Province"
  3. 可以使用&#34; table-granularity&#34;进行过滤,因此您可以过滤或过滤掉整个表,但不能过滤掉其中包含的元素(例如列)。 在下一个版本中,可能会以更精细的粒度管理模式过滤。
  4. Teleporter在迁移中仅包含物化视图(在数据库中持久化),并且在第一个版本中,从数据库模式中存在的元数据开始识别PK和FK。 因此,如果您没有在两个表之间定义FK,则您不会在对应顶点之间有边。在Teleporter的下一个版本中,可以通过输入JSON定义关系。
  5. 如果您有任何疑问,请参阅官方页面,文档和博客文章:

    http://orientdb.com/orientdb-labs/teleporter/ (官方传送者页面)

    https://github.com/orientechnologies/orientdb-labs/blob/master/Teleporter-Index.md (官方文件)

    http://orientdb.com/orientdb-teleporter-making-migrations-easier/ (博客文章:OrientDB Teleporter - 让迁移变得更容易(第1部分))

    http://orientdb.com/orientdb-teleporter-making-migrations-easier-part-2/ (博客文章:OrientDB Teleporter - 让迁移变得更容易(第2部分))

答案 1 :(得分:1)

我正在尝试这些步骤:

  1. orientdb-teleporter-1.0.0.jar复制到您/plugins文件夹中;

  2. oteleporter.bat复制到您/bin文件夹中;

  3. 使用以下结构在MySQL中创建新的graphdb

    mysql> select * from province;
    +------------+--------------+-----------+
    | provinceId | provinceName | countryId |
    +------------+--------------+-----------+
    |          1 | Milano       |         1 |
    |          2 | Parigi       |         2 |
    +------------+--------------+-----------+
    
    mysql> select * from country;
    
    +-----------+-------------+
    | countryId | countryName |
    +-----------+-------------+
    |         1 | Italia      |
    |         2 | Francia     |
    +-----------+-------------+
    
  4. 在终端上,转到/bin文件夹并运行以下命令:

    oteleporter.bat -jdriver mysql -jurl jdbc:mysql://localhost:3306/graphdb
    -juser root -jpasswd MyPassword -ourl plocal:C:/path/to/graphdb -s naive -nr java -v 2
    
  5. 运行server.bat;

  6. 转到Orient Studio:

  7. enter image description here

    现在您可以看到在OrientDB中正确创建的表。

    希望有所帮助