InfluxDB之关键概念

本文介绍了InfluxDB的关键概念,如度量、标签、字段等,并通过样例数据详细解释了这些概念如何应用于时间序列数据库中。

         在深入InfluxDB之前,熟悉一些数据库的关键概念是很好的。本文档对这些概念和常用的InfluxDB术语进行了渐进的介绍。 我们在下面列出了所有将要介绍的名词,但是我们建议您从头到尾阅读本文档,以便更全面地了解我们最喜欢的时间序列数据库。


数据库(database)

字段键(field key)

字段集(field set)

字段值(field value)

度量(measurement)

点(point)

保留策略(retention policy)

序列(series)

标签键(tag key)

标签集(tag set)

标签值(tag value)

时间戳(timestamp)

查看术语表,如果你更喜欢生硬的定义。


样例数据

下一节将引用下面显示的数据。这些数据是虚构的,但体现了在InfluxDB中真实的数据组织情况。它们显示了2015年8月18日午夜至2015年8月18日上午6:12期间两个科学家(langstroth和perpetua)在两个地点(地点1和地点2)计算的蝴蝶和蜜蜂的数量。 假设数据位于名为my_database的数据库中,并且使用自动保留策略(更多数据库和保留策略将会支持)。提示:将鼠标悬停在链接上会出现工具提示,帮你熟悉InfluxDB术语和布局。

名称:census

-————————————

time

butterflies

honeybees

location

scientist

2015-08-18T00:00:00Z

12

23

1

langstroth

2015-08-18T00:00:00Z

1

30

1

perpetua

2015-08-18T00:06:00Z

11

28

1

langstroth

2015-08-18T00:06:00Z

3

28

1

perpetua

2015-08-18T05:54:00Z

2

11

2

langstroth

2015-08-18T06:00:00Z

1

10

2

langstroth

2015-08-18T06:06:00Z

8

23

2

perpetua

2015-08-18T06:12:00Z

7

22

2

perpetua


详述

现在你已见到在Influx中的样例数据,本节介绍它们的含义。InfluxDB是一个时间序列数据库,所以从我们所做的一切的根源开始讲起是有意义的:时间。上面的数据包含一列叫time - InfluxDB中所有的数据都有这一列。time列存储时间戳,时间戳表示RFC3339标准的UTC日期和时间,和特定的数据关联。接下来的两列是butterflies和honeybees,是字段集。字段集由字段键和字段值组成。字段键(buttferflies和honeybees)是字符串,存储元数据;字段键butterflies告诉我们字段值12-7关联到butterflies以及字段键honeybees告诉我们字段值23-22关联到,嗯,honeybees。字段值是你的数据;它们可以是字符串,单精度数,整数或布尔值,因InfluxDB是时间序列数据库,字段值总是会关联到时间戳。样例中的字段值是:

12   23

1    30

11   28

3    28

2    11

1    10

8    23

7    22


上面的数据中,字段键值对的集合构成了字段集。下面列出样例中所有的8对字段集:

l  butterflies = 12 honeybees = 23

l  butterflies = 1 honeybees = 30

l  butterflies = 11 honeybees = 28

l  butterflies = 3 honeybees = 28

l  butterflies = 2 honeybees = 11

l  butterflies = 1 honeybees = 10

l  butterflies = 8 honeybees = 23

l  butterflies = 7 honeybees = 22


字段是InfluxDB数据结构中不可缺少的部分 – InfluxDB中不能存在没有字段的数据。注意到这些字段没有编入索引也很重要。使用字段值做过滤的查询必须扫描查询中的所有值以便匹配其它条件。结果就是这些查询和标签查询(更多介绍在后面)无关。总的来说,字段不应包括通常查询的元数据。

样例中最后两列location和scientist是标签。标签由标签键和标签值组成。键和值都作为字符串存储并记录元数据。样例中的标签键是location和scientist,标签键location具有两个值:1和2。标签键scientist也有两个值:langstroth和perpetua。在样例中,标签集是所有不同的标签键值对的组合。样例中的四个标签集是

l  location = 1, scientist = langstroth

l  location = 2, scientist = langstroth

l  location = 1, scientist = perpetua

l  location = 2, scientist = perpetua


标签是可选的。在你的数据结构中并不必须要有标签,一般来说,充分利分标签是个好做法,因为和字段不同,标签是编入索引的。这意味着根据标签查询的速度更快且对存储通常查询的元数据而言,标签是最为理想的选择。


为什么索引很重要:架构案例研究

比如说你注意到大多数查询都是取字段键honeybees和butterflies对应的值。

 SELECT * FROM "census" WHERE "butterflies" = 1

SELECT * FROM "census" WHERE "honeybees" = 23

因字段不编入索引,在返回响应之前,InfluxDB会在第一个查询中扫描所有butterflies的值,在第二个查询中扫描所有honeybees的值。这种行为会影响查询响应时间 – 特别是数据规模大的时候。为优化查询,重新调整你的架构将会大有裨益:字段(butterflies和honeybees)调成标签且将标签(location和scientist)调成字段。

名称:census

-————————————

time

location

scientist

butterflies

honeybees

2015-08-18T00:00:00Z

1

langstroth

12

23

2015-08-18T00:00:00Z

1

perpetua

1

30

2015-08-18T00:06:00Z

1

langstroth

11

28

2015-08-18T00:06:00Z

1

perpetua

3

28

2015-08-18T05:54:00Z

2

langstroth

2

11

2015-08-18T06:00:00Z

2

langstroth

1

10

2015-08-18T06:06:00Z

2

perpetua

8

23

2015-08-18T06:12:00Z

2

perpetua

7

22

现在butterflies和honeybees成了标签,当执行上述查询的时候InfluxDB不用再去扫描它们的每一个值 – 这意味着你的查询速度更快。


度量可看作是标签、字段和时间列的容器,度量名称是数据的描述,存储于相关字段中。度量名是字符串,对任何SQL用户来说,度量在概念上类似于表。样例中唯一的度量是census, census这个名称告诉我们字段值记录了蝴蝶和蜜蜂的数量 – 不是它们的大小,方向或某种幸福指数。

一个度量可以同时应用多个的保留策略。保留策略规定了数据在InfluxDB中保留多长时间(存续期间)以及在集群(副本集)中存储多少副本。如果您想了解有关保留策略的更多信息,请查看数据库管理


副本数量不能用于单实例。


样例中,度量census中的所有元素都应用自动生成的保留策略。InfluxDB会自动生成默认策略:永远存在且副本数量为1。

现在你熟悉了度量,标签集及保留策略,是时候讨论序列(series)了。在InfluxDB中,序列是一个集合,集合中的数据共享一个保留策略,度量及标签集。样例中的数据可分为四个序列:


序列(编号任意)

保留策略

度量

标签集

series 1

autogen

census

location = 1,scientist = langstroth

series 2

autogen

census

location = 2,scientist = langstroth

series 3

autogen

census

location = 1,scientist = perpetua

series 4

autogen

census

location = 2,scientist = perpetua


在InfluxDB中,当你设计架构及和处理数据时,理解序列的概念是非常必要的。

最后,点(point)是同一序列中具有相同时间戳的字段集合。例如,这是一个点:

名称: census

-----------------

time                 butterflies   honeybees    location   scientist

2015-08-18T00:00:00Z 1                30            1      perpetua


示例中的序列由以下要素决定:保留策略(自动生成)、度量(census)以及标签集(location = 1, scientist = perpetua)。点的时间戳是2015-08-18T00:00:00Z。


我们刚刚介绍的所有内容都存储在数据库中 – 样例数据存于数据库my_database。InfluxDB中的数据库类似于传统关系型数据库,做为用户、保留策略、连续查询以及序列的逻辑容器提供服务。有关这个主题的更多信息,请参阅身份认证和授权以及连续查询。


数据可以具有多个用户,持续查询,保留策略以及度量。InfluxDB是无模式数据库,这意味着随时可以容易的增加新度量,标签及字段。它被设计成非常方便的处理时间序列数据。


你做到了!你了解了所有InfluxDB中的基本的概念和术语。如果你刚开始,我们建议您查看“入门”、“写数据”以及“查询数据”指南。愿我们的时间序列数据库能很好的为您服务。



三维建模技术借助先进的图像处理手段,将二维影像转化为立体空间数据。在多种实现路径中,双摄像头视觉方案编码光投影技术具有代表性。前者通过布置两个成像单元从不同方位采集画面,依据视差原理空间几何关系推算深度数据;后者则向目标表面投射特定光栅,通过解析光栅形变反推三维轮廓。相位偏移法作为光栅技术的重要分支,采用多步渐进式光场调制策略,通过记录连续相位变化获取亚像素级三维信息。同步采用的互补二进制编码机制,通过优化光强分布模式有效解决相位跳变问题,显著提升重建数据的连续性。 成像系统的参数标定是三维数据生成的基础环节,需通过专用算法确定镜头焦距、像主点坐标及光学畸变系数等核心参数。立体校正则依据双相机空间几何关系,对采集图像进行投影变换,使对应像点分布于同一水平扫描线上,大幅降低立体匹配复杂度。在光栅系统中,相位对齐技术通过建立像素级相位映射关系,将二维相位场转换为三维坐标;而在立体视觉中,视差分析通过比对双视图对应像素偏移量,构建深度映射矩阵。最终通过点云融合算法,将离散空间坐标整合为连续曲面模型,该技术体系在工业检测、数字娱乐及沉浸式交互等领域具有重要应用价值。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
内容概要:本文围绕“风光制氢合成氨系统优化研究”展开,重点介绍了基于Matlab代码实现的并网离网模式下风能、光能耦合制氢进而合成氨的系统容量配置调度优化方法。研究涵盖可再生能源波动性、系统能量转换效率、设备容量规划及运行调度策略等关键问题,通过数学建模优化算法(如智能优化、模型预测控制等)实现系统经济性稳定性的平衡。文中多次提及“复现”字样,表明部分内容旨在还原已有研究成果,并提供完整的代码资源支持仿真验证。同时,文档列举了大量相关研究主题,形成一个涵盖电力系统、综合能源、状态估计、机器学习等多个方向的技术资源集合。; 适合人群:具备一定电力系统、能源工程或自动化背景的研究生、科研人员及工程技术人员,熟悉Matlab/Simulink环境者更佳;适合从事新能风光制氢合成氨系统优化研究(Matlab代码实现)源系统建模优化研究的专业人士。; 使用场景及目标:①开展风光耦合制氢及合成氨系统的容量规划运行调度研究;②复现已发表论文中的优化模型算法;③构建综合能源系统仿真平台,提升科研效率代码实践能力。; 其他说明:文档附带百度网盘链接,提供YALMIP工具包及其他完整资源下载,便于读者直接调用求解器进行优化计算,建议结合实际需求选择相应案例进行学习拓展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值