使用Node.js和Cassandra,构建加密货币价格跟踪器

译文
区块链
本教程介绍了如何使用小型Node.js应用程序从API获取加密货币数据,并将该数据持续摄入到Cassandra中。

 

【51CTO.com快译】自15年前数据技术领域出现大爆炸以来,当时催生出了像Hadoop这样迎合四个“V”(数量、种类、速度和准确性)的技术,这种现象越来越普遍:使用拥有专门功能的数据库,以满足不同类型的数据和使用模式。现在许多公司使用图数据库、时间序列数据库、文档数据库及其他数据库,处理不同的客户和内部工作负载。

Apache Cassandra™是一种宽列的NoSQL数据库,很适合用于从物联网传感器、GPS设备、事务日志和任何时间序列应用等更多应用获取数据的仅追加、写入密集型工作负载。许多这些应用需要与可视化引擎相结合,以创建报告和仪表板。由于大多数可视化库使用JavaScript编写,因此使用Node.js与数据库和可视化引擎进行交互是个好主意。

本教程将介绍如何使用小型Node.js应用程序从API获取加密货币数据,并将该数据持续摄入到Cassandra中,供下游消费。您可以将来自Cassandra的数据馈送给众多应用,比如加密货币交易平台、加密货币价格监测和警报等。

先决条件

在开始学习本教程之前,您需要以下内容:

  • Node.js—本地Node.js安装,随带默认软件包管理器npm。
  • Git—克隆含有本教程代码的GitHub代码存储库。
  • DataStax Astra—用于启动无服务器Cassandra数据库,与API或驱动程序一起使用。
  • CoinGecko-API—用于访问CoinGecko加密货币数据的Node.js库。

克隆存储库

您可以使用git clone命令克隆Cassandra Node.js Cryptotracker的GitHub存储库:

  1. git clone git@github.com:kovid-r/cassandra-nodejs-cryptotracker.git 

克隆存储库后,首要任务是安装package.json文件和package-lock.json文件中指定的Node.js依赖项。npm将使用以下命令在存储库目录中安装依赖项:

  1. npm install 

这些说明也存在于存储库的README文件中。

配置Astra

创建数据库

在运行应用程序之前,您需要注册由Apache Cassandra提供支持的DataStax Astra,并启动Cassandra数据库。

虽然价格信息会随着您改变云提供商和地区而变化,但对于概念证明、甚至小型生产应用程序而言,您只需要Astra已经为用户提供的每月25美元的免费积分,这可让您获得约40 GB 的免费存储空间、4000万次读取和500万次写入。无需信用卡即可注册,只需使用谷歌或GitHub登录即可。

点击Create Database选项,您进入以下页面:可以在全球三大云提供商(谷歌云、AWS和Azure)中的任何一个云上创建数据库。您需要提供数据库名称(节点应用程序)和密钥空间名称(coingecko)。请使用指定的名称。

初始化数据库

想首次访问数据库,请使用CQLSH浏览器内控制台,如下图所示:

如果数据库中没有密钥空间,使用该控制台运行两个命令来创建,并在指定的密钥空间创建表。表的结构在存储库中的initialize.sql文件中预定义。来自CoinGecko API调用的数据将出现在该表中。

下载Secure Bundle

您需要将DataStax Secure Bundle zip文件下载到Node.js应用程序目录。确保您的浏览器在下载文件时没有解压缩文件。

您需要为后面步骤中的配置提供该文件的路径;想了解有关Secure Bundle的更多信息,请访问DataStax Astra的官方文档

生成身份验证令牌

下一步是生成身份验证令牌。为此,点击顶部菜单栏上的Billing选项。将会出现下图所示的屏幕:

进入到左侧菜单栏中的Token Management选项,选择Select Role下拉菜单中的R/W User角色,然后按Generate Token。

您将看到以下带有身份验证令牌的屏幕。下载CSV格式的Client ID、Client Secret和Token,或直接复制它们。

运行Cryptotracker

使用Npm Config进行身份验证

现在,我们可以继续运行Node.js Cryptotracker应用程序了。在本教程中,我们使用config软件包避免在代码中存储令牌信息。我们在存储库config/default.json中包含了一个文件,看起来这样:

想验证身份,按照说明替换该JSON文件中的secureConnectBundle、用户名和密码的值,但确保不要将其提交到代码库中。

运行Npm Start

如果您已正确配置好一切,现在应该能够从Node.js应用程序目录运行以下命令了:

  1. npm start 

Node.js应用程序将运行40秒,命中CoinGecko API。可以通过找到index.js文件中的这两行,并重新配置主函数调用来更改它。

运行npm start几次后,您可以前往Astra网站查看您的配额已使用多少,如下图所示:

您还可以登录CQL控制台,编写CQL查询,从coingecko.coin_prices表中获取一些数据,如下图所示:

如果您想获取其他货币的价格,可以将不同的参数传递给getCoinPrice方法变量:coinName和coinSymbol。

连接其他应用程序

其他应用程序可以使用来自Cassandra的数据。DataStax Astra支持C#、Python、Node.js、Java和C++的驱动程序。您可以将Grafana等流行的可视化引擎与Astra无缝集成。

结语

本教程介绍了如何使用Cassandra作为时间序列数据库,使用Node.js应用程序来获取加密货币价格变动信息,还介绍了使用您首选的云提供商在云端配置DataStax Astra数据库。

原文标题:Build A Crypto Price Tracker Using Node.js and Cassandra,作者:Kovid Rathee

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

责任编辑:华轩 来源: 51CTO
相关推荐

2013-03-28 14:54:36

2023-01-10 14:11:26

2023-04-18 15:18:10

2022-08-22 07:26:32

Node.js微服务架构

2022-09-12 15:58:50

node.js微服务Web

2022-06-10 10:24:02

JavaScriptCOVID-19前端

2024-03-22 11:40:40

Node.jsNodeCRUD

2022-05-09 17:33:23

PWA渐进式Web应用程序离线优先

2021-06-15 15:03:21

MongoDBNode.jsCRUD

2022-06-10 14:10:38

加密货币代币比特币

2022-08-28 16:30:34

Node.jsDocker指令

2024-03-27 11:18:02

2021-10-03 15:02:50

HTTPNodejs

2013-11-01 09:34:56

Node.js技术

2015-03-10 10:59:18

Node.js开发指南基础介绍

2021-06-04 10:31:41

PythonUniswap加密货币

2022-05-05 08:02:44

MongoDBNode.js加密

2019-01-03 09:06:55

Node.js命令行工具 前端

2018-03-13 11:38:14

2020-09-28 06:57:39

Node.jsGraphQLAPI
点赞
收藏

51CTO技术栈公众号