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

TDengine 对接微软 SSRS 报表系统

简介

SQL Server Reporting Services (SSRS) 作为微软 SQL Server 数据库平台内置组件,为企业级报表制作、浏览及管理提供强大支持。与微软旗下另一可制作灵活多样报表工具 Power BI 相比,SSRS 更适合于制作传统固定格式报表。

TDengine 支持标准 ODBC 接口,SSRS 可实现无缝对接 TDengine。TDengine 高性能数据存储与查询能力为 SSRS 报表引擎提供实时数据源,SSRS 可视化报表生成功能则将 TDengine 中的物联网、金融等时序数据转化为直观业务洞察信息,满足了企业对跨平台报表解决方案的需求,同时通过标准化接口保障了数据交互安全与稳定性,为构建现代化数据驱动型组织提供坚实的技术支撑。

前置条件

本示例需准备两台服务器两台客户端,搭建 SSRS 示例环境,网络部署图:

在这里插入图片描述

环境准备如下:

TDengine 服务器

  • 操作系统不限。
  • 安装 TDengine 3.3.3.0 或以上服务器版(企业及社区版均可)。
  • taosAdapter 服务正常运行,检查参考 taosAdapter 使用手册。
  • 服务器 IP:192.168.2.124。
  • 提供 WebSocket 服务:端口 6041(默认)。

SSRS 服务器

  • 要求 Windows 操作系统。

  • 安装 TDengine 3.3.3.0 或以上 Windows 客户端版(默认安装 TDengine ODBC 驱动)。

  • 安装 Microsoft SQL Server 2022 且数据库服务正常运行,下载安装。

  • 安装 Microsoft SQL Server 2022 Reporting Service 且报表服务正常运行,下载安装。

  • 配置 Microsoft SQL Server 2022 Reporting Service 使用 IP 地址对外提供服务。

    在这里插入图片描述

    记录上图中“Report Server Web Service URLs”址址,会在后面步骤中使用。

报表制作客户端

  • 要求 Windows 操作系统。

  • 安装 TDengine 3.3.3.0 或以上 Windows 客户端版(默认安装 TDengine ODBC 驱动)。

  • 安装 Microsoft Report Builder(32 位),提供报表开发服务,下载安装。

  • 配置 Microsoft Report Builder 上报报表服务器地址,应填写前面记录的“Report Server Web Service URLs”址址。

    在这里插入图片描述

办公客户端

  • 操作系统不限。
  • 网络要求可连接至 SSRS 服务器。
  • 安装任意一款浏览器软件。

配置数据源

SSRS 通过 ODBC 访问 TDengine 数据源,配置步骤如下:

  1. SSRS 服务器配置 ODBC 数据源
    打开 ODBC 数据源管理器(64 位),选择“System DSN”->“Add…”->“TDengine”->“Finish”, 弹出配置窗口如下:

    在这里插入图片描述

    • DSN:填写“TDengine”。
    • Connect type:选择“WebSocket”。
    • URL:http://192.168.2.124:6041
    • User/Password:填写连接 TDengine 数据库用户名/密码,不填写使用默认。

    点击“Test Connection”,连接成功表示配置正确,点击“OK”保存配置。

  2. 报表制作 Window 客户端配置 ODBC 数据源。
    打开 ODBC 数据源管理器(32 位),选择“System DSN”->“Add…”->“TDengine”->“Finish”, 弹出 ODBC 数据源配置窗口,内容填写请与上一步相同。

    点击“Test Connection”,连接成功表示配置正确,点击“OK”保存配置。

  3. Report Builder 创建数据源连接。
    启动 Report Builder,左侧区域内“Data Source”项上点右键,点击“Add Data Source…”菜单,如图:

    在这里插入图片描述

    • Name:填写数据源名称。
    • 数据源方式:选择第二项“Use a connection embedded in my report”。
    • Select Connection type:选择“ODBC”数据源。
    • Connection string:点击旁边“Build…”按钮,按上图选择填写。

    点击“Test Connection”,连接成功表示配置正确,点击“OK”保存配置。

数据分析

场景介绍

某小区有 500 台智能电表,数据存储在 TDengine 数据库中,电力公司要求数据运营部门制作一张能够分页浏览此小区每台智能电表最后一次上报电压及电流值的报表,分析居民用电情况,同时要求报表可在公司内任意一台办公电脑上登录后浏览。

开发人员使用微软提供的 SSRS 报表服务完成此项工作,使用 Report Builder 制作好报表,上传至报表服务器后供相关人员浏览。

数据准备

创建一张超级表,500 子表,每子表代表一台智能电表,生成电压数据在 198 ~ 235 内波动,电流在 10A ~ 30A 内波动。

制作报表

  1. 打开 Report Builder 开始制作报表。
  2. 创建新数据集。
    左侧区域内“DataSource”->“DataSource1”->“Add Dataset…”。

在这里插入图片描述

  • Name:填写数据集名称。
  • 数据集方式:选择第二项“Use a dataset embedded im my report”。
  • Data source:选择前面创建好的“DataSource1”。
  • Query type:选择“text”类型查询,填写如下查询分析 SQL:
SELECT tbname        as DeviceID, last(ts)      as last_ts, last(current) as last_current, last(voltage) as last_voltage 
FROM test.meters 
GROUP BY tbname 
ORDER BY tbname;
  1. 制作报表页面。
    菜单“Insert”->“Table”->“Insert Table”,插入空表格,用鼠标把左侧“DataSet1”中数据列用拖到右侧报表制作区域内放置到自己想要展示的列上,如图:

    在这里插入图片描述

  2. 预览。
    点击菜单“Home”->“Run”按钮,预览报表效果。

    在这里插入图片描述

  3. 退出预览。
    点击工具栏左侧第一个图标“Design”关闭预览,回到设计界面继续设计。

发送报表

  1. 保存报表到服务器上。
    点击“File”菜单->“Save”,如图:

    在这里插入图片描述

  2. 报表数据源连接组件发布到服务器。
    点击“File”菜单->“Publish Report Parts”。
    在这里插入图片描述

    选择第一项“Pubsh all report parts with default settings”,会把报表使用数据源配置一起发送至服务器。

浏览报表

报表发送至服务器后,报表即被共享出去了,可在任意客户端通过浏览器访问浏览报表数据。

  1. 查看报表浏览地址。
    报表浏览地址在 SSRS 服务器配置中,如下:

    在这里插入图片描述

  2. 输入访问授权。
    客户端第一次访问报表数据时,会弹出授权窗口要求登录,输入报表服务器操作系统登录账号即可。

    在这里插入图片描述

    账号输入成功后,会出现如下页面,可以看到前面保存上传的报表“meters”。

    在这里插入图片描述

  3. 分页浏览报表。
    点击“meters”,会分页展示小区内所有智能电表最新采集数据。

    在这里插入图片描述

管理报表

对 SSRS 服务器上报表进行管理,可参考 微软官网文档。

以上流程,我们使用了 SSRS 开发了基于 TDengine 数据源的一个简单报表制作、分发、浏览系统,更多丰富的报表还有待您的进一步开发。

http://www.xdnf.cn/news/633079.html

相关文章:

  • Go 语言学习 Protobuf 连接 gRPC 实现 AI 接口
  • Linux 的编辑器--vim
  • 初识消息队列
  • C++单例模式与线程安全
  • webpack面试问题
  • 理解HTTP基本认证与表单登录认证
  • 自动化安全脚本学习
  • 9:OpenCV—模板匹配
  • React声明式编程(手动控制,大型项目,深度定制)与Vue响应式系统(自动优化,中小型项目,快速开发)区别
  • openjdk底层(hotspot)汇编指令的内存分布
  • 掌阅iReader新形态墨水屏Tango发布:科技与美学共舞,开启灵动阅读新体验
  • C++星际密码破译全国信息素养大赛复赛决赛 C++小学/初中组 算法创意实践挑战赛 内部集训模拟题详细解析
  • SAR ADC的功耗设计
  • 图解BERT
  • 免费开源 PDF 阅读器 自带虚拟打印机功能 多格式兼容
  • 【计算机网络】基于UDP进行socket编程——实现服务端与客户端业务
  • threejs模型对象、材质
  • 健身网l;l;j
  • Java21 并发处理说明
  • Python数据可视化实战:让数据从「数字堆」变成「故事书」
  • git push出现 “HTTP 400 curl 22 The requested URL returned error: 400...“错误
  • 计网5:HTTP/TCP的长连接和短连接的区别以及各自的应用场景
  • JavaSE核心知识点03高级特性
  • Linux系统之----磁盘硬件
  • 【25软考网工】第八章 (1)交换机基础
  • C# 预处理器指令
  • 人工智能概论(一)初见人工智能笔记
  • MultipartFile实现文件上传
  • python 程序实现了毫米波大规模MIMO系统中的信道估计对比实验
  • 基于CEEMDAN-Transformer-BiLSTM的多特征风速气候预测的完整实现方案及PyTorch源码解析