创建数据表 本例中为了方便演示,我们需要通过数据集成将
CS V格式的样例数据导入到MySQL数据库中,之后MySQL数据库即作为案例场景中的原始数据源端。因此在数据导入中,需要在MySQL数据库中预先创建原始数据表。 正式业务流程中,MySQL数据库源端数据需要导入OBS数据库作为点数据集和边数据集,这种到OBS的数据集成场景无需提前创建表。但MySQL数据库源端数据导入到MRS Hive时,需要在MRS Hive数据库中预先创建标准数据表。 因此,本例共涉及MySQL数据库创建原始数据表和在MRS Hive数据库中创建标准数据表。本例以执行SQL方式建表为例进行说明。 创建MySQL原始数据表。在MySQL中选择原始表所在的数据库后,执行如下SQL语句,按照数据源准备中的原始数据结构创建4个原始数据表。 DROP TABLE IF EXISTS `edge_friends`;
CREATE TABLE `edge_friends` (
`user1` varchar(32) DEFAULT NULL,
`user2` varchar(32) DEFAULT NULL
);
DROP TABLE IF EXISTS `edge_rate`;
CREATE TABLE `edge_rate` (
`user` varchar(32) DEFAULT NULL,
`movie` varchar(64) DEFAULT NULL,
`score` int(11) unsigned DEFAULT NULL,
`datatime` varchar(32) DEFAULT NULL
);
DROP TABLE IF EXISTS `vertex_movie`;
CREATE TABLE `vertex_movie` (
`movie` varchar(64) DEFAULT NULL,
`year` varchar(32) DEFAULT NULL,
`genres` varchar(64) DEFAULT NULL
);
DROP TABLE IF EXISTS `vertex_user`;
CREATE TABLE `vertex_user` (
`user` varchar(32) DEFAULT NULL,
`gender` varchar(32) DEFAULT NULL,
`age` varchar(32) DEFAULT NULL,
`occupation` varchar(32) DEFAULT NULL,
`zip-code` varchar(32) DEFAULT NULL
); 创建MRS Hive标准数据表。 将原始数据结构根据GES图导入的要求标准化。则点表vertex_user和vertex_movie需要在第二列补充标签label,边表edge_rate和edge_friends需要在第三列补充标签label。 点数据集和边数据集应符合GES图数据格式要求。图数据格式要求简要介绍如下,详情可参见一般图数据格式。 点数据集罗列了各个点的数据信息。一行为一个点的数据。格式如下所示,id是点数据的唯一标识。 id,label,property 1,property 2,property 3,… 边数据集罗列了各个边的数据信息,一行为一条边的数据。GES中图规格是以边的数量进行定义的,如一百万边。格式如下所示,id 1、id 2是一条边的两个端点的id。 id 1, id 2, label, property 1, property 2, … 您可以在DataArts Studio数据开发模块,选择在管理中心创建数据连接中创建的MRS Hive数据连接,并选择数据库后,执行如下SQL语句,在MRS Hive数据库中创建一个标准数据表。 图4 创建MRS Hive标准数据表 DROP TABLE IF EXISTS `edge_friends`;
CREATE TABLE test_ges.`edge_friends` (
`user1` STRING COMMENT '',
`user2` STRING COMMENT '',
`label` STRING COMMENT ''
);
DROP TABLE IF EXISTS `edge_rate`;
CREATE TABLE test_ges.`edge_rate` (
`user` STRING COMMENT '',
`movie` STRING COMMENT '',
`label` STRING COMMENT '',
`score` INT COMMENT '',
`datatime` STRING COMMENT ''
);
DROP TABLE IF EXISTS `vertex_movie`;
CREATE TABLE test_ges.`vertex_movie` (
`movie` STRING COMMENT '',
`label` STRING COMMENT '',
`year` STRING COMMENT '',
`genres` STRING COMMENT ''
);
DROP TABLE IF EXISTS `vertex_user`;
CREATE TABLE test_ges.`vertex_user` (
`user` STRING COMMENT '',
`label` STRING COMMENT '',
`gender` STRING COMMENT '',
`age` STRING COMMENT '',
`occupation` STRING COMMENT '',
`zip-code` STRING COMMENT ''
);