本节为您介绍如何使用Connection
对象的方法管理实例上的嬴图算法和自定义算法(EXTA)。
每个示例主要展示如何使用所列方法。点击完整示例查看完整代码示例。
嬴图算法
showAlgo()
获取安装在实例上的嬴图算法。
参数:
RequestConfig
(可选):配置请求。
返回值:
List<Algo>
:获取到的全部算法列表。
// 获取已安装的全部嬴图算法并打印首个返回的算法信息
List<Algo> algos = client.showAlgo();
System.out.println(algos.get(0).toString());
Algo(name=louvain, desc={"name":"louvain","description":"louvain","version":"1.0.4","parameters":{"edge_schema_property":"optinal,default 1 for each edge if absent","phase1_loop_num":"size_t,required","min_modularity_increase":"float,required","limit":"optional,-1 for all results, >=0 partial results","order":"optional, asc or desc, case_unsensitive, only work for 'community:id/count' mode"},"write_to_db_parameters":{"property":"set write back property name for each schema and nodes"},"write_to_file_parameters":{"filename1":"id1:community","filename2":"community1: id1,id2...","filename3":"community1: count"},"write_to_stats_parameters":{"enable":"0:no stats, 1:enable stats(count of communities)"},"write_to_client_normal_parameters":{"mode":"1:<id1:community> 2:<community1:count>"},"write_to_client_stream_parameters":{"mode":"1:<id1:community> 2:<community1:count>"},"result_opt":"59"}, version=null, params=null)
installAlgo()
在实例上安装一个嬴图算法。
参数:
String
:算法安装包文件路径(.so)。String
:配置文件路径(.yml)。RequestConfig
(可选):配置请求。
返回值:
Response
:请求的结果。
// 安装算法LPA,使用主节点以确保一致性,并打印错误代码
// 安装包libplugin_lpa.so和配置文件lpa.yml均在当前项目(./src/main/resources)的classpath下
RequestConfig requestConfig = new RequestConfig();
requestConfig.setUseMaster(true);
Response response = client.installAlgo("algo/libplugin_lpa.so", "algo/lpa.yml");
System.out.println(response.getStatus().getErrorCode());
SUCCESS
uninstallAlgo()
卸载实例中的嬴图算法。
参数:
String
:算法名称。RequestConfig
(可选):配置请求。
返回值:
Response
:请求的结果。
// 卸载算法LPA并打印错误代码
Response response = client.uninstallAlgo("lpa");
System.out.println(response.getStatus().getErrorCode());
SUCCESS
EXTA
showExta()
获取安装在实例上的全部EXTA。
参数:
RequestConfig
(可选):配置请求。
返回值:
List<Exta>
:获取到的全部EXTA列表。
// 获取已安装的全部EXTA并打印首个返回的算法信息
List<Exta> extas = client.showExta();
System.out.println(extas.get(0).toString());
Exta(name=page_rank, author=wuchuang, version=beta.4.4.41-b4.4.0-tv-ui, detail=base:
category: ExtaExample
cn:
name: page_rank
desc: null
en:
name: page_rank
desc: null
other_param:
param_form:
write:
return:
media:
)
installExta()
在实例上安装一个EXTA。
参数:
String
:EXTA安装包文件路径(.so)。String
:配置文件路径(.yml)。RequestConfig
(可选):配置请求。
返回值:
Response
:请求的结果。
// 安装EXTA page_rank,使用主节点以确保一致性,并打印错误代码
// 安装包libexta_page_rank.so和配置文件page_rank.yml均在当前项目(./src/main/resources)的classpath下
RequestConfig requestConfig = new RequestConfig();
requestConfig.setUseMaster(true);
Response response = client.installExta("algo/libexta_page_rank.so", "algo/page_rank.yml", requestConfig);
System.out.println(response.getStatus().getErrorCode());
SUCCESS
uninstallExta()
卸载实例中的EXTA。
参数:
String
:EXTA名称。RequestConfig
(可选):配置请求。
返回值:
Response
:请求的结果。
//卸载EXTA page_rank并打印错误代码
Response response = client.uninstallExta("page_rank");
System.out.println(response.getStatus().getErrorCode());
SUCCESS
完整示例
package com.ultipa.www.sdk.api;
import com.ultipa.sdk.connect.Connection;
import com.ultipa.sdk.connect.conf.RequestConfig;
import com.ultipa.sdk.connect.conf.UltipaConfiguration;
import com.ultipa.sdk.connect.driver.UltipaClientDriver;
import com.ultipa.sdk.operate.response.Response;
public class Main {
public static void main(String[] args) {
// 配置连接
UltipaConfiguration myConfig = UltipaConfiguration.config()
// URI示例: .hosts("mqj4zouys.us-east-1.cloud.ultipa.com:60010")
.hosts("192.168.1.85:60611,192.168.1.87:60611,192.168.1.88:60611")
.username("<username>")
.password("<password>");
UltipaClientDriver driver = null;
try {
// 建立与数据库的连接
driver = new UltipaClientDriver(myConfig);
Connection client = driver.getConnection();
Thread.sleep(3000);
// 配置请求:使用主节点以确保一致性
RequestConfig requestConfig = new RequestConfig();
requestConfig.setUseMaster(true);
// 安装算法LPA:算法安装包libplugin_lpa.so和配置文件lpa.yml在当前项目(./src/main/resources)的classpath下
Response response = client.installAlgo("algo/libplugin_lpa.so", "algo/lpa.yml");
System.out.println(response.getStatus().getErrorCode());
} catch (InterruptedException e) {
throw new RuntimeException(e);
} finally {
if (driver != null) {
driver.close();
}
}
}
}