web-dev-qa-db-fra.com

Stockage des données dans des fichiers HBase vs Parquet

Je suis novice en matière de Big Data et j'essaie de comprendre les différentes façons de conserver et de récupérer les données. Je comprends que Parquet et HBase sont des formats de stockage orientés colonnes, mais Parquet est un stockage orienté fichier et non une base de données contrairement à HBase. Mes questions sont:

  1. Quel est le cas d'utilisation de Parquet à la place de HBase
  2. Existe-t-il un cas d'utilisation où Parquet peut être utilisé avec HBase.
  3. En cas d'exécution de jointures, Parquet sera-t-il plus performant que HBase (disons, accessible via un skin SQL comme Phoenix)?
13
sovan

Comme vous l'avez déjà dit en question, le parquet est un stockage tandis que HBase est un stockage (HDFS) + moteur de requête (API/Shell) Donc, une comparaison valide doit être faite entre parquet + Impala/Hive/Spark et HBase. Voici les principales différences -

1) Espace disque - Parquet prend moins d'espace disque par rapport à HBase. L'encodage de parquet économise plus d'espace que la compression de blocs dans HBase.

2) Ingestion de données - L'ingestion de données dans le parquet est plus efficace que HBase. Une raison simple pourrait être le point 1. Comme dans le cas du parquet, moins de données doivent être écrites sur le disque.

3) recherche d'enregistrement sur la clé - HBase est plus rapide car il s'agit d'un stockage de valeur-clé alors que le parquet ne l'est pas. L'indexation dans le parquet sera prise en charge dans la prochaine version.

4) Filtre et autres requêtes de scan - Étant donné que parquet stocke plus d'informations sur les enregistrements stockés dans un groupe de lignes, il peut ignorer de nombreux enregistrements lors de l'analyse des données. C'est la raison, c'est plus rapide que HBase.

5) Mise à jour des enregistrements - HBase fournit des mises à jour des enregistrements alors que cela peut être problématique dans le parquet car les fichiers de parquet doivent être réécrits. Une conception soignée du schéma et du partitionnement peut améliorer les mises à jour, mais elle n'est pas comparable à HBase.

En comparant les fonctionnalités ci-dessus, HBase semble plus adapté aux situations où des mises à jour sont requises et les requêtes impliquent principalement la recherche de valeurs-clés. Les requêtes impliquant un balayage de plage de clés auront également de meilleures performances dans HBase.

Parquet convient aux cas d'utilisation où les mises à jour sont très rares et les requêtes impliquent des filtres, des jointures et des agrégations.

19
Ajay Srivastava