我试图在OrientDB数据库(版本2.1.12)中导入RDBMS(MySQL)架构中的一些表。
例如在MySQL模式中,我有一个名为drug的表,其中一个外键链接到另一个名为demo的表的属性,定义如下:
primaryid bigint references demo(PRIMARYID) on update cascade on delete cascade
对于这种关系,我可以定义ETL模块在orientDB图中导入,因为我使用了一个定义如下的trasformer:
"transformers": [
{ "vertex": { "class": "drug" } },
{ "edge": { "class": "drugDemo",
"joinFieldName": "primaryid",
"lookup": "demo.primaryid",
"direction": "in"
}
}
],
使用primaryid属性作为连接字段,在demo和drug类之间正确创建边连接。
但我还有一个名为indi的表,其中多列外键定义如下:
foreign key (PRIMARYID, INDI_DRUG_SEQ) references drug(PRIMARYID, DRUG_SEQ)
在这种情况下,如何在ETL模块中定义正确将表格导入图形的边缘转换器?
从orientDB文档中我找不到多列外键的解决方案。我认为可能的解决方案是使用分隔符将新属性定义为PRIMARYID和INDI_DRUG_SEQ属性字符串的串联,但我不确定它是否是一个好的解决方案。
有什么想法吗?
答案 0 :(得分:0)
我正在尝试这个并且似乎有效:
"transformers": [
{ "vertex": { "class": "indi" } },
{ "edge": { "class": "indiDemo",
"joinFieldName": "primaryID",
"lookup": "demo.primaryID",
"joinFieldName": "indi_drug_seq",
"lookup": "demo.drug_seq",
"direction": "in"
}
}
],
让我知道它是否适合你。