Difference between revisions of "Concepts/zh-cn"

From Senfi Docs
Jump to: navigation, search
(Created page with "所有这些记录都保存在称为测量的数据集中。")
(Created page with "下一页:入门")
 
(33 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
=== 测量,参数,标签 ===
 
=== 测量,参数,标签 ===
 
==== 测量 ====
 
==== 测量 ====
Senfi处理[https://en.wikipedia.org/wiki/Time_series 时间序列]中的数据。此时间序列中的每个记录包括:
+
Senfi处理[https://zh.wikipedia.org/wiki/%E6%99%82%E9%96%93%E5%BA%8F%E5%88%97 时间序列]中的数据。此时间序列中的每个记录包括:
 
* 指示何时采样数据的时间戳(以毫秒为单位)
 
* 指示何时采样数据的时间戳(以毫秒为单位)
 
* 一组固定的标签
 
* 一组固定的标签
Line 10: Line 10:
 
所有这些记录都保存在称为测量的数据集中。
 
所有这些记录都保存在称为测量的数据集中。
  
==== Metric ====
+
==== 参数 ====
A metric is a discrete reading or unit of data. It can be produced/measured by sensors, equipment, or complex systems. An example of a metric is temperature (eg. 37). A metric may or may not have units associated (eg. degrees Celsius).
+
参数指的是离散的读数或数据单位。它可以由传感器,设备或复杂的系统诞生/测量。参数的一个示例是温度(例如37度)。参数不一定要有关联的单位(例如摄氏度)。
  
==== Tag ====
+
==== 标签 ====
A tag is an attribute of the sample. It is usually used as a way to identify where is the metrics are taken from (eg. device ID). It is also useful for labelling the data being sent, in order to perform operations on the data later, eg. filtering.
+
标签是样本的属性。标签通常被用作标识参数从何处获取的方法(例如,设备ID)。这对于标记正在发送的数据也很有用,以便稍后对数据执行操作,例如过滤。
  
==== Example ====
+
==== 案例 ====
Say you have a smart weighing scale at home. One possible way to represent the time series data for the device is as follows:
+
假设您家里有一个智能秤。表示设备时间序列数据的一种可能方法如下:
; Measurement: Smart Weighing Scale
+
; 测量: 智能秤
; Measurement code: <tt>iot_weighingscale_v1</tt>
+
; 测量码: <tt>iot_weighingscale_v1</tt>
; Data:
+
; 数据:
 
{| class="wikitable"
 
{| class="wikitable"
 
! tm_source  
 
! tm_source  
Line 31: Line 31:
 
| xxxxxxxxxxxxx || 69.4
 
| xxxxxxxxxxxxx || 69.4
 
|}
 
|}
<tt>tm_source</tt> represents when the reading was taken. In this case, <tt>weight_kg</tt> is the '''metric''', and is sent everytime a weight is taken.
+
<tt>tm_source</tt> 表示何时读取读数。在这情况下,<tt>weight_kg</tt>是在每次获取重量读数所发送的'''参数'''
  
This is well and good, but what if there is another person who's using the weighing scale? One way to distinguish them apart is by adding an additional field, or '''tag''', called <tt>person</tt>:
+
如果有另一个人在使用同一个秤,那该怎么分辨读数?区分读数的一种方法是添加一个称为<tt>person</tt>的附加字段或'''标签''':
 
{| class="wikitable"
 
{| class="wikitable"
 
! tm_source  
 
! tm_source  
Line 45: Line 45:
 
| xxxxxxxxxxxxx || Sam || 70.4
 
| xxxxxxxxxxxxx || Sam || 70.4
 
|}
 
|}
Much better. But what if there are multiple weighing scales in the house? We can tell them apart by adding another tag:
+
如果屋内再添加了多个秤,那该如何分辨读数?我们可以通过添加另一个标签来区分读数:
 
{| class="wikitable"
 
{| class="wikitable"
 
! tm_source  
 
! tm_source  
Line 58: Line 58:
 
| xxxxxxxxxxxxx || kitchen || Sam || 70.4
 
| xxxxxxxxxxxxx || kitchen || Sam || 70.4
 
|}
 
|}
So we end up with a measurement that has 2 tags (room, person) and 1 metric (weight_kg).
+
由此一来,我们最终得到的测量具有两个标签(room, person)和一个参数(weight_kg)
  
A more complete example can be as follows:
+
一个更完整的示例如下:
 
{| class="wikitable"
 
{| class="wikitable"
 
! tm_source  
 
! tm_source  
Line 76: Line 76:
 
| xxxxxxxxxxxxx || 1547 || kitchen || Sam || 70.4 || 19.2 || 49
 
| xxxxxxxxxxxxx || 1547 || kitchen || Sam || 70.4 || 19.2 || 49
 
|}
 
|}
This example is admittedly contrived, but it serves as an example of how data can be modelled in Senfi.
+
公认该示例是人为设计的,但它展示了数据是如何在Senfi中建模的。
<div class="important">Note: <tt>site_id</tt> is a required tag and will be explained below, under [[Concepts#Site|Site]]</div>
+
<div class="important">注意: <tt>site_id</tt> 是强制性标签,并将在下面的[[Concepts/zh-cn#站点|站点]]章节进行说明</div>
=== Sensor ===
+
=== 传感器 ===
Unlike applications like Prometheus or InfluxDB which deals purely with temporal data in a time series, Senfi associates such data with physical objects in the real world.
+
与Prometheus或InfluxDB之类,仅处理时间序列中的时间数据的应用程序不同,Senfi将此类数据与现实世界中的实物相关联。
  
A sensor in Senfi represents a physical object/system of interest. A sensor may produce one or more measurements, or it may not produce any measurements. There are 3 types of sensors in Senfi:
+
Senfi中的传感器代表感兴趣的实物/系统。传感器并不一定会发出任何测量,但若有发出,则可以是单个或多个测量。Senfi中有三种类型的传感器:
; Managed sensors: Sensors that produces at least one measurement
+
; 受托管传感器: 发出至少一项测量的传感器
; Specialized sensors: Sensors with special behaviour, eg. lift controller
+
; 专用传感器: 具有特殊性能的传感器,例如电梯控制器
; Unmanaged sensors: Sensors that does not produce measurement
+
; 非托管传感器: 不会发出测量的传感器
  
=== Site ===
+
=== 站点 ===
A site represents a place whereby sensors are physically located. A site usually comprise of '''one or more''' buildings.
+
站点代表了实在放置传感器的地方。一个站点通常包含一个或多个建筑物。Senfi中的站点具有地理位置,并通常带有三维表示形式。用户可以选择使用内容管理系统来描绘建筑物轮廓并快速生成三维建筑模型,或上传使用建模软件(例如Autodesk 3DS Max,SketchUp等)建模的定制三维建筑模型。
A site in Senfi has a geographical location and usually a 3D representation. Users may choose to use the CMS to trace out the building outline and generate a quick 3D building, or they can also upload a 3D building modelled using modelling software such as Autodesk 3DS Max, SketchUp etc.
+
[[File:Sample generated building.png|thumb|600px|center|从建筑物轮廓生成的建筑物样本|link=]]
[[File:Sample generated building.png|thumb|600px|center|Sample building generated from building outline|link=]]
+
[[File:Sample bespoke building.png|thumb|600px|center|使用三维软件建模的建筑物样本|link=]]
[[File:Sample bespoke building.png|thumb|600px|center|Sample building modelled using 3D software|link=]]
+
<tt>site_id</tt>是与特定站点关联的独特整数。在将测量值发送到Senfi时,site_id可被用作标签,以便Senfi辨认传入测量值的目标是哪个站点。
<tt>site_id</tt> is a unique integer associated with a particular site. It is used as a tag when sending measurements to Senfi, so that Senfi can tell which site the incoming measurement is meant for.
 
  
=== Rule, Alert ===
+
=== 规则,警报 ===
In an operating environment such as a smart building, it is important that organizations are able to keep track and be aware of what is going on in and around their assets. The way to do that is through monitoring and alerting.
+
在诸如智能建筑之类的操作环境中,对于组织而言,重要的是要能够跟踪并了解其资产及其周围发生的事情。通过监视和警报便可做到这一点。
  
Sensors produce measurements which contain data in the form of metrics and tags. Senfi provides multiple ways for users to monitor metric and tag values for conditions which require attention - such as abnormally high values, or when a combination of values indicates something is down - and to take action when it happens.
+
传感器产生的测量结果包含参数和标签形式的数据。Senfi为用户提供了多种方法来监视参数和标签值,以监控需要注意的条件(例如,异常高的值,或者当值的组合指示出现故障时),并在情况发生时采取措施。
  
==== Rule ====
+
==== 规则 ====
User can make use of Senfi's flexible rule engine to be alerted of abnormality in the system they are monitoring.
+
用户可以利用Senfi的灵活规则引擎检测正在监视的系统中的异常并发出警报通知。
  
A '''rule''' in Senfi comprises of:
+
Senfi中的'''规则'''包括:
* Inputs
+
* 数据输入
* Conditions
+
* 条件
* Output
+
* 输出
* Actions
+
* 触发事件
* Rule execution options
+
* 规则执行选项
  
==== Example ====
+
==== 例子 ====
Using our Smart Weighing Scale measurement from earlier, we can form one simple rule as follows:
+
使用我们早前的智能秤测量案例,我们可以形成一个简单的规则,如下所示:
* Input: <tt>iot_weighingscale_v1.battery_level</tt>
+
* 数据输入: <tt>iot_weighingscale_v1.battery_level</tt>
* Condition: < 20
+
* 条件: < 20
* Action: ''Email reminder to replace battery''
+
* 触发事件: ''电子邮件提醒更换电池''
* Rule execution option: Immediately (means evaluate this rule whenever there is any incoming measurement)
+
* 规则执行选项:立即执行(当有任何传入测量时,均值表示评估此规则)
  
=== Computed measurement ===
+
=== 计算的测量 ===
Frequently, incoming metrics represent raw values that are read from the sensing device (eg. door open status, door closed status). To be able to derive better insights and to formulate more complex rules, it is useful to be able to calculate new metrics that are ''derived'' from the raw metrics. We refer to these metrics as '''derived metrics'''. The set of derived metrics and associated tags form the '''computed measurement'''.
+
通常,输入参数表示从传感设备读取的原始值(例如,门打开状态,门关闭状态)。为了能够得出更好的见解并制定更复杂的规则,能够从原始参数''衍生''出新的参数将会很有用。我们将这些新的参数称为'''衍生参数'''。一组衍生参数和关联的标签便形成了'''计算的测量'''
  
Similar to measurement, a computed measurement comprises of:
+
与测量类似,计算的测量包括:
* timestamp
+
* 时间戳记
* tags
+
* 标签
* metrics (derived)
+
* 参数 (衍生)
  
Following from the above example, a computed measurement could compute the duration that a door remains opened by taking the timestamp between a door open and door closed metric.
+
根据以上示例,计算出的度量值可以计算门保持打开状态的持续时间。这可以通过采用开门和关门度量之间的时间戳差异来完成。
  
=== Organization, User, Access Group ===
+
=== 组织,用户,工作群 ===
An organization represents the entity (eg. company, individual) that is responsible for managing the account that uses Senfi. An organization comprises at least one user with Administrator role. Users with Administrator role are able to manage other users, including user account creation/deletion, user roles etc.
+
组织代表负责管理使用Senfi的帐户的实体(例如,公司,个人)。一个组织包括至少一个具有管理员角色的用户。具有管理员角色的用户能够管理其他用户,包括用户帐户的创建/删除,用户角色分配等。
  
Think of access group as a subset of the assets under the organization. Users can be placed into access groups to have access to those assets. Currently assets that can be assigned to an access group are:
+
将工作群视为组织下资产的子集。可以将用户放入工作群以访问工作群下的资产。当前可以分配给工作群的资产是:
* user
+
* 用户
* site
+
* 站点
* rule
+
* 规则
<span class="right">[[Getting_started|Next: Getting Started]]</span>
+
<span class="right">[[Getting_started/zh-cn|下一页:入门]]</span>

Latest revision as of 10:36, 20 November 2019

此页面概述了Senfi概念。

测量,参数,标签

测量

Senfi处理时间序列中的数据。此时间序列中的每个记录包括:

  • 指示何时采样数据的时间戳(以毫秒为单位)
  • 一组固定的标签
  • 一组固定的参数

所有这些记录都保存在称为测量的数据集中。

参数

参数指的是离散的读数或数据单位。它可以由传感器,设备或复杂的系统诞生/测量。参数的一个示例是温度(例如37度)。参数不一定要有关联的单位(例如摄氏度)。

标签

标签是样本的属性。标签通常被用作标识参数从何处获取的方法(例如,设备ID)。这对于标记正在发送的数据也很有用,以便稍后对数据执行操作,例如过滤。

案例

假设您家里有一个智能秤。表示设备时间序列数据的一种可能方法如下:

测量
智能秤
测量码
iot_weighingscale_v1
数据
tm_source weight_kg
xxxxxxxxxxxxx 70.1
xxxxxxxxxxxxx 70.4
xxxxxxxxxxxxx 69.4

tm_source 表示何时读取读数。在这情况下,weight_kg是在每次获取重量读数所发送的参数

如果有另一个人在使用同一个秤,那该怎么分辨读数?区分读数的一种方法是添加一个称为person的附加字段或标签

tm_source person weight_kg
xxxxxxxxxxxxx Sam 70.1
xxxxxxxxxxxxx Susan 55.2
xxxxxxxxxxxxx Sam 70.4

如果屋内再添加了多个秤,那该如何分辨读数?我们可以通过添加另一个标签来区分读数:

tm_source room person weight_kg
xxxxxxxxxxxxx bathroom Sam 70.1
xxxxxxxxxxxxx kitchen Susan 55.2
xxxxxxxxxxxxx kitchen Sam 70.4

由此一来,我们最终得到的测量具有两个标签(room, person)和一个参数(weight_kg)。

一个更完整的示例如下:

tm_source site_id room person weight_kg bodyfat battery_level
xxxxxxxxxxxxx 1547 bathroom Sam 70.1 19.1 99
xxxxxxxxxxxxx 1547 kitchen Susan 55.2 15.3 54
xxxxxxxxxxxxx 1547 kitchen Sam 70.4 19.2 49

公认该示例是人为设计的,但它展示了数据是如何在Senfi中建模的。

注意: site_id 是强制性标签,并将在下面的站点章节进行说明

传感器

与Prometheus或InfluxDB之类,仅处理时间序列中的时间数据的应用程序不同,Senfi将此类数据与现实世界中的实物相关联。

Senfi中的传感器代表感兴趣的实物/系统。传感器并不一定会发出任何测量,但若有发出,则可以是单个或多个测量。Senfi中有三种类型的传感器:

受托管传感器
发出至少一项测量的传感器
专用传感器
具有特殊性能的传感器,例如电梯控制器
非托管传感器
不会发出测量的传感器

站点

站点代表了实在放置传感器的地方。一个站点通常包含一个或多个建筑物。Senfi中的站点具有地理位置,并通常带有三维表示形式。用户可以选择使用内容管理系统来描绘建筑物轮廓并快速生成三维建筑模型,或上传使用建模软件(例如Autodesk 3DS Max,SketchUp等)建模的定制三维建筑模型。

从建筑物轮廓生成的建筑物样本
使用三维软件建模的建筑物样本

site_id是与特定站点关联的独特整数。在将测量值发送到Senfi时,site_id可被用作标签,以便Senfi辨认传入测量值的目标是哪个站点。

规则,警报

在诸如智能建筑之类的操作环境中,对于组织而言,重要的是要能够跟踪并了解其资产及其周围发生的事情。通过监视和警报便可做到这一点。

传感器产生的测量结果包含参数和标签形式的数据。Senfi为用户提供了多种方法来监视参数和标签值,以监控需要注意的条件(例如,异常高的值,或者当值的组合指示出现故障时),并在情况发生时采取措施。

规则

用户可以利用Senfi的灵活规则引擎检测正在监视的系统中的异常并发出警报通知。

Senfi中的规则包括:

  • 数据输入
  • 条件
  • 输出
  • 触发事件
  • 规则执行选项

例子

使用我们早前的智能秤测量案例,我们可以形成一个简单的规则,如下所示:

  • 数据输入: iot_weighingscale_v1.battery_level
  • 条件: < 20
  • 触发事件: 电子邮件提醒更换电池
  • 规则执行选项:立即执行(当有任何传入测量时,均值表示评估此规则)

计算的测量

通常,输入参数表示从传感设备读取的原始值(例如,门打开状态,门关闭状态)。为了能够得出更好的见解并制定更复杂的规则,能够从原始参数衍生出新的参数将会很有用。我们将这些新的参数称为衍生参数。一组衍生参数和关联的标签便形成了计算的测量

与测量类似,计算的测量包括:

  • 时间戳记
  • 标签
  • 参数 (衍生)

根据以上示例,计算出的度量值可以计算门保持打开状态的持续时间。这可以通过采用开门和关门度量之间的时间戳差异来完成。

组织,用户,工作群

组织代表负责管理使用Senfi的帐户的实体(例如,公司,个人)。一个组织包括至少一个具有管理员角色的用户。具有管理员角色的用户能够管理其他用户,包括用户帐户的创建/删除,用户角色分配等。

将工作群视为组织下资产的子集。可以将用户放入工作群以访问工作群下的资产。当前可以分配给工作群的资产是:

  • 用户
  • 站点
  • 规则

下一页:入门