带你认识图数据库性能和场景测试利器LDBC SNB


摘要:本文主要介绍基于交互式查询所用的数据生成器(下文简称Datagen),及LDBC SNB数据如何在华为图引擎服务GES中应用。

本文分享自华为云社区《【图数据库性能和场景测试利器LDBC SNB】系列一:数据生成器简介 & 应用于GES服务》,作者:闹闹与球球

本文的主要内容包括:基于交互式查询所用的数据生成器(下文简称Datagen)介绍,及LDBC SNB数据如何在华为图引擎服务GES中应用。LDBC SNB所预设的节点和关系、数据生成器和系统的测试用例,形成了一个逻辑自恰的数据“武林”,以ldbc snb为测试标准的图数据库产品,就像是行走于其中的侠客们,都得遵循同一套“武林规矩”(测试用例),究竟谁能击败各方高手,问鼎盟主呢?

LDBC SNB概述

LDBC SNB,全称The Linked Data Benchmark Council’s Social Network Benchmark,官网地址:http://ldbcouncil.org。LDBC是一个致力于发展图数据管理的产业联盟组织,它开发了一套标准的benchmarks,用于系统地衡量不同图数据库产品的功能和性能。SNB是基于社交网络场景开发的一组benchmarks,由交互式场景(Interactive workload)和商业智能场景(Business Intelligence workload)组成。

LDBC SNB 项目包括3个组件:数据生成器(Datagen)、测试驱动程序(Test Driver,用于执行Benchmark的测试)和测试用例实现(Reference Implementation,目前提供了基于Cypher(Neo4j)和SQL(PostgreSQL)两种查询语言的测试用例实现)

LDBC SNB有两种工作模式:

1、交互式查询(Interactive workload),适用于事务性的在线查询场景,比如基础的增删改查、shortestpath、多跳等;

2、商业智能 (Business Intelligence workload),适用于根据企业业务场景制定的复杂查询和大规模离线图分析等场景。

在不同的工作模式下,【Datagen】、【Test Driver】 和【测试用例实现】都是不同的。

章节概览

一、Datagen介绍

  1. 数据模型
  2. Data Types
  3. Data Schema
  4. Datagen的安装和运行流程
  5. Datagen的参数设置
  6. 常规参数设置
  7. 规模因子
  8. 序列化模式

二、LDBC SNB在GES中的应用

一、Datagen介绍

数据模型

Data Types

Datagen支持的属性datatype如下, 每种属性都支持单值和列表两种模式。

(截图来源于官方文档https://github.com/ldbc/ldbc_snb_datagen_hadoop

2)使用伪分布式的hadoop

cd ldbc_snb_datagen_hadoop/
cp params-csv-composite.ini params.ini
wget http://archive.apache.org/dist/hadoop/core/hadoop-3.2.1/hadoop-3.2.1.tar.gz
tar xf hadoop-3.2.1.tar.gz
export HADOOP_CLIENT_OPTS="-Xmx2G"
# set this to the Hadoop 3.2.1 directory
export HADOOP_HOME=`pwd`/hadoop-3.2.1
./run.sh

3)编译时出现缺失的jar包问题解决(报错如下)

解决方案:

从windows环境下载DatagenToGES数据转换脚本(基于CsvComposite序列化模式)可以将LDBC数,需在python3.6环境下运行。

DatagenTOGES脚本有如下功能:

  1. 将8种节点类型映射为1-8个数字前缀,将原id转换为以数字前缀为开头、长度为20bytes的新id,解决不同label的点之间id重复的问题;
  2. 增加knows边文件的反向边数据;
  3. 增加label列。

转换前文件格式(CsvComposite序列化模式):

转换后文件格式:

DatagenToGES转换规模因子为100的大规模数据集用时约半个小时。

数据转换脚本核心代码片段:

在GES中导入转换后的LDBC SNB(示例数据为SF0.1),并执行PageRank算法,效果如下图:

 

点击关注,第一时间了解华为云新鲜技术~