Toutes les méthodes de requête prennent en charge un paramètre de configuration de requête optionnel (RequestConfig
ou InsertRequestConfig
) pour personnaliser le comportement des requêtes envoyées à la base de données. Ce paramètre permet de spécifier divers réglages, tels que le nom du graphset, le délai d'attente, et l'hôte, pour adapter vos requêtes selon vos besoins.
RequestConfig
RequestConfig
définit les informations nécessaires lors de l'envoi de types de requêtes non-insert à la base de données.
using Newtonsoft.Json;
using UltipaSharp;
using UltipaSharp.configuration;
using UltipaSharp.connection;
using Logger = UltipaSharp.utils.Logger;
using Microsoft.Extensions.Logging;
class Program
{
static async Task Main(string[] args)
{
var ultipa = new Ultipa(new UltipaConfig()
{
//URI example: Hosts = new[]{"mqj4zouys.us-east-1.cloud.ultipa.com:60010"}
Hosts = new[]{ "192.168.1.85:60061", "192.168.1.86:60061", "192.168.1.87:60061" },
CurrentGraph = "default",
Username = "***",
Password = "***",
});
Console.WriteLine("Connected to the graph database!");
var requestConfig = new RequestConfig()
{
Graph = "miniCircle",
UseMaster = true,
RequestType = RequestType.Normal
};
var res = await ultipa.Uql("find().nodes() return nodes{*} limit 2", requestConfig);
Logger.Global.LogInformation(JsonConvert.SerializeObject(res?.Alias("nodes")?.AsNodes()));
}
}
RequestConfig
comprend les champs suivants :
Élément | Type | Valeur par Défaut | Description |
---|---|---|---|
Graph |
string? | Nom du graph à utiliser. Si non défini, utilisez le CurrentGraph configuré lors de l'établissement de la connexion. |
|
Timeout |
uint? | Seuil de délai d'attente de la requête en secondes. | |
ClusterId |
string? | Spécifie le cluster à utiliser. | |
Host |
string? | Envoie la requête à un nœud host désigné, ou à un nœud host aléatoire si non défini. | |
UseMaster |
bool | false | Envoie la requête au nœud leader pour garantir une lecture cohérente si défini à true. |
UseControl |
bool | false | Envoie la requête au nœud de contrôle si défini à true. |
RequestType |
RequestType | RequestType.Normal | Envoie la requête à un nœud selon le type de requête : RequestType.Write : au nœud leader RequestType.Task : à algoRequestType.Normal : à un hôte aléatoire |
Uql |
string? | UQL pour le programme interne | |
Timezone |
string? | Le fuseau horaire à utiliser. | |
TimezoneOffset |
int? | La différence de temps du fuseau horaire utilisé par rapport à l'UTC en secondes. | |
ThreadNumber |
int? | Nombre de threads. |
InsertRequestConfig
InsertRequestConfig
définit les paramètres nécessaires lors de l'envoi de requêtes d'insertion ou de suppression de données vers la base de données.
using Newtonsoft.Json;
using UltipaSharp;
using UltipaSharp.configuration;
using UltipaSharp.connection;
using Logger = UltipaSharp.utils.Logger;
using Microsoft.Extensions.Logging;
using UltipaService;
using UltipaSharp.structs;
using Property = UltipaSharp.structs.Property;
using Schema = UltipaSharp.structs.Schema;
class Program
{
static void Main(string[] args)
{
var ultipa = new Ultipa(new UltipaConfig()
{
Hosts = new[]{ "192.168.1.85:60061", "192.168.1.86:60061", "192.168.1.87:60061" },
Username = "***",
Password = "***",
});
Console.WriteLine("Connected to the graph database!");
var schema = new Schema()
{
Name = "User",
DbType = DBType.Dbnode,
Properties = new()
{
new ()
{
Name = "name",
Type = PropertyType.String,
},
new(){
Name = "age",
Type = PropertyType.Int32
},
new()
{
Name = "birth",
Type = PropertyType.Datetime
}
}
};
var nodes = new List<Node>()
{
new()
{
Id = "C#1",
Schema = schema.Name,
Values =
new (){
{"name", "name1"},
{"age", 28},
{"birth", new DateTime(1989,9,12)}
}
}
};
// Spécifie 'test' comme le graphset cible et définit le mode d'insertion à OVERWRITE
var insertConfig = new InsertRequestConfig()
{
Graph = "test",
InsertType = InsertType.Overwrite,
};
var res = ultipa.InsertNodesBatchBySchema(schema,nodes,insertConfig);
Logger.Global.LogInformation(JsonConvert.SerializeObject(res));
}
}
InsertRequestConfig
a les champs suivants :
Élément | Type | Valeur par Défaut | Description |
---|---|---|---|
Graph |
string? | Nom du graph à utiliser. Si non défini, utilisez le CurrentGraph configuré lors de l'établissement de la connexion. |
|
Timeout |
uint? | Seuil de délai d'attente de la requête en secondes. | |
ClusterId |
string? | Spécifie le cluster à utiliser. | |
Host |
string? | Envoie la requête à un nœud host désigné, ou à un nœud host aléatoire si non défini. | |
UseMaster |
bool | false | Envoie la requête au nœud leader pour garantir une lecture cohérente si défini à true. |
UseControl |
bool | false | Envoie la requête au nœud de contrôle si défini à true. |
RequestType |
RequestType | RequestType.Normal | Envoie la requête à un nœud selon le type de requête : RequestType.Write : au nœud leader RequestType.Task : à algoRequestType.Normal : à un hôte aléatoire |
Uql |
string? | UQL pour le programme interne | |
Timezone |
string? | Le fuseau horaire à utiliser. | |
TimezoneOffset |
int? | La différence de temps du fuseau horaire utilisé par rapport à l'UTC en secondes. | |
ThreadNumber |
int? | Nombre de threads. | |
InsertType |
UltipaService.InsertType | InsertType.Normal | Mode d'insertion : InsertType.Normal , InsertType.Overwrite , InsertType.Upsert . |
CreateNodeIfNotExist |
bool | true | Si il faut créer des nœuds de départ/arrivée d'un edge si les nœuds finaux n'existent pas dans le graph. |
Silent |
bool | true | Si garder le silence après une insertion réussie, c'est-à-dire, si retourner ou non les nœuds ou edges insérés. |