[{"data":1,"prerenderedAt":487},["ShallowReactive",2],{"navigation_docs_en":3,"-en-introduction-prerequisites":241,"-en-introduction-prerequisites-surround":484},[4,17,42,206,232],{"title":5,"redirect":6,"path":7,"stem":8,"children":9,"page":16},"Introduction","\u002Fen\u002Fintroduction\u002Fintroduction","\u002Fen\u002Fintroduction","en\u002F1.introduction",[10,12],{"title":5,"path":6,"stem":11},"en\u002F1.introduction\u002F1.introduction",{"title":13,"path":14,"stem":15},"Prerequisites","\u002Fen\u002Fintroduction\u002Fprerequisites","en\u002F1.introduction\u002F2.prerequisites",false,{"title":18,"redirect":19,"path":20,"stem":21,"children":22,"page":16},"Installation","\u002Fen\u002Finstallation\u002Fsetup","\u002Fen\u002Finstallation","en\u002F2.installation",[23,26,30,34,38],{"title":24,"path":19,"stem":25},"Machine set-up","en\u002F2.installation\u002F1.setup",{"title":27,"path":28,"stem":29},"A Tale of Two Repos","\u002Fen\u002Finstallation\u002Ftale-repos","en\u002F2.installation\u002F2.tale-repos",{"title":31,"path":32,"stem":33},"Database connection","\u002Fen\u002Finstallation\u002Fdbt-profile","en\u002F2.installation\u002F3.dbt-profile",{"title":35,"path":36,"stem":37},"Smoke-testing","\u002Fen\u002Finstallation\u002Fsmoke-testing","en\u002F2.installation\u002F4.smoke-testing",{"title":39,"path":40,"stem":41},"What now ?","\u002Fen\u002Finstallation\u002Fwhat-now","en\u002F2.installation\u002F5.what-now",{"title":43,"path":44,"stem":45,"children":46,"page":16},"Users Guide","\u002Fen\u002Fusing","en\u002F3.using",[47,50,54,88,188,202],{"title":5,"path":48,"stem":49},"\u002Fen\u002Fusing\u002Fintroduction","en\u002F3.using\u002F1.introduction",{"title":51,"path":52,"stem":53},"Running the ETL","\u002Fen\u002Fusing\u002Frunning","en\u002F3.using\u002F2.running",{"title":55,"path":56,"stem":57,"children":58,"page":16},"Configuration","\u002Fen\u002Fusing\u002Fconfiguration","en\u002F3.using\u002F3.configuration",[59,72,76,80,84],{"title":60,"path":61,"stem":62,"children":63,"page":16},"Architecture","\u002Fen\u002Fusing\u002Fconfiguration\u002Farchitecture","en\u002F3.using\u002F3.configuration\u002F1.architecture",[64,68],{"title":65,"path":66,"stem":67},"Overview","\u002Fen\u002Fusing\u002Fconfiguration\u002Farchitecture\u002Foverview","en\u002F3.using\u002F3.configuration\u002F1.architecture\u002F1.overview",{"title":69,"path":70,"stem":71},"Marts and reporting layer","\u002Fen\u002Fusing\u002Fconfiguration\u002Farchitecture\u002Fmarts-reporting","en\u002F3.using\u002F3.configuration\u002F1.architecture\u002F2.marts-reporting",{"title":73,"path":74,"stem":75},"Linking the databases","\u002Fen\u002Fusing\u002Fconfiguration\u002Fdatabases","en\u002F3.using\u002F3.configuration\u002F2.databases",{"title":77,"path":78,"stem":79},"Adapters and seeds","\u002Fen\u002Fusing\u002Fconfiguration\u002Fadapts-seeds","en\u002F3.using\u002F3.configuration\u002F3.adapts-seeds",{"title":81,"path":82,"stem":83},"Enabling a resource","\u002Fen\u002Fusing\u002Fconfiguration\u002Fenabling","en\u002F3.using\u002F3.configuration\u002F4.enabling",{"title":85,"path":86,"stem":87},"Overriding","\u002Fen\u002Fusing\u002Fconfiguration\u002Foverriding","en\u002F3.using\u002F3.configuration\u002F5.overriding",{"title":89,"redirect":90,"path":91,"stem":92,"children":93,"page":16},"Dashboards","\u002Fen\u002Fusing\u002F","\u002Fen\u002Fusing\u002Fdashboards","en\u002F3.using\u002F4.dashboards",[94,97,126,167,176,184],{"title":5,"path":95,"stem":96},"\u002Fen\u002Fusing\u002Fdashboards\u002Fintroduction","en\u002F3.using\u002F4.dashboards\u002F1.introduction",{"title":98,"redirect":99,"path":99,"stem":100,"children":101,"page":16},"Human resources","\u002Fen\u002Fusing\u002Fdashboards\u002Fhr","en\u002F3.using\u002F4.dashboards\u002F2. hr",[102,106,110,114,118,122],{"title":103,"path":104,"stem":105},"Employees leaves","\u002Fen\u002Fusing\u002Fdashboards\u002Fhr\u002Femp_conge","en\u002F3.using\u002F4.dashboards\u002F2. hr\u002F1.emp_conge",{"title":107,"path":108,"stem":109},"Active employees","\u002Fen\u002Fusing\u002Fdashboards\u002Fhr\u002Fempl_actif","en\u002F3.using\u002F4.dashboards\u002F2. hr\u002F2.empl_actif",{"title":111,"path":112,"stem":113},"Retirement","\u002Fen\u002Fusing\u002Fdashboards\u002Fhr\u002Fretirement","en\u002F3.using\u002F4.dashboards\u002F2. hr\u002F3.retirement",{"title":115,"path":116,"stem":117},"Efficacité","\u002Fen\u002Fusing\u002Fdashboards\u002Fhr\u002Fefficacite","en\u002F3.using\u002F4.dashboards\u002F2. hr\u002F4.efficacite",{"title":119,"path":120,"stem":121},"Absences des employé(e)s","\u002Fen\u002Fusing\u002Fdashboards\u002Fhr\u002Femp_abs","en\u002F3.using\u002F4.dashboards\u002F2. hr\u002F5.emp_abs",{"title":123,"path":124,"stem":125},"Resignation","\u002Fen\u002Fusing\u002Fdashboards\u002Fhr\u002Fresignation","en\u002F3.using\u002F4.dashboards\u002F2. hr\u002F6.resignation",{"title":127,"redirect":128,"path":128,"stem":129,"children":130,"page":16},"Educational service","\u002Fen\u002Fusing\u002Fdashboards\u002Feduc-serv","en\u002F3.using\u002F4.dashboards\u002F3.educ-serv",[131,135,139,143,147,151,155,159,163],{"title":132,"path":133,"stem":134},"Res epreuves","\u002Fen\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fres_epreuves","en\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F1.res_epreuves",{"title":136,"path":137,"stem":138},"Students results monitoring","\u002Fen\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fsuivi_resultats","en\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F2.suivi_resultats",{"title":140,"path":141,"stem":142},"Students headcount","\u002Fen\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Feffectif_css","en\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F3.effectif_css",{"title":144,"path":145,"stem":146},"Students absenteeism","\u002Fen\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fchronic_absenteeism","en\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F4.chronic_absenteeism",{"title":148,"path":149,"stem":150},"Academic results","\u002Fen\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fres_scolaires","en\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F5.res_scolaires",{"title":152,"path":153,"stem":154},"Predictive modelling - aggregated","\u002Fen\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fpredictive-aggregated","en\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F6.predictive-aggregated",{"title":156,"path":157,"stem":158},"PEVR","\u002Fen\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fpevr","en\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F7.pevr",{"title":160,"path":161,"stem":162},"Absenteeism","\u002Fen\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fabsenteeism","en\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F8.absenteeism",{"title":164,"path":165,"stem":166},"Diplôme","\u002Fen\u002Fusing\u002Fdashboards\u002Feduc-serv\u002Fdiplome","en\u002F3.using\u002F4.dashboards\u002F3.educ-serv\u002F9.diplome",{"title":168,"redirect":169,"path":169,"stem":170,"children":171,"page":16},"School organisation","\u002Fen\u002Fusing\u002Fdashboards\u002Fschool-org","en\u002F3.using\u002F4.dashboards\u002F4.school-org",[172],{"title":173,"path":174,"stem":175},"Anomalies","\u002Fen\u002Fusing\u002Fdashboards\u002Fschool-org\u002Fanomalies","en\u002F3.using\u002F4.dashboards\u002F4.school-org\u002F1.anomalies",{"title":177,"path":178,"stem":179,"children":180,"page":16},"DirectionGenerale","\u002Fen\u002Fusing\u002Fdashboards\u002Fdirection_generale","en\u002F3.using\u002F4.dashboards\u002F5.direction_generale",[181],{"title":156,"path":182,"stem":183},"\u002Fen\u002Fusing\u002Fdashboards\u002Fdirection_generale\u002Fpevr","en\u002F3.using\u002F4.dashboards\u002F5.direction_generale\u002F1.pevr",{"title":185,"path":186,"stem":187},"Row Level Security","\u002Fen\u002Fusing\u002Fdashboards\u002Frls","en\u002F3.using\u002F4.dashboards\u002F5.rls",{"title":189,"redirect":90,"path":190,"stem":191,"children":192,"page":16},"Data marts","\u002Fen\u002Fusing\u002Fmarts","en\u002F3.using\u002F6.marts",[193,196,199],{"title":5,"path":194,"stem":195},"\u002Fen\u002Fusing\u002Fmarts\u002Fmarts","en\u002F3.using\u002F6.marts\u002F1.marts",{"title":127,"path":197,"stem":198},"\u002Fen\u002Fusing\u002Fmarts\u002Feducational-service","en\u002F3.using\u002F6.marts\u002F2.educational-service",{"title":98,"path":200,"stem":201},"\u002Fen\u002Fusing\u002Fmarts\u002Fhuman-resources","en\u002F3.using\u002F6.marts\u002F3.human-resources",{"title":203,"path":204,"stem":205},"Production checklist","\u002Fen\u002Fusing\u002Fproduction","en\u002F3.using\u002F7.production",{"title":207,"redirect":208,"path":209,"stem":210,"children":211,"page":16},"Developers Guide","\u002Fen\u002Fcontributing\u002Fgetting-started","\u002Fen\u002Fcontributing","en\u002F4.contributing",[212,215,223],{"title":213,"path":208,"stem":214},"Getting Started","en\u002F4.contributing\u002F1.getting-started",{"title":216,"redirect":217,"path":218,"stem":219,"children":220,"page":16},"Conventions","\u002Fen\u002Fcontributing\u002Fconventions\u002Fgetting-started","\u002Fen\u002Fcontributing\u002Fconventions","en\u002F4.contributing\u002F2.conventions",[221],{"title":213,"path":217,"stem":222},"en\u002F4.contributing\u002F2.conventions\u002F1.getting-started",{"title":224,"path":225,"stem":226,"children":227,"page":16},"Docs Ref","\u002Fen\u002Fcontributing\u002Fdocs","en\u002F4.contributing\u002F99.docs",[228],{"title":229,"path":230,"stem":231},"Components","\u002Fen\u002Fcontributing\u002Fdocs\u002Fcomponents","en\u002F4.contributing\u002F99.docs\u002F1.components",{"title":233,"redirect":6,"path":234,"stem":235,"children":236,"page":16},"Migrations","\u002Fen\u002Fmigrations","en\u002F5.migrations",[237],{"title":238,"path":239,"stem":240},"V0.17 -> V0.18","\u002Fen\u002Fmigrations\u002Fv0.17_to_v0.18","en\u002F5.migrations\u002F1.v0.17_to_v0.18",{"id":242,"title":13,"body":243,"description":472,"extension":478,"links":479,"meta":480,"navigation":481,"path":14,"seo":482,"stem":15,"__hash__":483},"docs_en\u002Fen\u002F1.introduction\u002F2.prerequisites.md",{"type":244,"value":245,"toc":471},"minimark",[246,251,282,287,291,348,352,415,419,431,435,445,461,464],[247,248,250],"h1",{"id":249},"what-do-i-need","What do I need ?",[252,253,255,256,260,261,264,265,260,272,277,278,281],"alert",{"type":254},"warning ","Both ",[257,258,259],"strong",{},"users"," and ",[257,262,263],{},"developers"," should be familiar with ",[266,267,271],"a",{"href":268,"rel":269},"https:\u002F\u002Fdocs.getdbt.com\u002F",[270],"nofollow","dbt",[266,273,276],{"href":274,"rel":275},"https:\u002F\u002Fpowerbi.microsoft.com\u002F",[270],"Power BI",". If you are not, we recommend that you read the ",[266,279,271],{"href":268,"rel":280},[270]," documentation before going any further.",[283,284,286],"h2",{"id":285},"taming-the-dbt-wilderness","Taming the dbt wilderness 🦬",[288,289,290],"p",{},"I haven't finished reading the Internet yet, but I have curated a list of resources that I found useful to get started with dbt.",[292,293,294,315],"ol",{},[295,296,297,298],"li",{},"🦔 dbt fundamentals\n",[299,300,301,308],"ul",{},[295,302,303],{},[266,304,307],{"href":305,"rel":306},"https:\u002F\u002Fcourses.getdbt.com\u002Fcourses\u002Ffundamentals",[270],"dbt's own learning material",[295,309,310],{},[266,311,314],{"href":312,"rel":313},"https:\u002F\u002Ftowardsdatascience.com\u002Flearn-dbt-the-easy-way-7d9f773d25ea",[270],"dbt, the easy way",[295,316,317,318],{},"🦅 Advanced dbt\n",[299,319,320,327,334,341],{},[295,321,322],{},[266,323,326],{"href":324,"rel":325},"https:\u002F\u002Ftowardsdatascience.com\u002Fhow-to-design-a-dbt-model-from-scratch-8c72c7684203",[270],"Designing a model",[295,328,329],{},[266,330,333],{"href":331,"rel":332},"https:\u002F\u002Fcourses.getdbt.com\u002Fcourses\u002Fanalyses-seeds",[270],"dbt's course about seeds and analyses",[295,335,336],{},[266,337,340],{"href":338,"rel":339},"https:\u002F\u002Fwww.synq.io\u002Fblog\u002Fthe-complete-guide-to-building-reliable-data-with-dbt-tests",[270],"Reliable testing",[295,342,343],{},[266,344,347],{"href":345,"rel":346},"https:\u002F\u002Fmedium.com\u002F@datajuls\u002Fwhy-i-moved-my-dbt-workloads-to-github-and-saved-over-65-000-759b37486001",[270],"Automating the ETL",[283,349,351],{"id":350},"it-could-be-useful-to-know-a-little-bit-about-these-technologies-too","It could be useful to know a little bit about these technologies too.",[299,353,354,365,375,385,395,405],{},[295,355,356,359,360],{},[257,357,358],{},"Git"," ",[266,361,364],{"href":362,"rel":363},"https:\u002F\u002Fgit-scm.com\u002F",[270],"because even if not everyone is building a kernel, a version manager always comes in handy",[295,366,367,359,370],{},[257,368,369],{},"Ubuntu",[266,371,374],{"href":372,"rel":373},"https:\u002F\u002Fubuntu.com\u002Ftutorials\u002Fcommand-line-for-beginners#1-overview",[270],"some good stuff might come for free ;)",[295,376,377,359,380],{},[257,378,379],{},"YAML",[266,381,384],{"href":382,"rel":383},"https:\u002F\u002Fcircleci.com\u002Fblog\u002Fwhat-is-yaml-a-beginner-s-guide\u002F?psafe_param=1&utm_source=google&utm_medium=sem&utm_campaign=sem-google-dg--uscan-en-dsa-tROAS-auth-brand&utm_term=g_-_c__dsa_&utm_content=&gclid=CjwKCAjwrpOiBhBVEiwA_473dK-ujEm1G7ONji2IsFzoHdn8liN3nCBMiTl9oL1qPxf759sXoEqdWRoCe-sQAvD_BwE",[270],"a human-readable data-serialization language. Like JSON but worse.",[295,386,387,359,390],{},[257,388,389],{},"SQL",[266,391,394],{"href":392,"rel":393},"https:\u002F\u002Fwww.sqlservertutorial.net\u002F",[270],"Structured Query Language. The language used to query the database.",[295,396,397,359,400],{},[257,398,399],{},"Python",[266,401,404],{"href":402,"rel":403},"https:\u002F\u002Fdocs.python.org\u002F3.10\u002F",[270],"dbt is built in Python, so you might want to have a look at it.",[295,406,407,359,410],{},[257,408,409],{},"Poetry",[266,411,414],{"href":412,"rel":413},"https:\u002F\u002Fpython-poetry.org\u002F",[270],"but let's face the truth... pip is garbage. So we ditched it for Poetry",[247,416,418],{"id":417},"your-own-personal-linux","Your own personal Linux",[252,420,422,260,424,426,427,430],{"type":421},"warning",[257,423,271],{},[257,425,358],{}," are easier to use with Linux than with Windows. If you don't have access to a *nix machine you can experiment with, you should set up your own personal Linux with ",[257,428,429],{},"Windows Subsystem for Linux (WSL)",".",[283,432,434],{"id":433},"how-to-setup-wsl","How to setup WSL ?",[436,437,438],"blockquote",{},[288,439,440,441,444],{},"It's paramount that you follow the instructions for ",[257,442,443],{},"Windows Subsystem for Linux Version 2",". The first version was buggy as hell.",[299,446,447,454],{},[295,448,449],{},[266,450,453],{"href":451,"rel":452},"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fwindows\u002Fwsl\u002Finstall",[270],"Install WSL2",[295,455,456],{},[266,457,460],{"href":458,"rel":459},"https:\u002F\u002Fubuntu.com\u002Ftutorials\u002Finstall-ubuntu-on-wsl2-on-windows-11-with-gui-support#1-overview",[270],"Install ubuntu on WSL2",[288,462,463],{},"You won't necessarily need Ubuntu's GUI to work, but that's great knowledge anyway.",[252,465,467,468,470],{"type":466},"info","We advise using ",[257,469,369],{},", but you will be at ease with any distro, provided you know how to use it.",{"title":472,"searchDepth":473,"depth":473,"links":474},"",2,[475,476,477],{"id":285,"depth":473,"text":286},{"id":350,"depth":473,"text":351},{"id":433,"depth":473,"text":434},"md",null,{},true,{"title":13,"description":472},"T4LNZMenMKDfcROq3diDIS38rbgM11kqDh4p2xPLM9k",[485,486],{"title":5,"path":6,"stem":11,"description":472,"children":-1},{"title":24,"path":19,"stem":25,"description":472,"children":-1},1781106579060]