Ces dernières années, la modernisation des données est devenue essentielle pour stimuler la prise de décision et l'innovation éclairées dans les organisations. Cependant, l'extraction d'informations repose souvent sur un petit nombre de personnel avec des compétences SQL spécialisées, créant des frictions et des retards dans l'accès à des informations significatives. NQL vise à démocratiser les informations basées sur les données entre les organisations en utilisant une IA générative pour combler l'écart entre le langage naturel et SQL. En fonctionnant comme un moteur de recherche, il permet à tout utilisateur de saisir des questions en langage clair et génère automatiquement des requêtes pour récupérer les données souhaitées. Cela rationalise et ouvre un accès aux données à tous les membres d'une organisation, améliorant l'agilité et facilitant la prise de décision basée sur les données.
Le projet est actuellement en retard de développement. Bien qu'il y ait encore quelque chose à améliorer, il s'agit d'une démo pleinement fonctionnelle qui peut être utilisée commercialement.
Actuellement, NQL prend en charge la requête:
D'autres bases de données relationnelles ne sont pas prises en charge à l'heure actuelle.

Vous pouvez utiliser un python, Venv ou Conda ordinaire. En supposant qu'il s'agit d'une option à choisir.
./setup.sh Si vous souhaitez utiliser Jupyter Notebooks pour les tests, vous pouvez créer un répertoire .ipynb dans /notebooks et télécharger la dépendance nécessaire
pip install -r requirements-dev.txtPour se connecter à RDS localement, nous vous recommandons d'utiliser un hôte EC2 Bastion en raison de sa simplicité. Cependant, en raison de la conformité de la sécurité, ne définissez pas le réseau Ingress pour permettre toutes les connexions du port 22. Utilisez plutôt AWS System Manager pour accéder via SSH. Reportez-vous à cet article: Utilisez le transfert de port dans AWS Systems Manager Session Manager pour se connecter aux hôtes distants
Utilisez ce script pour exécuter Port Tunneling via Bastion Host.
aws ssm start-session --target < ec2_instance_id > --document-name AWS-StartPortForwardingSessionToRemoteHost --parameters ' {"portNumber":["<port_number>"],"localPortNumber":["<port_number>"],"host":["<host>"]} make rundocker-compose upLes principaux composants du backend à configurer comprennent:
Créez simplement un cluster RDS et sélectionnez pour stocker les informations d'identification dans SecretsManager. Le nom secret sera référé dans l'environnement envariable pour être récupéré par la demande. Importez toutes les données que vous aimez dans votre base de données RDS.
Dans le but d'avoir des données d'échantillons, nous recommandons d'utiliser Pagila pour PostgreSQL. L'importation peut être effectuée à partir d'une instance EC2 en utilisant les commandes suivantes:
psql -U postgres -d < DATABASE_NAME > -f /tmp/psql_data/pagila-schema.sql ; psql -U postgres -d < DATABASE_NAME > -f /tmp/psql_data/pagila-insert-data.sql ; Pour les données TEMENOS, le fichier de vidage SQL est déjà dans Amazon Workdocs, veuillez vous référer au fichier temenos.nql pour le vidage des données.
psql -U postgres -d < DATABASE_NAME > -f /tmp/psql_data/temenos.sql ; Accédez à AWS Secrets Manager dans la console AWS et cliquez sur Store a new secret .

Dans la section Secret Type , sélectionnez Other type of secret

Dans Key/value pairs , sélectionnez la section Plaintext .

Remplissez les informations d'identification de la base de données au format JSON ci-dessous et collez dans la section Plaintext .
{
"host" : " DB_HOST_NAME " ,
"username" : " DB_USERNAME " ,
"password" : " DB_PASSWORD " ,
"engine" : " postgresql " ,
"port" : " DB_PORT " ,
"dbname" : " DB_NAME "
} Entrez le nom secret et créez le secret. Copiez l'ARN et collez-le dans RDS_SECRETS_MANAGER_ARN comme valeur de la variable d'environnement.
Veuillez vous référer à ce tutoriel: déployez des conteneurs Docker avec AWS ECS et Fargate