Actualiser docs/Services/pole-scientifique/Onyxia/docs/stockage.md

This commit is contained in:
Alexis GUYOT 2024-01-25 14:55:29 +01:00
parent bed3a4be4b
commit 7b2c71e1f5

View File

@ -141,94 +141,39 @@ L'accès au stockage MinIO est possible via un token (jeton d'accès) personnel,
**Copier les fichiers dans le service local n'est généralement pas une bonne pratique** : cela limite la reproductibilité des analyses, et devient rapidement impossible avec des volumes importants de données. Il est donc préférable de prendre l'habitude d'importer les données comme des fichiers directement dans `R`/`Python`.
#### R
```r
BUCKET <- "donnees-insee"
FILE_KEY_S3 <- "diffusion/BPE/2019/BPE_ENS.csv"
df <-
aws.s3::s3read_using(
FUN = readr::read_delim,
# Mettre les options de FUN ici
delim = ";",
object = FILE_KEY_S3,
bucket = BUCKET,
opts = list("region" = "")
)
```
#### Python
Le package S3Fs permet d'interagir avec les fichiers stockés sur MinIO comme s'il s'agissait de fichiers locaux. La syntaxe est donc très familière pour les utilisateurs de Python. Par exemple, pour importer/exporter des données tabulaires via `pandas` :
```python
import pandas as pd
BUCKET = "donnees-insee"
FILE_KEY_S3 = "diffusion/BPE/2019/BPE_ENS.csv"
FILE_PATH_S3 = BUCKET + "/" + FILE_KEY_S3
with fs.open(FILE_PATH_S3, mode="rb") as file_in:
df_bpe = pd.read_csv(file_in, sep=";")
```
#### mc
Pour copier les données d'un bucket sur MinIO vers le service local :
```bash
mc cp s3/donnees-insee/diffusion/BPE/2019/BPE_ENS.csv ./BPE_ENS.csv
```
::: {.callout-warning}
**Copier les fichiers dans le service local n'est généralement pas une bonne pratique** : cela limite la reproductibilité des analyses, et devient rapidement impossible avec des volumes importants de données. Il est donc préférable de prendre l'habitude d'importer les données comme des fichiers directement dans `R`/`Python`.
:::
:::
### Exporter des données vers MinIO
::: {.panel-tabset}
=== "R"
#### R
```r
BUCKET_OUT = "<mon_bucket>"
FILE_KEY_OUT_S3 = "mon_dossier/BPE_ENS.csv"
```r
BUCKET_OUT = "<mon_bucket>"
FILE_KEY_OUT_S3 = "mon_dossier/BPE_ENS.csv"
aws.s3::s3write_using(
df,
FUN = readr::write_csv,
object = FILE_KEY_OUT_S3,
bucket = BUCKET_OUT,
opts = list("region" = "")
)
```
aws.s3::s3write_using(
df,
FUN = readr::write_csv,
object = FILE_KEY_OUT_S3,
bucket = BUCKET_OUT,
opts = list("region" = "")
)
```
=== "Python"
```python
BUCKET_OUT = "<mon_bucket>"
FILE_KEY_OUT_S3 = "mon_dossier/BPE_ENS.csv"
FILE_PATH_OUT_S3 = BUCKET_OUT + "/" + FILE_KEY_OUT_S3
#### Python
with fs.open(FILE_PATH_OUT_S3, 'w') as file_out:
df_bpe.to_csv(file_out)
```
```python
BUCKET_OUT = "<mon_bucket>"
FILE_KEY_OUT_S3 = "mon_dossier/BPE_ENS.csv"
FILE_PATH_OUT_S3 = BUCKET_OUT + "/" + FILE_KEY_OUT_S3
=== "mc"
Pour copier les données du service local vers un bucket sur MinIO:
with fs.open(FILE_PATH_OUT_S3, 'w') as file_out:
df_bpe.to_csv(file_out)
```
#### mc
Pour copier les données du service local vers un bucket sur MinIO:
```bash
mc cp chemin/local/vers/mon/fichier.csv s3/<mon_bucket>/chemin/distant/vers/mon/fichier.csv
```
:::
```bash
mc cp chemin/local/vers/mon/fichier.csv s3/<mon_bucket>/chemin/distant/vers/mon/fichier.csv
```
### Renouveler des jetons d'accès (*tokens*) périmés