IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

Conceptualisation de BDD + Api tiers


Sujet :

PostgreSQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    août 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : août 2018
    Messages : 25
    Points : 16
    Points
    16
    Par défaut Conceptualisation de BDD + Api tiers
    Bonjour à tous,

    Je poste ce message, car j'ai besoin d'avoir l'avis de personnes expérimentées sur un sujet que je rencontre pour la première fois.

    Pour prendre un exemple, je veux récupérer les données d'une API tiers (par exemple l'intégralité des films qui existent) et permettre à des utilisateurs de poser des notes et commentaires sur ces données .

    Sur un faible volume de données , j'aurais crée des tables user , movie et probablement une table d'association pour les commentaires.

    Seulement , dans le cas qui me pose problème , je récupère un nombre important de données ( + de 500000 avec des images notamment).

    De ce que j'ai compris , je peux stocker les images sous format Blob, mais le grand volume de données me pose question.

    D'après ce lien :

    https://soapware.screenstepslive.com...e-top-capacity

    La capacité d'une table est de 32 To , dois-je du coup récupérer l'intégralité des données qui me seront utiles de l'API et l'insérer dans ma base de données ?

    (Sur mon projet, j'utilise Node.js avec node-fetch pour la récupération de données, et la récupération intégrale des données est mon plan initial)

    Ou, sur un grand volume de données d'une API que l'on récupère et sur lesquels on veut interagir, existe-t-il une autre conception ?

    Merci d'avance pour vos conseils .

  2. #2
    Rédacteur
    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    mai 2002
    Messages
    20 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 20 814
    Points : 49 303
    Points
    49 303
    Billets dans le blog
    1
    Par défaut
    Une des possibilité est d'utiliser un autre SGBDR dont les tailles de table ne sont pas limitées et dont le stockage des blobs tels que les images sont mis en dehors de la table par un lien d'intégrité fichier/base de données tel que la norme SQL l'a prévu (data link) et que PostGreSQL ne sait pas faire.
    par exemple avec la FILESTREAM de Microsoft SQL Server.
    À lire sur le sujet :
    https://docs.microsoft.com/fr-fr/sql...l-server-ver15
    Lire aussi :
    http://mssqlserver.fr/postgresql-vs-...ed-comparison/
    le § intitulé "4 – Storing file as « system » files under the RDBMS control"

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    janvier 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : janvier 2008
    Messages : 238
    Points : 187
    Points
    187
    Par défaut
    Avec FILESTREAM de Microsoft SQL Server, que ce passe-t-il si des fichiers sont modifiés ou effacés dans le système de fichiers ?

    Qu'advient-il de l'intégrité des données ?

  4. #4
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    janvier 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : janvier 2008
    Messages : 238
    Points : 187
    Points
    187
    Par défaut
    Citation Envoyé par Sauruos Voir le message
    Bonjour à tous,

    Je poste ce message, car j'ai besoin d'avoir l'avis de personnes expérimentées sur un sujet que je rencontre pour la première fois.

    Pour prendre un exemple, je veux récupérer les données d'une API tiers (par exemple l'intégralité des films qui existent) et permettre à des utilisateurs de poser des notes et commentaires sur ces données .

    Sur un faible volume de données , j'aurais crée des tables user , movie et probablement une table d'association pour les commentaires.

    Seulement , dans le cas qui me pose problème , je récupère un nombre important de données ( + de 500000 avec des images notamment).

    De ce que j'ai compris , je peux stocker les images sous format Blob, mais le grand volume de données me pose question.

    D'après ce lien :

    https://soapware.screenstepslive.com...e-top-capacity

    La capacité d'une table est de 32 To , dois-je du coup récupérer l'intégralité des données qui me seront utiles de l'API et l'insérer dans ma base de données ?

    (Sur mon projet, j'utilise Node.js avec node-fetch pour la récupération de données, et la récupération intégrale des données est mon plan initial)

    Ou, sur un grand volume de données d'une API que l'on récupère et sur lesquels on veut interagir, existe-t-il une autre conception ?

    Merci d'avance pour vos conseils .
    32 To c'est vraiment énorme...

    500000 lignes, dans l'absolu c'est rien du tout...même avec des images...faut voir... quelle tailles font les images, par exemple ?

    Il faudrait faire un calcul de volumétrie avant de dire que ce ne sera pas assez.

    Il est évident qu'il faut récupérer UNIQUEMENT les données sur lesquels on veut interagir...

  5. #5
    Rédacteur
    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    mai 2002
    Messages
    20 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 20 814
    Points : 49 303
    Points
    49 303
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par genamiga Voir le message
    Avec FILESTREAM de Microsoft SQL Server, que ce passe-t-il si des fichiers sont modifiés ou effacés dans le système de fichiers ?

    Qu'advient-il de l'intégrité des données ?
    Il existe 3 niveaux d'accès au fichiers :
    1) uniquement par SQL Server : dans ce cas les fichiers ne sont pas accessible par l'OS ni de manière locale ni distante.
    2) SQL Server + accès local : dans ce cas les fichiers sont accessible par l'OS, mais uniquement de manière locale
    3) SQL Server + accès local + accès distant

    Dans le cas de 1 (acces exclusif par SQL Server), SQL Server peut néanmoins fournir un jeton d'accès au fichier pour en capturer le STREAM et pouvoir le remplacer (dans une transaction SQL);

    Dans le pire des cas, vous pouvez aussi utiliser RBS (Remote Blob Storage), mais c'est pour de très gros stockages de BLOBs (plusieurs Péto octets) car le système exige des hardwares spécifiques comme ceux de Fujitsu...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Rédacteur
    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    mai 2002
    Messages
    20 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 20 814
    Points : 49 303
    Points
    49 303
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par genamiga Voir le message
    32 To c'est vraiment énorme....
    Pour info j'ai eu à travailler avec Photowatt racheté par EDF qui fabrique des panneaux solaire en France. Pour des raisons de garantie, il est nécessaire de photographier les panneaux en sortie de production, afin de voir si les les défauts éventuel sont d'origine ou accidentels.
    Les images de résolution 1920x1200 n'ont pas suffit pour déceler certains détails. Il a donc fallut passer en 24 Mpx... à raison de 120 000 panneaux produit par an (2016) cela fait 2,88 To par an... Sur 6 ans cela fait plus de 17 To de données...
    Je pense d'ailleurs que la résolution à probablement été augmentée ou que l'on a pris plusieurs photos du même panneau depuis.

    J'ai aussi travaillé avec une compagnie d'assurance qui stockait ses courriers et documents contractuels en PDF ou image, et le volume par an était supérieur à 10 To, tout cela stocké en FILESTREAM dans une base SQL Server... C'est toujours beaucoup moins coûteux que de stocker le papier !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    janvier 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : janvier 2008
    Messages : 238
    Points : 187
    Points
    187
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Il existe 3 niveaux d'accès au fichiers :
    1) uniquement par SQL Server : dans ce cas les fichiers ne sont pas accessible par l'OS ni de manière locale ni distante.
    2) SQL Server + accès local : dans ce cas les fichiers sont accessible par l'OS, mais uniquement de manière locale
    3) SQL Server + accès local + accès distant

    Dans le cas de 1 (acces exclusif par SQL Server), SQL Server peut néanmoins fournir un jeton d'accès au fichier pour en capturer le STREAM et pouvoir le remplacer (dans une transaction SQL);

    Dans le pire des cas, vous pouvez aussi utiliser RBS (Remote Blob Storage), mais c'est pour de très gros stockages de BLOBs (plusieurs Péto octets) car le système exige des hardwares spécifiques comme ceux de Fujitsu...

    A +
    Intéressant...J'apprends plein de choses...

    Concernant la version gratuite de SQL Server :

    - gère-t-elle aussi le FILESTREAM avec les différents niveaux d'accès aux fichiers ?
    - quelle est la taille maximum de base de données ?

  8. #8
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    janvier 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : janvier 2008
    Messages : 238
    Points : 187
    Points
    187
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Pour info j'ai eu à travailler avec Photowatt racheté par EDF qui fabrique des panneaux solaire en France. Pour des raisons de garantie, il est nécessaire de photographier les panneaux en sortie de production, afin de voir si les les défauts éventuel sont d'origine ou accidentels.
    Les images de résolution 1920x1200 n'ont pas suffit pour déceler certains détails. Il a donc fallut passer en 24 Mpx... à raison de 120 000 panneaux produit par an (2016) cela fait 2,88 To par an... Sur 6 ans cela fait plus de 17 To de données...
    Je pense d'ailleurs que la résolution à probablement été augmentée ou que l'on a pris plusieurs photos du même panneau depuis.

    J'ai aussi travaillé avec une compagnie d'assurance qui stockait ses courriers et documents contractuels en PDF ou image, et le volume par an était supérieur à 10 To, tout cela stocké en FILESTREAM dans une base SQL Server... C'est toujours beaucoup moins coûteux que de stocker le papier !

    A +
    Evidement on peut avoir des BDD bien plus volumineuses. Là n'est pas le propos.

    Mais Sauruos s'inquiétait de la taille de sa future BDD avec 500000 entrées.

    Or, pour 500000 lignes...même avec des images en très haute résolution il me semble (avec les informations qu'il nous donne) qu'il serait étonnant d'avoir besoin de plusieurs dizaines de To

  9. #9
    Rédacteur
    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    mai 2002
    Messages
    20 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 20 814
    Points : 49 303
    Points
    49 303
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par genamiga Voir le message
    Intéressant...J'apprends plein de choses...

    Concernant la version gratuite de SQL Server :

    - gère-t-elle aussi le FILESTREAM avec les différents niveaux d'accès aux fichiers ?
    - quelle est la taille maximum de base de données ?
    la version gratuite gère le FILESTREAM sans limite de volume ni de d'accès.
    La taille des données d'une base dans la version Express ne peut pas excéder 10 Go... Mais SqL Server permet de faire jusqu'à 32 560 base dans la même instance et les requêtes interbases ont les mêmes performances que les requêtes intra bases. Cependant ce qui va pêcher c'est la limite du cache des données qui est de 1,4 Go...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. manipuler une BDD SQL via l'API ODBC sur builder C+
    Par débutant11 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/06/2010, 20h34
  2. Réponses: 4
    Dernier message: 14/07/2009, 00h59
  3. [AC-2007] Problème de conceptualisation BDD
    Par ez29kiel dans le forum Modélisation
    Réponses: 4
    Dernier message: 12/05/2009, 13h37
  4. Relation homme -> api -> bdd
    Par romain5422 dans le forum Oracle
    Réponses: 3
    Dernier message: 14/05/2007, 18h13
  5. Réponses: 3
    Dernier message: 09/05/2006, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo