Passer au contenu
library(data.nitrates)
# Lire le fichier de configuration
config <- yaml::read_yaml("config.yml")

# Accéder aux valeurs pour version et last_year
version <- config$version
last_year <- config$last_year
filepath_data_ars <- config$filepath_data_ars

Présentation

Cette page contient la logique métier concernant l’import des données brutes fournies par l’ARS dans une base de données POstgreSQL dans le cadre du projet Nitrates.

Import des données de l’ARS dans un dataframe par millésime

Les données sont transmies au format XLSX.

data_ars_last_year <- collectr::import_xlsx(
  filepath = filepath_data_ars,
  sheet = 1,
  row = 2)

Création d’une table pour le nouveau millésime

# Charger les données dans une nouvelle table en base
datalibaba::poster_data(data = data_ars_last_year, 
                        table = glue::glue("nitrate_data_analyse_ars_", last_year), 
                        schema = "nitrates", 
                        db = "si_eau",
                        overwrite = TRUE,
                        user = "admin")

# Ajouter un commentaire sur la table
datalibaba::commenter_table(comment = glue::glue("Analyses Nitrates ARS (", last_year, ")"),
                            table = glue::glue("nitrate_data_analyse_ars_", last_year), 
                            schema = "nitrates",
                            db = "si_eau",
                            user = "admin")

Modification du type des champs si besoin

# Modifier le type de colonne pour les champs de date
collectr::modify_column_type(database = "si_eau", 
                   schema = "nitrates", 
                   table = glue::glue("nitrate_data_analyse_ars_", last_year),
                   column_name = "plv_date", 
                   column_type = "date",
                   role = "admin")

Archivage de la version précédente de la table

# Archiver la version actuelle de la table avec tous les millésimes 
collectr::archive_table(database = "si_eau",
                        schema = "nitrates", 
                        new_schema = "zz_archives",
                        table = "nitrate_data_analyse_ars",
                        role = "admin")

Insertion des données du nouveau millésime en base dans la table globale

# Insérer les données de la table du dernier millésime vers la table complète
collectr::import_and_merge_tables(database = "si_eau",
                                  source_table = glue::glue("nitrate_data_analyse_ars_", last_year),
                                  source_schema = "nitrates", 
                                  target_table = "nitrate_data_analyse_ars", 
                                  target_schema = "nitrates",
                                  role = "admin")

# Actualiser le commentaire sur la table
datalibaba::commenter_table(comment = glue::glue("Analyses Nitrates ARS (2007-", last_year, ")",
                            table = "nitrate_data_analyse_ars",
                            schema = "nitrates",
                            db = "si_eau",
                            user = "admin")