文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-12-02 11:03

关注

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

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

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

先决条件

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

克隆存储库

您可以使用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内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯