Je travaille dans un bureau où SQL Server est l'épine dorsale de tout ce que nous faisons, du traitement des données au nettoyage en passant par le munging. Mon collègue est spécialisé dans l'écriture de fonctions complexes et de procédures stockées pour traiter méthodiquement les données entrantes afin qu'elles puissent être standardisées et mises en œuvre dans des rapports, des visualisations et des projets d'analyse. Avant de commencer ici, j'avais très peu d'expérience avec SQL, à part écrire les requêtes les plus élémentaires. La grande majorité de mon travail de préparation à l'analyse a été entièrement effectuée dans R. Mon patron insiste pour que j'améliore mes compétences SQL, même s'il semble y avoir très peu de tâches qui ne peuvent pas être effectuées plus efficacement et avec beaucoup moins de lignes de code en utilisant R des packages comme dplyr, data.table et tidyr (pour n'en nommer que quelques-uns). Ma question est - est-ce que cela a du sens?
Il y a quelques semaines, je me suis retrouvé confronté à la tâche d'obtenir une liste de noms de colonnes pour chaque ligne d'un tableau qui répondait à certains critères et de les concaténer en un vecteur de chaînes. Il y avait un délai serré et à l'époque, je rencontrais un blocage et je ne pouvais pas tout à fait comprendre le problème. J'ai demandé à mon patron, qui à son tour a demandé à mon collègue d'écrire un script TSQL pour résoudre le problème. Pendant qu'il y travaillait, j'ai trouvé un moyen de le faire en écrivant une fonction assez simple et en l'appliquant sur la trame de données. Mon collègue est revenu avec son script environ deux heures plus tard. Il s'agissait d'au moins 75 lignes comprenant deux boucles imbriquées. Je lui ai demandé d'avertir quand la course serait terminée et il a dit que cela prendrait plusieurs heures. Pendant ce temps, mon script R a pu parcourir les 45 000 enregistrements en environ 30 secondes.
Ai-je raison de supposer que R est un bien meilleur choix pour le nettoyage et la fusion des données? Peut-être que le développeur SQL de mon bureau est tout simplement incompétent? Je suis curieux de savoir si quelqu'un qui a travaillé à la fois avec R et SQL (ou Python et SQL d'ailleurs) a des idées à ce sujet.