当前位置: 首页 > news >正文

基础微网站开发代理网络运营有前途吗

基础微网站开发代理,网络运营有前途吗,品牌高端网站设计,给小学生做家教的网站本博客是我在学习InfluxDB的时候#xff0c;记录的笔记#xff0c;大家可以看看参考学些。 简介 简述 InfluxDB是一个由InfluxData开发的开源时序型数据。它由Go写成#xff0c;着力于高性能查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据#xff0c;IoT… 本博客是我在学习InfluxDB的时候记录的笔记大家可以看看参考学些。 简介 简述 InfluxDB是一个由InfluxData开发的开源时序型数据。它由Go写成着力于高性能查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据IoT行业的实时数据等场景 时序跟时间有关的数据称之为时序 InfluxDB有三大特性 Time Series时间序列你可以使用与时间有关的相关函数如最大、最小、求和等Metrics度量你可以实时对大量数据进行计算Events事件它支持任意的事件数据 特点 为时间序列数据专门编写的自定义高性能数据存储。TSM引擎具有高性能的写入和数据压缩Golang编写没有其他的依赖提供简单、高性能的写入查询http apiNative Http API内置http支持使用http读写插件支持其他数据写入协议例如graphite、collected、OpenTSDB支持类sql查询语句tags可以索引序列化提供快速有效的查询Retention policies自动处理过期数据Continuous queries自动聚合提高查询效率schemaless无结构可以是任意数量的列minmaxsumcountmeanmedian一系列函数方便统计Built-in Explorer自带管理工具 应用场景 时序数据以时间作为主要的查询纬度通常会将连续的多个时序数据绘制成线制作基于时间的多纬度报表用于揭示数据背后的趋势、规律、异常进行实时在线预测和预警时序数据普遍存在于IT基础设施、运维监控系统和物联网中。如监控数据统计。每毫秒记录一下电脑内存的使用情况然后就可以根据统计的数据利用图形化界面InfluxDB V1一般配合Grafana制作内存使用情况的折线图可以理解为按时间记录一些数据常用的监控数据、埋点统计数据等然后制作图表做统计。 安装 传统安装 下载influxdb安装包 https://portal.influxdata.com/downloads上传到linux系统中 解压缩安装包 tar -zxf influxdb-1.7.8_linux_arm64.tar.gz进入解压缩目录查看目录结构 目录说明 etc 主要用来存储 influxdb 系统配置信息usr 主要用来存储 influxdb 操作相关脚本文件var 主要用来存储 influxdb 运行日志、以及产生数据和依赖库文件 启动influxdb 进入usr/bin 目录执行 ./influxd客户端连接到influxdb influx -database metrics -host localhost -port 8086 -username admin -password admindokcer安装 version: 3.8 volumes:influxdb: services:influxdb:image: influxdb:1.8.7ports: - 8086:8086volumes:- influxdb:/root/influxdb/data# - $PWD/influxdb.conf:/root/influxdb/influxdb.confenvironment:- INFLUXDB_ADMIN_USERroot- INFLUXDB_ADMIN_PASSWORDroot- INFLUXDB_DBsprixinrestart: always命令式 docker pull influxdb:1.8.7docker run -d -p 8086:8086 --name influxdb -v /data/influxdb:/var/lib/influxdb --restartalways influxdb:1.8.7#先不启用密码验证, 创建用户和密码,启动后进入创建好用户和密码后,修改auth-enabled true 重启容器生效,就必须要用户和密码docker pull influxdbdocker run -d --name my-influxdb \ -p 8086:8086 \ -p 8083:8083 \ -p 2003:2003 \ -e INFLUXDB_GRAPHITE_ENABLEDtrue \ -v /data/influxdb/conf/influxdb.conf:/etc/influxdb/influxdb.conf \ -v /data/influxdb:/var/lib/influxdb \ -v /etc/localtime:/etc/localtime \ influxdb#进入容器 docker exec -it my-influxdb /bin/bash 输入 influx #创建用户和密码 create user admin with password admin with all privileges create user admin with password beyond_2021 with all privilegesauth admin admin 登录show databases; 展示数据库create database demo 创建表#默认是不用用户密码的, 是否开启认证默认值false cat /data/influxdb/conf/influxdb.conf [meta]dir /var/lib/influxdb/meta[data]dir /var/lib/influxdb/dataengine tsm1wal-dir /var/lib/influxdb/wal[http]auth-enabled false#容器外面执行命令 curl -i -XPOST http://localhost:8086/query --data-urlencode qCREATE DATABASE testdbcurl -XPOST http://localhost:8086/query --data-urlencode qcreate user admin123 with password admin123 with all privileges./influx -database testdb -execute auth admin123 admin123./influx -database testdb -execute auth admin123 admin123show users; 启用用户密码后,会报错输入 influx -username admin -password beyond_2021# 保存策略 show retention policies on test 显示test数据库策略 如果没有指定策略默认是autogen对test数据库创建一个策略,2小时之前数据删除,一个副本,设置为默认策略 create retention policy abc on test duration 2h replication 1 default10天前数据删除 比如h小时w星期 create retention policy rp_10d on testdata duration 10d replication 1 default修改默认策略 alter retention policy autogen on demo duration 10d replication 1 defaultalter retention policy autogen on demo duration 15d replication 1 default修改策略 alter retention policy rp_10d ON demo duration 10d replication 1 default插入数据不指定策略,按默认策略保存 insert into devops,hostserver01 cpu23.1,mem0.61指定策略保存数据 insert into autogen devops,hostserver01 cpu23.1,mem0.71查询时不指定策略,按默认策略查询 select * from devdata指定策略查询数据 select * from autogen.devdatashow tag keys from 表名show field keys from 表名相关概念 概念 database数据库 用于针对不同应用进行数据隔离measurement数据库中的表 类似与关系型数据库table row记录points表里面的一行数据 point相当于关系库中表中一条记录influxDB中独有的一些概念Point由时间戳time、数据field和标签tags组成 库 database表 measurementpoint time主键 可以自动生成手动指定 必须存在field普通字段 存储数据 必须存在 tags标签可有可无 索引 用来加快查询速度 Stringfield不经常查询数据可以直接存储为fieldtags索引字段主要用来提高查询效率与MySQL概念对比 概念MySQLInfluxDB数据库同databasedatabase表不同tablemeasurement测量度量列不同columnpoint tag带索引的非必须、field不带索引、timestamp唯一主键 point相当于传统数据库里的一行数据如下表所示 point属性传统数据库中的概念time时间戳每个数据记录时间是数据库中的主索引会自动生成fields字段、数据各种记录值没有索引的属性也就是记录的值温度、湿度tags标签各种有索引的属性地区、海拔 注意在influxdb中字段必须存在。因为字段是没有索引的。如果使用字段作为查询条件会扫描符合查询条件的所有字段值性能不及tag。类比一下fields相当于sql的没有索引的列。tags是可选的但是强烈建议你用上它因为tag是有索引的tags相当于sql中的有索引的列。tag value只能是string类型。 类型说明 tag类型 tag都是string类型 field类型 field支持四种类型 intfloatstringboolean 类型方式示例float小数id12.1int整数age12booleantrue/falseboytrueString“” or ‘’name“Alice” 基础操作 库 database -- 库操作 - show databases; 查看所有库 - create database test; 创建一个库 - drop database test; 删除一个库 - use test; 选中一个库 - clear database|db; 清除当前上下文的库表 measurement 注意表不能显示创建插入数据时自动插入表中数据 -- 表操作 - show measurements; 查看所有表 - drop measurement test; 删除一个表 # 注意删除表插入 -- 基本语法 - insert into retention policy measurement,tagKeytagValue fieldKeyfieldValue timestamp - 如: insert user,nameblr,phone110 id20,email11qq.com 从上面的输出简单小结一下插入的语句写法: 1) insert measurement , tagvalue,tagvalue fieldvalue,fieldvalue 2) tag与tag之间用逗号分隔field与field之间用逗号分隔 3) tag与field之间用空格分隔 4) tag都是string类型不需要引导将value包裹 5) field如果是string类型需要加引导注意更新如果在插入数据时插入的数据的时间和tags 与原有数据一致则更新当前数据 查询 普通查询 0、查询所有 # 注意tags显示再查询结果最后 - select * from test;1、查询所有的 tag 和 field - select * from test where person_nameblr - select * from test where namexiaochen # name为influxdb关键字需要加入双引号区分2、从单个measurement查询所有的field不插tag - select *::field from test3、从单个measurement查询特定的field和tag # 注意查询时至少要带上一个field key如果只查询tag字段的话是查不到数据的 - select person_name,age from test4、同时查询多张表 # 注意返回是将每张表不同记录返回 - select * from test,student5、模糊查询 # 前缀匹配相当于 mysql 的 like blr% - select * from test where person_name ~/^blr/# 后缀匹配相当于 mysql 的 like %blr - select * from test where person_name ~/blr$/# 前后匹配相当于 mysql 的 like %blr% - select * from test where person_name ~/blr/聚合函数 注意事项聚合函数只能对field字段进行操作不能对tag字段操作否则查询出来的列表是空的 0、如果我就要对tag字段进行聚合函数计算怎么办那我们可以通过子查询来实现 - select distinct(person_name) from (select * from test);1、count() 统计 # 查询某个field字段中的非空数量 - select count(age) from test;2、DISTINCT() 去重 - select distinct(age) from test;3、MEAN() 求平均值这个平均值必须是数字类型 - select mean(age) from test;4、MEDIAN() 求中位数从单个字段field中的排序值返回中间值 # 中位数统计学中的专有名词是按顺序排列的一组数据中居于中间位置的数代表一个样本、种群或概率分布中的一个数值其可将数值集合划分为相等的上下两部分 - select median(age) from test;5、SPREAD() 返回字段的最小值和最大值之间的差值。数据类型必须是长整型或者float64 - select spread(age) from test;6、SUM() 求和 - select sum(age) from test;7、BOTTOM() 返回一个字段中最小的N个值。字段类型必须是长整型或float64类型 - select bottom(age,3) from test;8、FIRST() 返回一个字段中时间最早取值 - select first(age) from test;9、LAST() 返回一个字段中时间最晚取值 - select last(age) from test10、MAX() 求最大值 - select max(age) from test;分组聚合 1、基于时间分组 # 查询所有数据并对其划分为每200毫秒一组 select count(age) from test group by time(200ms) # 查询所有数据并对其划分为每200秒一组 select count(age) from test group by time(200s) # 查询所有数据并对其划分为每12分钟一组 select count(age) from test group by time(12m) # 查询所有数据并对其划分为每12小时一组 select count(age) from test group by time(12h) # 查询所有数据并对其划分为每12天一组 select count(age) from test group by time(12d) # 查询所有数据并对其划分为每12周一组 select count(age) from test group by time(12w)分页查询 LIMIT 用法有2钟 1. limit 10 查询前10条数据 2. limit size offset N size表示每页大小N表示第几条记录开始查询# 查询前10条数据 select * from test limit 10# 分页pageSize 为每页显示大小 pageIndex 为查询的页数 pageIndex 1 pageSize 10 - select * from test limit pageSize offset (pageIndex - 1)*pageSize排序 # 升序 select * from test order by time asc# 降序 select * from test order by time descin 查询 # 关系型数据库可以用in关键字来查询多个值 select * from test where person_name in (,,) # 但是时序数据库是没有 in 查询的虽然in是保留的关键字但是依然有办法解决可用模糊查询# 同时匹配123 和 thing select * from test where person_name ~/^123$|^thing$/保留策略 influxDB是没有提供直接删除数据记录的方法但是提供数据保存策略主要用于指定数据保留时间超过指定时间就删除这部分数据。数据库过期策略至少一个小时默认保存策略为永久保存。 查看某个库策略 # 查看某个库的策略 show retention policies on 数据库名称 # 查看当前库下的策略需要先用use database 命令指定库名 show retention policiesname策略名称duration数据保存时间超过这个时间自动删除0表示永久保存shardGroupDurationshardGroup的存储时间shardGroup是InfluxDB的一个基本储存结构在这个时间内插入的数据查询较快数据存放大于168小时查询速度降低replicaN全称是REPLICATION副本个数default是否默认策略 创建数据保留策略 # 1、创建 h 小时 d 天 w 星期 - CREATE RETENTION POLICY 保留策略名称 ON 数据库名称 DURATION 该保留策略对应的数据过期时间 REPLICATION 复制因子开源的InfluxDB单机环境永远为1 SHARD DURATION 分片组的默认时长 DEFAULT- create retention policy testpolicy on myInfluxdb duration 72h replication 1 shard duration 1h default# 2、修改保留策略 - alter retention policy 保留策略名称 on 数据库名称 duration 1d# 3、修改默认保留策略 - alter retention policy 保留策略名称 on 数据库名称 default# 4、删除保留策略 - drop retention policy 保留策略名称 on 数据库名称权限配置 开启权限 默认情况下 InfluxDB 是没有开启权限配置的即默认情况下所有客户端可直接连接操作 InfluxDB 服务进行相关操作但是这在生产环境中是不可取的因此需要对 influxdb 服务加入权限相关配置。 创建用户信息 首先通过客户端连接到服务查看当前用户 - show users创建用户 create user 用户名 with password 密码 with all privileges# 注意用户名必须双引号密码必须单引号# 创建指定库只读用户 create user 用户名 with password 密码 grant read on 库名 to 用户名# 删除用户 drop user 用户名配置文件中开启 进入influxdb安装目录中etc/influxdb 编辑influxdb.conf文件 [http] auth-enabled false指定配置文件重启InfluxDB服务 ./influxd -config/root/influxdb-1.7.8-1/etc/influxdb/influxdb.conf集群 influxdb 开源 单机环境 1.x cluster 集群环境收费 参考https://github.com/chengshiwen/influxdb-cluster/wiki 简介 InfluxDB CLuster是一个开源的 时间序列数据库没有外部依赖。它对于记录指标、事件和执行分析很有用。InfluxDB CLuster启发于InfluxDB Enterprise、InfluxDB v1.8.10 和 InfluxDB v0.11.1旨在替代InfluxDB Enterprise。InfluxDB CLuster易于维护可以与上游InfluxDB 1.x保持实时更新 特性 内置 HTTP API 无需编写任何服务端代码即可启动和运行数据可以被标记 tag 允许非常灵活的查询类似 SQL 的查询语言集群支持开箱即用因此处理数据可以水平扩展。集群目前处于生产就绪状态易于安装和管理数据写入查询速度快旨在实时应答查询。这意味着每个数据点在到来时都会被计算索引并且在 100 毫秒内返回的查询中立即可用 架构 InfluxDB Cluster 安装由两组独立的进程组成Data 节点和 Meta 节点。 Meta节点 元节点持有以下所有的元数据 集群中的所有节点和它们的角色集群中存在的所有数据库和保留策略所有分片和分片组以及它们存在于哪些节点上集群用户和他们的权限所有的连续查询 Data节点 数据节点持有所有的原始时间序列数据和元数据包括 测量值标签键和值字段键和值 Meta 节点通过 TCP 协议和 Raft 共识协议相互通信默认都使用端口 8089此端口必须在 Meta 节点之间是可访问的。默认 Meta 节点还将公开绑定到端口 8091 的 HTTP APIinfluxd-ctl 命令使用该 API。 Data 节点通过绑定到端口 8088 的 TCP 协议相互通信。Data 节点通过绑定到 8091 的 HTTP API 与 Meta 节点通信。这些端口必须在 Meta 节点和 Data 节点之间是可访问的。 在集群内所有 Meta 节点都必须与所有其它 Meta 节点通信。所有 Data 节点必须与所有其它 Data 节点和所有 Meta 节点通信。 集群搭建 参考https://github.com/chengshiwen/influxdb-cluster/wiki 配置优化 数据导入导出 # 导出 influx_inspect export -compress -datadir /var/lib/influxdb/data -waldir /var/lib/influxdb/wal -out /home/myDB -database myDB# 导入 influx -import -database myDB -path/home/myDB -precisionns# 数据压缩导入 influx -import -database myDB -path/home/myDB -compress -precisionns -usernameroot -passwordroot# 数据未压缩导入 influx -import -database myDB -path/home/myDB -compress -precisionns -usernameroot -passwordroot配置调优 对InfluxDB的配置优化主要从一些配置参数出发提高InfluxDB的性能 性能优化 InfluxDB的存储引擎是TSM TreeTime-Structured Merge Tree基本上整体思想和LSM TreeLog-Structured-Tree类似做了一些时序场景下数据存储结构上的建模优化。cache-snapshot-memory-size值需要调试 [data] cache-snapshot-memory-size562144000cache-snapshot-memory-size 这个大小控制的是 LSM 中的 cache 的大小当 cache 达到一定阈值后cache会落盘生成tsm file此时的tsm file的level为 level 0两个相同level的 tsm file 会进行 compact 生成一个level 1的 tsm file既两个 level 0 的tsm file会生成一个 level 1的tsm file这种设计既TSM tree的写入放大问题。 由于Influxdb是固定两个低level文件compact成一个高一级level的tsm file所以如果cache size越小,dump成tsm file的频率越高进而做compact的频率也越高造成写入放大越显著当写入的频率很高的场景下会导致influxdb的吞吐下降非常明显。 compact频率变高后Influxdb写入放大很重要一个原因是TSH file数据做了编码压缩磁盘占用空间当compact时,需要对数据decode会带来明显的性能损耗。 Influxdb为了优化这个问题在做compact时分为optimize compact和full compact两种类型。在full compact场景下首先会对tsm file中的block做decode然后按照每个Block存储的point数量将decode的Point value按照时间顺序重新encode成Block然后写入到新的TSM file中其中的性能损耗会非常显著。而在optimize场景下不会读取block内部的数据会对多个block拼接减少性能消耗。 目前部分场景下Influxdb做compact还是会选择full compact。optimize compact虽然会提升compact速度和减少compact的资源消耗但是会引起查询放大问题:需要从多个block中才能获取到需要返回的数据。 总结 cache-snapshot-memory-size 值理论上是越大越好但是需要关注你的硬件配置cache-snapshot-memory-size 值跟当前并发写入tags数量有关系如果你的tags数很大的情况下一定要调大这个值如果tags数不多只是少数tags的数据写入频率很高那么这个值稍低也不会对性能有太大的影响。 数据层面 表 point [time tags] (series 100w tags 10w) fields max-series-per-databse 可调整为0如注释所示该参数控制每个db的最大的series数量 max-values-per-tag可调整为0如注释所示该参数控制每个tag的tag_value数量 [data] max-series-per-databse0 max-values-per-tag0查询超时 query-timeout100
http://www.zqtcl.cn/news/127663/

相关文章:

  • 俄语网站建设注意事项seo公司优化排名
  • jsp做的当当网站的文档专业电子科技网站建设
  • 有免费的微网站是什么推广普通话调查问卷
  • 滁州市南谯区住房和建设局网站网站服务器规划 用户数
  • 静态企业网站源码网站sem托管
  • 17网站一起做网店打不开专业做网站公司 前景
  • 哪个网站可以做围棋作业游览有关小城镇建设的网站
  • 这么建立com的网站开发公司以现金方式补贴给客户
  • 网站建设 常见问题wordpress 手机顶部菜单
  • 医院网站 功能系统开发文档
  • 免费的企业网站网站空间商排名
  • 格子三合一交友婚恋网站模板网站后台用什么
  • 网站运营与管理期末考试数字营销经典案例
  • 官方网站英语门户网站策划书
  • 建国外网站需要多少钱做网站的底图尺寸多大
  • wordpress页面更新发布失败seo网络优化是做什么的
  • 百度收录多的是哪些网站网站本科报考官网
  • 成都管理咨询公司排名seo策略怎么写举例
  • 建设网站的难点动漫设计属于什么专业
  • 辽阳做网站的公司大型营销型网站制作
  • 已有域名怎么建设网站wordpress数据主机名
  • 网站设计的公司蒙特注册成立公司的基本流程
  • 成交型网站山西网络营销
  • 做网站必须在工信部备案吗网站开发英语
  • 门户网站模板图片建设厅网站初始数据入库
  • 甘肃三北防护林建设局网站阿里企业邮箱app
  • 沃尔沃公司网站建设公司建网站费用
  • 新网站怎么发外链公司做网站 要准备哪些素材
  • 建站域名英雄联盟网页制作素材
  • 手机网站 微信网站 区别布吉做网站