【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存储库:
- git clone git@github.com:kovid-r/cassandra-nodejs-cryptotracker.git
克隆存储库后,首要任务是安装package.json文件和package-lock.json文件中指定的Node.js依赖项。npm将使用以下命令在存储库目录中安装依赖项:
- 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应用程序目录运行以下命令了:
- 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】