serveur du hackathon - SGMAP-AGD/DAMIR GitHub Wiki

Base PostgreSQL

Se connecter

On peut se connecter au serveur grâce à la commande psql. Sur Linux et Mac, il suffit d'ouvrir un terminal. Sur Windows, il faut utiliser un client postgresql comme pgAdmin:

psql -h 192.168.1.200 -d damir -U hackdds

Il faut ensuite rentrer le mot de passe: hackdds

Faire des requêtes

Les commandes utiles sont:

  • \d : liste des tables
  • \? : liste des fonctions propres à psql
  • \h + commande SQL : aide sur la commande

On peut voir la liste des tables :

\d

On voit par exemple qu'il y a une table qui s'appelle r_201001. On peut voir son schéma grâce à la commande \d :

\d r_201001

On peut aussi ( et c'est conseillé) voir 10 premières lignes de la table r_201001 :

SELECT * FROM r_201001 LIMIT 10;

On peut exporter une sélection en CSV à l'aide de la commance \COPY :

\COPY (SELECT * FROM r_201001 LIMIT 10) TO /home/damir/test.csv WITH CSV;

On peut faire la somme de la variable montant remboursé (rem_mon) :

SELECT SUM(rem_mon) FROM r_201001;

On peut aussi faire la somme de cette même variable par CPAM :

SELECT cpam, SUM(rem_mon) from r_201001 group by cpam;

On peut faire la même chose et l'exporter en CSV :

\COPY (SELECT cpam, SUM(rem_mon) from r_201001 group by cpam) TO /home/damir/group_by_cpam.csv WITH CSV;

Pour aller plus loin

Récupérer la liste des tables qui commencent par n :

select table_name from information_schema.tables where table_schema like 'public' and table_name like 'n%' ;

Récupérer la liste des vues:

select table_name from INFORMATION_SCHEMA.views WHERE table_schema = ANY (current_schemas(false));

Sélectionner 1000 lignes au hasard dans r_201001:

select * from r_201001 order by random() limit 1000;

Faire une jointure entre une table r et la table cpam:

SELECT r.* ,c.dpt ,c.region ,c.l_dpt ,c.l_region FROM r_201001 r JOIN cpam c on r.cpam = c.cpam LIMIT 10;

Les tables r_AAAAMM sont aussi regroupées au sein d'une table virtuelle r_full.

###Tables annexes (libellés) Les tables lib_xxx contiennent les libellés correspondants aux valeurs présentes dans les tables r_AAAAMM. La table cpam contient aussi le numéro de département et de région de chaque CPAM ainsi que leur libellé.

##Quelques statistiques Voici une compilation de quelques chiffres de l'activité du serveur durant le hackathon (chiffres à 18h):

  • plus de 1 million de requêtes SQL traitées dans la journée
  • un volume de données échangé sur le réseau ethernet de plus de 650Go
  • un pic à plus de 800Mbps sur le réseau gigabit ethernet
  • un maximum de 87 utilisateurs connectés en simultané
  • environ 400m de câbles Ethernet...