论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
数据库
›
Oracle
›
5分钟迁移关系型数据库到图数据库
5分钟迁移关系型数据库到图数据库
民工心事
金牌会员
|
2023-7-26 16:01:51
|
显示全部楼层
|
阅读模式
楼主
主题
886
|
帖子
886
|
积分
2658
本文分享自华为云社区《
5分钟迁移关系型数据库到图数据库
》,作者: RiverSide 。
以往开发者会使用关系型数据库如MySQL对领域数据进行存储,这类关系型数据库诞生较早,但并不适合存储关联度较大的数据,如社交关系网络。随着高关联度数据的存储及分析的需求随数据量日益增长,将海量关联数据存入图数据库中进行深度挖掘分析是大势所趋。华为云图引擎服务(Graph Engine Service)是国内首个商用的、拥有自主知识产权的国产分布式原生图引擎。广泛应用于社交应用、企业关系分析、风控、推荐、反欺诈等具有丰富关系数据的场景。
由于关系型数据库和如GES的图数据库天然存在的异构性,将已有的关系型数据库中的数据存储至图数据库中仍存在较多的难点。本文借助Apache Hop及GES插件,提供了多数据源通用、可视化、开箱即用的数据转换工程,可将多种关系型数据库迁移至GES图数据库中。转换工作流复用度高,可通过输入不同的元数据文件与数据源连接,使转换工作流完成多个数据源的迁移任务。
支持的数据源
借助Apache Hop的能力,支持MySQL,PostgreSQL,Oracle,MS SqlServer等多种关系型数据库,具体列表参见:Database Plugins :: Apache Hop
数据要求
已经建立好GES图模型,属性名与表中的字段名相同
对单个标签来说,所有属性都在同一张表中
数据源中的数据符合图模型中对应数据类型的要求(如GES中date类型为yyyy-mm-dd hh:mm:ss,若数据源中的date类型不合要求,应在数据源转为相应格式的字符串类型)
节点唯一性问题
在图数据库中不允许存在两个索引值相同的节点,因此需要确保节点的全局唯一性,即节点id。通常情况下,可以将表中具有唯一性约束的字段,如表的主键映射为对应节点数据的id。在关系型数据库(如MySQL)中,不同的表属于不同的命名空间,即不同表中的主键可以相同的值。因此在这种情况下,需要改变相应的映射规则。如通过将表名与主键拼接的方式生成新的节点id,以确保节点的全局唯一性。
在转换过程中,需要将指定的id映射关系生成为以下格式的csv:标签名, 表名,节点id对应字段,终点id对应字段。此处若标签对应的是点数据,则终点id为空。
如在TPC-H数据集中,表数据转换为一条简单的关系及其起点终点,需要指明的信息如下:
对于Order标签的节点,数据源中对应的表名为orders;采用主键o_orderkey作为节点id。
对于Supplier标签的节点,数据源中对应的表名为supplier;采用主键s_suppkey作为节点id。
对于supply标签的边,数据源中对应的表名为lineitem;起点为Supplier,对应表lineitem表中外键l_suppkey作为起点id;终点为Order,对应外键l_orderkey作为终点id。需要注意的是,边的起点与终点的id映射需要与对应标签的节点id映射对应,如例子中的lineitem表的外键l_suppkey对应的正是supplier表中的s_suppkey,它们的值为一一对应的关系。
流程概述
数据转换的主要思路是以csv文件格式为媒介,将关系型数据库中的数据按指定格式导出至csv文件中,导出数据借助华为云对象存储服务(OBS)上云,GES服务完成云端数据导入图实例。
数据的格式转换发生在查询结果生成过程中,通过解析元数据与id映射文件,我们可以在动态生成的SQL语句的SELECT子句中指定查询结果的格式。将查询结果写入csv即可得到可以导入GES图实例的数据文件。
环境准备
Apache Hop
Apache Hop(Hop Orchestration Platform)是一个数据编排和数据工程平台,旨在促进数据和元数据编排的各个方面。Hop让您专注于您试图解决的问题,而不会有技术阻碍。
下载Apache Hop v2.4.0:Download - Hop
Apache Hop依赖JDK11,检查java版本,若不满足可按附件中《使用说明》配置:
通过hop文件夹下hop-gui.bat进入gui操作界面
加载GES插件
GES Plugin for Apache Hop是GES开发用于连接Hop工具的插件,用于将上传数据文件、将云端数据导入图实例等操作。
在附件中下载GES插件后,解压.zip文件,将hop-transform-ges文件夹放到Apache Hop文件夹./hop/pulgins/transforms下。
数据迁移
数据准备
本文以TPC-H数据集为例,对数据集中的部分数据建立如下图模型:
对应的GES元数据文件如下,文件格式可参考:
GES图的基本概念和数据格式
节点id映射关系文件如下,使用”标签名_主键“的格式确保id唯一性:
运行迁移工程
点击上方菜单栏新建项目:
指定项目名称与项目主目录
将工程文件拷贝到项目主目录,完成后项目主目录下文件如下图。其中.hpl与.hwf文件为定义好的hop转换规则文件,tpch.xml为GES元数据文件,tpch.csv为节点id映射关系文件。
在gui界面中点击metadata->relational database connection,选择合适的关系型数据库类型,填入账号密码等信息。
点击metadata->GES Connection,建立图连接,按.zip附件中说明文档填入账号密码等信息。
点击项目详情,定义相关参数为项目变量:
打开RelationalDB_to_GES.hwf:
点击运行
数据转换结束,数据转换至对应路径下,共转换点边近3700万行,用时约200秒
登录前端图访问页面,可以查询到导入数据,数据成功导入。
附件:
样例工程及GES插件.zip.txt
点击关注,第一时间了解华为云新鲜技术~
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
民工心事
金牌会员
这个人很懒什么都没写!
楼主热帖
Cilium系列-10-启用 IPv6 BIG TCP和启 ...
【云原生】Spring Cloud是什么?Spring ...
如火如荼的「云原生」,你了解多少? ...
Spark快速上手(4)Spark核心编程-Spark ...
容器化|自建 MySQL 集群迁移到 Kubern ...
超详细的手把手撸代码---教你你⾃定义 ...
[源码阅读]-Redis核心事件流程 ...
大数据开源项目,一站式全自动化全生命 ...
一文看懂java单例模式
Java中如何将“日期字符串”转换为java ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表