Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ajouter une fiche arrow #498

Merged
merged 100 commits into from
Jan 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
2f1af80
Première esquisse de fiche sur arrow et duckdb
oliviermeslin Nov 19, 2023
18b5ef0
Ajouter les avantages d'arrow
oliviermeslin Nov 20, 2023
de639d0
Ajouter la fiche arrow duckdb dans le quarto book
oliviermeslin Nov 20, 2023
962da93
upgrade npm
linogaliana Nov 20, 2023
f4eef8d
upgrade npm prod
linogaliana Nov 20, 2023
8d5e0a2
Ajouter des liens
oliviermeslin Nov 20, 2023
1ac9b4b
Mise à jour des recommandations tidyverse et data.table pour prendre …
oliviermeslin Nov 20, 2023
70b8ea2
Compléments sur les recommandations
oliviermeslin Nov 20, 2023
ba0ee2b
Merge branch 'fiche_arrow_duckdb' of https://github.com/InseeFrLab/ut…
oliviermeslin Nov 20, 2023
d8d6af3
Expliquer ce qu'est un Arrow Table
oliviermeslin Nov 20, 2023
b8de9ae
Ajouter la capture d'écran
oliviermeslin Nov 20, 2023
f330262
Coquille
oliviermeslin Nov 21, 2023
13558dd
Ticks
oliviermeslin Nov 21, 2023
8b4be00
Gros ajouts sur arrow
oliviermeslin Nov 21, 2023
31d28a6
Chunk options
oliviermeslin Nov 21, 2023
b710f65
Complément sur compute/collect
oliviermeslin Nov 22, 2023
cb3b1b7
Coquille
oliviermeslin Nov 22, 2023
03a1fae
Pleins d'ajouts sur arrow
oliviermeslin Nov 22, 2023
e1147ad
Changement de nom
oliviermeslin Nov 22, 2023
3ecc931
Adapter le quarto book
oliviermeslin Nov 22, 2023
0da399c
Petites modifs sur les recommandations
oliviermeslin Nov 22, 2023
bfaff29
Précision
oliviermeslin Nov 22, 2023
0ddee93
Rendre la formulation moins négative
oliviermeslin Dec 8, 2023
f8eb55a
Améliorations de détail
oliviermeslin Dec 8, 2023
1a31905
Mise en forme
oliviermeslin Dec 8, 2023
72b9896
Gros ajout sur les limites de l'évaluation différée
oliviermeslin Dec 8, 2023
20fe81e
Précision
oliviermeslin Dec 8, 2023
32bf918
Adjectif
oliviermeslin Dec 8, 2023
a64a91d
Coquille
oliviermeslin Dec 10, 2023
08384af
Nettoyage
oliviermeslin Dec 10, 2023
6fe4b4b
En l'état
oliviermeslin Dec 10, 2023
1a6f671
Complément sur les recommandations
oliviermeslin Jan 24, 2024
1cb91a7
Améliorer les formulations
oliviermeslin Jan 24, 2024
18895dc
up
oliviermeslin Jan 24, 2024
0a681f6
Solve conflict
oliviermeslin Jan 24, 2024
e5b93e9
Mise à jour GHA
oliviermeslin Jan 24, 2024
99082f8
Complément
oliviermeslin Jan 24, 2024
25b77f2
Recommandation
oliviermeslin Jan 24, 2024
f2b5dd3
gras
oliviermeslin Jan 24, 2024
9c5c325
Mise en forme
oliviermeslin Jan 24, 2024
d9ae81b
Boite
oliviermeslin Jan 24, 2024
4d46433
Indentation
oliviermeslin Jan 24, 2024
937cafb
Cross ref
oliviermeslin Jan 24, 2024
30f86e1
Bricoles
oliviermeslin Jan 24, 2024
deed123
Formulation
oliviermeslin Jan 24, 2024
7f13947
Mise en forme
oliviermeslin Jan 24, 2024
e8f6c13
Références
oliviermeslin Jan 24, 2024
0bfb6f9
Ajout sur duckdb
oliviermeslin Jan 24, 2024
e78a140
Update 03_Fiches_thematiques/Fiche_arrow.qmd
linogaliana Jan 24, 2024
e8a5bff
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 24, 2024
73c0a60
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 24, 2024
1b3f4e4
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 24, 2024
c52ab9a
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 24, 2024
a4838b0
Correction de coquilles
oliviermeslin Jan 25, 2024
03c9964
Merge branch 'fiche_arrow_duckdb' of https://github.com/InseeFrLab/ut…
oliviermeslin Jan 25, 2024
f3a402e
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 25, 2024
21b8f8a
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 25, 2024
e436414
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 25, 2024
effeb6b
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 25, 2024
adb1ce7
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 25, 2024
5c0daae
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 25, 2024
e274900
Remarque sur data.table
oliviermeslin Jan 26, 2024
8eac4cf
Merge branch 'fiche_arrow_duckdb' of https://github.com/InseeFrLab/ut…
oliviermeslin Jan 26, 2024
0b3b511
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 26, 2024
19f89ae
Préciser la recommandation Arrow Table versus data.frames
oliviermeslin Jan 26, 2024
fb36d37
Merge branch 'fiche_arrow_duckdb' of https://github.com/InseeFrLab/ut…
oliviermeslin Jan 26, 2024
c0b7e46
Ajout d'un conseil
oliviermeslin Jan 26, 2024
88cadc8
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 28, 2024
06153d1
Lien vers la section @sec-lazy
oliviermeslin Jan 28, 2024
c2be8b6
Complément sur data.table
oliviermeslin Jan 28, 2024
d13f4da
Ajouter un lien
oliviermeslin Jan 28, 2024
368db9b
Merge branch 'fiche_arrow_duckdb' of https://github.com/InseeFrLab/ut…
oliviermeslin Jan 28, 2024
773b63f
Remplacer les boîtes
oliviermeslin Jan 28, 2024
3855b06
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 28, 2024
cbd2c23
Section
oliviermeslin Jan 28, 2024
b1e420c
Merge branch 'fiche_arrow_duckdb' of https://github.com/InseeFrLab/ut…
oliviermeslin Jan 28, 2024
0670d05
Ajouter une partie
oliviermeslin Jan 28, 2024
2fd2023
Supprimer un mot redondant
oliviermeslin Jan 28, 2024
2932896
Complément
oliviermeslin Jan 28, 2024
3887d09
Déplacer la partie lazy eval
oliviermeslin Jan 28, 2024
927ccdd
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 31, 2024
deac887
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 31, 2024
4b051c3
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 31, 2024
2dc7e4d
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 31, 2024
23439fd
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 31, 2024
b783d58
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 31, 2024
6b4697e
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 31, 2024
a44f8fc
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 31, 2024
c9571bc
Update 03_Fiches_thematiques/Fiche_arrow.qmd
oliviermeslin Jan 31, 2024
9039091
Ajouter une intro dans un paragraphe [skip-ci]
oliviermeslin Jan 31, 2024
e2af7db
Améliorer un tableau
oliviermeslin Jan 31, 2024
f7411a4
Merge branch 'fiche_arrow_duckdb' of https://github.com/InseeFrLab/ut…
oliviermeslin Jan 31, 2024
d0ea264
Gras [skip-ci]
oliviermeslin Jan 31, 2024
6b01aad
Améliorer les tableaux
oliviermeslin Jan 31, 2024
4be20ef
Bullet points
oliviermeslin Jan 31, 2024
01b34af
Test
oliviermeslin Jan 31, 2024
a599764
Diverses bricoles
oliviermeslin Jan 31, 2024
2621546
Compléments
oliviermeslin Jan 31, 2024
36dbbda
Formulation
oliviermeslin Jan 31, 2024
6aa5f21
Précision [skip-ci]
oliviermeslin Jan 31, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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.
Loading