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 effectuées vers la base de données. Ce paramètre vous permet de spécifier divers paramètres, tels que le nom du graphset, le délai d'expiration 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 requêtes de type non-insertion vers la base de données.
package main
import (
"log"
"github.com/ultipa/ultipa-go-sdk/sdk"
"github.com/ultipa/ultipa-go-sdk/sdk/configuration"
)
func main() {
config, _ := configuration.NewUltipaConfig(&configuration.UltipaConfig{
Hosts: []string{"192.168.1.85:60061", "192.168.1.86:60061", "192.168.1.87:60061"},
Username: "***",
Password: "***",
})
conn, _ := sdk.NewUltipa(config)
requestConfig := &configuration.RequestConfig{
GraphName: "miniCircle",
RequestType: configuration.RequestType_Task,
}
uqlResult, err := conn.Uql("find().nodes({@account.year > 2000}) as nodes return nodes{*} limit 5", requestConfig)
log.Print(uqlResult, err)
}
RequestConfig
a les champs suivants :
Élément | Type | Valeur par Défaut | Description |
---|---|---|---|
GraphName |
string | Nom du graph à utiliser. Si non défini, utilise le graphSetName configuré lors de l'établissement de la connexion. |
|
Timeout |
int32 | 1000 | Seuil de délai d'expiration de la requête en secondes. |
ClusterId |
string | Spécifie le cluster à utiliser. | |
Host |
string | Envoie la requête à un nœud hôte désigné, ou à un nœud hôte aléatoire si non défini. | |
UseMaster |
bool | FALSE | Envoie la requête au nœud leader pour garantir une lecture cohérente si réglé à true. |
UseControl |
bool | FALSE | Envoie la requête au nœud de contrôle si réglé à true. |
RequestType |
RequestType ou int32 | 0 | Envoie la requête à un node selon le type de requête : RequestType_Write ou 1 : à un nœud leader RequestType_Task ou 2 : à algoRequestType_Normal ou 3 : à un hôte aléatoire |
Uql |
string | UQL pour programme interne | |
Timezone |
string | Le fuseau horaire à utiliser. | |
TimezoneOffset |
int64 | La différence en secondes entre le fuseau horaire utilisé et l'UTC. | |
ThreadNum |
uint32 | Nombre de threads. | |
MaxPkgSize |
int | 10M | Taille maximale du paquet en octets, pour l'envoi et la réception. |
InsertRequestConfig
InsertRequestConfig
définit les paramètres nécessaires lors de l'envoi de requêtes d'insertion ou de suppression de données à la base de données.
package main
import (
ultipa "github.com/ultipa/ultipa-go-sdk/rpc"
"github.com/ultipa/ultipa-go-sdk/sdk"
"github.com/ultipa/ultipa-go-sdk/sdk/configuration"
"github.com/ultipa/ultipa-go-sdk/sdk/structs"
)
func main() {
config, _ := configuration.NewUltipaConfig(&configuration.UltipaConfig{
Hosts: []string{"192.168.1.85:60061", "192.168.1.86:60061", "192.168.1.87:60061"},
Username: "***",
Password: "***",
})
conn, _ := sdk.NewUltipa(config)
requestConfig := &configuration.RequestConfig{
GraphName: "test",
}
insertRequestConfig := &configuration.InsertRequestConfig{
RequestConfig: requestConfig,
InsertType: ultipa.InsertType_OVERWRITE,
}
var nodes []*structs.Node
newNode1 := structs.NewNode()
newNode1.Schema = "card"
newNode1.ID = "ULTIPA8000000000000001"
newNode1.Set("amount", float32(3235.2))
nodes = append(nodes, newNode1)
newNode2 := structs.NewNode()
newNode2.Schema = "client"
newNode2.ID = "ULTIPA8000000000000007"
newNode2.Set("level", int32(77))
nodes = append(nodes, newNode2)
conn.InsertNodesBatchAuto(nodes, insertRequestConfig)
}
InsertRequestConfig
a les champs suivants :
Élément | Type | Valeur par Défaut | Description |
---|---|---|---|
GraphName |
string | Nom du graph à utiliser. Si non défini, utilise le graphSetName configuré lors de l'établissement de la connexion. |
|
Timeout |
int32 | 1000 | Seuil de délai d'expiration de la requête en secondes. |
ClusterId |
string | Spécifie le cluster à utiliser. | |
Host |
string | Envoie la requête à un nœud hôte désigné, ou à un nœud hôte aléatoire si non défini. | |
UseMaster |
bool | FALSE | Envoie la requête au nœud leader pour garantir une lecture cohérente si réglé à true. |
UseControl |
bool | FALSE | Envoie la requête au nœud de contrôle si réglé à true. |
RequestType |
RequestType ou int32 | 0 | Envoie la requête à un node selon le type de requête : RequestType_Write ou 1 : à un nœud leader RequestType_Task ou 2 : à algoRequestType_Normal ou 3 : à un hôte aléatoire |
Uql |
string | UQL pour programme interne | |
Timezone |
string | Le fuseau horaire à utiliser. | |
TimezoneOffset |
int64 | La différence en secondes entre le fuseau horaire utilisé et l'UTC. | |
ThreadNum |
uint32 | Nombre de threads. | |
MaxPkgSize |
int | 10M | Taille maximale du paquet en octets, pour l'envoi et la réception. |
InsertType |
ultipa.InsertType ou int32 | 0 | Mode d'insertion : InsertType_NORMAL (ou 0), InsertType_OVERWRITE (ou 1), InsertType_UPSERT (ou 2). |
CreateNodeIfNotExist |
bool | FALSE | Si l'on doit créer les nœuds de début/fin d'une edge si les nœuds finaux n'existent pas dans le graph. |
Silent |
bool | FALSE | Si l'on doit rester silencieux après une insertion réussie, c'est-à-dire si l'on doit retourner les nodes ou edges insérées. |