在 Rails 5 中使用 Keen.IO 和 ActionCable 进行反应式分析
介绍
数据分析是当今最大的趋势之一。越来越多的行业依靠元数据分析来做出决策并获得竞争优势。因此,从睡眠周期移动应用程序到企业物流软件,越来越多的软件产品都与深度分析相结合。
然而,从数据中获取意义往往是一个繁琐而棘手的过程。构建一个有意义的仪表板需要对后端架构和前端可视化进行大量更改。这就是Keen.IO可以提供帮助的地方。
Keen.IO是一种 SaaS(软件即服务)解决方案,可让您轻松、快速、高效地分析数据和构建仪表板。它附带一个开发人员友好的API,涵盖整个过程:收集数据、分析数据和可视化数据。它还附带可用于多种技术的SDK 。
在本指南中,我们将使用 Ruby on Rails 5 及其新推出的ActionCable以及Keen.IO 的 Ruby SDK从头开始创建一个反应式 Web 仪表板。让我们开始吧!
设置
将你的 Rails 应用与 Keen.IO 连接起来
首先,打开终端并创建一个新的 Rails 5 应用程序。您需要安装Ruby 2.2.4才能执行此操作:
rails _5.0.0_ new reactivedashboard
应用程序生成后,转到其目录:
cd reactivedashboard
将以下 gem 添加到你的Gemfile中:
#Gemfile.rb
gem "keen"
gem "dotenv-rails"
gem 'bootstrap-sass', '~> 3.3.6'
gem 'sass-rails', '>= 3.2'
安装宝石:
bundle install
这些 gem 有什么用?keen gem 使 Keen.IO 的 Ruby SDK 可以在 Rails 应用程序中使用,dotenv-rails让您可以安全地保存 Keen.IO APi 凭证,bootstrap-sass让一切看起来更干净、更清晰。
为了设置 Boostrap,请转到app/assets/stylesheets/application.scss :并插入以下行:
// "bootstrap-sprockets" must be imported before "bootstrap" and "bootstrap/variables"
@import "bootstrap-sprockets";
@import "bootstrap";
现在已经设置了引导 CSS,让我们讨论更重要的事情:
获取您的凭证
使用环境变量连接到 Keen.IO。环境变量配置应用程序在不同环境(开发、准备、生产等)中的行为。环境变量必须始终保密,因为其中一些变量可能会泄露有关应用程序的敏感信息。一种方法是使用 [dotenv-rails]((https://github.com/bkeepers/dotenv) gem,它包含在上面的必需 gem 列表中。
前往Keen.IO的网站并注册您的免费帐户。注册后,登录并创建您的第一个项目。创建此项目后,您将在概览选项卡中看到项目凭证。您将获得以下信息:
- 项目 ID:项目的唯一标识符
- API 凭证:
- 写入密钥- 当你想将数据发布到你的收藏夹时使用
- 读取密钥- 用于运行查询和从您的集合中读取数据
- 主密钥-用于删除记录和收藏
在 Rails 应用程序的根目录中,创建一个新的.env文件。将以下代码片段放入其中:
KEEN_PROJECT_ID=YOURKEENPROJECTID
KEEN_MASTER_KEY=YOURKEENMASTERKEY
KEEN_WRITE_KEY=YOURKEENWRITEKEY
KEEN_READ_KEY=YOURKEENREADKEY
然后,打开您的第一个 Keen.IO 项目的仪表板并在相应字段中用您的凭据替换占位符。
安装keen gem 并将你的 API 凭证插入到你的.env文件中后,你就可以通过 Rails 应用在 Keen.IO 中发布、删除和更新事件了。
发布你的数据
Keen.IO 使用集合来表示应用程序中发生的不同类型的事件。集合可以包含您想要记录的所有类型的数据,从用户的点击到通过您的应用程序进行的购买。
在本指南中,Keen.IO 将跟踪创建特定模型时的实例。我们将该集合称为产品或products_created 。product_created事件将具有名称、描述、收藏次数和价格。
让我们搭建产品模型:
rails g scaffold product price:decimal name:string description:text favorites:integer
rails g scaffold将生成您需要进行的所有视图、控制器操作、模型和数据库迁移,以拥有CRUD产品模型。将模型添加到您的数据库:
rails db:migrate
要开始将数据填充到 Keen.IO,请将以下代码片段添加到您的产品模型中:
#app/models/product.rb
class Product < ApplicationRecord
after_save { Keen.publish 'products' , self }
end
after_save是一个回调钩子,每次在我们的应用程序数据库中创建产品时都会执行它。Keen.IO的 Ruby SDK 提供的Keen.publish方法接受两个参数。第一个是要交互的集合,第二个参数是我们想要跟踪或发布的数据/事件。在这种情况下,self指的是模型本身的特定实例。因此,每次创建特定对象时,我们都会发送与产品模型相关的参数(名称、价格、收藏夹等)。
记录事件与记录实体进行分析时,您必须始终从事件而不是集合的角度来考虑数据。在本教程中,我们不会记录产品本身,我们只会记录产品创建的事件。产品实体应保留在应用程序的数据库中。重要的是每个事件生成的数据。在此处阅读有关该主题的更多信息。
启动 Rails 服务器
rails s
转到https://localhost:3000/products/new并创建一些产品。添加一些产品后,转到 Keen.IO 的项目仪表板。在概览选项卡下,您将能够看到新创建的集合和事件发生时间。
分析你的数据
下一步是开始理解已输入的全部数据。此时,软件开发团队将尝试设计多种方法以有意义的格式表示数据。值得庆幸的是,Keen.IO 的数据分析 API 为您完成了所有这些工作。它为您提供了选择核心分析类型的选项:
- 总和- 计算集合中数值的总和
- 平均值——计算集合中数值的平均值
- 最小值- 返回属性中所有数值的最小值
- 最大值- 返回属性中所有数值的最大值
- 百分位数- 计算集合中给定属性的百分比
- 中位数- 获取给定属性的所有数值的中位数
- Count 和 count_unique - 统计所有实例或仅统计给定属性值的唯一出现次数
- Select 和 select_unique - 选择针对给定属性找到的值列表
您还可以输入查询参数,根据以下方面对数据进行分组、排序或过滤:
- 时间范围- 计算给定时间范围的值
- 间隔- 计算从当前分钟到当前年份的值。
- 过滤器- 通过过滤给定属性的值来优化您的搜索
您还可以使用漏斗组合多个查询和集合以进行更高级的分析。
探索数据
您可以使用其资源管理器开始处理 Keen.IO 中收集的事件。要访问它,请转到您的项目概览并单击右上角的资源管理器选项卡。您也可以下载资源管理器并在本地使用它。
使用浏览器的用户界面,您可以利用所有分析类型并轻松应用过滤器:
创建和保存查询
在资源管理器中,选择计数作为分析时间,选择产品作为收集类型,选择本月作为时间范围。单击运行按钮以显示结果。
</d免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~