[{"data":1,"prerenderedAt":578},["ShallowReactive",2],{"navigation_docs_fr":3,"-fr-using-configuration-databases":242,"-fr-using-configuration-databases-surround":574},[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":73,"body":244,"description":312,"extension":568,"links":569,"meta":570,"navigation":571,"path":74,"seo":572,"stem":75,"__hash__":573},"docs_fr\u002Ffr\u002F3.using\u002F3.configuration\u002F2.databases.md",{"type":245,"value":246,"toc":565},"minimark",[247,257,262,278,281,306,387,392,399,402,419,429,439,459,466,480,530,534,558,561],[248,249,251,252,256],"alert",{"type":250},"danger","Les bases de données accédées par le Store \u002F l'",[253,254,255],"em",{},"ETL"," devraient être pseudo-anonymisées. Ce n'est pas obligatoire, mais c'est fortement recommandé, car les traitements analytiques n'ont généralement pas besoin d'utiliser des renseignements personnels ;)",[258,259,261],"h1",{"id":260},"comment-lier-les-bases-de-données","Comment lier les bases de données?",[263,264,265],"blockquote",{},[266,267,268,269,273,274,277],"p",{},"Le fichier ",[270,271,272],"code",{},"cssXX.dashboards_store\u002Fdbt_project.yml"," expose une section ",[270,275,276],{},"databases"," dans laquelle vous renseignerez les noms des bases de données à lier au Store.",[266,279,280],{},"Le processus d'ajout d'une base de données est le suivant:",[282,283,284,291],"ol",{},[285,286,287,288,290],"li",{},"Ouvrez le fichier ",[270,289,272],{},".",[285,292,293,294,297,298,302,303,290],{},"Remplacez le ",[253,295,296],{},"placeholder"," par le ",[299,300,301],"strong",{},"nom entièrement qualifié"," de la base de données, ou ",[299,304,305],{},"FQN",[307,308,313],"pre",{"className":309,"code":310,"language":311,"meta":312,"style":312},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# cssXX.dashboards_store\u002Fdbt_project.yml\nvars:\n    database_bi: Bi distribution's FQN \n    database_paie: GHRPAIE's FQN\n    database_gpi: GPI's FQN \n    database_jade: JADE's FQN\n","yaml","",[270,314,315,324,335,352,363,376],{"__ignoreMap":312},[316,317,320],"span",{"class":318,"line":319},"line",1,[316,321,323],{"class":322},"sHwdD","# cssXX.dashboards_store\u002Fdbt_project.yml\n",[316,325,327,331],{"class":318,"line":326},2,[316,328,330],{"class":329},"swJcz","vars",[316,332,334],{"class":333},"sMK4o",":\n",[316,336,338,341,344,348],{"class":318,"line":337},3,[316,339,340],{"class":329},"    database_bi",[316,342,343],{"class":333},":",[316,345,347],{"class":346},"sfazB"," Bi distribution's FQN",[316,349,351],{"class":350},"sTEyZ"," \n",[316,353,355,358,360],{"class":318,"line":354},4,[316,356,357],{"class":329},"    database_paie",[316,359,343],{"class":333},[316,361,362],{"class":346}," GHRPAIE's FQN\n",[316,364,366,369,371,374],{"class":318,"line":365},5,[316,367,368],{"class":329},"    database_gpi",[316,370,343],{"class":333},[316,372,373],{"class":346}," GPI's FQN",[316,375,351],{"class":350},[316,377,379,382,384],{"class":318,"line":378},6,[316,380,381],{"class":329},"    database_jade",[316,383,343],{"class":333},[316,385,386],{"class":346}," JADE's FQN\n",[388,389,391],"h2",{"id":390},"quel-est-le-fqn-de-ma-base-de-données","Quel est le FQN de ma base de données?",[248,393,395,396],{"type":394},"warning","Le FQN ",[299,397,398],{},"est sensible à la casse",[266,400,401],{},"Le FQN d'une base de données est la chaîne utilisée pour référencer cette base dans une requête SQL.",[307,403,407],{"className":404,"code":405,"language":406,"meta":312,"style":312},"language-sql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","SELECT * \nFROM server.database.schema.table\n","sql",[270,408,409,414],{"__ignoreMap":312},[316,410,411],{"class":318,"line":319},[316,412,413],{},"SELECT * \n",[316,415,416],{"class":318,"line":326},[316,417,418],{},"FROM server.database.schema.table\n",[266,420,421,422,425,426,290],{},"Ici, ",[270,423,424],{},"server.database"," est le FQN de la ",[299,427,428],{},"base de données",[266,430,431,432,435,436,290],{},"Lorsque la base de données est colocalisée sur le même serveur que celui où s'exécute la requête, le ",[270,433,434],{},"server"," peut être omis. Le FQN de la base est alors simplement ",[270,437,438],{},"database",[266,440,441,442,445,446,449,450,453,454,456,457,290],{},"Donc, si la base de données à ajouter est colocalisée sur le même serveur que ",[270,443,444],{},"store"," et ",[270,447,448],{},"store_dev",", utilisez le nom de la base. Si la base à lier se trouve sur un serveur lié très, très lointain, le FQN est la concaténation du nom du ",[299,451,452],{},"serveur lié",", du point (",[270,455,290],{},") et du nom de la ",[299,458,428],{},[266,460,461,462,465],{},"Le nom de la base sera interpolé à l'exécution dans les fichiers SQL des ",[270,463,464],{},"interfaces"," qui récupèrent l'information depuis cette base.",[266,467,468,469,471,472,475,476,479],{},"Le bloc suivant montre une configuration de ",[270,470,272],{}," avec une base ",[270,473,474],{},"GRHPAIE"," colocalisée et une base ",[270,477,478],{},"GPI"," accédée via un serveur lié.",[307,481,483],{"className":309,"code":482,"language":311,"meta":312,"style":312},"vars:\n    # Base source depuis laquelle extraire les donnees pour un CSS.\n    database_paie: \"paie\" # La BD est colocalisee, une reference directe suffit\n    database_gpi: \"[dataserver\u002FIA].[gpi]\" # La base GPI est sur le serveur lie \"dataserver\u002FIA\"\n",[270,484,485,491,496,514],{"__ignoreMap":312},[316,486,487,489],{"class":318,"line":319},[316,488,330],{"class":329},[316,490,334],{"class":333},[316,492,493],{"class":318,"line":326},[316,494,495],{"class":322},"    # Base source depuis laquelle extraire les donnees pour un CSS.\n",[316,497,498,500,502,505,508,511],{"class":318,"line":337},[316,499,357],{"class":329},[316,501,343],{"class":333},[316,503,504],{"class":333}," \"",[316,506,507],{"class":346},"paie",[316,509,510],{"class":333},"\"",[316,512,513],{"class":322}," # La BD est colocalisee, une reference directe suffit\n",[316,515,516,518,520,522,525,527],{"class":318,"line":354},[316,517,368],{"class":329},[316,519,343],{"class":333},[316,521,504],{"class":333},[316,523,524],{"class":346},"[dataserver\u002FIA].[gpi]",[316,526,510],{"class":333},[316,528,529],{"class":322}," # La base GPI est sur le serveur lie \"dataserver\u002FIA\"\n",[258,531,533],{"id":532},"la-section-ma-maman-dit-que-je-suis-spécial-jutilise-azure-sql-server","La section \"ma maman dit que je suis spécial\": j'utilise Azure SQL Server",[266,535,536,537,542,543,546,547,550,551,553,554,557],{},"Azure SQL Server ne supporte pas les serveurs liés. Pire encore, Azure SQL Database gère mal les communications entre bases de données. Dans ce cas, les données doivent être extraites de la base source vers la base du Store dans un schéma dédié. Vous pouvez utiliser un outil comme Airbyte ou Fivetran pour déplacer les données, ou faire de l'",[253,538,539],{},[299,540,541],{},"overriding"," sur les modèles ",[270,544,545],{},"cssXX.dashboards_store\u002Fmodels\u002Finterfaces"," afin d'ajouter un appel à la macro ",[270,548,549],{},"stage_external",". La macro ",[270,552,549],{}," repose sur la création d'une table ",[270,555,556],{},"EXTERNAL"," dans la base du Store. C'est essentiellement l'enfant indigne d'un serveur lié et d'une vue.",[266,559,560],{},"À compléter.",[562,563,564],"style",{},"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);}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 pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":312,"searchDepth":326,"depth":326,"links":566},[567],{"id":390,"depth":326,"text":391},"md",null,{},true,{"title":73,"description":312},"4kjvI1_fi7XESA_SkN3Z6ch8nGdDNvW8KqYTK9sO3mk",[575,577],{"title":69,"path":70,"stem":71,"description":576,"children":-1},"Le Store ne demande pas à Power BI d'être l'entrepôt analytique.",{"title":77,"path":78,"stem":79,"description":312,"children":-1},1781106572343]