Rejoignez-Nous sur

Construire un tracker de prix crypto à l’aide de Node.js et Cassandra

daaba8aa yvaylwh0xzsq3fmrg8o677thsb62 hu1030xn scaled

News

Construire un tracker de prix crypto à l’aide de Node.js et Cassandra

yvAYLwH0XzSQ3fMrG8o677THSb62

Photo de profil de Kovid Rathee Hacker Noon

@kovidratheeKovid Rathée

Je construis des solutions d’infrastructure, de plate-forme et d’ingénierie de données. J’aime écrire sur des choses intéressantes en technologie.

Depuis le big bang dans le paysage de la technologie des données il y a une décennie et demie, donnant naissance à des technologies comme Hadoop, qui répondent aux quatre « V ». — volume, variété, vitesse et véracité, il y a eu une augmentation de l’utilisation de bases de données dotées de capacités spécialisées pour répondre à différents types de données et modèles d’utilisation. Vous pouvez désormais voir les entreprises utilisant des bases de données de graphiques, des bases de données de séries chronologiques, des bases de données de documents et autres pour différentes charges de travail clientes et internes.

Apache Cassandra™ est une base de données NoSQL à colonnes larges, idéale lorsqu’elle est utilisée pour les charges de travail à ajout uniquement et à écriture intensive qui capturent les données des capteurs IoT, des appareils GPS, des journaux de transactions, des applications de séries chronologiques, etc. Beaucoup de ces applications doivent être couplées à des moteurs de visualisation pour créer des rapports et des tableaux de bord. Comme la plupart des bibliothèques de visualisation sont écrites en JavaScript, l’utilisation de Node.js pour interagir avec la base de données et le moteur de visualisation est une bonne idée.

Dans ce didacticiel, vous apprendrez à utiliser une petite application Node.js pour obtenir des données de crypto-monnaie à partir d’une API et les ingérer en continu dans Cassandra pour une consommation en aval. Vous pouvez transmettre les données de Cassandra à une grande variété d’applications telles qu’une plate-forme de trading de crypto-monnaie, la surveillance et l’alerte des prix des crypto-monnaies, etc.

Sans plus tarder, allons-y.

Avant de commencer le didacticiel, vous aurez besoin des éléments suivants :

1. Node.js — une installation locale de Node.js fournie avec npm — le gestionnaire de packages par défaut.

2. Git – pour cloner le Dépôt GitHub qui contient le code de ce tutoriel.

3. DataStax Astra – pour tourner une base de données Cassandra sans serveur à utiliser avec une API ou un pilote.

4. CoinGecko-API — une bibliothèque Node.js pour accéder CoinGecko données de crypto-monnaie.

Vous pouvez cloner le référentiel GitHub pour Cassandra Node.js Cryptotracker à l’aide de la commande git clone :

git clone [email protected]:kovid-r/cassandra-nodejs-cryptotracker.git

Après avoir cloné le référentiel, la première chose à faire est d’installer les dépendances Node.js spécifiées dans les fichiers package.json et package-lock.json. npm se chargera d’installer les dépendances à l’aide de la commande suivante dans le répertoire du référentiel :

npm install

Ces instructions sont également présentes dans le LISEZ-MOI fichier dans le référentiel.

Créer une base de données

Avant d’exécuter l’application, vous devez S’inscrire pour DataStax Astra, qui est alimenté par Apache Cassandra et faire tourner une base de données Cassandra.

Bien que les informations sur les prix changent à mesure que vous changez de fournisseur de cloud et de régions, pour une preuve de concept ou même de petites applications de production, vous n’aurez pas besoin de plus que le crédit gratuit de 25 $ par mois qu’Astra propose déjà à ses utilisateurs. Cela vous donne environ 40 Go de stockage gratuit, 40 millions de lectures et 5 millions d’écritures. Aucune carte de crédit n’est requise pour vous inscrire, connectez-vous simplement avec Google ou GitHub.

Cliquez sur l’option Créer une base de données et cela vous mènera à la page suivante où vous pouvez créer une base de données sur l’un des trois principaux fournisseurs de cloud dans le monde : Google Cloud, AWS et Azure. Vous devrez fournir le nom de la base de données (nodeapp) et le nom de l’espace de clés (coingecko). Veuillez utiliser les noms spécifiés.

yvAYLwH0XzSQ3fMrG8o677THSb62 dzn30ua

Initialiser la base de données

Pour accéder à la base de données pour la première fois, utilisez la console CQLSH dans le navigateur, comme illustré dans l’image ci-dessous.

yvAYLwH0XzSQ3fMrG8o677THSb62 ovz30ct

Utilisez cette console pour exécuter les deux commandes pour créer un espace de clés s’il n’existe pas dans la base de données et pour créer une table dans l’espace de clés spécifié. La structure de la table est prédéfinie dans le fichier initialize.sql du référentiel. Les données des appels de l’API CoinGecko atterriront dans ce tableau.

Téléchargez le pack sécurisé

Vous devez télécharger le Zip DataStax Secure Bundle dans le répertoire de votre application Node.js. Assurez-vous que votre navigateur ne décompresse pas le fichier pendant le téléchargement.

Vous devrez fournir le chemin d’accès à ce fichier à la configuration dans une étape ultérieure ; pour plus d’informations sur le Secure Bundle, rendez-vous sur Documentation officielle de DataStax Astra.

Générer un jeton d’authentification

L’étape suivante consiste à générer un jeton d’authentification. Pour ce faire, cliquez sur l’option Facturation dans la barre de menu supérieure. Vous atterrirez sur un écran illustré dans l’image ci-dessous :

yvAYLwH0XzSQ3fMrG8o677THSb62 88i30vd

Accédez à l’option Token Management dans la barre de menu de gauche et choisissez le rôle R/W User dans le menu déroulant Select Role et appuyez sur Generate Token.

yvAYLwH0XzSQ3fMrG8o677THSb62 d71i3015

Vous verrez l’écran suivant avec votre jeton d’authentification. Téléchargez l’ID client, le secret client et le jeton dans un fichier CSV ou copiez-les directement.

yvAYLwH0XzSQ3fMrG8o677THSb62 zl1s30hd

Utiliser la configuration npm pour l’authentification

Maintenant, nous sommes prêts à exécuter notre application Node.js Cryptotracker. Dans ce tutoriel, nous utilisons le package de configuration pour éviter de stocker des informations de jeton dans notre code. Nous avons inclus un fichier dans le référentiel config/default.json qui ressemble à ceci :

yvAYLwH0XzSQ3fMrG8o677THSb62 ag21308b

Pour vous authentifier, remplacez les valeurs de secureConnectBundle, nom d’utilisateur et mot de passe dans ce fichier JSON comme indiqué, mais assurez-vous de NE PAS valider cela dans votre base de code.

Exécuter npm start

Si vous avez tout configuré correctement, vous devriez maintenant pouvoir exécuter la commande suivante à partir de votre répertoire d’application Node.js :

npm start

L’application Node.js s’exécutera pendant 40 secondes et frappera l’API CoinGecko. Vous pouvez changer cela en accédant à ces deux lignes du fichier index.js et reconfigurer l’appel de la fonction principale.

yvAYLwH0XzSQ3fMrG8o677THSb62 fb3v30tc

Après avoir exécuté npm start plusieurs fois, vous pouvez vous rendre sur le site Web d’Astra pour voir combien de votre quota est utilisé, comme indiqué dans l’image ci-dessous :

yvAYLwH0XzSQ3fMrG8o677THSb62 ft3o30fe

Vous pouvez également vous connecter à votre console CQL et écrire une requête CQL pour récupérer des données de la table coingecko.coin_prices, comme indiqué dans l’image ci-dessous :

yvAYLwH0XzSQ3fMrG8o677THSb62 373g30k0

Si vous souhaitez capturer le prix d’autres pièces, vous pouvez transmettre différents paramètres aux arguments de la méthode getCoinPrice – coinName et coinSymbol :

Connectez d’autres applications

D’autres applications peuvent consommer des données de Cassandra. DataStax Astra prend en charge les pilotes pour C#, Python, Node.js, Java et C++. Vous pouvez intégrer de manière transparente des moteurs de visualisation populaires tels que Grafana avec Astra.

Dans ce didacticiel, vous avez appris à utiliser Cassandra comme base de données de séries chronologiques pour capturer les mouvements de prix des crypto-monnaies à l’aide d’une application Node.js. Vous avez également appris à configurer une base de données DataStax Astra dans le cloud à l’aide de votre fournisseur de cloud préféré.

Veuillez nous contacter si vous avez des questions ou des commentaires à [email protected] ou connectez-vous avec moi sur LinkedIn.

Apprendre encore plus:

1. Git

2. Node.js

3. DataStax Astra

4. CoinGecko

5. CoinGeckoAPI

Photo de profil de Kovid Rathee Hacker Noon

par Kovid Rathée @kovidrathee. Je construis des solutions d’infrastructure, de plate-forme et d’ingénierie de données. J’aime écrire sur des choses intéressantes en technologie.Lire mes histoires

Mots clés

Rejoignez Hacker Midi