Cette section présente des méthodes sur un objet Connection
pour gérer les algorithmes de graph Ultipa et les algorithmes personnalisés (EXTA) dans l'instance.
Chaque exemple se concentre uniquement sur l'utilisation de la méthode. Pour un exemple de code complet, veuillez vous référer à l'exemple complet.
Algorithmes de Graph Ultipa
showAlgo()
Récupère tous les algorithmes de graph Ultipa installés dans l'instance.
Paramètres :
RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
List<Algo>
: La liste de tous les algorithmes récupérés.
// Récupère tous les algorithmes de graph Ultipa installés et imprime les informations du premier retourné
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()
Installe un algorithme de graph Ultipa dans l'instance.
Paramètres :
String
: Chemin du fichier du package d'installation de l'algo (.so).String
: Chemin du fichier de configuration (.yml).RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Response
: Résultat de la requête.
// Installe l'algorithme LPA et utilise le leader node pour garantir la cohérence, et imprime le code d'erreur
// Le package d'installation libplugin_lpa.so et le fichier de configuration lpa.yml sont placés sous le 'classpath' du projet actuel (./src/main/resources)
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()
Désinstalle un algorithme de graph Ultipa dans l'instance.
Paramètres :
String
: Nom de l'algorithme.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Response
: Résultat de la requête.
// Désinstalle l'algorithme LPA et imprime le code d'erreur
Response response = client.uninstallAlgo("lpa");
System.out.println(response.getStatus().getErrorCode());
SUCCESS
EXTA
showExta()
Récupère tous les extas installés dans l'instance.
Paramètres :
RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
List<Exta>
: La liste de tous les extas récupérés.
// Récupère tous les extas installés et imprime les informations du premier retourné
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()
Installe un exta dans l'instance.
Paramètres :
String
: Chemin du fichier du package d'installation de l'exta (.so).String
: Chemin du fichier de configuration (.yml).RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Response
: Résultat de la requête.
// Installe l'exta page_rank et utilise le leader node pour garantir la cohérence, et imprime le code d'erreur
// Le package d'installation libexta_page_rank.so et le fichier de configuration page_rank.yml sont placés sous le 'classpath' du projet actuel (./src/main/resources)
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()
Désinstalle un exta dans l'instance.
Paramètres :
String
: Nom de l'exta.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Response
: Résultat de la requête.
// Désinstalle l'exta page_rank et imprime le code d'erreur
Response response = client.uninstallExta("page_rank");
System.out.println(response.getStatus().getErrorCode());
SUCCESS
Exemple Complet
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) {
// Configurations de connexion
UltipaConfiguration myConfig = UltipaConfiguration.config()
// Exemple de 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 {
// Établit la connexion à la base de données
driver = new UltipaClientDriver(myConfig);
Connection client = driver.getConnection();
Thread.sleep(3000);
// Configurations de la requête: utilise le leader node pour garantir la cohérence
RequestConfig requestConfig = new RequestConfig();
requestConfig.setUseMaster(true);
// Installe l'algorithme LPA: le package d'installation libplugin_lpa.so et le fichier de configuration lpa.yml sont placés sous le 'classpath' du projet actuel (./src/main/resources)
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();
}
}
}
}