圖數據庫之hugegraph

  一、HugeGraph是一款易用、高效、通用的開源圖數據庫系統(Graph Database,GitHub項目地址), 實現了Apache TinkerPop3框架及完全兼容Gremlin查詢語言, 具備完善的工具鏈組件,助力用戶輕鬆構建基於圖數據庫之上的應用和產品。HugeGraph支持百億以上的頂點和邊快速導入,並提供毫秒級的關聯關係查詢能力(OLTP), 並支持大規模分佈式圖分析(OLAP)。

  HugeGraph典型應用場景包括深度關係探索、關聯分析、路徑搜索、特徵抽取、數據聚類、社區檢測、 知識圖譜等,適用業務領域有如網絡安全、電信詐騙、金融風控、廣告推薦、社交網絡和智能機器人等。

本系統的主要應用場景是解決反欺詐、威脅情報、黑產打擊等業務的圖數據存儲和建模分析需求,在此基礎上逐步擴展及支持了更多的通用圖應用。

  二、目前hugegraph1.0.0版本已經有apache接管了,已經進行了開源處理,可以在apache的網站看到hugegraph圖數據庫相關的概述,不過大部分的文檔還是在百度hugegraph的官網上面了。

  三、和neo4j相比,概念層面大同小異。不同點如下:

    1、hugegraph需要先定義屬性、標籤(頂點)、關係類型(邊)。並且入庫數據時,相關的東西必須存在。neo4j不需要預先定義。

    2、hugegraph在1.0.0版本後支持cypher語法查詢了。相對於neo4j也是做了兼容了。

    3、hugegraph可以切換不同的數據源存儲。neo4j單節點性能優勢比較大,hugegraph分佈式能力更好。

    4、其他的不同點主要是在性能層面。具體地址參考:https://hugegraph.apache.org/cn/docs/changelog/hugegraph-1.0.0-release-notes/  https://zhuanlan.zhihu.com/p/199277762?utm_id=0

    

  四、安裝:百度官網地址:https://hugegraph.apache.org/cn/ 查看安裝文檔。apahce官網地址:https://incubator.apache.org/clutch/hugegraph.html 

    這採用apache的1.0.0版本docker安裝。db是執行後生成的腳本。driver是因爲鏡像不帶驅動。

  

   docker-compose.yml

version: '3'
services:
  xbd-mysql:
    build:
      context: ./
      dockerfile: ./dockerfile/Dockerfile-mysql
    image: xbd-mysql:8.0.29
    container_name: xbd-mysql
    restart: always
    privileged: true
    ports:
      - 3306:3306
    environment:
      - TZ=Asia/Shanghai
      - MYSQL_ROOT_PASSWORD=root
    volumes:
      - /var/lib/hugegraph:/var/lib/mysql
    command:
      --lower_case_table_names=1
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --default-authentication-plugin=mysql_native_password
  xbd-hugegraph-server:
    build:
      context: ./
      dockerfile: ./dockerfile/Dockerfile-hugegraph-server
    image: xbd-hugegraph-server:1.0.0
    container_name: xbd-hugegraph-server
    restart: always
    privileged: true
    ports:
      - 8080:8080
    depends_on:
      - xbd-mysql
  xbd-hugegraph-hubble:
    image: hugegraph/hubble
    container_name: xbd-hugegraph-hubble
    restart: always
    privileged: true
    ports:
      - 8088:8088

  dockerfile

FROM mysql:8.0.29
MAINTAINER xbd
COPY ./db /docker-entrypoint-initdb.d
FROM hugegraph/hugegraph:1.0.0
ADD ./driver/mysql-connector-java-8.0.29.jar /hugegraph/lib
COPY ./conf/hugegraph.properties /hugegraph/conf/graphs/hugegraph.properties

  db產生方式:https://hugegraph.apache.org/cn/docs/quickstart/hugegraph-server/

CREATE DATABASE IF NOT EXISTS hugegraph DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

USE hugegraph;

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for c
-- ----------------------------
DROP TABLE IF EXISTS `c`;
CREATE TABLE `c`  (
  `SCHEMA_TYPE` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `ID` int NULL DEFAULT NULL,
  PRIMARY KEY (`SCHEMA_TYPE`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of c
-- ----------------------------

-- ----------------------------
-- Table structure for el
-- ----------------------------
DROP TABLE IF EXISTS `el`;
CREATE TABLE `el`  (
  `ID` int NOT NULL,
  `NAME` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `FREQUENCY` tinyint NULL DEFAULT NULL,
  `SOURCE_LABEL` int NULL DEFAULT NULL,
  `TARGET_LABEL` int NULL DEFAULT NULL,
  `SORT_KEYS` varchar(1024) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `PROPERTIES` varchar(1024) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `NULLABLE_KEYS` varchar(1024) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `INDEX_LABELS` varchar(1024) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `ENABLE_LABEL_INDEX` tinyint(1) NULL DEFAULT NULL,
  `USER_DATA` text CHARACTER SET utf8 COLLATE utf8_bin NULL,
  `STATUS` tinyint NULL DEFAULT NULL,
  `TTL` int NULL DEFAULT NULL,
  `TTL_START_TIME` int NULL DEFAULT NULL,
  PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of el
-- ----------------------------

-- ----------------------------
-- Table structure for g_ai
-- ----------------------------
DROP TABLE IF EXISTS `g_ai`;
CREATE TABLE `g_ai`  (
  `FIELD_VALUES` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `INDEX_LABEL_ID` int NOT NULL,
  `ELEMENT_IDS` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`FIELD_VALUES`, `INDEX_LABEL_ID`, `ELEMENT_IDS`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of g_ai
-- ----------------------------

-- ----------------------------
-- Table structure for g_di
-- ----------------------------
DROP TABLE IF EXISTS `g_di`;
CREATE TABLE `g_di`  (
  `INDEX_LABEL_ID` int NOT NULL,
  `FIELD_VALUES` double NOT NULL,
  `ELEMENT_IDS` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`INDEX_LABEL_ID`, `FIELD_VALUES`, `ELEMENT_IDS`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of g_di
-- ----------------------------

-- ----------------------------
-- Table structure for g_fi
-- ----------------------------
DROP TABLE IF EXISTS `g_fi`;
CREATE TABLE `g_fi`  (
  `INDEX_LABEL_ID` int NOT NULL,
  `FIELD_VALUES` double NOT NULL,
  `ELEMENT_IDS` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`INDEX_LABEL_ID`, `FIELD_VALUES`, `ELEMENT_IDS`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of g_fi
-- ----------------------------

-- ----------------------------
-- Table structure for g_hi
-- ----------------------------
DROP TABLE IF EXISTS `g_hi`;
CREATE TABLE `g_hi`  (
  `INDEX_LABEL_ID` int NOT NULL,
  `FIELD_VALUES` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `ELEMENT_IDS` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`INDEX_LABEL_ID`, `FIELD_VALUES`, `ELEMENT_IDS`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of g_hi
-- ----------------------------

-- ----------------------------
-- Table structure for g_ie
-- ----------------------------
DROP TABLE IF EXISTS `g_ie`;
CREATE TABLE `g_ie`  (
  `OWNER_VERTEX` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `DIRECTION` tinyint NOT NULL,
  `LABEL` int NOT NULL,
  `SORT_VALUES` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `OTHER_VERTEX` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `PROPERTIES` text CHARACTER SET utf8 COLLATE utf8_bin NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`OWNER_VERTEX`, `DIRECTION`, `LABEL`, `SORT_VALUES`, `OTHER_VERTEX`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of g_ie
-- ----------------------------

-- ----------------------------
-- Table structure for g_ii
-- ----------------------------
DROP TABLE IF EXISTS `g_ii`;
CREATE TABLE `g_ii`  (
  `INDEX_LABEL_ID` int NOT NULL,
  `FIELD_VALUES` int NOT NULL,
  `ELEMENT_IDS` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`INDEX_LABEL_ID`, `FIELD_VALUES`, `ELEMENT_IDS`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of g_ii
-- ----------------------------

-- ----------------------------
-- Table structure for g_li
-- ----------------------------
DROP TABLE IF EXISTS `g_li`;
CREATE TABLE `g_li`  (
  `INDEX_LABEL_ID` int NOT NULL,
  `FIELD_VALUES` bigint NOT NULL,
  `ELEMENT_IDS` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`INDEX_LABEL_ID`, `FIELD_VALUES`, `ELEMENT_IDS`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of g_li
-- ----------------------------

-- ----------------------------
-- Table structure for g_oe
-- ----------------------------
DROP TABLE IF EXISTS `g_oe`;
CREATE TABLE `g_oe`  (
  `OWNER_VERTEX` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `DIRECTION` tinyint NOT NULL,
  `LABEL` int NOT NULL,
  `SORT_VALUES` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `OTHER_VERTEX` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `PROPERTIES` text CHARACTER SET utf8 COLLATE utf8_bin NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`OWNER_VERTEX`, `DIRECTION`, `LABEL`, `SORT_VALUES`, `OTHER_VERTEX`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of g_oe
-- ----------------------------

-- ----------------------------
-- Table structure for g_si
-- ----------------------------
DROP TABLE IF EXISTS `g_si`;
CREATE TABLE `g_si`  (
  `FIELD_VALUES` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `INDEX_LABEL_ID` int NOT NULL,
  `ELEMENT_IDS` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`FIELD_VALUES`, `INDEX_LABEL_ID`, `ELEMENT_IDS`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of g_si
-- ----------------------------

-- ----------------------------
-- Table structure for g_ui
-- ----------------------------
DROP TABLE IF EXISTS `g_ui`;
CREATE TABLE `g_ui`  (
  `FIELD_VALUES` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `INDEX_LABEL_ID` int NOT NULL,
  `ELEMENT_IDS` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`FIELD_VALUES`, `INDEX_LABEL_ID`, `ELEMENT_IDS`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of g_ui
-- ----------------------------

-- ----------------------------
-- Table structure for g_v
-- ----------------------------
DROP TABLE IF EXISTS `g_v`;
CREATE TABLE `g_v`  (
  `ID` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `LABEL` int NULL DEFAULT NULL,
  `PROPERTIES` mediumtext CHARACTER SET utf8 COLLATE utf8_bin NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of g_v
-- ----------------------------

-- ----------------------------
-- Table structure for il
-- ----------------------------
DROP TABLE IF EXISTS `il`;
CREATE TABLE `il`  (
  `ID` int NOT NULL,
  `NAME` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `BASE_TYPE` tinyint NULL DEFAULT NULL,
  `BASE_VALUE` int NULL DEFAULT NULL,
  `INDEX_TYPE` tinyint NULL DEFAULT NULL,
  `FIELDS` varchar(1024) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `USER_DATA` text CHARACTER SET utf8 COLLATE utf8_bin NULL,
  `STATUS` tinyint NULL DEFAULT NULL,
  PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of il
-- ----------------------------

-- ----------------------------
-- Table structure for m
-- ----------------------------
DROP TABLE IF EXISTS `m`;
CREATE TABLE `m`  (
  `NAME` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `VALUE` varchar(1024) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  PRIMARY KEY (`NAME`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of m
-- ----------------------------
INSERT INTO `m` VALUES ('VERSION', '1.11');

-- ----------------------------
-- Table structure for pk
-- ----------------------------
DROP TABLE IF EXISTS `pk`;
CREATE TABLE `pk`  (
  `ID` int NOT NULL,
  `NAME` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `DATA_TYPE` tinyint NULL DEFAULT NULL,
  `CARDINALITY` tinyint NULL DEFAULT NULL,
  `AGGREGATE_TYPE` tinyint NULL DEFAULT NULL,
  `WRITE_TYPE` tinyint NULL DEFAULT NULL,
  `PROPERTIES` varchar(1024) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `USER_DATA` text CHARACTER SET utf8 COLLATE utf8_bin NULL,
  `STATUS` tinyint NULL DEFAULT NULL,
  PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of pk
-- ----------------------------

-- ----------------------------
-- Table structure for s_ai
-- ----------------------------
DROP TABLE IF EXISTS `s_ai`;
CREATE TABLE `s_ai`  (
  `FIELD_VALUES` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `INDEX_LABEL_ID` int NOT NULL,
  `ELEMENT_IDS` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`FIELD_VALUES`, `INDEX_LABEL_ID`, `ELEMENT_IDS`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of s_ai
-- ----------------------------

-- ----------------------------
-- Table structure for s_di
-- ----------------------------
DROP TABLE IF EXISTS `s_di`;
CREATE TABLE `s_di`  (
  `INDEX_LABEL_ID` int NOT NULL,
  `FIELD_VALUES` double NOT NULL,
  `ELEMENT_IDS` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`INDEX_LABEL_ID`, `FIELD_VALUES`, `ELEMENT_IDS`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of s_di
-- ----------------------------

-- ----------------------------
-- Table structure for s_fi
-- ----------------------------
DROP TABLE IF EXISTS `s_fi`;
CREATE TABLE `s_fi`  (
  `INDEX_LABEL_ID` int NOT NULL,
  `FIELD_VALUES` double NOT NULL,
  `ELEMENT_IDS` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`INDEX_LABEL_ID`, `FIELD_VALUES`, `ELEMENT_IDS`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of s_fi
-- ----------------------------

-- ----------------------------
-- Table structure for s_hi
-- ----------------------------
DROP TABLE IF EXISTS `s_hi`;
CREATE TABLE `s_hi`  (
  `INDEX_LABEL_ID` int NOT NULL,
  `FIELD_VALUES` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `ELEMENT_IDS` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`INDEX_LABEL_ID`, `FIELD_VALUES`, `ELEMENT_IDS`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of s_hi
-- ----------------------------

-- ----------------------------
-- Table structure for s_ie
-- ----------------------------
DROP TABLE IF EXISTS `s_ie`;
CREATE TABLE `s_ie`  (
  `OWNER_VERTEX` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `DIRECTION` tinyint NOT NULL,
  `LABEL` int NOT NULL,
  `SORT_VALUES` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `OTHER_VERTEX` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `PROPERTIES` text CHARACTER SET utf8 COLLATE utf8_bin NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`OWNER_VERTEX`, `DIRECTION`, `LABEL`, `SORT_VALUES`, `OTHER_VERTEX`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of s_ie
-- ----------------------------

-- ----------------------------
-- Table structure for s_ii
-- ----------------------------
DROP TABLE IF EXISTS `s_ii`;
CREATE TABLE `s_ii`  (
  `INDEX_LABEL_ID` int NOT NULL,
  `FIELD_VALUES` int NOT NULL,
  `ELEMENT_IDS` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`INDEX_LABEL_ID`, `FIELD_VALUES`, `ELEMENT_IDS`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of s_ii
-- ----------------------------

-- ----------------------------
-- Table structure for s_li
-- ----------------------------
DROP TABLE IF EXISTS `s_li`;
CREATE TABLE `s_li`  (
  `INDEX_LABEL_ID` int NOT NULL,
  `FIELD_VALUES` bigint NOT NULL,
  `ELEMENT_IDS` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`INDEX_LABEL_ID`, `FIELD_VALUES`, `ELEMENT_IDS`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of s_li
-- ----------------------------

-- ----------------------------
-- Table structure for s_oe
-- ----------------------------
DROP TABLE IF EXISTS `s_oe`;
CREATE TABLE `s_oe`  (
  `OWNER_VERTEX` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `DIRECTION` tinyint NOT NULL,
  `LABEL` int NOT NULL,
  `SORT_VALUES` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `OTHER_VERTEX` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `PROPERTIES` text CHARACTER SET utf8 COLLATE utf8_bin NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`OWNER_VERTEX`, `DIRECTION`, `LABEL`, `SORT_VALUES`, `OTHER_VERTEX`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of s_oe
-- ----------------------------

-- ----------------------------
-- Table structure for s_si
-- ----------------------------
DROP TABLE IF EXISTS `s_si`;
CREATE TABLE `s_si`  (
  `FIELD_VALUES` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `INDEX_LABEL_ID` int NOT NULL,
  `ELEMENT_IDS` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`FIELD_VALUES`, `INDEX_LABEL_ID`, `ELEMENT_IDS`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of s_si
-- ----------------------------

-- ----------------------------
-- Table structure for s_ui
-- ----------------------------
DROP TABLE IF EXISTS `s_ui`;
CREATE TABLE `s_ui`  (
  `FIELD_VALUES` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `INDEX_LABEL_ID` int NOT NULL,
  `ELEMENT_IDS` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`FIELD_VALUES`, `INDEX_LABEL_ID`, `ELEMENT_IDS`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of s_ui
-- ----------------------------

-- ----------------------------
-- Table structure for s_v
-- ----------------------------
DROP TABLE IF EXISTS `s_v`;
CREATE TABLE `s_v`  (
  `ID` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `LABEL` int NULL DEFAULT NULL,
  `PROPERTIES` mediumtext CHARACTER SET utf8 COLLATE utf8_bin NULL,
  `EXPIRED_TIME` bigint NULL DEFAULT NULL,
  PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of s_v
-- ----------------------------

-- ----------------------------
-- Table structure for vl
-- ----------------------------
DROP TABLE IF EXISTS `vl`;
CREATE TABLE `vl`  (
  `ID` int NOT NULL,
  `NAME` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `ID_STRATEGY` tinyint NULL DEFAULT NULL,
  `PRIMARY_KEYS` varchar(1024) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `PROPERTIES` varchar(1024) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `NULLABLE_KEYS` varchar(1024) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `INDEX_LABELS` varchar(1024) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `ENABLE_LABEL_INDEX` tinyint(1) NULL DEFAULT NULL,
  `USER_DATA` text CHARACTER SET utf8 COLLATE utf8_bin NULL,
  `STATUS` tinyint NULL DEFAULT NULL,
  `TTL` int NULL DEFAULT NULL,
  `TTL_START_TIME` int NULL DEFAULT NULL,
  PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of vl
-- ----------------------------

SET FOREIGN_KEY_CHECKS = 1;
View Code

  hugegraph.properties

# gremlin entrance to create graph
# auth config: org.apache.hugegraph.auth.HugeFactoryAuthProxy
gremlin.graph=org.apache.hugegraph.HugeFactory

# cache config
#schema.cache_capacity=100000
# vertex-cache default is 1000w, 10min expired
vertex.cache_type=l2
#vertex.cache_capacity=10000000
#vertex.cache_expire=600
# edge-cache default is 100w, 10min expired
edge.cache_type=l2
#edge.cache_capacity=1000000
#edge.cache_expire=600


# schema illegal name template
#schema.illegal_name_regex=\s+|~.*

#vertex.default_label=vertex

backend=mysql
serializer=mysql

store=hugegraph

raft.mode=false
raft.path=./raft-log
raft.safe_read=true
raft.use_replicator_pipeline=true
raft.election_timeout=10000
raft.snapshot_interval=3600
raft.backend_threads=48
raft.read_index_threads=8
raft.snapshot_threads=4
raft.read_strategy=ReadOnlyLeaseBased
raft.queue_size=16384
raft.queue_publish_timeout=60
raft.apply_batch=1
raft.rpc_threads=80
raft.rpc_connect_timeout=5000
raft.rpc_timeout=60
raft.install_snapshot_rpc_timeout=36000

search.text_analyzer=jieba
search.text_analyzer_mode=INDEX

# rocksdb backend config
#rocksdb.data_path=/path/to/disk
#rocksdb.wal_path=/path/to/disk


# cassandra backend config
cassandra.host=localhost
cassandra.port=9042
cassandra.username=
cassandra.password=
#cassandra.connect_timeout=5
#cassandra.read_timeout=20
#cassandra.keyspace.strategy=SimpleStrategy
#cassandra.keyspace.replication=3

# hbase backend config
#hbase.hosts=localhost
#hbase.port=2181
#hbase.znode_parent=/hbase
#hbase.threads_max=64
# IMPORTANT: recommend to modify the HBase partition number
#            by the actual/env data amount & RS amount before init store
#            It will influence the load speed a lot
#hbase.enable_partition=true
#hbase.vertex_partitions=10
#hbase.edge_partitions=30

# mysql backend config
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://xbd-mysql:3306
jdbc.username=root
jdbc.password=root
jdbc.reconnect_max_times=3
jdbc.reconnect_interval=3
jdbc.sslmode=false

# postgresql & cockroachdb backend config
#jdbc.driver=org.postgresql.Driver
#jdbc.url=jdbc:postgresql://localhost:5432/
#jdbc.username=postgres
#jdbc.password=
#jdbc.postgresql.connect_database=template1

# palo backend config
#palo.host=127.0.0.1
#palo.poll_interval=10
#palo.temp_dir=./palo-data
#palo.file_limit_size=32

  五、使用

  1、界面查看使用hugegraph-hubble。默認語言採用gremlin。可以參考例子使用:https://hugegraph.apache.org/cn/docs/language/hugegraph-example/

   2、Java版本使用,需要客戶端適配

  

  1.0.0版本需要用apache的client。

 

  使用方式:

  1、1.0.0版本以前的可以使用百度的方式。實例如下:

public static void main(String[] args) {

        HugeClient client = HugeClient
                .builder("http://172.17.230.13:8080", "hugegraph")
                .configTimeout(10)
                .build();
        SchemaManager schema = client.schema();

        PropertyKey xbdId = schema.propertyKey("xbd_id").asLong().ifNotExist().create();
        PropertyKey xbdName = schema.propertyKey("xbd_name").asText().ifNotExist().create();
        PropertyKey xbdAge = schema.propertyKey("xbd_age").asInt().ifNotExist().create();

        VertexLabel xbdV = schema.vertexLabel("xbd_v").properties("xbd_id", "xbd_name", "xbd_age").primaryKeys("xbd_id").useAutomaticId().nullableKeys("xbd_name").create();

        EdgeLabel xbdE = schema.edgeLabel("xbd_e").properties("xbd_name").create();

        //data
        GraphManager graph = client.graph();
        Vertex xbd1 = graph.addVertex("xbd_v", JSON.parseObject("{'xbd_name':'xbd_1', 'xbd_age': 1}"));
        Vertex xbd2 = graph.addVertex("xbd_v", JSON.parseObject("{'xbd_name':'xbd_2', 'xbd_age': 2}"));

        xbd1.addEdge("xbd_e", xbd2, JSON.parseObject("{'xbd_name':'xbd_ref'}"));

    }

  2、1.0.0版本以上的目前還不完善,可以參考api的調用方式:地址:https://hugegraph.apache.org/cn/docs/clients/restful-api/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章