У меня есть два SQL файла из дампов Википедии, каждый из которых представляет собой таблицу данных MySQL со следующей схемой:
CREATE TABLE `category` (
`cat_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`cat_title` varbinary(255) NOT NULL DEFAULT '',
`cat_pages` int(11) NOT NULL DEFAULT '0',
`cat_subcats` int(11) NOT NULL DEFAULT '0',
`cat_files` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`cat_id`),
UNIQUE KEY `cat_title` (`cat_title`),
KEY `cat_pages` (`cat_pages`)
) ENGINE=InnoDB AUTO_INCREMENT=247902204 DEFAULT CHARSET=binary;
CREATE TABLE `categorylinks` (
`cl_from` int(8) unsigned NOT NULL DEFAULT '0',
`cl_to` varbinary(255) NOT NULL DEFAULT '',
`cl_sortkey` varbinary(230) NOT NULL DEFAULT '',
`cl_timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`cl_sortkey_prefix` varbinary(255) NOT NULL DEFAULT '',
`cl_collation` varbinary(32) NOT NULL DEFAULT '',
`cl_type` enum('page','subcat','file') NOT NULL DEFAULT 'page',
PRIMARY KEY (`cl_from`,`cl_to`),
KEY `cl_timestamp` (`cl_to`,`cl_timestamp`),
KEY `cl_sortkey` (`cl_to`,`cl_type`,`cl_sortkey`,`cl_from`),
KEY `cl_collation_ext` (`cl_collation`,`cl_to`,`cl_type`,`cl_from`)
) ENGINE=InnoDB DEFAULT CHARSET=binary;
/*!40101 SET character_set_client = @saved_cs_client */;
В основном category
перечисляет все категории в Википедии. В каждой категории может быть несколько родителей и несколько детей одновременно. Эти родительско-дочерние (иначе) отношения находятся в categorylinks
. categorylinks
. cl_from
является внешним ключом для category
. cat_id
Как мне заполнить это в базе данных графа OrientDB так, чтобы каждый узел представлял категорию, а каждое ребро было представлено связь между категориями? Все остальные поля в любой таблице могут быть заполнены как свойства / атрибуты.