[{"data":1,"prerenderedAt":508},["ShallowReactive",2],{"navigation_docs_fr":3,"-fr-using-production":242,"-fr-using-production-surround":504},[4,17,42,206,233],{"title":5,"redirect":6,"path":7,"stem":8,"children":9,"page":16},"Introduction","\u002Ffr\u002Fintroduction\u002Fintroduction","\u002Ffr\u002Fintroduction","fr\u002F1.introduction",[10,12],{"title":5,"path":6,"stem":11},"fr\u002F1.introduction\u002F1.introduction",{"title":13,"path":14,"stem":15},"Prérequis","\u002Ffr\u002Fintroduction\u002Fprerequisites","fr\u002F1.introduction\u002F2.prerequisites",false,{"title":18,"redirect":19,"path":20,"stem":21,"children":22,"page":16},"Installation","\u002Ffr\u002Finstallation\u002Fsetup","\u002Ffr\u002Finstallation","fr\u002F2.installation",[23,26,30,34,38],{"title":24,"path":19,"stem":25},"Configuration de la machine","fr\u002F2.installation\u002F1.setup",{"title":27,"path":28,"stem":29},"L'histoire de deux repos","\u002Ffr\u002Finstallation\u002Ftale-repos","fr\u002F2.installation\u002F2.tale-repos",{"title":31,"path":32,"stem":33},"Connexion à la base de données","\u002Ffr\u002Finstallation\u002Fdbt-profile","fr\u002F2.installation\u002F3.dbt-profile",{"title":35,"path":36,"stem":37},"Test de fumée","\u002Ffr\u002Finstallation\u002Fsmoke-testing","fr\u002F2.installation\u002F4.smoke-testing",{"title":39,"path":40,"stem":41},"Et maintenant?","\u002Ffr\u002Finstallation\u002Fwhat-now","fr\u002F2.installation\u002F5.what-now",{"title":43,"path":44,"stem":45,"children":46,"page":16},"Guide utilisateur","\u002Ffr\u002Fusing","fr\u002F3.using",[47,50,54,88,188,202],{"title":5,"path":48,"stem":49},"\u002Ffr\u002Fusing\u002Fintroduction","fr\u002F3.using\u002F1.introduction",{"title":51,"path":52,"stem":53},"Exécuter l'ETL","\u002Ffr\u002Fusing\u002Frunning","fr\u002F3.using\u002F2.running",{"title":55,"path":56,"stem":57,"children":58,"page":16},"Configuration","\u002Ffr\u002Fusing\u002Fconfiguration","fr\u002F3.using\u002F3.configuration",[59,72,76,80,84],{"title":60,"path":61,"stem":62,"children":63,"page":16},"Architecture","\u002Ffr\u002Fusing\u002Fconfiguration\u002Farchitecture","fr\u002F3.using\u002F3.configuration\u002F1.architecture",[64,68],{"title":65,"path":66,"stem":67},"Vue d'ensemble","\u002Ffr\u002Fusing\u002Fconfiguration\u002Farchitecture\u002Foverview","fr\u002F3.using\u002F3.configuration\u002F1.architecture\u002F1.overview",{"title":69,"path":70,"stem":71},"Marts et couche reporting","\u002Ffr\u002Fusing\u002Fconfiguration\u002Farchitecture\u002Fmarts-reporting","fr\u002F3.using\u002F3.configuration\u002F1.architecture\u002F2.marts-reporting",{"title":73,"path":74,"stem":75},"Lier les bases de données","\u002Ffr\u002Fusing\u002Fconfiguration\u002Fdatabases","fr\u002F3.using\u002F3.configuration\u002F2.databases",{"title":77,"path":78,"stem":79},"Adapters et seeds","\u002Ffr\u002Fusing\u002Fconfiguration\u002Fadapts-seeds","fr\u002F3.using\u002F3.configuration\u002F3.adapts-seeds",{"title":81,"path":82,"stem":83},"Activer une ressource","\u002Ffr\u002Fusing\u002Fconfiguration\u002Fenabling","fr\u002F3.using\u002F3.configuration\u002F4.enabling",{"title":85,"path":86,"stem":87},"Overriding","\u002Ffr\u002Fusing\u002Fconfiguration\u002Foverriding","fr\u002F3.using\u002F3.configuration\u002F5.overriding",{"title":89,"redirect":90,"path":91,"stem":92,"children":93,"page":16},"Tableaux de bord","\u002Ffr\u002Fusing\u002F","\u002Ffr\u002Fusing\u002Fdashboards","fr\u002F3.using\u002F4.dashboards",[94,97,126,167,176,184],{"title":5,"path":95,"stem":96},"\u002Ffr\u002Fusing\u002Fdashboards\u002Fintroduction","fr\u002F3.using\u002F4.dashboards\u002F1.introduction",{"title":98,"redirect":99,"path":99,"stem":100,"children":101,"page":16},"Ressources humaines","\u002Ffr\u002Fusing\u002Fdashboards\u002Fhr","fr\u002F3.using\u002F4.dashboards\u002F2. hr",[102,106,110,114,118,122],{"title":103,"path":104,"stem":105},"Congés des employés","\u002Ffr\u002Fusing\u002Fdashboards\u002Fhr\u002Femp_conge","fr\u002F3.using\u002F4.dashboards\u002F2. hr\u002F1.emp_conge",{"title":107,"path":108,"stem":109},"Employés actifs","\u002Ffr\u002Fusing\u002Fdashboards\u002Fhr\u002Fempl_actif","fr\u002F3.using\u002F4.dashboards\u002F2. hr\u002F2.empl_actif",{"title":111,"path":112,"stem":113},"Retraite","\u002Ffr\u002Fusing\u002Fdashboards\u002Fhr\u002Fretirement","fr\u002F3.using\u002F4.dashboards\u002F2. hr\u002F3.retirement",{"title":115,"path":116,"stem":117},"Efficacité","\u002Ffr\u002Fusing\u002Fdashboards\u002Fhr\u002Fefficacite","fr\u002F3.using\u002F4.dashboards\u002F2. hr\u002F4.efficacite",{"title":119,"path":120,"stem":121},"Absences des employé(e)s","\u002Ffr\u002Fusing\u002Fdashboards\u002Fhr\u002Femp_abs","fr\u002F3.using\u002F4.dashboards\u002F2. hr\u002F5.emp_abs",{"title":123,"path":124,"stem":125},"Resignation","\u002Ffr\u002Fusing\u002Fdashboards\u002Fhr\u002Fresignation","fr\u002F3.using\u002F4.dashboards\u002F2. hr\u002F6.resignation",{"title":127,"redirect":128,"path":128,"stem":129,"children":130,"page":16},"Services éducatifs","\u002Ffr\u002Fusing\u002Fdashboards\u002Feduc-serv","fr\u002F3.using\u002F4.dashboards\u002F3.educ-serv",[131,135,139,143,147,151,155,159,163],{"title":132,"path":133,"stem":134},"Résultats aux épreuves","\u002Ffr\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fres_epreuves","fr\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F1.res_epreuves",{"title":136,"path":137,"stem":138},"Suivi des résultats des élèves","\u002Ffr\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fsuivi_resultats","fr\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F2.suivi_resultats",{"title":140,"path":141,"stem":142},"Effectif des élèves","\u002Ffr\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Feffectif_css","fr\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F3.effectif_css",{"title":144,"path":145,"stem":146},"Absentéisme des élèves","\u002Ffr\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fchronic_absenteeism","fr\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F4.chronic_absenteeism",{"title":148,"path":149,"stem":150},"Résultats scolaires","\u002Ffr\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fres_scolaires","fr\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F5.res_scolaires",{"title":152,"path":153,"stem":154},"Modélisation prédictive - agrégée","\u002Ffr\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fpredictive-aggregated","fr\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F6.predictive-aggregated",{"title":156,"path":157,"stem":158},"PEVR","\u002Ffr\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fpevr","fr\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F7.pevr",{"title":160,"path":161,"stem":162},"Absentéisme","\u002Ffr\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fabsenteeism","fr\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F8.absenteeism",{"title":164,"path":165,"stem":166},"Diplôme","\u002Ffr\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fdiplome","fr\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F9.diplome",{"title":168,"redirect":169,"path":169,"stem":170,"children":171,"page":16},"Organisation scolaire","\u002Ffr\u002Fusing\u002Fdashboards\u002Fschool-org","fr\u002F3.using\u002F4.dashboards\u002F4.school-org",[172],{"title":173,"path":174,"stem":175},"Anomalies","\u002Ffr\u002Fusing\u002Fdashboards\u002Fschool-org\u002Fanomalies","fr\u002F3.using\u002F4.dashboards\u002F4.school-org\u002F1.anomalies",{"title":177,"path":178,"stem":179,"children":180,"page":16},"DirectionGenerale","\u002Ffr\u002Fusing\u002Fdashboards\u002Fdirection_generale","fr\u002F3.using\u002F4.dashboards\u002F5.direction_generale",[181],{"title":156,"path":182,"stem":183},"\u002Ffr\u002Fusing\u002Fdashboards\u002Fdirection_generale\u002Fpevr","fr\u002F3.using\u002F4.dashboards\u002F5.direction_generale\u002F1.pevr",{"title":185,"path":186,"stem":187},"Row Level Security","\u002Ffr\u002Fusing\u002Fdashboards\u002Frls","fr\u002F3.using\u002F4.dashboards\u002F5.rls",{"title":189,"redirect":90,"path":190,"stem":191,"children":192,"page":16},"Marts de données","\u002Ffr\u002Fusing\u002Fmarts","fr\u002F3.using\u002F6.marts",[193,196,199],{"title":5,"path":194,"stem":195},"\u002Ffr\u002Fusing\u002Fmarts\u002Fmarts","fr\u002F3.using\u002F6.marts\u002F1.marts",{"title":127,"path":197,"stem":198},"\u002Ffr\u002Fusing\u002Fmarts\u002Feducational-service","fr\u002F3.using\u002F6.marts\u002F2.educational-service",{"title":98,"path":200,"stem":201},"\u002Ffr\u002Fusing\u002Fmarts\u002Fhuman-resources","fr\u002F3.using\u002F6.marts\u002F3.human-resources",{"title":203,"path":204,"stem":205},"Checklist de production","\u002Ffr\u002Fusing\u002Fproduction","fr\u002F3.using\u002F7.production",{"title":207,"redirect":208,"path":209,"stem":210,"children":211,"page":16},"Guide développeur","\u002Ffr\u002Fcontributing\u002Fgetting-started","\u002Ffr\u002Fcontributing","fr\u002F4.contributing",[212,215,224],{"title":213,"path":208,"stem":214},"Premiers pas","fr\u002F4.contributing\u002F1.getting-started",{"title":216,"redirect":217,"path":218,"stem":219,"children":220,"page":16},"Conventions","\u002Ffr\u002Fcontributing\u002Fconventions\u002Fgetting-started","\u002Ffr\u002Fcontributing\u002Fconventions","fr\u002F4.contributing\u002F2.conventions",[221],{"title":222,"path":217,"stem":223},"Getting Started","fr\u002F4.contributing\u002F2.conventions\u002F1.getting-started",{"title":225,"path":226,"stem":227,"children":228,"page":16},"Référence docs","\u002Ffr\u002Fcontributing\u002Fdocs","fr\u002F4.contributing\u002F99.docs",[229],{"title":230,"path":231,"stem":232},"Composants","\u002Ffr\u002Fcontributing\u002Fdocs\u002Fcomponents","fr\u002F4.contributing\u002F99.docs\u002F1.components",{"title":234,"redirect":6,"path":235,"stem":236,"children":237,"page":16},"Migrations","\u002Ffr\u002Fmigrations","fr\u002F5.migrations",[238],{"title":239,"path":240,"stem":241},"V0.17 -> V0.18","\u002Ffr\u002Fmigrations\u002Fv0.17_to_v0.18","fr\u002F5.migrations\u002F1.v0.17_to_v0.18",{"id":243,"title":203,"body":244,"description":368,"extension":498,"links":499,"meta":500,"navigation":501,"path":204,"seo":502,"stem":205,"__hash__":503},"docs_fr\u002Ffr\u002F3.using\u002F7.production.md",{"type":245,"value":246,"toc":491},"minimark",[247,251,313,318,324,334,338,352,362,418,428,435,454,458,478,487],[248,249,203],"h1",{"id":250},"checklist-de-production",[252,253,255],"list",{"type":254},"success",[256,257,258,267,278,300],"ul",{},[259,260,261,262,266],"li",{},"Mon projet ",[263,264,265],"code",{},"cssXX.dashboards_store"," utilise Git",[259,268,269,270,274,275,277],{},"Les ",[271,272,273],"em",{},"dashboards"," déployés sont versionnés dans ",[263,276,265],{},".",[259,279,280,281,284,285,287,288,291,292,295,296,299],{},"Un ",[271,282,283],{},"push"," vers ",[263,286,265],{}," déclenche une ",[271,289,290],{},"pipeline"," CI\u002FCD qui construit une image Docker basée sur celle de ",[263,293,294],{},"core.dashboards_store",". Mon ",[271,297,298],{},"ETL"," est conteneurisé.",[259,301,302,303,305,306,309,310,277],{},"J'exécute mon ",[271,304,298],{}," conteneurisé avec un ",[263,307,308],{},"cronjob"," ou le DAG ",[263,311,312],{},"core.dashboards_store\u002Ftooling\u002Fdepechecode\u002FDAG.py",[314,315,317],"h2",{"id":316},"utiliser-un-gestionnaire-de-versions","Utiliser un gestionnaire de versions",[319,320,321,322,277],"p",{},"Le gestionnaire de versions est essentiel lorsque l'on travaille en équipe. Il permet de suivre les changements, de revenir à des versions précédentes et de collaborer sur des projets. Nous vous recommandons d'installer et d'utiliser Git dans votre ",[263,323,265],{},[319,325,326,327,330,331,333],{},"Chaque ",[271,328,329],{},"dashboard"," déployé devrait être versionné dans ",[263,332,265],{},". Vous pourrez ainsi suivre les changements et revenir à une version précédente au besoin.",[314,335,337],{"id":336},"utiliser-des-dépendances-épinglées","Utiliser des dépendances épinglées",[339,340,342,343,346,347,349,350,277],"alert",{"type":341},"warning","Lors d'un déploiement en production, ou en ",[271,344,345],{},"staging",", épinglez toujours la version de ",[263,348,294],{}," dont dépend votre ",[263,351,265],{},[319,353,354,355,358,359,361],{},"Pour épingler une version précise, mettez à jour le fichier ",[263,356,357],{},"packages.yml"," de votre ",[263,360,265],{}," avec l'extrait suivant:",[363,364,369],"pre",{"className":365,"code":366,"language":367,"meta":368,"style":368},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# cssXX.dashboards_store\u002Fpackages.yml\npackages:\n  - git: git@github.com:Sciance-Inc\u002Fcore.dashboards_store.git\n    revision: \u003Crelease_number>\n","yaml","",[263,370,371,380,391,407],{"__ignoreMap":368},[372,373,376],"span",{"class":374,"line":375},"line",1,[372,377,379],{"class":378},"sHwdD","# cssXX.dashboards_store\u002Fpackages.yml\n",[372,381,383,387],{"class":374,"line":382},2,[372,384,386],{"class":385},"swJcz","packages",[372,388,390],{"class":389},"sMK4o",":\n",[372,392,394,397,400,403],{"class":374,"line":393},3,[372,395,396],{"class":389},"  -",[372,398,399],{"class":385}," git",[372,401,402],{"class":389},":",[372,404,406],{"class":405},"sfazB"," git@github.com:Sciance-Inc\u002Fcore.dashboards_store.git\n",[372,408,410,413,415],{"class":374,"line":409},4,[372,411,412],{"class":385},"    revision",[372,414,402],{"class":389},[372,416,417],{"class":405}," \u003Crelease_number>\n",[319,419,420,421,424,425,277],{},"Où ",[263,422,423],{},"\u003Crelease_number>"," est la version à épingler, par exemple ",[263,426,427],{},"v0.7.0+20230926",[314,429,431,432,434],{"id":430},"utiliser-une-pipeline-cicd","Utiliser une ",[271,433,290],{}," CI\u002FCD",[319,436,437,438,440,441,443,444,447,448,451,452,277],{},"Vous pouvez construire une ",[271,439,290],{}," CI\u002FCD pour automatiser le déploiement de vos ",[271,442,273],{},". Le fichier ",[263,445,446],{},"core.dashboards_store\u002Ftooling\u002Fdepechecode\u002FDockerfile"," décrit une image Docker qui emballe le ",[271,449,450],{},"core"," et que vous pouvez réutiliser pour construire l'image de votre ",[263,453,265],{},[314,455,457],{"id":456},"déployer-vers-airflow","Déployer vers Airflow",[319,459,460,461,463,464,466,467,470,471,473,474,477],{},"Le fichier ",[263,462,312],{}," décrit un DAG que vous pouvez réutiliser pour déployer vos ",[271,465,273],{}," dans Airflow. Vous pouvez copier ce fichier dans votre ",[271,468,469],{},"repo"," ",[263,472,265],{}," et mettre à jour l'objet ",[263,475,476],{},"DAG"," selon vos besoins de déploiement.",[319,479,480,481,483,484,486],{},"Vous pouvez aussi utiliser un ",[263,482,308],{},". Dans tous les cas, nous vous recommandons de conteneuriser votre ",[271,485,298],{}," afin d'abstraire l'infrastructure sous-jacente.",[488,489,490],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":368,"searchDepth":382,"depth":382,"links":492},[493,494,495,497],{"id":316,"depth":382,"text":317},{"id":336,"depth":382,"text":337},{"id":430,"depth":382,"text":496},"Utiliser une pipeline CI\u002FCD",{"id":456,"depth":382,"text":457},"md",null,{},true,{"title":203,"description":368},"u0tmY0puORReRETIOnpkrvmSv_eDnxv--YoH6YL_gyM",[505,506],{"title":98,"path":200,"stem":201,"description":368,"children":-1},{"title":213,"path":208,"stem":214,"description":507,"children":-1},"À compléter.",1781106572022]