Comprendre Parquet, Iceberg et le data lakehouse de BroadIn
(davidgomes.com)Comprendre : Parquet, Iceberg et le data lakehouse de BroadIn
-
Méthodes de stockage des données (fichiers et en mémoire)
- Il existe divers formats de fichiers pour accéder aux données et les stocker
- Certains systèmes utilisent principalement des formats de données fermés, mais la plupart prennent en charge des formats de données ouverts
- Parmi les principaux formats de fichiers open source figurent Apache Avro, Parquet, ORC, Arrow, Feather, Protobuf, etc.
- Ces formats fournissent des spécifications sur la manière d’organiser les données dans leur disposition binaire réelle
- Parquet prend bien en charge la compression, tandis qu’Avro est adapté à la lecture de blocs de lignes spécifiques
- Ils prennent en charge l’évolution du schéma et le partitionnement des fichiers, essentiels au traitement parallèle
- Il est possible de travailler avec ces formats dans divers langages de programmation et outils
-
Gestion des données à grande échelle — Iceberg et Delta Lake
- Il faut un moyen de stocker différentes tables, de faire évoluer chaque schéma individuellement, de partitionner efficacement les données et de permettre aux outils externes de lire facilement le schéma
- Hive, Iceberg et Delta Lake prennent tous en charge un registre de schémas ou un metastore
- Iceberg et Delta Lake utilisent Parquet comme format de fichier individuel
- Iceberg et Delta Lake ne sont ni des moteurs de requête ni des moteurs de stockage, mais des spécifications ouvertes qui permettent aux moteurs de requête d’effectuer le travail
- Ils rendent possibles l’évolution du partitionnement, l’évolution du schéma, la compression des données, les transactions ACID, l’optimisation efficace des requêtes, le time travel, etc.
-
Qu’est-ce qu’un data lake et un data lakehouse ?
- Un data lake est l’endroit où les entreprises stockent de grandes quantités de données dans des formats bruts tels que des fichiers OCR, Parquet ou CSV
- Un data lakehouse est une combinaison de fonctionnalités au-dessus d’un data lake, permettant d’exécuter des requêtes SQL, de configurer des traitements batch, de mettre en place la gouvernance des données, etc.
- Le data lakehouse peut être considéré comme une version de l’entrepôt de données ouvert
- À mesure que des entrepôts de données comme Snowflake et BigQuery prennent en charge des formats de données ouverts comme Iceberg, la frontière entre entrepôt de données et data lakehouse devient floue
L’avis de GN⁺
- Iceberg et Delta Lake jouent un rôle important comme couche de métadonnées pour gérer des jeux de données à grande échelle. Ils permettent une gestion efficace des données et l’optimisation des requêtes, ce qui les rend utiles aux data scientists et aux ingénieurs.
- Le data lakehouse combine les avantages du data lake et de l’entrepôt de données, en proposant un nouveau paradigme pour la gestion et l’analyse des données. Cela peut offrir de nouvelles possibilités pour renforcer la prise de décision fondée sur les données.
- À mesure que la prise en charge d’Iceberg progresse, les systèmes de gestion et d’analyse des données devraient se standardiser davantage et devenir plus interopérables. Cela apportera plus de flexibilité et d’efficacité dans le choix et l’utilisation des plateformes de données.
2 commentaires
J’étais en train de comparer Iceberg et Delta Lake, et c’est bien que ce soit résumé de façon aussi claire.
Cela correspond presque exactement à l’analyse et à l’opinion que j’avais.
Le benchmark réalisé en ligne utilisait Spark, et le Head of DevRel de Tabular a écrit que ce benchmark pouvait servir de référence, mais n’avait pas une grande signification.
S’il faut faire un choix en tant qu’open source, Iceberg semble être la seule option.
Le résumé est bon, mais ce serait encore mieux s’il y avait aussi les liens de référence.
Commentaires Hacker News
Apache Iceberg et Delta Lake sont souvent présentés comme des formats de table ouverts, mais il existe en réalité des différences.
Dans l’univers des bases de données, le fait que Delta, Iceberg et Hudi stockent les données sur un stockage comme S3 dans des formats open source représente un changement majeur.
Je travaille avec des fichiers Parquet sur S3 depuis des années, sans avoir vraiment compris ce qu’était Iceberg. Mais cet article l’explique bien.
La meilleure façon de stocker un dataframe Apache Arrow sous forme de fichier sur disque est d’utiliser Feather, mais on peut aussi le convertir au format Apache Parquet.
J’avais déjà entendu parler des data lakes, mais « data lakehouse » donne l’impression d’un endroit où les données de la haute société partent à la pêche en data boat pendant l’été.
Je gère environ 100 To de données sur GCP, avec BigQuery comme moteur de requête et un partitionnement Hive simple. Je suis satisfait de pouvoir exécuter toutes mes requêtes à très bas coût, mais la latence est devenue assez élevée, même si ce n’est pas un gros problème pour l’entreprise.
Iceberg m’enthousiasme beaucoup, mais la dernière fois que j’ai regardé, seules les bibliothèques Spark constituaient une implémentation, et le connecteur Iceberg de Trino dépendait fortement de Hive.
Je me demande pourquoi personne n’explique tout cela avec des idées plus concrètes. Il faudrait expliquer comment les données sont stockées, comment on s’y connecte et les interroge, ainsi que la vitesse des requêtes, par rapport à la vitesse transactionnelle et à la vitesse « analytique ».
Dans tous les benchmarks que j’ai vus en ligne, le format Delta Lake semble offrir des performances nettement meilleures qu’Iceberg.
Je reconnais que ce billet de blog ne sera ni 100 % exhaustif ni le meilleur point de départ pour la plupart des gens.