本节介绍用于管理HDC图和HDC算法的方法。请注意,这些方法要求数据库部署HDC服务器。
HDC Graph
showHDCGraph()
获取从图创建的全部HDC图。
参数
config: RequestConfig
(可选):请求配置。
返回值
HDCGraph[]
:获取的HDC图列表。
// Retrieves all HDC graphs of the graph 'miniCircle'
const requestConfig: RequestConfig = {
graph: "miniCircle",
};
const hdcGraphs = await conn.showHDCGraph(requestConfig);
for (const hdcGraph of hdcGraphs) {
console.log(`${hdcGraph.name} on ${hdcGraph.hdcServerName}`);
}
miniCircle_hdc_graph on hdc-server-1
miniCircle_hdc_graph2 on hdc-server-2
createHDCGraphBySchema()
为图创建一个HDC图。
参数
builder: HDCBuilder
: 要创建的HDC图;属性hdcGraphName
和hdcServerName
必填,nodeSchema
、edgeSchema
、syncType
、direction
、loadId
和isDefault
可选。config: RequestConfig
(可选):请求配置。
返回值
JobResponse
:请求结果。
// Creates an HDC graph named 'test_hdc_graph' for the graph 'miniCircle'
const requestConfig: RequestConfig = {
graph: "miniCircle",
};
const nodeSchema = new Map<string, string[]>([
["*", ["*"]]
]);
const edgeSchema = new Map<string, string[]>([
["direct", ["*"]],
["review", ["value", "content"]]
]);
const hdcBuilder = {
hdcGraphName: "test_hdc_graph",
hdcServerName: "hdc-server-1",
nodeSchema: nodeSchema,
edgeSchema: edgeSchema,
};
const response = await conn.createHDCGraphBySchema(hdcBuilder,requestConfig);
const jobID = response.jobId;
await new Promise(resolve => setTimeout(resolve, 3000))
const jobs = await conn.showJob(jobID, requestConfig);
for (const job of jobs) {
console.log(`${job.id} - ${job.status}`);
}
61 - FINISHED
61_1 - FINISHED
dropHDCGraph()
删除指定的HDC图。
参数
hdcGraphName: string
:HDC图名称。config: RequestConfig
(可选):请求配置。
返回值
Response
:请求结果。
// Drops the HDC graph 'miniCircle_hdc_graph2' of the graph 'miniCircle'
const requestConfig: RequestConfig = {
graph: "miniCircle",
};
const response = await conn.dropHDCGraph("miniCircle_hdc_graph2",requestConfig);
console.log(response.status?.message)
SUCCESS
HDC算法
showHDCAlgo()
获取安装在一台HDC服务器上的全部HDC算法。
参数
hdcServerName: string
:HDC服务器名称。config: RequestConfig
(可选):请求配置。
返回值
Algo[]
:获取的HDC算法列表。
// Retrieves all HDC algorithms installed on the HDC server 'hdc-server-1'
const algos = await conn.showHDCAlgo("hdc-server-1", requestConfig);
for (const algo of algos) {
if (algo.type == "algo") {
console.log(
`${algo.name} supports writeback types: ${algo.writeSupportType}`
);
}
}
fastRP supports writeback types: DB,FILE
struc2vec supports writeback types: DB,FILE
installHDCAlgo()
在一台HDC服务器上安装一个HDC算法。
参数
files: string[]
:安装文件路径列表,算法包文件(.so)必须,配置文件(.yml)可选。hdcServerName: string
:HDC服务器名称。config: RequestConfig
(可选):请求配置。
返回值
Response
:请求结果。
// Installs the HDC algorithm LPA on the HDC server 'hdc-server-1'
const response = await conn.installHDCAlgo(["src/main/resources/algo/libplugin_lpa.so","src/main/resources/algo/lpa.yml"],"hdc-server-1");
console.log(response.status?.message)
SUCCESS
uninstallHDCAlgo()
从一台HDC服务器上卸载一个HDC算法。
参数
algoName: string
:算法名称。hdcServerName: string
:HDC服务器名称。config: RequestConfig
(可选):请求配置。
返回值
Response
:请求结果。
// Uninstalls the HDC algorithm LPA from the HDC server 'hdc-server-1'
const response = await conn.uninstallHDCAlgo("lpa","hdc-server-1");
console.log(response.status?.message)
SUCCESS
rollbackHDCAlgo()
将一台HDC服务器上的一个指定HDC算法回退到上一个版本。
参数
algoName: string
:算法名称。hdcServerName: string
:HDC服务器名称。config: RequestConfig
(可选):请求配置。
返回值
Response
:请求结果。
// Rolls back the HDC algorithms LPA on the HDC server 'hdc-server-1'
const response = await conn.rollbackHDCAlgo("lpa","hdc-server-1");
console.log(response.status?.message)
SUCCESS
完整示例
import { UltipaDriver } from "@ultipa-graph/ultipa-driver";
import { ULTIPA } from "@ultipa-graph/ultipa-driver/dist/types";
let sdkUsage = async () => {
// URI example: ultipaConfig.hosts: ["mqj4zouys.us-east-1.cloud.ultipa.com:60010"]
const ultipaConfig: ULTIPA.UltipaConfig = {
hosts: ["192.168.1.85:60061", "192.168.1.87:60061", "192.168.1.88:60061"],
username: "<username>",
password: "<password>"
};
const conn = new UltipaDriver(ultipaConfig);
const isSuccess = await conn.test();
console.log(`Connection succeeds: ${isSuccess}`);
// Installs the HDC algorithm LPA on the HDC server 'hdc-server-1'
const response = await conn.installHDCAlgo(
[
"src/main/resources/algo/libplugin_lpa.so",
"src/main/resources/algo/lpa.yml",
],
"hdc-server-1"
);
console.log(response.status?.message);
};
sdkUsage().catch(console.error);