grafana的dashboard简介
Grafana是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库。
官网 操作文档 grafana安装
经常被用作基础设施的时间序列数据和应用程序分析的可视化。
Grafana 主要特性: 灵活丰富的图形化选项; 可以混合多种风格; 支持多个数据源; 拥有丰富的插件扩展; 支持用户权限管理。
Grafana 有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘dashboard和图形编辑器。
本章主要来学习 如何定制我们的可视化监控仪表盘dashboard。
如上所示,在一个Dashboard中一个最基本的可视化单元为一个Panel(面板),Panel通过如趋势图,热力图的形式展示可视化数据。 并且在Dashboard中每一个Panel是一个完全独立的部分,通过Panel的Query Editor(查询编辑器)我们可以为每一个Panel自己查询的数据源以及数据查询方式,例如,如果以Prometheus作为数据源,那在Query Editor中,我们实际上使用的是PromQL,而Panel则会负责从特定的Prometheus中查询出相应的数据,并且将其可视化。由于每个Panel是完全独立的,因此在一个Dashboard中,往往可能会包含来自多个Data Source的数据。
Grafana通过插件的形式提供了多种Panel的实现,常用的如:Graph Panel,Heatmap Panel,SingleStat Panel以及Table Panel等。用户还可通过插件安装更多类型的Panel面板。
除了Panel以外,在Dashboard页面中,我们还可以定义一个Row(行),来组织和管理一组相关的Panel。
除了Panel, Row这些对象以外,Grafana还允许用户为Dashboard定义Templating variables(模板参数),从而实现可以与用户动态交互的Dashboard页面。同时Grafana通过JSON数据结构管理了整个Dasboard的定义,因此这些Dashboard也是非常方便进行共享的。Grafana还专门为Dashboard提供了一个共享服务: https://grafana.com/dashboards 通过该服务用户可以轻松实现Dashboard的共享,同时我们也能快速的从中找到我们希望的Dashboard实现,并导入到自己的Grafana中。
panel
Panel是Grafana中最基本的可视化单元。每一种类型的面板都提供了相应的查询编辑器(Query Editor),让用户可以从不同的数据源(如Prometheus)中查询出相应的监控数据,并且以可视化的方式展现。
Grafana中所有的面板均以插件的形式进行使用,当前内置了5种类型的面板,分别是:Graph,Singlestat,Heatmap, Dashlist,Table以及Text。
其中像Graph这样的面板允许用户可视化任意多个监控指标以及多条时间序列。而Siglestat则必须要求查询结果为单个样本。Dashlist和Text相对比较特殊,它们与特定的数据源无关。
通过Grafana UI用户可以在一个Dashboard下添加Panel,点击Dashboard右上角的“Add Panel”按钮。
参考 grafana基本概念
新增数据源
Grafana支持许多不同的数据源。每个数据源都有一个特定的查询编辑器,该编辑器定制的特性和功能是公开的特定数据来源。
官方支持以下数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB。
每个数据源的查询语言和能力都是不同的。 你可以把来自多个数据源的数据组合到一个仪表板dashboard。
登录grafana 界面
默认用户和密码均为admin
在左侧栏中选中Configuration --> Data sources
进入页面后 点击 add data source
选择 符合自己的 数据库类型
填入相关信息即可
新增dashboard
两个入口,可以点击左侧栏的加号新增 dashboard
也可以先点击左侧栏dashboard 进入 manage页面
点击 new dashboard 按钮
可以看到有两个按钮,一个先新建查询条件,一个是先选择展示的视图。 可以任意选择一个进入,编辑过程中可以切换。
使用官方的模版
如果是常用的监控,我们没有必要 一步步的构建我们的视图和查询条件,可以直接使用官方的模版或者 其他用户已经编辑好的模版。
官方模版地址
以mysql各项指标监控为例子。
通过访问官方模版地址来查看已有仪表盘模板,选取合适的使用。
有些模版 使用前有相应的 操作说明,比如需要安装my2。
https://github.com/meob/my2Collector
复制模版的id备用
回到自己的Grafana节点,打开Import界面
粘贴id,点击文本框外 如果找到该模版,会自动跳转。
选择相应数据源和 放置的目录即可。
成功展示如图:
导入导出dashboard的json
有时候我们想要使用的模版并不是官网的,或者因为版本的问题和 没有外网等原因,grafana可能找不到。
这种情况可以使用json的方式导入。
步骤如下:
点击获取 【Download JSON】
导入时 点击 upload json 选中下载到本地的json即可。
假如我们有一个做好的模版想要复用或者备份,也可以导出json。
点击 右上角的 share dashboard
点击export 中的 view json即可
自定义表格
比如我们在mysql数据中有一个表格如下:
想要在 grafana中展示,则需要使用同样的sql
select
id as '序号',
apartment as '型号',
area as '面积',
floor as '层数',
buildtime as '建造时间',
all_price as '总价',
unit_price as '单价'
from
`basic`
根据之前的步骤新建dashboard,选择add query。
在Query的下拉框 选中我们的数据源。
这里 sql语句有两种模式,一种是 build模式,填入相应的字段即可。
不过sql模式 更直观一些。
点击Edit SQL。
输入如上 sql语句。
点击左侧栏的visualiztion,选中table。
回到 sql界面,format as 选中table即可
点击右上角的保存按钮。
即可在 dashboard中查看如图,点击右下角可以拖拽 拉长拉宽。
自定义图形
我们已经尝试了展示表格,实际上 图形也是常用的展示,以下 举一些常用的例子。
重点说明 graph的参数,其他图形 可以参考graph的参数。
变化趋势:Graph面板
Graph面板是最常用的一种可视化面板,其通过折线图或者柱状图的形式显示监控样本随时间而变化的趋势。例如,当需要查看主机CPU、内存使用率的随时间变化的情况时,可以使用Graph面板。同时,Graph还可以非常方便的支持多个数据之间的对比。
创建Graph —曲线图
点击左侧栏的创建Create ----》 dashboard --》Choose Visualization 选中graph。
点击左侧大图标的 Queries。
在Query下拉框中选中 数据源。
点击 Edit SQL
输入 想要展示的sql语句,需要注意的是,语句中需要包含time_sec 和 metric 以及 value 。
按照如下格式:
SELECT
UNIX_TIMESTAMP() as time_sec,
as value,
as metric
FROM
WHERE $__timeFilter(time_column)
ORDER BY ASC
time_sec 表示发生的时间,与x轴对应,该字段的数据必须为时间格式。 value 表示 数值 与 y轴对应 metric 表示 系列,也就是有几根线,可以看成是分组
我的语句如下:
SELECT
UNIX_TIMESTAMP(insert_time) as time_sec,
unit_price as value,
concat(area,"平米") as metric
FROM basic
WHERE $__timeFilter(insert_time)
ORDER BY insert_time ASC
$__timeFilter() 表示只选中该字段值是时间的 数据。 UNIX_TIMESTAMP()则表示 转换为 时间戳
注意 如果我们的数据不是持续产生的话, 需要 在右上角 展示时间段内 调整下 展示时间段, 比如我的数据只有4月份的,所以需要调整成 展示最近1年。
展示如下:
创建Graph —柱状图
柱状图 的创建方式跟 曲线图一致,区别在于 需要在visualization 中 把模式Draw modes 调整成 bar。
这时候 我们发现 如果按照 insert_time 作为 x轴坐标,不符合我们想要看的 纬度,则可以 对 sql 语句进行修改,重新制定分组,然后 在Axes 中 调整X-Axis调整 x轴的mode 为 按系列分,选中series 。 如下:
SELECT
now() as time_sec,
unit_price as value,
concat(area,"平米") as metric
FROM basic
WHERE unit_price < 20000
group by metric
ORDER BY metric ASC
结果如图:
如果数据很多,x轴排列不下,我们可以取消 x轴的文字显示,而是在下面使用标注的显示方式。
在Axes 中 调整X-Axis调整 x轴的show 为 关闭
在Legend 中 调整Options 的show 为 打开
效果如图:
配置说明
Graph里面的选项有:
General(常规选择)、Axes(坐标轴)、Legend(图例)、 Display(显示样式)、Alert(告警)、Time range(时间范围)
不同版本会有差异。
1)General(常规选择:http://docs.grafana.org/features/panels/graph/)
General允许定制面板的外观和菜单选项。
General Options
Title:仪表盘上的面板标题
Description:仪表盘描述信息
Transparent :是否透明,选择之后会把该图的背景去掉,即透明状态
Repeat panel:是否重复panel,填写是重复的变量(参考后文变量配置),即这个标题名中添加对应的变量,引用该变量需添加$,图标题即可随着自选的变量而变化。
panel links(为当前panel增加超链接)
(2)Axes(坐标轴)
Left Y和Right Y可以自定义,即可以设置多重坐标轴,方便对比查看
Show:是否显示,可以通过从显示轴中取消适当的框来隐藏轴。
Unit:y轴的显示单元
Scale:Y轴的间隔度。选择“log base 2”以double的速度递增,(0、1、2、4、8…),选择“log base 32”,就是(0、1、32…)
Y-Min:Y轴的最小值(默认atuo)
Y-Max:Y轴的最大值(默认atuo)
Lable:Y轴的文本标签
(3)Legend(图例)
通过选择显示复选框隐藏图例。如果它被显示,它可以通过检查表复选框显示为一个值表。没有值的系列可以使用隐藏空复选框,从而在图例中隐藏。
options:
show:是否显示图例
as table:作为表格样式显示
to the right:显示在右边
values:
在图例中,显示每个series的max\min\avg\total\current,能设置小数点位数。在图上显示,
通过点击列标题(如果保存的话,这个选项将会被持久化)来排序,通过min/max/avg来排序。
点击图例,也可单独显示某个series。
(4)Display(显示样式)
1、Draw option
Draw Modes:Bars(柱状图)、lines(折线图)、Points(点)
Mode Options:Fill(充满区域透明度),Line Width(线宽度),Staircase(是否阶梯),Point Radius(点的半径,以此控制点的大小)
Hover tooltip
Mode:All series(鼠标移到点上显示所有图例的值),single(鼠标移到点上显示该series图例的值)
Sort order:None(按图例排列顺序显示),increaseing(值的从小到大递增),Decreasing(值从大到小递减)
Stacking&Null value :stack(多series是否堆叠显示),percent(百分比),Null value:空值怎么显示(connected:null值被忽略,直线直接跳转到下一个值,null:空值被保留为空,这将在图中留下空白区域,null as zero:空值被绘制为零值)
2、series overrieds:多坐标轴重写,即可以在这里设置y轴正负轴或z轴的正负轴,需要选择对应的指标,而且因指标、指标别名的变化需重新设置,设置完成后对比效果更好
alias or regex:series图例名称
Y-axis:显示在Y轴左右哪边,
z-index(多series显示前后位置),
stack:堆叠,可选择,metric中A\B\C\D哪个。
transform(negative-Y:将值显示为负数)
fill below to:(将两者值充满颜色 ,由上往下从大值到小值,所以不可以写成min fill below tu max写法如图:)
3、Thresholds & Time regions:
Thresholds 可以写多条临界值在界面上显示,大于400,和大于600两个。如设置了alert,就不能设置这个。
Time regions 时间区域允许你突出特定的时间区域图的,更容易看到例如周末营业时间和/或工作时间。
(5)Alert(告警)
Alert Config
Name & Evaluation interval:在这里可以指定警报规则的名称,以及调度器应该多长时间对警报规则进行评估。
Conditions:目前唯一存在的条件类型是一个查询条件,允许您指定查询字母(metric里查询语句的字母,代表哪个查询语句)、时间范围和聚合函数。
Notifications
在警告选项卡中,还可以指定警报规则通知,以及关于警报规则的详细信息。这个消息可以包含任何信息,关于如何解决这个问题的信息,链接到runbook等。实际的通知被配置并在多个警报之间共享。
State History
警戒状态的变化都被记录在内部注释Grafana的数据库表。状态更改可视为警报规则的图形面板中的注释。
graph更多解析可参考:https://www.jianshu.com/p/7e7e0d06709b
分布统计:Heatmap面板
Heatmap是是Grafana v4.3版本以后新添加的可视化面板,通过热图可以直观的查看样本的分布情况。 在Grafana v5.1版本中Heatmap完善了对Prometheus的支持。
创建步骤:
点击左侧栏的创建Create ----》 dashboard --》Choose Visualization 选中 Heatmap。
点击左侧大图标的 Queries。
在Query下拉框中选中 数据源。
点击 Edit SQL
输入 想要展示的sql语句,需要注意的是,语句中需要包含time_sec 和 metric 以及 value 。
按照如下格式:
SELECT
UNIX_TIMESTAMP() as time_sec,
as value,
as metric
FROM
WHERE $__timeFilter(time_column)
ORDER BY ASC
语句可以相应修改,比如我需要看 不同的时间段中面积的分布。
使用sql如下:
SELECT
UNIX_TIMESTAMP(insert_time) as time_sec,
unit_price as value
FROM basic
WHERE 1=1
效果如图:
目前 Heatmap 只支持使用时间作为 X轴,暂时没发现可以不使用时间作为X轴的方法。
当前状态:SingleStat面板
Singlem Panel侧重于展示系统的当前状态而非变化趋势。如下所示,在以下场景中特别适用于使用SingleStat:
当前系统中所有服务的运行状态; 当前基础设施资源的使用量; 当前系统中某些事件发生的次数或者资源数量等。
创建步骤:
点击左侧栏的创建Create ----》 dashboard --》Choose Visualization 选中 SingleStat。
点击左侧大图标的 Queries。
在Query下拉框中选中 数据源。
点击 Edit SQL
输入 想要展示的sql语句,需要注意的是,语句中需要包含time_sec 和 metric 以及 value 。
使用SQL如下:
SELECT
now() as time,
sum(all_price) as value
FROM basic
WHERE 1=1
需要注意的是 SingleStat使用的sql,除了必备的time字段外, 必须只有一个值,也就是总的数值。
如下所示,是使用SingleStat进行数据可视化的显示效果:
使用变量
在Grafana中可以为Dashboard定义一组变量(Variables),变量一般包含一个到多个可选值。
通过Dashboard页面的Settings选项,可以进入Dashboard的配置页面并且选择Variables子菜单:
用户需要指定变量的名称,后续用户就可以通过$variable_name的形式引用该变量。
Grafana目前支持7种不同的变量类型。
类型
工作方式
Query
允许用户通过Datasource查询表达式的返回值动态生成变量的可选值
Interval
该变量代表时间跨度,通过Interval类型的变量,可以动态改变PromQL区间向量表达式中的时间范围。如rate(node_cpu[2m])
Datasource
允许用户动态切换当前Dashboard的数据源,特别适用于同一个Dashboard展示多个数据源数据的情况
Custom
用户直接通过手动的方式,定义变量的可选值
Constant
常量,在导入Dashboard时,会要求用户设置该常量的值
Text box
输入框,允许用户输入
Ad hoc filters
非常特殊的变量,目前仅适用于某些数据源,InfluxDB和Elasticsearch。它允许您添加键/值过滤器,这些过滤器将自动添加到使用指定数据源的所有度量标准查询中
我们以Text box演示变量的用法,以SingleStat面板为例。
首先设置好环境变量名和类型如下:
点击Add 按钮 看到创建变量成功如下:
点击左边的save按钮,填入版本描述信息。
点击左上的箭头回到 编辑图表界面。
点击左侧的General按钮,在title栏里输入 单价小于$max_price的房子总价,发现变量生效了。
sql中使用如下:
SELECT
now() as time,
sum(all_price) as value
FROM basic
WHERE unit_price < '${max_price}'
保存dashboard后 在 界面上即可通过输入 变量 进行 筛选了。
更多图表json参考
自定义组件–Dashboard List Panel等 https://grafana.com/docs/grafana/latest/features/panels/dashlist/
模版 https://github.com/percona/grafana-dashboards/tree/master/dashboards
模版 http://grafana.openstack.org/dashboards
模版 http://47.96.36.117:3000/d/000000002/nginxfang-wen-tong-ji?orgId=1
你可能感兴趣的:(云存储云计算,可视化,云计算,grafana,mysql,dashboard)
使用Spring Actuator + Micrometer + Prometheus + Grafana监控Spring Boot应用程序
帅过驴的袋鼠
java docker
前言读取本文需要的知识:Java,Docker基本命令当某个应用在生产环境中运行时,监控其运行状态是必要的和明智的。通过实时了解应用程序的运行状况,你能在问题出现之前得到警告,也可以在客户端注意到问题之前解决问题。最终的效果图模块简单介绍SpringActuator:在应用程序离提供众多Web接口,通过它们了解应用运行时的内部状况。Micrometer:为Java平台上的性能数据收集提供了一个通用
LNMP——搭建论坛(Linux、Nginx、Mysql、PHP)
ML908
Web服务器群集 LNMP discuz
LNMP指的是一个基于CentOS/Debian编写的Nginx、Linux、MySQL、PHP,可以在独立主机上轻松的安装LNMP生产环境。此次我们使用LNMP框架部署Discuz!社区论坛应用。Nginx安装Nginx作为Web服务器。相比Apache,Nginx使用更少的资源,支持更多的并发连接,体现更高的效率。Nginx作为负载均衡服务器:Nginx既可以在内部直接支持Rails和PHP,
sql:字符集(ASCII、GB2312、GBK、Unicode和UTF)、Mysql字符集(查看默认字符集和支持的字符集、层次级别、连接字符集、JDBC对连接字符集的影响)
shanshandeisu
sql mysql 数据库
仅为个人学习所用。请支持javaGuide原文。1.字符集1.1.ASCIIASCII字符集是一套现代美国英语适用的字符集,至今为止共定义了128个字符,其中有33个控制字符(比如回车、删除)无法显示。一个ASCII码长度是一个字节也就是8个bit。不过最高位是0仅仅作为校验位,其余7位使用0和1进行组合,所以,ASCII字符集可以定义128(2^7)个字符。1.2.GB2312GB2312字符集
Databend 实现高效实时查询:深入解读 Dictionary 功能
数据库
作者:洪文丽开源之夏2024“支持ExternalDictionaries”项目参与者东北大学软件工程专业云计算方向大二在读,喜欢挑战自我,尝试新鲜事物背景介绍在大型系统中,数据通常存储在多个不同的数据源中,例如PostgreSQL、MySQL和Redis负责存储在线数据,而Databend和ClickHouse则用于存储分析数据。传统的分析查询方法往往需要同时使用到多种不同的数据,通常通过ETL
MySQL出现ERROR 1093-You can‘t specify target table ‘xx‘ for update in FROM clause错误的解决方法
what_2018
数据库 mysql sql 数据库
错误在MySQL中,可能会遇到Youcan'tspecifytargettable'表名'forupdateinFROMclause这样的错误它的意思是说,不能在同一语句中,先select出同一表中的某些值,再update这个表,即不能依据某字段值做判断再来更新某字段的值。--查询user_id为空并且按照account_no分组account_no大于1条的,删除记录deleteformxx_t
【全开源】物业收费管理收费小程序系统源码(FastAdmin+UniApp)
指间代码师
miui52086微码集市 小程序 uni-app 大数据 微信小程序 微信开放平台
一款基于FastAdmin+UniApp开发的一款物业收费管理小程序。包含房产管理、收费标准、家属管理、抄表管理、在线缴费、业主公告、统计报表、业主投票、可视化大屏等功能。为物业量身打造的小区收费管理系统,贴合物业工作场景,轻松提高物业费用收缴率,助力物业节约成本高效运营。智能化管理,提升物业效率引言随着城市化进程的加快,物业管理日益成为社区管理的关键环节。传统的物业收费方式不仅效率低下,还容易引
MySQL-分库分表
飘飘渺渺渺红尘
Java Web Service mysql java 数据库
目录一、shardingsphere1、官方文档2、入门环境搭建2.1、引入依赖2.2、创建数据库2.3、sharding-jdbc分片策略配置2.4、事务2.5、mybatis-plus配置3、分片策略3.1、行表达式分片策略3.2、标准分片策略(1)精准分片算法精准分库算法精准分表算法(2)范围分片算法范围分库算法范围分表算法3.3、复合分片策略复合分片算法4、事务4.1、背景4.2、挑战4.
程序员转行做什么好:数据分析师、AI大模型工程师、产品经理和云计算工程师?
雪碧没气阿
人工智能 产品经理 云计算 大模型训练 LLM AI大模型 程序员
程序员转行做什么好先给结论再说理由:数据分析师、AI大模型工程师、产品经理和云计算工程师。这些领域不仅因应了当前技术发展的趋势,也为程序员提供了转型的广阔舞台和职业发展的新机遇。一起来看看吧!数据分析师:数据驱动决策的关键程序员转行时,应考虑当前市场上的热门行业和岗位需求。例如,AI大模型工程师、数据分析师、前端开发工程师、全栈开发工程师等都是当前市场上需求量较大的职位。就拿数据分析师来说,因其在
elementui树状菜单tree_Java + Element-UI 实现简单的树形菜单
weixin_39682301
一、简单入门级树形菜单实现(纯后台逻辑)1、简介(1)开发环境IDEA+JDK1.8+mysql1.8SpringBoot2.2.6+mybatis-plus此处仅后台开发(返回json数据),前台页面展示后续会讲解。(2)数据表如下,仅供参考,可以添加修改时间、创建时间、逻辑删除等字段。DROPDATABASEIFEXISTStest;CREATEDATABASEtest;USEtest;/*用
小红书获取笔记详情API接口的开发、应用与收益。
前端后端运维数据挖掘api
一、开发基础(一)技术选型在开发小红书获取笔记详情API接口时,后端语言可选用Python搭配Django框架。Django具有强大的路由系统、数据库管理功能以及内置的安全机制,能极大提高开发效率。数据库方面,MySQL以其稳定性和广泛的应用场景成为不错选择,可高效存储笔记的各类信息,包括文字内容、图片链接、点赞数、评论数等。(二)接口设计请求方式:采用HTTPGET请求,通过在URL中携带笔记的
【YashanDB知识库】MySQL的FIND_IN_SET如何在YashanDB改写
数据库
本文内容来自YashanDB官网,原文内容请见https://www.yashandb.com/newsinfo/7323369.html?templateId=171...前言MySQL应用使用的SQL的Where条件存在FIND\_IN\_SET,无法在YashanDB直接执行,需要改写。本文探讨不兼容的原因,并给出改写手段。问题SQL示例MySQL执行成功mysql>selectc1from
20250101面试鸭特训营第9天
Again_acme
面试鸭特训营 面试 职场和发展
更多特训营笔记详见个人主页【面试鸭特训营】专栏2501011.MySQL中如何解决深度分页的问题?什么是深度分页问题--查询第2页的10条数据,即第21~30条数据select*fromstudentorderbyidlimit2,10;--查询第200000页的10条数据,即第200001~200010条数据select*fromstudentorderbyidlimit200000,10;在分
20241230面试鸭特训营第7天
Again_acme
面试鸭特训营 面试 职场和发展
更多特训营笔记详见个人主页【面试鸭特训营】专栏2412301.MySQL中的事务隔离级别有哪些?常见并发问题名称含义脏写一个事务修改了另一个未提交事务的数据脏读一个事务读取了另一个未提交事务修改的数据重复读一个事务多次读取同一数据时,由于其他事务的修改,返回了不同的结果幻读一个事务前后两次在进行范围查询时,由于另一个事务的插入操作,导致前后读取不一致读未提交一个事务可以看到其他事务未提交的数据修改
WPF架构关键技术剖析(2)--XAML、对象序列化、类动态实例化
广州接入
2 Silverlight 4 学习笔记 1 C# 6 编程感悟 wpf delphi ui 语言 assembly html
我们知道对于界面元素的描述,WPF的XAML不是第一个,HTML就要早很多,delphi的dfm也是一种。界面描述和界面交互逻辑的分离是有很多好处的,比如有利于可视化设计,有利于界面复用等。微软总是想一统天下,WPF的出现也是这种理想。当然,这种理想的出现也是有实际需求支持的。对于应用程序架构来说,传统的CS和BS都在相互融合,所以整合这两种模式下的界面设计也有其需求,并有利于两种模式的转换和融合
qt mvc 详解 并举例
爱学习的大牛123
qt开发 qt
QtMVC(Model-View-Controller)是一种设计模式,用于将用户界面与底层数据分离开来。在Qt中,这种模式被称为Model/View架构。以下是对QtMVC的详细解释,并附带示例:1.模型(Model):-负责数据的存储和管理-定义数据的结构和操作方法-不依赖于视图或控制器2.视图(View):-负责数据的可视化展示-从模型获取数据并显示-可以有多个视图展示同一个模型的数据3.委
探索数据之美:Blazor-ApexCharts——为.NET Core而生的图表神器
解雁淞
探索数据之美:Blazor-ApexCharts——为.NETCore而生的图表神器Blazor-ApexChartsAblazorwrapperforApexCharts.js项目地址:https://gitcode.com/gh_mirrors/bl/Blazor-ApexCharts在可视化日益重要的今天,找到一个既高效又灵活的图表库对于开发者来说至关重要。今天,我们要向大家隆重推荐一款专为
MDX语言的语法糖
ByteBlossom666
包罗万象 golang 开发语言 后端
MDX语言的语法糖及其应用分析引言在当今数据驱动的时代,大数据分析和数据可视化已成为企业决策中不可或缺的一部分。MDX(MultidimensionalExpressions,多维表达式)作为一门专为分析多维数据而设计的查询语言,广泛应用于商业智能(BI)工具中。随着技术的发展,MDX语言逐渐演变,形成了其独特的语法糖,以提高开发者的效率和可读性。本文将深入探讨MDX语言的语法糖特性及其在实际应用
MySQL-练习-数据汇总-CASE WHEN
赛丽曼
MySQL mysql 数据库
文章目录一.数据介绍二.数据汇总三.使用CASEWHEN和GROUPBY将数据分组1.使用CASEWHEN自定义分组练习15练习162.CASEWHEN中ELSE的使用练习17练习18练习193.在GROUPBY中使用CASEWHEN练习20练习214.CASEWHEN和COUNT练习22练习235.GROUPBY和CASEWHEN组合使用练习246.SUM中使用CASEWHEN练习257.SUM
mysql 创建外键约束
冷风呀.
mysql 数据库 sql
前言如果一张表中有一个非主键的字段指向了另一张表中的主键,就将该字段叫做外键。一张表中外键可以有多个,也就是不同字段指向了不同表中的主键。方式1-在创建表时设置外键约束[constraint]foreignkey字段名[,字段名2,…]references主键列1[,主键列2,…]createdatabasemydb3;//创建数据库usemydb3;//使用数据库--创建部门表createtab
Grafana
小馋喵知识杂货铺
性能 grafana
Grafana是一款广泛使用的开源数据可视化与监控平台,通过与Prometheus、InfluxDB、Elasticsearch等多种数据源集成,提供强大的监控、数据展示和告警功能。其告警体系在及时通知系统异常、保障业务稳定性方面起到关键作用。Grafana告警体系概述Grafana的告警体系分为以下几个部分:告警规则:用于定义何时触发告警,包括监控指标、评估条件和评估时间间隔。告警规则可以基于面
Azure 基础
SmallFatMan
# Azure azure microsoft 运维 linux 服务器 学习 面试
Azure基础一、Azure基础知识简介二、云计算简介?三、责任共担四、你始终负责:五、云服务提供商始终负责:六、云模型1、私有云2、公有云3、混合云4、多云一、Azure基础知识简介MicrosoftAzure是一个云计算平台,提供一系列不断扩展的服务,可帮助你构建解决方案来满足业务目标。Azure服务支持从简单到复杂的一切内容。Azure具有简单的Web服务,用于在云中托管业务。Azure还支
mysql内外三种连接,MySQL内连接和外连接
LiuYanagi
mysql内外三种连接
INNERJOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。LEFTJOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。RIGHTJOIN(右连接):与LEFTJOIN相反,用于获取右表所有记录,即使左表没有对应匹配的记录。MySQL内连接(innerjoinon)MySQL的内连接使用innerjoinon,它的效果跟使用where是一样的,如果联结的是两个表,那么需
3章mysql表连接查询_mysql学习笔记(六)--- 多表查询之外键、表连接、子查询、索引...
kindle电子书单
3章mysql表连接查询
本章主要内容:一、外键二、表连接三、子查询四、索引一、外键:1、什么是外键2、外键语法3、外键的条件4、添加外键5、删除外键1、什么是外键:主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性外键:是另一表的主键,外键可以有重复的,可以是空值,用来和其他表建立联系用的。所以说,如果谈到了外键,一定是至少涉及到两张表。例如下面这两张表:上面有两张表:部门表(dept)、员工表(em
云计算运维工程师面试
道亦无名
面试 云计算 运维
1.云计算运维工程师的角色和职责是什么?回答:云计算运维工程师负责确保云计算环境(包括硬件和软件系统)的高可用性和稳定性。他们的主要职责包括:监测系统和应用程序的性能,确保它们正常运行。故障排除,快速响应并解决系统或应用程序中出现的问题。容量规划,根据业务需求预测和规划未来的资源需求。升级和维护操作系统、应用程序及相关的基础设施。与开发团队紧密合作,确保新功能的顺利部署和现有功能的持续优化。2.请
【面试系列】DevOps工程师高频面试题及详细解答
野老杂谈
全网最全IT公司面试宝典 面试 devops 职场和发展
欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏:公众号:野老杂谈⭐️全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题.⭐️AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、应用领域等内容。⭐️全流程数据技术实战指南:全面讲解从数据采集到数据可视化的整个过程,掌握构建现代化数据平台和数据仓库的核心技术和方法。文章目录常见的初级面试题1.什
MySQL学习笔记(8)--连接查询
绿皮豚二号
MySQL mysql 数据库
·概念将多张表连在一起查询(会导致记录数行和字段数列发生改变)意义:在关系型数据库设计过程中,实体与实体之间是存在很多联系的。在关系型数据库表的设计过程中,遵循着关系来设计:一对一,一对多,多对多。通常在实际操作中,需要利用这层关系来保证数据的完整性。·交叉连接将两张表的数据与另外一张表彼此交叉(笛卡尔积)表1crossjoin表2--实例select*frommy_studentcrossjoi
数据库存储过程和QT数据库访问并获取返回值的几种方式
沐雨潇竹
QT技术 数据库 qt oracle
数据库存储过程和QT数据库访问并获取返回值的几种方式前言说明:在Qt中使用QSqlQuery执行存储过程时,如果存储过程有RETURN值,但执行成功后没有返回任何结果,这通常是因为存储过程的RETURN值并不会像SELECT查询那样作为数据集返回。存储过程中的RETURN语句只是返回一个整数值,而不是一个查询结果集,因此不会被QSqlQuery直接捕获到结果集中。在SQLServer或MySQL等
MySQL函数
程序研
mysql 数据库
MySQL函数概述MySQL提供了大量的内置函数,这些函数可以分为以下几类:字符串函数:用于操作字符串,如连接、查找、替换等。数值函数:用于进行数学运算,如取整、求绝对值、随机数等。日期和时间函数:用于处理日期和时间,如获取当前日期、时间差、格式化日期等。聚合函数:用于对一组值进行计算并返回单个值,如求和、平均值、最大值等。条件函数:用于根据条件返回不同的值,如IF、CASE等。加密函数:用于加密
mysql之表的约束完整性
程序研
mysql mysql
MySQL表的完整性约束详细介绍在数据库设计中,确保数据的准确性和一致性至关重要。MySQL通过完整性约束机制帮助实现这一目标,防止存储不正确或不一致的数据。本文将详细介绍MySQL中常见的完整性约束,包括NotNull约束、Unique约束、PrimaryKey约束、ForeignKey约束和Check约束,并通过具体的代码例子进行说明。1.NotNull约束NotNull约束确保列中不能存储N
【部署prometheus+pushgateway+node_exporter+opengauss_exporter+grafana监控openGauss数据库】
momge
prometheus 数据库
1.Prometheus组件总览如上图所示,Prometheus监控系统主要由三部分组成:监控数据采集(上图左)、监控数据存储处理(上图中)、监控数据显示上报(上图右)exporters该工具用于将Prometheus不能识别的指标数据转换为Prometheus能识别的指标数据,它可以将各种应用程序、服务、操作系统等的指标数据暴露为HTTP接口,供PrometheusServer采集。pushga
Js函数返回值
_wy_
js return
一、返回控制与函数结果,语法为:return 表达式;作用: 结束函数执行,返回调用函数,而且把表达式的值作为函数的结果 二、返回控制语法为:return;作用: 结束函数执行,返回调用函数,而且把undefined作为函数的结果 在大多数情况下,为事件处理函数返回false,可以防止默认的事件行为.例如,默认情况下点击一个<a>元素,页面会跳转到该元素href属性
MySQL 的 char 与 varchar
bylijinnan
mysql
今天发现,create table 时,MySQL 4.1有时会把 char 自动转换成 varchar
测试举例:
CREATE TABLE `varcharLessThan4` (
`lastName` varchar(3)
) ;
mysql> desc varcharLessThan4;
+----------+---------+------+-
Quartz——TriggerListener和JobListener
eksliang
TriggerListener JobListener quartz
转载请出自出处:http://eksliang.iteye.com/blog/2208624 一.概述
listener是一个监听器对象,用于监听scheduler中发生的事件,然后执行相应的操作;你可能已经猜到了,TriggerListeners接受与trigger相关的事件,JobListeners接受与jobs相关的事件。
二.JobListener监听器
j
oracle层次查询
18289753290
oracle;层次查询;树查询
.oracle层次查询(connect by)
oracle的emp表中包含了一列mgr指出谁是雇员的经理,由于经理也是雇员,所以经理的信息也存储在emp表中。这样emp表就是一个自引用表,表中的mgr列是一个自引用列,它指向emp表中的empno列,mgr表示一个员工的管理者,
select empno,mgr,ename,sal from e
通过反射把map中的属性赋值到实体类bean对象中
酷的飞上天空
javaee 泛型 类型转换
使用过struts2后感觉最方便的就是这个框架能自动把表单的参数赋值到action里面的对象中
但现在主要使用Spring框架的MVC,虽然也有@ModelAttribute可以使用但是明显感觉不方便。
好吧,那就自己再造一个轮子吧。
原理都知道,就是利用反射进行字段的赋值,下面贴代码
主要类如下:
import java.lang.reflect.Field;
imp
SAP HANA数据存储:传统硬盘的瓶颈问题
蓝儿唯美
HANA
SAPHANA平台有各种各样的应用场景,这也意味着客户的实施方法有许多种选择,关键是如何挑选最适合他们需求的实施方案。
在 《Implementing SAP HANA》这本书中,介绍了SAP平台在现实场景中的运作原理,并给出了实施建议和成功案例供参考。本系列文章节选自《Implementing SAP HANA》,介绍了行存储和列存储的各自特点,以及SAP HANA的数据存储方式如何提升空间压
Java Socket 多线程实现文件传输
随便小屋
java socket
高级操作系统作业,让用Socket实现文件传输,有些代码也是在网上找的,写的不好,如果大家能用就用上。
客户端类:
package edu.logic.client;
import java.io.BufferedInputStream;
import java.io.Buffered
java初学者路径
aijuans
java
学习Java有没有什么捷径?要想学好Java,首先要知道Java的大致分类。自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE
APP推广
aoyouzi
APP 推广
一,免费篇
1,APP推荐类网站自主推荐
最美应用、酷安网、DEMO8、木蚂蚁发现频道等,如果产品独特新颖,还能获取最美应用的评测推荐。PS:推荐简单。只要产品有趣好玩,用户会自主分享传播。例如足迹APP在最美应用推荐一次,几天用户暴增将服务器击垮。
2,各大应用商店首发合作
老实盯着排期,多给应用市场官方负责人献殷勤。
3,论坛贴吧推广
百度知道,百度贴吧,猫扑论坛,天涯社区,豆瓣(
JSP转发与重定向
百合不是茶
jsp servlet Java Web jsp转发
在servlet和jsp中我们经常需要请求,这时就需要用到转发和重定向;
转发包括;forward和include
例子;forwrad转发; 将请求装法给reg.html页面
关键代码;
req.getRequestDispatcher("reg.html
web.xml之jsp-config
bijian1013
java web.xml servlet jsp-config
1.作用:主要用于设定JSP页面的相关配置。
2.常见定义:
<jsp-config>
<taglib>
<taglib-uri>URI(定义TLD文件的URI,JSP页面的tablib命令可以经由此URI获取到TLD文件)</tablib-uri>
<taglib-location>
TLD文件所在的位置
JSF2.2 ViewScoped Using CDI
sunjing
CDI JSF 2.2 ViewScoped
JSF 2.0 introduced annotation @ViewScoped; A bean annotated with this scope maintained its state as long as the user stays on the same view(reloads or navigation - no intervening views). One problem w
【分布式数据一致性二】Zookeeper数据读写一致性
bit1129
zookeeper
很多文档说Zookeeper是强一致性保证,事实不然。关于一致性模型请参考http://bit1129.iteye.com/blog/2155336
Zookeeper的数据同步协议
Zookeeper采用称为Quorum Based Protocol的数据同步协议。假如Zookeeper集群有N台Zookeeper服务器(N通常取奇数,3台能够满足数据可靠性同时
Java开发笔记
白糖_
java开发
1、Map<key,value>的remove方法只能识别相同类型的key值
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(1,"a");
map.put(2,"b");
map.put(3,"c"
图片黑色阴影
bozch
图片
.event{ padding:0; width:460px; min-width: 460px; border:0px solid #e4e4e4; height: 350px; min-heig
编程之美-饮料供货-动态规划
bylijinnan
动态规划
import java.util.Arrays;
import java.util.Random;
public class BeverageSupply {
/**
* 编程之美 饮料供货
* 设Opt(V’,i)表示从i到n-1种饮料中,总容量为V’的方案中,满意度之和的最大值。
* 那么递归式就应该是:Opt(V’,i)=max{ k * Hi+Op
ajax大参数(大数据)提交性能分析
chenbowen00
Web Ajax 框架 浏览器 prototype
近期在项目中发现如下一个问题
项目中有个提交现场事件的功能,该功能主要是在web客户端保存现场数据(主要有截屏,终端日志等信息)然后提交到服务器上方便我们分析定位问题。客户在使用该功能的过程中反应点击提交后反应很慢,大概要等10到20秒的时间浏览器才能操作,期间页面不响应事件。
根据客户描述分析了下的代码流程,很简单,主要通过OCX控件截屏,在将前端的日志等文件使用OCX控件打包,在将之转换为
[宇宙与天文]在太空采矿,在太空建造
comsci
我们在太空进行工业活动...但是不太可能把太空工业产品又运回到地面上进行加工,而一般是在哪里开采,就在哪里加工,太空的微重力环境,可能会使我们的工业产品的制造尺度非常巨大....
地球上制造的最大工业机器是超级油轮和航空母舰,再大些就会遇到困难了,但是在空间船坞中,制造的最大工业机器,可能就没
ORACLE中CONSTRAINT的四对属性
daizj
oracle CONSTRAINT
ORACLE中CONSTRAINT的四对属性
summary:在data migrate时,某些表的约束总是困扰着我们,让我们的migratet举步维艰,如何利用约束本身的属性来处理这些问题呢?本文详细介绍了约束的四对属性: Deferrable/not deferrable, Deferred/immediate, enalbe/disable, validate/novalidate,以及如
Gradle入门教程
dengkane
gradle
一、寻找gradle的历程
一开始的时候,我们只有一个工程,所有要用到的jar包都放到工程目录下面,时间长了,工程越来越大,使用到的jar包也越来越多,难以理解jar之间的依赖关系。再后来我们把旧的工程拆分到不同的工程里,靠ide来管理工程之间的依赖关系,各工程下的jar包依赖是杂乱的。一段时间后,我们发现用ide来管理项程很不方便,比如不方便脱离ide自动构建,于是我们写自己的ant脚本。再后
C语言简单循环示例
dcj3sjt126com
c
# include <stdio.h>
int main(void)
{
int i;
int count = 0;
int sum = 0;
float avg;
for (i=1; i<=100; i++)
{
if (i%2==0)
{
count++;
sum += i;
}
}
avg
presentModalViewController 的动画效果
dcj3sjt126com
controller
系统自带(四种效果):
presentModalViewController模态的动画效果设置:
[cpp]
view plain
copy
UIViewController *detailViewController = [[UIViewController al
java 二分查找
shuizhaosi888
二分查找 java二分查找
需求:在排好顺序的一串数字中,找到数字T
一般解法:从左到右扫描数据,其运行花费线性时间O(N)。然而这个算法并没有用到该表已经排序的事实。
/**
*
* @param array
* 顺序数组
* @param t
* 要查找对象
* @return
*/
public stati
Spring Security(07)——缓存UserDetails
234390216
ehcache 缓存 Spring Security
Spring Security提供了一个实现了可以缓存UserDetails的UserDetailsService实现类,CachingUserDetailsService。该类的构造接收一个用于真正加载UserDetails的UserDetailsService实现类。当需要加载UserDetails时,其首先会从缓存中获取,如果缓存中没
Dozer 深层次复制
jayluns
VO maven po
最近在做项目上遇到了一些小问题,因为架构在做设计的时候web前段展示用到了vo层,而在后台进行与数据库层操作的时候用到的是Po层。这样在业务层返回vo到控制层,每一次都需要从po-->转化到vo层,用到BeanUtils.copyProperties(source, target)只能复制简单的属性,因为实体类都配置了hibernate那些关联关系,所以它满足不了现在的需求,但后发现还有个很
CSS规范整理(摘自懒人图库)
a409435341
html UI css 浏览器
刚没事闲着在网上瞎逛,找了一篇CSS规范整理,粗略看了一下后还蛮有一定的道理,并自问是否有这样的规范,这也是初入前端开发的人一个很好的规范吧。
一、文件规范
1、文件均归档至约定的目录中。
具体要求通过豆瓣的CSS规范进行讲解:
所有的CSS分为两大类:通用类和业务类。通用的CSS文件,放在如下目录中:
基本样式库 /css/core
C++动态链接库创建与使用
你不认识的休道人
C++ dll
一、创建动态链接库
1.新建工程test中选择”MFC [dll]”dll类型选择第二项"Regular DLL With MFC shared linked",完成
2.在test.h中添加
extern “C” 返回类型 _declspec(dllexport)函数名(参数列表);
3.在test.cpp中最后写
extern “C” 返回类型 _decls
Android代码混淆之ProGuard
rensanning
ProGuard
Android应用的Java代码,通过反编译apk文件(dex2jar、apktool)很容易得到源代码,所以在release版本的apk中一定要混淆一下一些关键的Java源码。
ProGuard是一个开源的Java代码混淆器(obfuscation)。ADT r8开始它被默认集成到了Android SDK中。
官网:
http://proguard.sourceforge.net/
程序员在编程中遇到的奇葩弱智问题
tomcat_oracle
jquery 编程 ide
现在收集一下:
排名不分先后,按照发言顺序来的。
1、Jquery插件一个通用函数一直报错,尤其是很明显是存在的函数,很有可能就是你没有引入jquery。。。或者版本不对
2、调试半天没变化:不在同一个文件中调试。这个很可怕,我们很多时候会备份好几个项目,改完发现改错了。有个群友说的好: 在汤匙
解决maven-dependency-plugin (goals "copy-dependencies","unpack") is not supported
xp9802
dependency
解决办法:在plugins之前添加如下pluginManagement,二者前后顺序如下:
[html]
view plain
copy
<build>
<pluginManagement