Skip to contents

Cette fonction découpe la période d'extraction en mois de flux, prépare les paramètres spécifiques à chaque mois et invoque la fonction query_builder_function soit en mode séquentiel, soit en parallèle via le package parallel. Elle gère la création de la table de sortie lors du premier mois.

Usage

parallelize_query_by_flx_month(
  conn,
  start_date,
  end_date,
  query_builder_function,
  query_builder_kwargs,
  dis_dtd_lag_months = 6,
  r_cluster_cores = 1
)

Arguments

conn

Connexion DBI à la base de données.

start_date

Date. Date de début de la période d'extraction.

end_date

Date. Date de fin de la période d'extraction.

query_builder_function

Fonction qui construit la requête SQL pour un mois donné. Exemple : .extract_drug_by_month depuis le fichier R/extract_drug_erprsf.R.

query_builder_kwargs

Liste d'arguments supplémentaires transmis à la fonction de construction. Elle contient typiquement les paramètres globaux comme sup_columns, output_table_name, etc.

dis_dtd_lag_months

Entier. Nombre de mois de retard pris en compte pour la date FLX_DIS_DTD. Valeur par défaut : 6.

r_cluster_cores

Entier. Nombre de cœurs à utiliser pour le parallélisme. Valeur par défaut : 1 (exécution séquentielle).

Value

Invisible NULL. La fonction orchestre l'exécution de la fonction de construction de requête pour chaque mois, en créant ou insérant les résultats dans la table de sortie.

Details

La fonction construit une liste months_to_process contenant pour chaque mois les paramètres dis_dtd_year, dis_dtd_month, is_first_month, formatted_start_date, formatted_end_date, end_year ainsi que les arguments fournis dans query_builder_kwargs. Elle crée ensuite un cluster si r_cluster_cores > 1, exporte les packages nécessaires et la connexion, exécute le premier mois pour créer la table, puis traite les mois restants en parallèle avec parallel::parLapply.

Examples