Une startup moderne d'indexation de la blockchain peut être confrontée à plusieurs défis, notamment :
Dans cet article, nous examinons l'évolution de l'architecture technologique de Footprint Analytics par étapes, en tant qu'étude de cas, afin d'explorer la manière dont la pile technologique Iceberg-Trino relève les défis des données de la chaîne.
Footprint Analytics a indexé environ 22 données blockchain publiques, 17 places de marché NFT, 1900 projets GameFi et plus de 100 000 collections NFT dans une couche de données d'abstraction sémantique. Il s'agit de la solution d'entrepôt de données blockchain la plus complète au monde.
Indépendamment des données de la blockchain, qui comprend plus de 20 milliards de lignes d'enregistrements de transactions financières, qui sont fréquemment interrogées par les analystes de données. il est différent des journaux d'entrée dans les entrepôts de données traditionnels.
Nous avons connu trois mises à jour majeures au cours des derniers mois pour répondre aux besoins croissants de l'entreprise :
Au début de Footprint Analytics, nous avons utilisé Google Bigquery comme moteur de stockage et de requête ; Bigquery est un excellent produit. Il est extrêmement rapide, facile à utiliser et offre une puissance arithmétique dynamique ainsi qu'une syntaxe UDF flexible qui nous aide à accomplir rapidement notre travail.
Cependant, Bigquery présente également un certain nombre de problèmes.
Nous étions très intéressés par certains produits OLAP qui étaient devenus très populaires. L'avantage le plus intéressant de l'OLAP est son temps de réponse aux requêtes, qui prend généralement moins de quelques secondes pour renvoyer les résultats d'une requête portant sur des quantités massives de données, et qui peut également prendre en charge des milliers de requêtes simultanées.
Nous avons choisi l'une des meilleures bases de données OLAP, Doris, pour l'essayer. Ce moteur est performant. Cependant, à un moment donné, nous avons rapidement rencontré d'autres problèmes :
Malheureusement, nous ne pouvions pas remplacer Bigquery par Doris, et nous avons donc dû synchroniser périodiquement les données de Bigquery vers Doris en l'utilisant uniquement comme moteur de requête. Ce processus de synchronisation présentait un certain nombre de problèmes, dont l'un était que les écritures de mise à jour s'empilaient rapidement lorsque le moteur OLAP était occupé à servir des requêtes aux clients frontaux. Par la suite, la vitesse du processus d'écriture a été affectée, et la synchronisation a pris beaucoup plus de temps et a même parfois été impossible à terminer.
Nous nous sommes rendu compte que l'OLAP pouvait résoudre plusieurs problèmes auxquels nous étions confrontés, mais ne pouvait pas devenir la solution clé en main de Footprint Analytics, en particulier pour le pipeline de traitement des données. Notre problème est plus important et plus complexe, et nous pourrions dire que l'OLAP en tant que moteur de requête n'était pas suffisant pour nous.
Bienvenue dans l'architecture 3.0 de Footprint Analytics, une refonte complète de l'architecture sous-jacente. Nous avons repensé l'ensemble de l'architecture de A à Z, afin de séparer le stockage, le calcul et l'interrogation des données en trois parties distinctes. En tirant les leçons des deux architectures précédentes de Footprint Analytics, et en s'inspirant de l'expérience d'autres projets de big data réussis comme Uber, Netflix, et Databricks.
Nous nous sommes d'abord intéressés aux lacs de données, un nouveau type de stockage de données structurées et non structurées. Le lac de données est parfait pour le stockage des données de la chaîne, car les formats de ces données varient considérablement, allant des données brutes non structurées aux données d'abstraction structurées pour lesquelles Footprint Analytics est bien connu. Nous pensions utiliser le lac de données pour résoudre le problème du stockage des données, et idéalement, il devrait également prendre en charge les moteurs de calcul courants tels que Spark et Flink, afin qu'il ne soit pas difficile d'intégrer différents types de moteurs de traitement au fur et à mesure de l'évolution de Footprint Analytics.
Iceberg s'intègre très bien avec Spark, Flink, Trino et d'autres moteurs de calcul, et nous pouvons choisir le calcul le plus approprié pour chacune de nos mesures. Par exemple:
Iceberg ayant résolu les problèmes de stockage et de calcul, nous avons dû réfléchir au choix d'un moteur de recherche. Il n'y a pas beaucoup d'options disponibles, les alternatives que nous avons envisagées sont les suivantes
Une fois que nous avons décidé de notre orientation, nous avons effectué un test de performance sur la combinaison Trino + Iceberg pour voir si elle pouvait répondre à nos besoins et, à notre grande surprise, les requêtes étaient incroyablement rapides.
Sachant que Presto + Hive a été le pire comparateur pendant des années dans tout le battage OLAP, la combinaison de Trino + Iceberg nous a complètement époustouflés.
Voici les résultats de nos tests.
cas 1 : joindre un grand ensemble de données
Une table 1 de 800 Go rejoint une autre table 2 de 50 Go et effectue des calculs commerciaux complexes.
Cas 2 : utiliser une grande table unique pour effectuer une requête distincte
Test sql : select distinct(address) from table group by day
La combinaison Trino+Iceberg est environ 3 fois plus rapide que Doris dans la même configuration.
En outre, il y a une autre surprise, car Iceberg peut utiliser des formats de données tels que Parquet, ORC, etc. qui compressent les données et les stockent. Le stockage des tables d'Iceberg n'occupe qu'environ 1/5 de l'espace des autres entrepôts de données. La taille de stockage d'une même table dans les trois bases de données est la suivante :
Note : Les tests ci-dessus sont des exemples individuels que nous avons rencontrés dans la production réelle et ne sont donnés qu'à titre de référence.
・Effet de mise à niveau
Les rapports des tests de performance nous ont donné suffisamment de performances pour que notre équipe mette environ deux mois à achever la migration, et voici un diagramme de notre architecture après la mise à niveau.
Depuis son lancement en août 2021, l'équipe de Footprint Analytics a réalisé trois mises à niveau architecturales en moins d'un an et demi, grâce à son désir et à sa détermination d'apporter les avantages de la meilleure technologie de base de données à ses utilisateurs de crypto-monnaie, et à une exécution solide de la mise en œuvre et de la mise à niveau de son infrastructure et de son architecture sous-jacentes.
La mise à jour 3.0 de l'architecture de Footprint Analytics a offert une nouvelle expérience à ses utilisateurs, permettant à des utilisateurs d'horizons différents d'obtenir des informations dans le cadre d'utilisations et d'applications plus variées :
Une startup moderne d'indexation de la blockchain peut être confrontée à plusieurs défis, notamment :
Dans cet article, nous examinons l'évolution de l'architecture technologique de Footprint Analytics par étapes, en tant qu'étude de cas, afin d'explorer la manière dont la pile technologique Iceberg-Trino relève les défis des données de la chaîne.
Footprint Analytics a indexé environ 22 données blockchain publiques, 17 places de marché NFT, 1900 projets GameFi et plus de 100 000 collections NFT dans une couche de données d'abstraction sémantique. Il s'agit de la solution d'entrepôt de données blockchain la plus complète au monde.
Indépendamment des données de la blockchain, qui comprend plus de 20 milliards de lignes d'enregistrements de transactions financières, qui sont fréquemment interrogées par les analystes de données. il est différent des journaux d'entrée dans les entrepôts de données traditionnels.
Nous avons connu trois mises à jour majeures au cours des derniers mois pour répondre aux besoins croissants de l'entreprise :
Au début de Footprint Analytics, nous avons utilisé Google Bigquery comme moteur de stockage et de requête ; Bigquery est un excellent produit. Il est extrêmement rapide, facile à utiliser et offre une puissance arithmétique dynamique ainsi qu'une syntaxe UDF flexible qui nous aide à accomplir rapidement notre travail.
Cependant, Bigquery présente également un certain nombre de problèmes.
Nous étions très intéressés par certains produits OLAP qui étaient devenus très populaires. L'avantage le plus intéressant de l'OLAP est son temps de réponse aux requêtes, qui prend généralement moins de quelques secondes pour renvoyer les résultats d'une requête portant sur des quantités massives de données, et qui peut également prendre en charge des milliers de requêtes simultanées.
Nous avons choisi l'une des meilleures bases de données OLAP, Doris, pour l'essayer. Ce moteur est performant. Cependant, à un moment donné, nous avons rapidement rencontré d'autres problèmes :
Malheureusement, nous ne pouvions pas remplacer Bigquery par Doris, et nous avons donc dû synchroniser périodiquement les données de Bigquery vers Doris en l'utilisant uniquement comme moteur de requête. Ce processus de synchronisation présentait un certain nombre de problèmes, dont l'un était que les écritures de mise à jour s'empilaient rapidement lorsque le moteur OLAP était occupé à servir des requêtes aux clients frontaux. Par la suite, la vitesse du processus d'écriture a été affectée, et la synchronisation a pris beaucoup plus de temps et a même parfois été impossible à terminer.
Nous nous sommes rendu compte que l'OLAP pouvait résoudre plusieurs problèmes auxquels nous étions confrontés, mais ne pouvait pas devenir la solution clé en main de Footprint Analytics, en particulier pour le pipeline de traitement des données. Notre problème est plus important et plus complexe, et nous pourrions dire que l'OLAP en tant que moteur de requête n'était pas suffisant pour nous.
Bienvenue dans l'architecture 3.0 de Footprint Analytics, une refonte complète de l'architecture sous-jacente. Nous avons repensé l'ensemble de l'architecture de A à Z, afin de séparer le stockage, le calcul et l'interrogation des données en trois parties distinctes. En tirant les leçons des deux architectures précédentes de Footprint Analytics, et en s'inspirant de l'expérience d'autres projets de big data réussis comme Uber, Netflix, et Databricks.
Nous nous sommes d'abord intéressés aux lacs de données, un nouveau type de stockage de données structurées et non structurées. Le lac de données est parfait pour le stockage des données de la chaîne, car les formats de ces données varient considérablement, allant des données brutes non structurées aux données d'abstraction structurées pour lesquelles Footprint Analytics est bien connu. Nous pensions utiliser le lac de données pour résoudre le problème du stockage des données, et idéalement, il devrait également prendre en charge les moteurs de calcul courants tels que Spark et Flink, afin qu'il ne soit pas difficile d'intégrer différents types de moteurs de traitement au fur et à mesure de l'évolution de Footprint Analytics.
Iceberg s'intègre très bien avec Spark, Flink, Trino et d'autres moteurs de calcul, et nous pouvons choisir le calcul le plus approprié pour chacune de nos mesures. Par exemple:
Iceberg ayant résolu les problèmes de stockage et de calcul, nous avons dû réfléchir au choix d'un moteur de recherche. Il n'y a pas beaucoup d'options disponibles, les alternatives que nous avons envisagées sont les suivantes
Une fois que nous avons décidé de notre orientation, nous avons effectué un test de performance sur la combinaison Trino + Iceberg pour voir si elle pouvait répondre à nos besoins et, à notre grande surprise, les requêtes étaient incroyablement rapides.
Sachant que Presto + Hive a été le pire comparateur pendant des années dans tout le battage OLAP, la combinaison de Trino + Iceberg nous a complètement époustouflés.
Voici les résultats de nos tests.
cas 1 : joindre un grand ensemble de données
Une table 1 de 800 Go rejoint une autre table 2 de 50 Go et effectue des calculs commerciaux complexes.
Cas 2 : utiliser une grande table unique pour effectuer une requête distincte
Test sql : select distinct(address) from table group by day
La combinaison Trino+Iceberg est environ 3 fois plus rapide que Doris dans la même configuration.
En outre, il y a une autre surprise, car Iceberg peut utiliser des formats de données tels que Parquet, ORC, etc. qui compressent les données et les stockent. Le stockage des tables d'Iceberg n'occupe qu'environ 1/5 de l'espace des autres entrepôts de données. La taille de stockage d'une même table dans les trois bases de données est la suivante :
Note : Les tests ci-dessus sont des exemples individuels que nous avons rencontrés dans la production réelle et ne sont donnés qu'à titre de référence.
・Effet de mise à niveau
Les rapports des tests de performance nous ont donné suffisamment de performances pour que notre équipe mette environ deux mois à achever la migration, et voici un diagramme de notre architecture après la mise à niveau.
Depuis son lancement en août 2021, l'équipe de Footprint Analytics a réalisé trois mises à niveau architecturales en moins d'un an et demi, grâce à son désir et à sa détermination d'apporter les avantages de la meilleure technologie de base de données à ses utilisateurs de crypto-monnaie, et à une exécution solide de la mise en œuvre et de la mise à niveau de son infrastructure et de son architecture sous-jacentes.
La mise à jour 3.0 de l'architecture de Footprint Analytics a offert une nouvelle expérience à ses utilisateurs, permettant à des utilisateurs d'horizons différents d'obtenir des informations dans le cadre d'utilisations et d'applications plus variées :