top of page

Datalake et Lakehouse : comparaison d'Apache Kylin et de Trino pour l'analyse de la veille stratégique

  • Photo du rédacteur: Claude Paugh
    Claude Paugh
  • 23 juil.
  • 7 min de lecture
Dans le contexte économique dynamique d'aujourd'hui, disposer des bons outils d'analyse de données et de veille stratégique peut faire toute la différence. Face à l'immense quantité de données disponibles, les entreprises ont besoin de moyens efficaces pour les traiter et les analyser afin d'améliorer leur prise de décision. Apache Kylin et Trino, également connu sous le nom de Presto, sont deux plateformes performantes qui se démarquent dans ce domaine. Bien que toutes deux remplissent des fonctions importantes en matière d'analyse, comprendre leurs différences est essentiel pour les professionnels des données qui souhaitent exploiter efficacement ces technologies.

Cet article fournit une comparaison d'Apache Kylin et de Trino , en se concentrant sur leurs capacités de requête et leurs méthodes d'agrégation pour déterminer celle qui convient le mieux à vos besoins d'analyse.

Gestion SQL des utilisateurs
Users SQL Wrangling

Comprendre Apache Kylin


Apache Kylin est un moteur d'analyse open source conçu pour un traitement analytique en ligne (OLAP) rapide sur les plateformes Big Data. S'appuyant sur Spark et Hadoop, Kylin permet aux utilisateurs de créer des modèles de données de type Cube pour des réponses rapides aux requêtes. Selon Apache, ses fonctionnalités de pré-agrégation peuvent optimiser la vitesse des requêtes jusqu'à 100 fois par rapport aux méthodes traditionnelles.


Kylin est idéal pour les applications de business intelligence nécessitant des analyses rapides et fiables, notamment lorsqu'elles traitent de grands volumes de données, un problème souvent rencontré par les entreprises. Kylin fournit des pilotes pour les connexions aux outils de BI, tels que Tableau et Power BI . Parmi ses concurrents sur le marché figurent Microsoft Analysis Services et son équivalent Cloud, IBM Cognos, SAP Business Objects, Looker, Qlick, etc.


Comprendre Trino (Presto)

Trino, initialement connu sous le nom de Presto, est un moteur de requête SQL open source qui permet aux professionnels de l'analyse d'interroger des données provenant de diverses sources en temps réel. Il excelle dans les scénarios où les analystes de données doivent exécuter des requêtes complexes sur plusieurs lacs de données et bases de données relationnelles.


Avec Trino, les utilisateurs peuvent effectuer des analyses de données intégrées sans avoir à préparer un entrepôt de données unique, ce qui lui confère une flexibilité incroyable face aux défis analytiques modernes. Selon ses créateurs, Trino peut interroger des pétaoctets de données en quelques secondes seulement, ce qui en fait une alternative intéressante pour l'analyse en temps réel. Parmi les concurrents de Trino figurent AWS Glue, Databricks, Google BigQuery, AWS Redshift Spectrum, Apache Drill et Clickhouse, pour n'en citer que quelques-uns.


Comparaison des fonctionnalités clés

Kylin et Trino, ainsi que leurs différents produits homologues, présentent des fonctionnalités clés communes. Tous ces produits s'efforcent de capturer les fonctionnalités OLAP (cube de données) et les données multi-sources et multi-formats grâce à des requêtes ad hoc et par lots.


Nombre d'entre eux tentent d'interroger les données entrantes dans tous les formats et de les agréger en temps réel dans plusieurs dimensions. Aucun outil ne permet cela avec un déploiement simple, et sans métadonnées pour cataloguer les données, c'est impossible.


L'agrégation et l'exploration détaillée des données en temps réel nécessitent encore des efforts d'ingénierie et de configuration supplémentaires pour atteindre cet objectif. Ceci avant de procéder au nettoyage des anomalies et de la qualité, idéalement avant l'amorçage des données pour l'entraînement des modèles d'IA/ML.


Pour clarifier la façon dont Apache Kylin et Trino se comparent, examinons leurs principales fonctionnalités côte à côte.


Performance et vitesse

Fonctionnalité
Apache Kylin
Trino (Presto)

Performances des requêtes

Les données pré-agrégées permettent des réponses plus rapides

Les requêtes peuvent subir une latence en fonction de la complexité de la source de données et de la fédération des sources

Gestion de la taille des données

Optimisé pour la gestion d'ensembles de données massifs avec la technologie Data Cube

Gère efficacement les petits et les grands ensembles de données

La pré-agrégation d'Apache Kylin améliore considérablement les performances des requêtes. En revanche, si Trino peut gérer efficacement de grands ensembles de données, ses requêtes en temps réel peuvent parfois introduire de la latence, notamment avec des sources de données plus volumineuses et plus complexes.


Modélisation des données

Apache Kylin
Trino (Presto)

Nécessite des modèles de cubes de données structurées pour l'optimisation

Sans schéma ; interrogation directe depuis des sources de données sans modèle. Utilise le modèle de données source, si disponible.

Le besoin de Kylin en modèles de cubes de données peut le rendre moins flexible, mais il améliore considérablement la vitesse des requêtes. L'absence de schéma de Trino permet aux utilisateurs d'explorer instantanément diverses sources de données, ce qui renforce son adaptabilité. Cependant, il ne convient pas à tous les scénarios.


Capacités SQL

Fonctionnalité
Apache Kylin
Trino (Presto)

Requêtes fédérées

Non --> potentiel en utilisant Hive et pushdown

Oui --> SGBDR, noSQL, DataLakes

Norme SQL

Kylin 5.0 prend en charge ANSI SQL 2003

Fonctionnalités SQL ANSI complètes disponibles

Requêtes ad hoc et par lots

Non --> nécessite une ingénierie supplémentaire

Oui --> fonctionnalité intégrée

Trino se distingue par sa prise en charge complète de l'ANSI SQL, facilitant l'exécution de requêtes complexes. En revanche, la structure cubique stricte de Kylin impose certaines limitations, mais la nouvelle version 5.0 offre également la compatibilité avec l'ANSI SQL 2003.


Compatibilité et écosystème

Fonctionnalité
Apache Kylin
Trino (Presto)

Sources de données

Hadoop, Hive et ses sources de données sous-jacentes (Iceberg, Parquet, MySQL, PostgreSQL, etc.)

Sources de données incluant MySQL, PostgreSQL, Parquet, MongoDB, etc.


La capacité de Trino à interagir avec diverses sources de données offre une plus grande flexibilité, tandis que Kylin, bien qu'efficace dans son écosystème Hadoop, peut avoir des difficultés à s'adapter à des environnements de données variés. L'extension à Hive et à ses sources connectées (Iceberg, Parquet, ORC, SGBDR, sources JDBC, etc.) améliore l'extension de Kylin à des données supplémentaires.


Business Intelligence : exécution des requêtes

Les techniques d'exécution des requêtes sont essentielles pour différencier ces deux plateformes. Voici comment elles les gèrent :


Exécution de requêtes dans Apache Kylin


  1. Modélisation des données : les utilisateurs définissent des métriques et des dimensions dans un cube de données, préparant ainsi le terrain pour des requêtes optimisées. Un modèle de données multidimensionnel est mis en œuvre à l'aide de dimensions et de mesures.

  2. Pré-agrégation : Kylin pré-agrège les données selon ces définitions, garantissant un accès rapide aux indicateurs. Avec Hive, des sources supplémentaires peuvent être incluses dans cette étape d'agrégation.

  3. Exécution instantanée : lorsqu'une requête s'exécute, Kylin récupère ces résultats pré-agrégés, réduisant considérablement le temps de traitement.

La méthode de pré-agrégation est particulièrement utile lors de la génération de rapports qui doivent être actualisés rapidement ou de requêtes utilisateur à la demande à partir d'outils BI.


Exécution de requêtes dans Trino


  1. Requêtes en direct : les utilisateurs peuvent exécuter SQL directement sur diverses sources de données, en exploitant des données en direct.

  2. Fédération de données : Trino interroge de manière transparente tous les systèmes sans avoir besoin de mapper les données au préalable.

  3. Performances optimisées : Trino exploite des techniques d’optimisation pour réduire la latence et améliorer la vitesse des requêtes.

Bien que Trino n’atteigne pas la vitesse de pré-agrégation de Kylin, son approche offre une flexibilité vitale pour l’analyse en temps réel.


Mécanique d'agrégation

L'agrégation est essentielle pour décrypter les données. Voici comment Kylin et Trino y parviennent :


Agrégation Apache Kylin


  1. Agrégation de cubes : Kylin effectue l'agrégation lors de la création de cubes de données, en se concentrant sur des métriques ou des mesures définies.

  2. Pré-calcul : cela permet aux utilisateurs d'accéder rapidement aux métriques pré-calculées pendant les requêtes.

  3. Contrôle de granularité : les utilisateurs peuvent définir des niveaux de détail pour les agrégats, permettant ainsi des aperçus flexibles pour l'exploration, le cumul et le décomptage.

Agrégation Trino


  1. Agrégation dynamique : Trino effectue des agrégations en temps réel à la volée, permettant une compilation rapide des données.

  2. Fonctions SQL : les analystes peuvent utiliser les fonctions d’agrégation SQL intégrées pour des calculs complexes.

  3. Répartition de la charge des ressources : Trino utilise efficacement les ressources distribuées pour gérer les opérations de données volumineuses lors de l'agrégation.

Trino fournit des informations en temps réel au prix d'une plus grande utilisation des ressources, contrairement à Kylin, qui s'appuie sur des résultats pré-calculés pour plus d'efficacité.


Cas d'utilisation idéaux


Le choix entre Apache Kylin et Trino dépend de scénarios commerciaux spécifiques, comme indiqué ci-dessous :


Scénarios optimaux pour Apache Kylin


  • Performances rapides avec des données volumineuses : pour les organisations gérant des ensembles de données volumineux nécessitant des résultats de requête rapides, Kylin est un choix de premier ordre.
  • Reporting structuré : Si les rapports réguliers impliquent des métriques stables, la pré-agrégation de Kylin optimise ces occurrences.
  • Charges de travail OLAP lourdes : Kylin s'épanouit dans des environnements qui exploitent des capacités OLAP complètes.

Scénarios optimaux pour Trino


  • Sources de données multiples : lorsque les analyses nécessitent une intégration sur plusieurs systèmes de données, Trino offre une grande flexibilité.
  • Prise de décision en temps réel : dans les cas nécessitant des informations immédiates sur les données, la capacité de Trino à effectuer des requêtes à la volée est inestimable.
  • Besoins SQL complexes : si votre équipe a besoin de capacités SQL complexes, Trino garantit qu'aucune question à laquelle SQL répond n'est hors de votre portée.

Réflexions finales


En résumé, Apache Kylin et Trino offrent tous deux des atouts uniques dans le domaine des requêtes métier et de l'analyse de données. Kylin excelle lorsque la performance est requise, notamment avec les données pré-agrégées et la technologie Cube. Trino, quant à lui, brille par sa flexibilité et ses capacités d'interrogation en temps réel, s'adaptant efficacement à diverses sources de données.


Pour les professionnels des données, il est essentiel d'identifier les forces et les faiblesses de chaque plateforme pour choisir l'outil adapté. Privilégiez la compréhension de l'architecture des données, des besoins de performance et des objectifs d'analyse de votre organisation afin d'optimiser votre stratégie globale.


Il n'existe pas d'outil unique pour les requêtes de données en temps réel et les analyses complètes, capable également d'intervenir sur la qualité des données pour alimenter les modèles d'IA/ML destinés à l'entraînement. Apache Spark est incontestablement omniprésent, associé à de nombreux outils open source, comme moteur de traitement. Si vous adoptez des analyses open source, la maîtrise de Spark est donc indispensable. En alignant les capacités de chaque outil sur vos besoins métier, vous pouvez considérablement améliorer votre prise de décision basée sur les données.


Vue grand angle d'une configuration d'analyse de données hautes performances
A robust data analysis environment showcasing technologies in action.


+1 508-203-1492

Bedford, MA 01730

bottom of page