Après l'installation du SDK Ultipa Python et la mise en place d'une instance Ultipa en cours d'exécution, vous devriez pouvoir connecter votre application à la base de données graph Ultipa.
La connexion à Ultipa peut être établie en créant un pilote avec des configurations spécifiées en utilisant les méthodes suivantes :
- Connexion via Configuration de Code : via la classe
UltipaConfig
- Connexion via Configuration de Fichier : via le fichier
.env
et la classeUltipaConfig
Les valeurs des éléments de configuration sont préférentiellement déterminées par UltipaConfig
, suivies par .env
. Si un élément n'est trouvé dans aucune configuration, la valeur par défaut est utilisée.
Connexion via Configuration de Code
from ultipa import Connection, UltipaConfig
ultipaConfig = UltipaConfig()
# Exemple d'URI : ultipaConfig.hosts = ["mqj4zouys.us-east-1.cloud.ultipa.com:60010"]
ultipaConfig.hosts = ["192.168.1.85:60061", "192.168.1.87:60061", "192.168.1.88:60061"]
ultipaConfig.username = "<username>"
ultipaConfig.password = "<password>"
Conn = Connection.NewConnection(defaultConfig=ultipaConfig)
response = Conn.test()
# La connexion est établie avec succès si le code est 0
print("Code = ", response.status.code)
Code = 0
Un pilote est créé avec les configurations spécifiées en utilisant UltipaConfig
. Veuillez vous référer aux Éléments de Configuration pour tous les éléments disponibles pour configurer les détails de connexion avec UltipaConfig
.
La méthode Connection.NewConnection()
obtient une connexion à Ultipa. Le graphset identifié par l'élément de configuration defaultGraph
sera utilisé.
Connexion via Configuration de Fichier
import os
from dotenv import load_dotenv, dotenv_values
from pathlib import Path
from ultipa import Connection, UltipaConfig
from ultipa.utils.logger import LoggerConfig
# Charge le fichier .env dans l'environnement, et remplace les variables d'environnement système
env_path = Path('./.env')
env_dict = dotenv_values(dotenv_path=env_path)
load_dotenv(encoding='utf-8', override=True)
# Récupère les variables d'environnement
env_config = {
"hosts": os.getenv("hosts"),
"username": os.getenv("username"),
"password": os.getenv("password"),
"defaultGraph": os.getenv("defaultGraph")
}
def getConn():
hosts = env_config.get("hosts", "").split(",")
username = env_config.get("username", "")
password = env_config.get("password", "")
defaultGraph = env_config.get("defaultGraph", "")
uqlLoggerConfig = LoggerConfig(name="testLog", fileName="../intergration_tests/Logs/test.log", isWriteToFile=True, isStream=True)
defaultConfig = UltipaConfig(hosts=hosts, username=username, password=password, heartBeat=10, uqlLoggerConfig=uqlLoggerConfig)
Conn = Connection.NewConnection(defaultConfig)
return Conn
response = getConn().test()
print("Code = ", response.status.code)
2024-08-19 10:21:00,347 - INFO: Test Welcome To Ultipa!
2024-08-19 10:21:00,357 - INFO: Test Welcome To Ultipa!
2024-08-19 10:21:00,370 - INFO: Test Welcome To Ultipa!
2024-08-19 10:21:00,374 - INFO: Test Welcome To Ultipa!
Code = 1000
Un pilote est créé avec les configurations spécifiées en utilisant le fichier .env
. Le fichier .env
doit être placé sous le chemin racine du projet.
Exemple du fichier .env
:
#hosts=mqj4zouys.us-east-1.cloud.ultipa.com:60010
hosts=192.168.1.85:60061,192.168.1.86:60061,192.168.1.87:60061
username=<username>
password=<password>
passwordEncrypt=PasswordEncrypt.MD5
timeoutWithSeconds=300
consistency=true
#crtFilePath=F:\ultipa.crt
#maxRecvSize=10240
defaultGraph=miniCircle
#timeZone=Asia/Tokyo
#timeZoneOffset=+0700
#responseWithRequestInfo=false
#debug=false
Veuillez vous référer aux Éléments de Configuration pour tous les éléments disponibles pour configurer les détails de connexion avec le fichier .env
.
Éléments de Configuration
Voici tous les éléments de configuration disponibles pour UltipaConfig
et le fichier .env
:
Éléments |
Type |
Défaut |
Description |
---|---|---|---|
hosts |
List[str] | Adresses hôte ou URI de la base de données (excluant https:// ou http:// ). Pour les clusters, plusieurs adresses sont séparées par des virgules. Requis. |
|
username |
str | Nom d'utilisateur de l'authentification de l'hôte. Requis. | |
password |
str | Mot de passe de l'authentification de l'hôte. Requis. | |
passwordEncrypt |
PasswordEncrypt |
PasswordEncrypt.MD5 |
Méthode de cryptage du mot de passe du pilote. Supporte MD5 , LDAP et NOTHING . |
timeoutWithSeconds |
int | 3600 | Seuil de temps d'attente de la requête en secondes. |
consistency |
bool | False | Si oui ou non utiliser le nœud leader pour garantir une lecture cohérente. |
crtFilePath |
str | Le chemin de fichier du certificat SSL lorsque le serveur Ultipa et le client sont en mode SSL. | |
maxRecvSize |
int | -1 | Taille maximale en octets lors de la réception de données. |
defaultGraph |
str | default | Nom du graph dans la base de données à utiliser par défaut. |
heartBeat |
int | 10 | Intervalle de battement de cœur en secondes pour toutes les instances, mettre 0 pour désactiver le battement de cœur. |
heartBeat |
int | 10 | Intervalle de battement de cœur en secondes pour toutes les instances, mettre 0 pour désactiver le battement de cœur. |
timeZone |
str | Fuseau horaire au format standard. | |
timeZoneOffset |
int/str | Spécifie à quelle distance se trouve le fuseau horaire cible de l'UTC, soit en secondes (si c'est un entier) soit par une chaîne de 5 caractères comme +0700 et -0430. | |
responseWithRequestInfo |
bool | False | Si oui ou non retourner la requête. |
debug |
bool | False | Si oui ou non utiliser le mode debug. |
uqlLoggerConfig |
LoggerConfig |
Configure la journalisation pour les opérations UQL, incluant name , filename , isWriteToFile , level et isStream . |