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

Initialisation (1er jet) pour la fiche sur Parquet #475

Merged
merged 9 commits into from Mar 27, 2023
Merged

Initialisation (1er jet) pour la fiche sur Parquet #475

merged 9 commits into from Mar 27, 2023

Conversation

ddotta
Copy link
Contributor

@ddotta ddotta commented Mar 21, 2023

Salut @oliviermeslin, @linogaliana et @py-b !

Comme promis, une modeste proposition et un 1er jet pour la fiche sur Parquet.
Je l'ai intitulée "Importer des fichiers au format Parquet" mais elle couvre davantage de choses que l'import.
Je vous laisse regarder et bien sûr compléter/corriger/réorganiser les paragraphes au besoin.
Peut-être voir aussi si on la laisse dans le bloc de fiches Importer des données avec R ?
C'est pas évident de choisir les thèmes qui peuvent être abordés dans une telle fiche parce que le sujet est vaste... 😮‍💨

Copy link
Member

@RLesur RLesur left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merci @ddotta ! Super boulot !

Quelques propositions de modifications et une question.

03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
Copy link
Contributor

@linogaliana linogaliana left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

relecture et suggestions pour la première partie de la fiche, merci @damiendotta !

03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
@linogaliana
Copy link
Contributor

Merci @ddotta c'est super comme projet de fiche. Je t'ai fait des suggestions sur la première partie, pas encore eu le temps d'aller voir la suite

@ddotta
Copy link
Contributor Author

ddotta commented Mar 22, 2023

Merci @RLesur et @linogaliana pour vos premières relectures !
J'ai pris en compte vos suggestions, il me reste à mettre à jour la partie des exemples avec la BPE comme suggéré par Lino

@RLesur
Copy link
Member

RLesur commented Mar 23, 2023

Une question supplémentaire : je la pose mais n'ai pas réellement d'avis, faut peut-être qu'on en discute

Faut-il parler des dates au moment de la création d'un fichier parquet ?

On sait que c'est un des plus gros pièges qui nous attend et que si nous ne prenons pas garde, on peut avoir de gros problèmes avec ça à terme. Faut-il dès maintenant inclure la recommandation qu'avait fait Pengfei ? cf. https://github.com/pengfei99/ParquetPyArrow#252-timestamp

@ddotta
Copy link
Contributor Author

ddotta commented Mar 23, 2023

Ah oui je n'avais pas du tout en tête cette question des dates 🧐 c'est très intéressant en tout cas, merci pour le partage Romain ! Cela peut poser des problèmes que je n'avais pas en tête...
Dans la fiche, peut-être qu'on pourrait évoquer rapidement le risque puis mettre un lien vers la recommandation de Pengfei ?
Je n'ai pas plus d'avis que cela à donner vu que je viens de découvrir le sujet...

Copy link
Contributor

@oliviermeslin oliviermeslin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merci @ddotta pour cette proposition! Voici une première série de remarques. Je continuerai un peu plus tard.

03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
Copy link
Contributor

@oliviermeslin oliviermeslin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suite (mais pas fin!) de mes commentaires

03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
Comment on lines +207 to +220
Le package `arrow` présente une fonctionnalité supplémentaire qui consiste à créer et lire un fichier **Parquet partitionné**. Partitionner un fichier revient à le "découper" selon une clé de partitionnement (qui peut prendre la forme par exemple d'une ou de plusieurs variables). Cela permet de pouvoir exécuter du code sur une table volumineuse qui dépasse la mémoire de son espace de travail dans la mesure où les requêtes seront alors exécutées selon **un plan d'exécution optimal**.

::: {.callout-conseil .icon}
- Prendre le temps d'identifier les variables de partitionnement d'un fichier **Parquet** n'est pas du temps perdu dans la mesure où il permet par la suite des gains d'efficacité sur les traitements et facilite la maintenance du fichier sur le long terme.
:::

Pour créer des fichiers **Parquet** partitionnés, il existe la fonction [`write_dataset()`](https://arrow.apache.org/docs/r/reference/write_dataset.html). Voici ce que ça donne sur le fichier de la BPE :

```{r, eval = FALSE}
write_dataset(
dataset = read_parquet("Data/BPE_ENS.parquet"),
path = "Data/",
partitioning = c("REG"), # la variable de partitionnement
format="parquet"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je pense qu'il faudrait déplacer plus haut l'explication sur la création des fichiers partitionnés (dans la partie écrire des fichiers parquet).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok je te laisse faire

03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd Outdated Show resolved Hide resolved
@ddotta
Copy link
Contributor Author

ddotta commented Mar 27, 2023

@oliviermeslin c'est bon pour toutes tes remarques sauf le fait de remonter le paragraphe sur les fichiers partitionnés

@oliviermeslin oliviermeslin changed the base branch from master to dev_parquet March 27, 2023 08:57
@oliviermeslin oliviermeslin merged commit 214ed5d into InseeFrLab:dev_parquet Mar 27, 2023
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Enrichir la partie consacrée au format parquet
4 participants