Skip to content

Commit

Permalink
Ajouter une fiche arrow (#498)
Browse files Browse the repository at this point in the history
* Première esquisse de fiche sur arrow et duckdb

* Ajouter les avantages d'arrow

* Ajouter la fiche arrow duckdb dans le quarto book

* upgrade npm

* upgrade npm prod

* Ajouter des liens

* Mise à jour des recommandations tidyverse et data.table pour prendre en compte arrow

* Compléments sur les recommandations

* Expliquer ce qu'est un Arrow Table

* Ajouter la capture d'écran

* Coquille

* Ticks

* Gros ajouts sur arrow

* Chunk options

* Complément sur compute/collect

* Coquille

* Pleins d'ajouts sur arrow

* Changement de nom

* Adapter le quarto book

* Petites modifs sur les recommandations

* Précision

* Rendre la formulation moins négative

* Améliorations de détail

* Mise en forme

* Gros ajout sur les limites de l'évaluation différée

* Précision

* Adjectif

* Coquille

* Nettoyage

* En l'état

* Complément sur les recommandations

* Améliorer les formulations

* up

* Mise à jour GHA

* Complément

* Recommandation

* gras

* Mise en forme

* Boite

* Indentation

* Cross ref

* Bricoles

* Formulation

* Mise en forme

* Références

* Ajout sur duckdb

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

Co-authored-by: Julien PRAMIL <[email protected]>

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

Co-authored-by: Julien PRAMIL <[email protected]>

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

Co-authored-by: Romain Lesur <[email protected]>

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

Co-authored-by: Romain Lesur <[email protected]>

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

Co-authored-by: Romain Lesur <[email protected]>

* Correction de coquilles

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

Co-authored-by: Lino Galiana <[email protected]>

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

Co-authored-by: Lino Galiana <[email protected]>

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

Co-authored-by: Lino Galiana <[email protected]>

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

Co-authored-by: Lino Galiana <[email protected]>

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

Co-authored-by: Lino Galiana <[email protected]>

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

Co-authored-by: Lino Galiana <[email protected]>

* Remarque sur data.table

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

Co-authored-by: Lino Galiana <[email protected]>

* Préciser la recommandation Arrow Table versus data.frames

* Ajout d'un conseil

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

Co-authored-by: Lino Galiana <[email protected]>

* Lien vers la section @sec-lazy

* Complément sur data.table

* Ajouter un lien

* Remplacer les boîtes

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

Co-authored-by: Lino Galiana <[email protected]>

* Section

* Ajouter une partie

* Supprimer un mot redondant

* Complément

* Déplacer la partie lazy eval

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

Co-authored-by: Lino Galiana <[email protected]>

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

[skip-ci]

Co-authored-by: Lino Galiana <[email protected]>

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

Co-authored-by: Lino Galiana <[email protected]>

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

[skip-ci]

Co-authored-by: Lino Galiana <[email protected]>

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

[skip-ci]

Co-authored-by: Lino Galiana <[email protected]>

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

Co-authored-by: Lino Galiana <[email protected]>

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

Co-authored-by: Lino Galiana <[email protected]>

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

[skip-ci]

Co-authored-by: Lino Galiana <[email protected]>

* Update 03_Fiches_thematiques/Fiche_arrow.qmd

[skip-ci]

Co-authored-by: Lino Galiana <[email protected]>

* Ajouter une intro dans un paragraphe [skip-ci]

* Améliorer un tableau

* Gras [skip-ci]

* Améliorer les tableaux

* Bullet points

* Test

* Diverses bricoles

* Compléments

* Formulation

* Précision [skip-ci]

---------

Co-authored-by: Lino Galiana <[email protected]>
Co-authored-by: Julien PRAMIL <[email protected]>
Co-authored-by: Romain Lesur <[email protected]>
  • Loading branch information
4 people authored Jan 31, 2024
1 parent 688c76f commit 4da1f27
Show file tree
Hide file tree
Showing 8 changed files with 637 additions and 8 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/bookdown-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
- name: Render Book
run: |
quarto render
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
with:
name: _public
path: _public/
Expand All @@ -39,7 +39,7 @@ jobs:
if: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
uses: actions/setup-node@v2
with:
node-version: '14'
node-version: '18'
- name: Deploy to Netlify
if: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
# NETLIFY_AUTH_TOKEN and NETLIFY_SITE_ID added in the repo's secrets
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/prod.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ jobs:
if: ${{ github.repository == 'inseefrlab/utilitr' }}
uses: actions/setup-node@v2
with:
node-version: '14'
node-version: '18'
- name: Deploy to Netlify
if: ${{ github.repository == 'inseefrlab/utilitr' }}
# NETLIFY_AUTH_TOKEN and NETLIFY_SITE_ID added in the repo's secrets
Expand Down
628 changes: 628 additions & 0 deletions 03_Fiches_thematiques/Fiche_arrow.qmd

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions 03_Fiches_thematiques/Fiche_datatable.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ L'utilisateur souhaite manipuler des données structurées sous forme de `data.f
::: {.callout-important}
## Tâche concernée et recommandation

* Pour des tables de données de taille petite et moyenne (inférieure à 1 Go ou moins d'un million d'observations), il est recommandé d'utiliser le package `dplyr` ;
* Pour des tables de données de grande taille (plus de 1 Go ou plus d'un million d'observations), il est recommandé d'utiliser le package `data.table` qui fait l'objet de la présente fiche.
* Pour des tables de données de taille petite et moyenne (inférieure à 1 Go ou moins d'un million d'observations), il est recommandé d'utiliser les *packages* `tibble`, `dplyr` et `tidyr` qui sont présentés dans la fiche [Manipuler des données avec le `tidyverse`](#tidyverse);
* Pour des tables de données de grande taille (plus de 1 Go ou plus d'un million d'observations), il est recommandé d'utiliser soit le _package_ `data.table` qui fait l'objet de la présente fiche, soit les _packages_ `arrow` et `duckdb` présentés dans les fiches [Manipuler des données avec `arrow`](#arrow) et [Manipuler des données avec `duckdb`](#duckdb).
:::

::: {.callout-note}
Expand Down
4 changes: 2 additions & 2 deletions 03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ Partitionner un fichier revient à le "découper" selon une clé de partitionnem
::: {.callout-tip}
- **Il est important de bien choisir les variables de partitionnement** d'un fichier **Parquet**. Il faut choisir des variables faciles à comprendre et qui soient cohérentes avec l'usage des données (année, département, secteur...). En effet, un partitionnement bien construit induit par la suite des gains d'efficacité sur les traitements et facilite la maintenance du fichier sur le long terme.
- **Il est inutile de partitionner des données de petite taille**. Si les données dépassent quelques millions d'observations et/ou si leur taille en CSV dépasse quelques giga-octets, il est utile de partitionner.
- **Il ne faut pas partitionner les données en trop de fichiers**. En pratique, il est rare d'avoir besoin de plus qu'une ou deux variables de partitionnement.
- **Il ne faut pas partitionner les données en trop de fichiers**. En pratique, il est rare d'avoir besoin de plus d'une ou deux variables de partitionnement.
:::

Pour créer des fichiers **Parquet** partitionnés, il faut utiliser la fonction [`write_dataset()`](https://arrow.apache.org/docs/r/reference/write_dataset.html) du _package_ `arrow`. Voici ce que ça donne sur le fichier de la BPE :
Expand Down Expand Up @@ -183,7 +183,7 @@ donnees <- arrow::read_parquet(
)
```

Dans les trois cas, le résultat obtenu est un objet directement utilisable dans R.
Dans les trois cas, le résultat obtenu est un objet directement utilisable dans `R`.

### Cas des données volumineuses: utiliser des requêtes `dplyr`

Expand Down
2 changes: 1 addition & 1 deletion 03_Fiches_thematiques/Fiche_tidyverse.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ L'utilisateur souhaite manipuler des données structurées sous forme de `data.f
## Tâche concernée et recommandation

* Pour des tables de données de taille petite et moyenne (inférieure à 1 Go ou moins d'un million d'observations), il est recommandé d'utiliser les *packages* `tibble`, `dplyr` et `tidyr` qui font l'objet de la présente fiche ;
* Pour des tables de données de grande taille (plus de 1 Go ou plus d'un million d'observations), il est recommandé d'utiliser le _package_ `data.table` qui fait l'objet de la fiche [Manipuler des données avec `data.table`](#datatable).
* Pour des tables de données de grande taille (plus de 1 Go ou plus d'un million d'observations), il est recommandé d'utiliser soit le _package_ `data.table` présenté dans la fiche [Manipuler des données avec `data.table`](#datatable), soit les _packages_ `arrow` et `duckdb` présentés dans les fiches [Manipuler des données avec `arrow`](#arrow) et [Manipuler des données avec `duckdb`](#duckdb).
:::

::: {.callout-note}
Expand Down
1 change: 1 addition & 0 deletions _quarto.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ book:
chapters:
- 03_Fiches_thematiques/Fiche_tidyverse.qmd
- 03_Fiches_thematiques/Fiche_datatable.qmd
- 03_Fiches_thematiques/Fiche_arrow.qmd
- part: "Manipuler des données avec R"
chapters:
- 03_Fiches_thematiques/Fiche_joindre_donnees.qmd
Expand Down
Binary file added pics/arrow/diff_environnement.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 4da1f27

Please sign in to comment.