Retour

Les formats de stockage dans Microsoft Fabric

Temps de lecture : 5 minutes

OneLake, c’est l’espace de stockage centralisé de Fabric , l’endroit où toutes tes données sont physiquement enregistrées. Tu peux y déposer à peu près n’importe quel type de fichier. Mais attention : tous les formats ne se valent pas. Certains sont juste « posés là » sans avantage particulier, d’autres sont pleinement exploités par l’écosystème Fabric.

Cet article compare les formats que tu peux rencontrer dans un Lakehouse Fabric et t’aide à comprendre lequel utiliser selon la situation.

1. Delta Lake (Parquet + Transaction Log)

C’est le format par défaut et recommandé dans Fabric. Toute table créée dans la section « Tables » du Lakehouse est automatiquement au format Delta. Il combine des fichiers Parquet avec un journal de transactions (_delta_log) en JSON.

Ce qu’il apporte dans Fabric :

  • Transactions ACID
  • Time Travel (versioning)
  • Schema Enforcement & Evolution
  • UPDATE, DELETE, MERGE
  • Accessible via SQL Endpoint (T-SQL)
  • Lisible par Power BI en Direct Lake
  • Optimisable avec V-Order, Z-Order, OPTIMIZE, VACUUM
  • Supporte le batch ET le streaming

Quand l’utiliser : Toujours, pour toutes tes tables analytiques. C’est le standard.

2. Apache Parquet

Format colonnaire open source, très performant en lecture pour les workloads analytiques. C’est le format physique sous-jacent de Delta Lake, mais sans le transaction log.

Ce qu’il apporte dans Fabric :

  • Excellente compression et performance de lecture
  • Supporté dans la section « Files » du Lakehouse
  • Convertible en table Delta via « Load to Table »
  • Lisible par les notebooks Spark

Ce qu’il ne fait pas : Pas d’ACID, pas de time travel, pas de MERGE, pas accessible via SQL Endpoint ni Direct Lake (sauf si converti en Delta).

Quand l’utiliser : Comme format intermédiaire dans la section « Files » (landing zone), ou pour l’échange de données avec des systèmes externes. Mais dès que tu veux exploiter les données dans Fabric, convertis en Delta.

3. CSV (Comma-Separated Values)

Le format tabulaire le plus simple et le plus universel. Chaque ligne est un enregistrement, les colonnes sont séparées par un délimiteur (virgule, point-virgule, tabulation, etc.).

Ce qu’il apporte dans Fabric :

  • Facile à produire et à consommer
  • Supporté par « Load to Table » (conversion automatique en Delta)
  • Lisible par les notebooks Spark
  • Format courant pour les exports Business Central, Excel, ERP

Limites : Pas de typage des colonnes (tout est texte), pas de compression native, fichiers volumineux, pas de schéma embarqué, performances de lecture médiocres sur de gros volumes.

Quand l’utiliser : Uniquement en tant que format d’entrée (landing zone). Tu reçois un CSV depuis Business Central ou un FTP ? Dépose-le dans « Files », puis charge-le en table Delta via « Load to Table » ou un notebook.

4. JSON (JavaScript Object Notation)

Format texte semi-structuré, très courant pour les APIs REST et les échanges web. Supporte les structures imbriquées (objets, tableaux).

Ce qu’il apporte dans Fabric :

  • Format natif des réponses API (Business Central REST API, Graph API, etc.)
  • Supporté par « Load to Table »
  • Lisible par Spark avec inférence de schéma
  • Supporte les structures imbriquées (nécessite un flatten en Silver)
  • Supporté par Eventstream pour le streaming

Limites : Fichiers volumineux (répétition des noms de colonnes), pas de typage fort, performances de lecture faibles, pas de compression native.

Quand l’utiliser : Comme format de réception dans la landing zone quand la source est une API REST. Les données JSON doivent être aplaties (flatten) et converties en Delta dans la couche Silver.

5. Apache Avro

Format binaire orienté ligne, créé par Apache. Très bon en compression et en sérialisation. Le schéma est embarqué dans le fichier.

Ce qu’il apporte dans Fabric :

  • Excellente compression (souvent la meilleure parmi tous les formats)
  • Schéma embarqué dans le fichier
  • Supporté par les notebooks Spark et les pipelines
  • Adapté au streaming et aux messages (Kafka, Event Hubs)
  • Supporté nativement par Eventstream

Limites : Orienté ligne donc moins performant que Parquet/Delta pour les requêtes analytiques colonnaires. Pas accessible via SQL Endpoint ni Direct Lake.

Quand l’utiliser : Pour le streaming (Event Hubs, Kafka) et les scénarios d’ingestion en temps réel. Les données Avro doivent ensuite être converties en Delta pour l’analytique.

6. Apache ORC (Optimized Row Columnar)

Format colonnaire optimisé, issu de l’écosystème Hadoop/Hive. Concurrent historique de Parquet.

Ce qu’il apporte dans Fabric :

  • Bonne compression (comparable ou meilleure que Parquet sur certains datasets)
  • Supporté par les notebooks Spark et les pipelines
  • Format Hive-compatible

Limites : Moins répandu que Parquet dans l’écosystème Fabric. Pas de support Direct Lake, pas accessible via SQL Endpoint. Pas d’ACID ni de time travel (contrairement à Delta). Fabric ne l’utilise jamais comme format par défaut.

Quand l’utiliser : Essentiellement pour la compatibilité avec des systèmes Hive/Hadoop existants. Si tu migres depuis un environnement Hive, tu peux lire des fichiers ORC dans Fabric, mais convertis-les en Delta dès que possible.

7. Texte brut (TXT, TSV, etc.)

Fichiers texte plat avec différents délimiteurs (tabulation pour TSV, pipe, etc.) ou sans structure particulière (logs, fichiers de configuration).

Ce qu’il apporte dans Fabric :

  • Lisible par Spark
  • Format d’entrée pour certains exports

Limites : Aucune fonctionnalité avancée. Pas de schéma, pas de typage, pas de compression. Performances très faibles.

Quand l’utiliser : Uniquement si la source ne peut pas produire un autre format. À convertir en Delta le plus vite possible.

La règle clé :

Dans la section « Files » : accepte tous les formats (c’est ta landing zone). Dans la section « Tables » : tout doit être en Delta. C’est le seul format qui débloque l’ensemble des fonctionnalités Fabric.

Le réflexe à avoir : quel que soit le format d’entrée, l’objectif est toujours de le convertir en Delta le plus tôt possible dans le pipeline.

Laisser un commentaire

Il n'y a pas de commentaires pour le moment. Soyez le premier à participer !