-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Push data to PostGreSQL #23
Comments
J'ai fait quelques tests en local pour voir comment mettre en place le postgres sur le VPS, avec l'aide de @guillaumepot :
J'ai poussé mon code sur le VPS mais j'ai quelques questions :
|
Trop bien ! Pour les mots de passe tu peux utiliser un .env dans le VPS, ça devrait être suffisamment sécurisé. Quel ORM utilises tu ? Parce que si on passe sur Django, je me demande si on doit nécessairement utiliser l'orm Django ou non. |
Secrets & .envPour les mots de passe, au delà du .env tu peux utiliser un docker secret (attention le fonctionnement n'est pas le même selon l'engine Docker (Docker ou Docker Swarm). Dans le cas de Docker, le secret sera stockée dans un dossier qu'il faudra sécuriser (avec un chmod 400 par exemple en donnant les droits uniquement sur l'utilisateur qui lance les containers). ORMPar ORM tu entends le moyen de communication entre Django et Postgres ? Django est basé sur le principe d'API (et je crois qu'il est sourcé sur Flask server), je ne suis pas sûr de saisir l'acronyme ORM mais s'il s'agit de moyen de connexion, le soutils généraux sont psycopg2 et asyncpg.
Volumeidem pas sûr d'avoir cerné où était le problème, c'est le container qui n'arrive pas à écrire dans le volume ? |
Merci pour vos commentaires ! SecretsJ'ai déployé les secrets via Docker Swarm. Il y a quatre mots de passe. Pour les accès à pgadmin : Je les ai noté en perso (conservé sur Dashlane), a voir comment on veut gérer ça pour la suite ! ORMJ'ai pas fais beaucoup de recherche dans ce sens. J'ai plus entendu parlé de psycopg2, et j'ai eu tendance à dire jusqu'à aujourd'hui que la quantité de données et nos utilisations ne nous poussait pas à chercher des optimisations de performances très poussées (async & co). Cependant, on pourrait le regretter d'ici quelques mois. VolumeJe me plaignais de ne pas avoir accès à mon dir "volume", mais aucune importance ! Pour la suiteLe pgadmin tourne sur le VPS. J'ai quasiment jamais fait de réseau et je ne sais pas comment y accéder ni comment le déployer sur une adresse publique. @antoinetavant, j'imagine que tu as dû faire ça à plusieurs reprises pour les services que tu as poussé ? N'hésitez pas à me demander les passwords si vous voulez tester bien sûr (en attendant qu'on décide d'un moyen pour se les partager). |
Trop bien ! J'ai jamais utilisé les secrets de docker swarm c'est cool ! Pour le rendre public il "suffit" d'ouvrir le port fourni par le docker. Ça doit être 54321 par défaut, mais comme j'ai déjà une image docker suis tourné tu l'as peut-être changé. Après ça veut dire que le service doit être super sécurisé, sinon c'est la porte ouverte pour n'importe qui. J'ai installé fail2ban et j'utilise un part feu qui bloque tous les ports sauf les basiques (ssh, http et https). Pour un peu plus de sécurité (mais pas tellement plus), j'utilise Nginx pour faire un revers proxy. C'est pas très compliqué d'ajouter un nouveau service, je peux essayer de le faire sous peu. Mais il me faut un nom de domaine, tu en as un en tête ? |
Concernant l'ORM, c'est pas une question de performance, mais d'utilisabilité. Psycopg oblige à écrire les requêtes SQL sous forme de strings, qui est un peu embêtant. (btw maintenant psycopg3 est recommandé. Je vous invite à aller voir sqlalchemy par exemple pour plus de détails, mais l'idée est d'écrire du code python, et que l'ORM transcrit le python en SQL a votre place. Il faut faire le choix assez tôt dans le projet, car c'est une dette technique qui sera difficile d'adresser plus tard. Django propose son propre ORM, c'est une feature assez centrale de Django et je ne sais pas si on peut faire sans. |
J'ai pas touché au port par défaut, je découvre aussi Swarm ! On peut aussi en discuter lundi midi avec Hugo par rapport à Django alors ? |
Tu peux modifier le port exposé de la machine hôte qui fait tunnel avec ton container. |
Nous voulons pousser certaines données dans PostGre pour des objectifs de performances et d'accessibilité des données.
Voici une liste non exhaustive des tables à créer :
=> Il nous faut au moins l'année précédente jusqu'au 1er septembre, pour calculer les moyennes glissantes nécessaire à la prédiction des jours tempos
Forecast flux solaire
=> Une colonne date / heure puis une colonne par département
=> Les prédictions sont sur 3/4 jours, donc prévoir une nouvelle colonne "delta_hours_pred" ou autre, pour donner l'information du nombre d'heure d'avance sur la prédiction. On aura plusieurs prédictions pour un même département / même heure
Forecast vent
=> Une colonne date / heure puis une colonne par département
=> Les prédictions sont sur 3/4 jours, donc prévoir une nouvelle colonne "delta_hours_pred" ou autre, pour donner l'information du nombre d'heure d'avance sur la prédiction. On aura plusieurs prédictions pour un même département / même heure
Forecast ENR
=> Les prédictions sont sur 3/4 jours, donc prévoir une nouvelle colonne "delta_hours_pred" ou autre, pour donner l'information du nombre d'heure d'avance sur la prédiction. On aura plusieurs prédictions pour un même département / même heure
=> Moyenne de la température quotidienne nationale, très simpliste donc pas forcément nécessaire ?
The text was updated successfully, but these errors were encountered: