grafana读取mysql数据源(一)

创建Mysql Docker

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=admin -p:3306:3306 -d mysql:8.0.26

进入容器中的mysql

docker exec -it some-mysql bash
mysql -h localhost -u root -padmin


创建grafana可以读取的mysql数据源

create database grafana;

CREATE USER 'grafana' IDENTIFIED BY 'grafana';

GRANT SELECT ON grafana.* TO 'grafana';

创建mysql表,并插入数据

create table test (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP COMMENT '修改时间',
`group_id` tinyint NOT NULL COMMENT '指标分组id',
`group_name` varchar(256) NOT NULL COMMENT '指标分组名',
`sale`  BIGINT NOT NULL COMMENT '指标值',
 primary key (id)
);

INSERT INTO test (group_id,group_name,sale) VALUES(1,"g1",1);
INSERT INTO test (group_id,group_name,sale) VALUES(1,"g1",1);
INSERT INTO test (group_id,group_name,sale) VALUES(2,"g2",2);
INSERT INTO test (group_id,group_name,sale) VALUES(2,"g2",2);

SELECT
  $__timeGroupAlias(create_time,$__interval),
  group_name AS metric,
  sum(sale) AS "sale"
FROM test
WHERE
  $__timeFilter(create_time)
GROUP BY 1,2
ORDER BY $__timeGroup(create_time,$__interval)

"$__timeGroup",进行时间上的取整,按分钟整点将数据切割为多个“$__interval”范围的数据桶,为后续的聚合计算做准备。将被 GROUP BY 子句中可用的表达式替换。 例如,*cast(cast(UNIX_TIMESTAMP(dateColumn)/(300) as signed)*300 as signed),*。

“$__timeFilter(dateColumn)”将被使用指定列名称的时间范围过滤器替换。 例如,dateColumn BETWEEN FROM_UNIXTIME(1494410783) AND FROM_UNIXTIME(1494410983)

"$__interval" 最小聚合的时间范围,本例是1分钟

 

查询15分钟区间范围,只有两个点

 

翻译成mysql的sql为

SELECT
  UNIX_TIMESTAMP(create_time) DIV 60 * 60 AS "time",
  group_name AS metric,
  sum(sale) AS "sale"
FROM test
WHERE
  create_time BETWEEN FROM_UNIXTIME(1633936515) AND FROM_UNIXTIME(1633937415)
GROUP BY 1,2
ORDER BY UNIX_TIMESTAMP(create_time) DIV 60 * 60

UNIX_TIMESTAMP(create_time) DIV 60 * 60是将时间戳除以60,再乘以60,取整为分钟级别。

grafana配置

 

grafana展示的点

 

 

Flink CDC是一个可以直接从MySQL数据库读取全量数据和增量变更数据的组件。它是由Flink社区开发的flink-cdc-connectors组件,可用于实时捕获数据库的变动并将其写入消息中间件以供其他服务进行订阅和消费。使用Flink CDC读取MySQL数据的过程如下: 1. 首先,确保你已经正确安装和配置了Flink和flink-cdc-connectors组件。 2. 在Flink的作业中,使用CDC Connector来定义一个source,用于读取MySQL的数据。通过配置连接参数、数据库表信息和读取起始位置等,你可以指定要读取数据源读取的方式。 3. 在作业中使用Flink的数据转换和处理算子对读取到的MySQL数据进行处理和转换。你可以根据具体需求进行数据清洗、过滤、聚合等操作。 4. 最后,将处理后的数据发送到目标位置,可以是其他存储系统、消息队列或其他下游服务。 需要注意的是,为了使用Flink CDC读取MySQL数据,你需要确保正确配置了MySQL数据库的连接信息和权限,并在Flink作业中正确配置了CDC Connector的参数。此外,你还需要确保Flink作业和MySQL数据库之间的网络连接正常。 引用<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Flink CDC实时获取MySQL数据](https://blog.csdn.net/weixin_41507897/article/details/120123176)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [基于FlinkSQLCDC的实时数据同步方案](https://download.csdn.net/download/weixin_38691199/15541340)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值