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
.envet 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. |