Apache Phoenix
Apache Phoenix est un moteur de base de données relationnelle open source, massivement parallèle, prenant en charge le traitement transactionnel en ligne pour Hadoop à l'aide d'Apache HBase et de son magasin de sauvegarde. Il permet aux développeurs d’accéder à de grands ensembles de données en temps réel via une interface SQL qu'ils connaissent.
- API SQL et JDBC standard avec fonctionnalités de transaction ACID complètes
- Prise en charge de liaison tardive, schéma en lecture avec les données existantes dans HBase
- Accès aux données stockées et produites dans d'autres produits Hadoop tels que Spark, Hive, Pig, Flume et MapReduce
Objectif de Phoenix
Apache HBase fournit un accès aléatoire et en temps réel aux données dans Hadoop. Cet outil est largement adopté dans l'écosystème Hadoop. Apache Phoenix extrait le magasin de données sous-jacent en vous permettant d’interroger les données avec du SQL standard via un pilote JDBC. Apache Phoenix fournit des fonctionnalités telles que les index secondaires pour vous aider à accélérer les requêtes sans dépendre des conceptions de clé de lignes spécifiques.
Apache Phoenix est également massivement parallèle : les requêtes d'agrégation sont exécutées sur les nœuds où les données sont stockées, ce qui réduit considérablement le besoin d'envoyer des données sur le réseau.
Feature | Description |
---|---|
Familiar | Query data with a SQL-based language |
Fast | Real-time queries |
Reliable | Built on top of proven data store HBase |
Platform agnostic | Hortonworks’ Phoenix provides ODBC connector drivers, allowing you to connect to your dataset using familiar BI tools. |
Comment fonctionne Phoenix
Phoenix fournit un accès rapide à une grande quantité de données. L'analyse complète d'une table de 100 millions de lignes s'effectue généralement en 20 secondes (table étroite sur un cluster de taille moyenne). Ce temps atteint quelques millisecondes si la requête contient un filtre sur des colonnes clés. Pour les filtres sur des colonnes non clés ou des colonnes clés non principales, vous pouvez ajouter des index secondaires sur celles-ci, ce qui entraîne des performances équivalentes à celles du filtrage sur une colonne clé en faisant une copie de la table avec la ou les colonnes indexées comprises dans la clé.
Comment expliquer la rapidité de Phoenix, même lors d'une analyse complète :
- Phoenix fragmente votre requête en utilisant les limites de régions et les exécute en parallèle sur le client en utilisant un nombre configurable de threads.
- L'agrégation est ensuite effectuée dans un coprocesseur côté serveur, réduisant la quantité de données renvoyée au client plutôt que de tout renvoyer.