Utilisateurs autorisés, Bureaucrates, Ingénieurs ISIG, Utilisateurs autorisés automatiquement, Masqueurs de modifications
375
modifications
(Page créée avec « Cette page décrit la procédure pour se connecter à une base de données PostGresQL === Paramètres === Pour vous connecter à une base de données, vous allez avoir besoin de connaître les paramètres suivants: **host**: par exemple "blabla.fr" **port**: par exemple 5440 **user**: par exemple "gougougaga" **password**: par exemple "fqsdfa_76864!_zer5678" Ces paramètres vous seront fournis par l'administrateur de la base de données (probablement Samuel!... ») |
mAucun résumé des modifications |
||
Ligne 30 : | Ligne 30 : | ||
=== Depuis R === | === Depuis R === | ||
Dans R, il faudra enregistrer les paramètres de connexion dans le fichier .Renviron (qui est situé assez "bas" dans l'arborescence de fichiers, peut-être dans votre Home) | Dans R, il faudra enregistrer les paramètres de connexion dans le fichier .Renviron (qui est situé assez "bas" dans l'arborescence de fichiers, peut-être dans votre Home). | ||
Vous allez y enregistrer quelque chose qui ressemble à ceci (ici par exemple pour accéder à la BDD glourb, évidemment avec de fausses valeurs pour les paramètres...): | Si vous ne connaissez pas son emplacement, vous pouvez utiliser la fonction R suivante qui vous ouvrira le fichier automatiquement, quel que soit son emplacement.<syntaxhighlight lang="r"> | ||
usethis::edit_r_environ() | |||
</syntaxhighlight>Vous allez y enregistrer quelque chose qui ressemble à ceci (ici par exemple pour accéder à la BDD glourb, évidemment avec de fausses valeurs pour les paramètres...):<syntaxhighlight> | |||
GLOURB_HOST="blabla.fr" | GLOURB_HOST="blabla.fr" | ||
GLOURB_PORT="5440" | GLOURB_PORT="5440" | ||
GLOURB_NAME="glourb" | GLOURB_NAME="glourb" | ||
GLOURB_USER_APP="gougougaga" | GLOURB_USER_APP="gougougaga" | ||
GLOURB_PASS_APP="fqsdfa_76864!_zer5678" | GLOURB_PASS_APP="fqsdfa_76864!_zer5678" | ||
</syntaxhighlight>Vous pourrez ensuite créer une connexion "conn" à la BDD à travers la commande suivante | |||
Vous pourrez ensuite créer une connexion "conn" à la BDD à travers la commande suivante | |||
<syntaxhighlight lang="r"> | |||
conn <- DBI::dbConnect(RPostgres::Postgres(), | |||
host = Sys.getenv("GLOURB_HOST"), | |||
port = Sys.getenv("GLOURB_PORT"), | |||
dbname = Sys.getenv("GLOURB_NAME"), | |||
user = Sys.getenv("GLOURB_USER_APP"), | |||
password = Sys.getenv("GLOURB_PASS_APP")) | |||
</syntaxhighlight>Cette connexion vous servira alors à accéder aux données. | |||
Si la table est de dimension modeste (par exemple sur la base de données GloUrb, wikidata_table qui a environ 40 000 lignes et des colonnes "légères"), vous pouvez la lire directement de cette manière<syntaxhighlight lang="r"> | |||
DBI::dbReadTable(name="wikidata_table",conn=conn) | |||
</syntaxhighlight>ou pour une table comprenant des géométries:<syntaxhighlight lang="r"> | |||
sf::st_read(dsn=conn,layer="StudyArea_reach_zone") | |||
</syntaxhighlight>Pour des tables plus volumineuses, il peut être pertinent de réaliser un filtre (en SQL) avant de récupérer la donnée. La fonction suivante (du package glourbi, disponible ici :https://github.com/lvaudor/glourbi ) permet de réaliser cette opération pour une table sans géométries<syntaxhighlight lang="r"> | |||
get_city_tib <- function (name, thisCityCode, conn) | |||
{ | |||
sql <- glue::glue("SELECT * FROM {name} WHERE citycode LIKE ?thisCityCode") | |||
query <- DBI::sqlInterpolate(conn, sql, thisCityCode = thisCityCode) | |||
result <- DBI::dbGetQuery(conn = conn, statement = query) | |||
return(result) | |||
} | |||
</syntaxhighlight>et pour une table avec géométrie:<syntaxhighlight lang="r"> | |||
get_city_sf <- function (name, thisCityCode, conn) | |||
{ | |||
sql <- glue::glue("SELECT * FROM {name} WHERE citycode LIKE ?thisCityCode") | |||
query <- DBI::sqlInterpolate(conn, sql, thisCityCode = thisCityCode) | |||
result <- sf::st_read(dsn = conn, query = query) | |||
return(result) | |||
} | |||
</syntaxhighlight> | |||
[[Catégorie:Tutoriel]] | [[Catégorie:Tutoriel]] | ||
[[Catégorie:Outils]] | [[Catégorie:Outils]] | ||
[[Catégorie:Données]] | [[Catégorie:Données]] |