客户案例|MemFire Cloud助推应急管理业务,打造百万级数据可视化大屏

【架构篇】Supabase架构和功能介绍 Supabase的SDK也是通过组合多个客户端库实现的,以JavaScript SDK为例:如上图所示,supabase-js实际上是粘合了多个不同的组件的sdk客户端,这样做的好处:开发者不需要关注某个具体的组件如何工作,全部统一使用supabase-js的接口访问后端服务。supabase-js帮助开发者完成了各个组件间用户认证鉴权的统一处理。Supabase以PostgreSQL为核心,组合使用了很多优秀的开源工具,为开发者提供了一个架构良好、简单易用的开发平台。 阅读详情

「导语」
硬石科技,成立于2018年,总部位于武汉,是一家专注于应急管理行业和物联感知预警算法模型的技术核心的物联网产品和解决方案提供商。硬石科技作为一家高新技术企业,持有6项发明专利,拥有100余项各类平台认证和资质,荣获国家级及省市级荣誉共计13项,受到应急主管部门的高度认可。多年来,硬石科技致力于为应急管理业务提供优质服务,并取得了显著成就。

硬石科技专业致力于应急管理行业,提供以物联网技术和感知预警算法模型为核心的先进产品和解决方案。应急管理行业的业务非常繁多和复杂,很多时候都需要在短时间内交付出稳定高效的业务系统。譬如下图某市的应急综合指挥大屏,这款大屏集成了先进的物联网技术和感知预警算法模型,为应急管理部门提供了强大的工具和支持。通过实时监测和分析数据,应急隐患排查大屏能够帮助应急主管部门在事前、事中和事后快速响应和处理突发事件。

在这里插入图片描述
通过之前对MemFire Cloud基本了解,它的一些特性比如自动生成API接口、云存储等功能正是本次需求所需要的。综合考量下,我们决定使用MemFire Cloud来开发此次的应急大屏。

那么,这样一套大屏具体是如何使用MemFire Cloud开发的呢?在开发过程中又会遇到哪些挑战呢?

应急综合指挥大屏带来的三大挑战

1.大量不同维度的隐患数据需要进行统计分析,需要开发各种api接口
隐患数据来源于不同维度的数据采集,包括各个行业领域的数据(几十个领域)、乡镇层面的社区数据,以及不同级别和来源的隐患数据等。为了满足前端的多样化数据展示需求,需要开发大量的API接口来提供各个维度的数据。

2.多样性展示需求、数据关联性复杂,实现各种统计分析
由于隐患数据的多样性和与之相关联的多个数据表,表与表之间存在较强的数据关联性。因此,特定场景下需要进行复杂的统计分析才能获得所需的数据。

3.存储并检索海量的非结构化的隐患数据
隐患大屏需要存储海量的隐患数据的素材,包括图片、视频和附件。这种情况下,需要具备强大的存储和管理大数据的能力,以确保能够有效地存储和检索这些数据的素材。

面对挑战,MemFire Cloud如何破局

那么面对应急综合指挥大屏带来的三大挑战,MemFire Cloud如何一一攻克?

首先,针对大量不同维度的数据需要开发各种API接口的挑战。在项目过程中,根据业务需求我们需要根据时间周期、隐患等级、处置状态、行业领域和行政区划等多个不同的维度来统计和分析,整个过程中需要开发接近30个api接口。采用MemFire Cloud自动生成REST接口,大约一天的工作量就可以获得所有的接口。中途遇到两次需求变更的情况,我们也无需重新编写接口和前后端联调,只需要根据自动生成的API接口返回数据进行一些数据结构的调整即可。这样的优化方案极大地简化了开发流程,提高了开发效率,并确保了应对需求变更的灵活性。

接着,面对多样性展示需求、数据关联性复杂,实现各种统计分析的挑战。在我们开发过程中遇到一些困难,例如在数据表之间没有建立外键关联的情况下如何进行多表关联查询。比如像这样的需求场景:

现在需要查询当前区县下的所有乡镇的数据,乡镇的顺序必须根据表yj_countryside_info里countryside_type = '1'后的乡镇的顺序。但是乡镇的数据又在表sys_dept里,为何不直接使用yj_countryside_info表呢?这是因为yj_countryside_info表里是一个数据字典,里面有很多测试乡镇,它并不能代表当前区县的所有乡镇。在这种情况下,我们遇到的问题就是:

「当需要查询一个数据表的数据时,这个数据表的过滤是依赖于另外一张表的某些数据或某个字段时,但是这两张表又未建立关联关系,传统的sql脚本是可以通过左关联查询到的,但是在使用MemFire Cloud目前api是无法做到的。」

我们请教了MemFire Cloud相关的技术人员,他们耐心的解答并给出了三种解决方案。

a. 创建视图

「优点」:视图可以根据特定的业务需求和查询条件,对数据进行过滤、排序、聚合等操作,从而简化了对数据的操作。使用视图可以将复杂的查询逻辑封装到一个视图中,使得用户可以通过简单的查询语句获取所需的数据。

「缺点」:它们可能会影响性能,因为它们需要消耗额外的资源;它们可能不能够提供最新的数据。

b.使用数据库函数

原理就是写一个可以统计数据并且返回统计数据的sql脚本的方法跑在数据库,然后通过MemFire Cloud的rpc数据库方法在前端调用该函数。

例如:

get_sub_dept就是我们定义的数据库函数

CREATE OR REPLACE FUNCTION get_sub_dept(my_dept_id varchar)
RETURNS TABLE (sub_dept_id VARCHAR)
AS $$
BEGIN
    RETURN QUERY select  dept_id from sys_dept d where my_dept_id = any (string_to_array(d.ancestors, ','));
END;
$$ LANGUAGE plpgsql;

在前端调用此方法

const { data, error } = await supabase.rpc('get_sub_dept', { my_dept_id: '1111' })

「缺点」:对前端人员对数据库知识和设计有一定的要求,存在数据库里面的代码,不好维护。

c.子查询

熟悉业务和熟悉数据表的设计的同时和条件允许下,看是否可以通过子查询方式过滤数据。

例如sql脚本:

SELECT
        sd.dept_id,
        sd.dept_name 
FROM
        sys_dept sd 
WHERE
        sd.del_flag = '0' 
        AND sd.dept_id IN ( SELECT yci.dept_id FROM yj_countryside_info yci WHERE yci.countryside_type = '1' ) 
ORDER BY
        sd.order_num

转换为api查询:

const xz_list = await supabase
  .from('yj_countryside_info')
  .select('dept_id').eq('countryside_type', '1')
if (xz_list && xz_list.data.length > 0) {
  const xz_array = xz_list.data.map(item => item.dept_id);
  const { data, error } = await supabase
    .from('sys_dept')
    .select('dept_id,dept_name').eq('del_flag', '0').order("order_num", { ascending: true }).in('dept_id', xz_array)
}

经过综合考虑,我们选择了方案C来解决这个问题。我们发现方案C相对于方案A和方案B,在后期的维护成本方面有很大的降低。

最后,面对存储海量隐患相关的图片、视频和附件的挑战。我们借助MemFire Cloud云存储具备强大的存储和管理大数据的能力,创建了存储桶来统一存储海量素材,并使用REST接口及SDK快速实现了文件上传、下载和访问等功能的开发,满足了项目的需求。

总结

通过借助MemFire Cloud的强大能力,项目开发周期由原来的一个月缩短到现在的两周,投入人力由原来的两个减少为一个。这使得开发变得更加高效和简化,抗住了三大数据的挑战,完全不用担心底层数据的问题,保证了数据大屏快速稳定的上线,缩减了时间与人力成本。

使用MemFire Cloud,我们可以专注于前端开发工作,而无需担心后端的搭建和维护,也不需要开发接口,前端只需要关注页面的样式和功能交互。这种快速开发和节约成本的方法,能够更好地实现应急大屏的开发需求。

当然,在使用MemFire Cloud的时候也遇到了一些在使用文档上的不便,比如花费了很长时间才找到自己想要的文档内容。也希望平台能够对此关注起来哈!总体来说,我们对使用MemFire Cloud的开发海量数据大屏的体验还是感到非常惊喜的!也希望MemFire Cloud能够越来越强大!

应用实战|使用DBGate管理MemFireDB数据库 DbGate是一款开源、开源、跨平台的数据库管理功能,适用于 Windows、Linux、MacOS多种环境,提供强大的功能服务。免费与开源DbGate是一个免费开源的软件,在 MIT 许可下提供源代码,源代码托管在GitHub(https://github.com/dbgate/dbgate)。跨数据库DbGate提供了多种数据库支持,目前包括 MySQL、PostgreSQL、SQL Server、MongoDB、SQLite 、Redis、MariaDB等。跨平台。 阅读详情

相关推荐

骁龙X Elite笔记本重装Windows 11 Arm64系统完整指南与避坑手册

UEFI安全启动和Arm64架构是理解现代计算设备系统部署的基础。UEFI取代传统BIOS,提供了更安全的启动环境和模块化固件接口,而Arm64架构则以其高能效特性,在移动和新兴PC领域日益重要。其技术价值在于为设备带来更快的启动速度、更强的安全防护以及更优的功耗表现。在应用场景上,这直接关系到搭载高通骁龙X Elite等Arm处理器的笔记本电脑的系统安装与维护。对于这类设备,重装系统远非插入通用安装盘那么简单,核心挑战在于必须使用专为Arm64编译的Windows镜像,并需提前集成芯片组、网络等硬件的专属

weixin_33428613的博客 476

数据可视化大屏应急管理综合指挥调度系统完整案例详解(PHP-API、Echarts、百度地图)

本次数据可视化大屏应急管理综合指挥调度系统的开发,需求虽然简单,但是实现的过程确是十分的繁琐。必须将产品加载流程图分析清晰,做好底层的逻辑,才能根据需求开发对应的API接口。

挖掘大数据价值,让决策者快速洞悉趋势,让大众读懂数据背后的故事。 3573

STM32H743必要外围电路分析

写在前面:这篇博客是我第一次绘制STM32最小系统板的过程记录。 2020-1-11 BOOT STM32采用ARM内核,和ARM处理器一样,都有专门的boot脚决定单片机从何处启动。 在官方数据手册的第105页,我们可以看到 系统复位后,在SYSTICK的第四个上升沿锁存BOOT引脚的值,复位后,BOOT引脚可以由用户自由配置而不会影响系统正常运行。 BOOT引脚决定了自举存储器地址,当BO...

Cui_Hongwei的博客 1万+

【示例】智慧水利、水灾应急管理大屏模板精选

数据可视化大屏只能尽可能地将有用的信息整合到一张屏幕上,方便管理者更好地获取、管理信息以及得到预警罢了。

m0_69539167的博客 1701

mcgs数据导出到U盘

mcgs触摸屏在工业中应用还是很多的,尤其他的脚本功能策略功能等将开放性放到了最大,让用户可以根据实际需求进行自由创作,正因为这样,对一些初学者就不是很友好,初学者想要简单操作就能实现功能,但是mcgs不可能两者兼备,在做工业设备,一些数据的采集保存就比较常见,但是mcgs没有相关按钮能够直接实现将数据导出到U盘的功能。这里我给大家讲解关于mcgs将报警历史记录、日志记录、历史数据记录导出到U盘的方法。

qq_24866535的博客 6232

HDMI与DisplayPort混搭方案:如何用Xilinx Video PHY Controller实现多协议视频接口转换

本文详细解析了如何利用Xilinx Video PHY Controller IP核实现HDMI与DisplayPort协议转换,涵盖混合视频接口架构设计、GT收发器动态重配置策略及跨协议时钟域处理方案。通过实战案例和配置技巧,帮助开发者构建高性能多协议视频转换系统,适用于医疗影像、工业控制等场景。

weixin_30776273的博客 447

防患于未然才是预警大屏的意义所在,看它是如何做的?

总之,预警大屏通过数据采集与整合、数据分析与处理、可视化展示、预警机制和协同响应等多个环节的协同作用,实现了防患于未然的目标。它为企业和组织提供了一种有效的风险监测和预警工具,帮助他们提前发现潜在的风险和问题,采取及时有效的措施进行防范和应对,保障生产安全、运营稳定和业务可持续发展。

2401_82881178的博客 1373

从 SM30 到 Fiori:在 SAP BTP ABAP Environment 里创建 Business Configuration 配置维护对象的完整路径

摘要 在SAP BTP的ABAP环境中,传统SAP GUI和SM30配置方式被Business Configuration (BC)替代。BC通过Fiori应用维护配置,支持传输和权限控制。配置表需满足可维护性条件,如允许数据维护、包含技术字段等。通过ADT生成Maintenance Object和Transport Object,实现配置发布与治理。权限管理需创建IAM App和Business Catalog,确保配置可维护。BC在云端延续了可控、可追溯、可发布的治理原则。 (字数:150)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 239

应急管理局应急管理大数据治理项目方案

项目将构建数据中台和指挥平台,实现数据资源的集约化管理、大数据资源服务和数据开放,以及基于安全API的数据资源能力开放。项目将重点建设数据中台,包括数据接入、数据治理、应急主题库和专题库建设、数据共享交换和数据服务管理等内容。然而,项目也面临组织、管理、技术和环境等方面的风险,需要采取有效措施进行防范和应对。总之,该应急管理大数据治理平台项目是一个重要的信息化建设项目,将有力提升信息化水平和应急管理能力,为应对自然灾害和突发事件提供有力支持。篇幅限制完整版PPT获取请关注微信公众:数字化转型home。

cdfunlove的博客 373

使用Python爬虫抓取政府网站政务信息:公告、通知的自动化抓取与分析

通过结合Requests、BeautifulSoup、Selenium等技术,你能够高效地抓取政府网站的数据,并通过MySQL存储与Pandas分析这些数据。通过自动化手段抓取这些信息,不仅可以提高数据收集的效率,还能够实时获取最新的政务动态,为政策研究、舆情分析等提供宝贵数据。我们将通过Python的Requests、BeautifulSoup、Selenium等工具,结合最新的技术实现一个完整的爬虫系统,帮助你轻松抓取并分析政务信息。通过爬虫,我们可以自动化地从指定网站上抓取公告、新闻、通知等信息。

2201_76125261的博客 1907

华为OD机试 - 小火车最多人时所在园区站点(Java 2024 E卷 100分)

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 995

大屏可视化决策平台升提公安应急保障效能

随着经济的快速发展和科学技术的突飞猛进,影响政治稳定、社会安定的因素变得越来越复杂,事故灾难、自然灾害、社会安全事件以及公共卫生事件等各类突发公共安全事件频发,潜在风险和隐患不断演化,突发公共安全事件的防控及处置难度不断加大,为了维护国家安全和社会的和谐稳定,我国各级政府高度重视突发公共事件应急保障工作。 我国应急管理体系的发展 很多发达国家在应急管理方面,已经建立起相对成熟和完善的应急管理机

digihail2016的博客 2403

大模型_WIN10使用hyper-v安装Ubuntu24.04虚拟机_配置独立静态IP地址_连接外网_并与内网其他机器互通_通过容器安装Dify_超详细安装过程002--人工智能工作笔记0247

本文详细描述了在Hyper-V环境中配置网络、安装Ubuntu虚拟机、设置IP地址、安装Docker以及部署Dify应用的过程。首先,通过Hyper-V管理器创建外部虚拟交换机(ExternalSwitch),并配置本机、虚拟交换机和Ubuntu虚拟机的IP地址,确保网络互通。接着,在Ubuntu虚拟机中安装Open-VM-Tools和Docker,并配置Docker的国内镜像源。最后,通过Git克隆Dify源码,使用Docker Compose启动Dify应用,完成部署。整个过程涵盖了网络配置、虚拟机管理

添柴程序猿的专栏 1750

应急管理大屏可视化决策系统产品白皮书

1 产品概述 数字冰雹应急管理大屏可视化决策系统,面向应急指挥中心大屏环境,具备优秀的大数据显示性能以及多机协同管理机制,支持大屏、多屏、超大分辨率等显示情景。 支持整合应急管理部门现有信息系统的数据资源,覆盖日常监测监管、应急指挥调度等多个业务领域,凭借先进的人机交互方式,实现数据融合、数据显示、数据分析、数据监测等多种功能,可广泛应用于应急监测指挥、分析研判、展示汇报等场景。 2 系统功能: 2.1 应急管理综合态势监测 支持整合城市安全、生产安全、自然灾害、重大事故等各领域信息资源,基于..

digihail2016的博客 6734

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

交通大数据可视化保障应急指挥的“智慧决策”

交通应急是城市应急指挥体系的重要组成部分,交通拥堵、交通事故频发、交通污染等问题对城市运行和居民生活都造成了严重的影响。城市交通的应急管理迫切需要一个实时、准确、高效的可视化监测平台,能够随时获取交通运行态势,哪里发生了交通事故、哪里交通拥挤、哪个路段最为畅通...能够及时共享各类预警信息,帮助交通管理部门提升应急指挥决策能力,那么在大数据时代下,交通领域的应急指挥调度需要哪些智慧决策支持呢?

digihail2016的博客 7017

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

应用实战|微信小程序开发示例之在线商城

拿来即用,应用开发人员再也不用为撰写API而发愁。MemFire Cloud 为开发者提供了简单易用的云数据库(表编辑器、自动生成API、SQL编辑器、备份恢复、托管运维),很大地降低开发者的使用门槛。环球商城是一个可以查看全球最新精品及不同分类商品的商城类小程序。

NimbleX_的博客 2867

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

经典案例|使用Supabase解决可视化大屏项目的常见问题

MemFire Cloud应用开发服务,采用开源的Supabase,兼容国内开发生态,内置通用服务,简单易学,加速小程序/移动应用/WEB网站的开发,降低开发/运维成本。

NimbleX_的博客 2465

应用实战|微信小程序开发示例--多人聊天互动空间

拿来即用,应用开发人员再也不用为撰写API而发愁。MemFire Cloud 为开发者提供了简单易用的云数据库(表编辑器、自动生成API、SQL编辑器、备份恢复、托管运维),很大地降低开发者的使用门槛。

NimbleX_的博客 2360

超轻量级的VSCode插件,数据库想用就用~

超轻量级的VSCode插件,数据库想用就用~

NimbleX_的博客 2293

应用实战|只需几步,即可享有外卖订餐小程序

一个简单的外卖查看店铺点菜的外卖微信小程序, 使用了云数据库,自动生成的API,对象存储等服务。

NimbleX_的博客 1823

应用实战|微信小程序开发示例之Super课表

此示例提供了使用 MemFire Cloud 构建一个课表的小程序的步骤。小程序用到的MemFire Cloud的功能包括:云数据库:存储小程序数据表的信息。用户验证:小程序使用MemFire Cloud提供的用户认证的API接口,快速完成用户注册登录操作。云存储:存储小程序的注册用户上传的头像。行级安全策略:采用RLS策略来限制用户访问行为,用户可以修改个人信息,上传个人头像。即时API:创建数据表时会自动生成 API。

NimbleX_的博客 1802

MemFire教程|FastAPI+MemFire Cloud+LangChain开发ChatGPT应用-Part2

上篇文章我们讲解了使用FastAPI+MemFire Cloud+LangChain进行GPT知识库开发的基本原理和关键路径的代码实现。使用FastAPI作为Web服务端框架完成了基本的Web服务端开发使用MemFire Cloud作为向量数据和个人文档数据存储使用LangChain进行AI应用开发,加载本地磁盘目录上的文档,计算embedding、存储到向量数据库使用OpenAI的GPT模型,完成问答功能的实现使用Next.js开发了一个简单的UI界面用于问答演示。

NimbleX_的博客 1474

咚叮咚~进击的“程序猿”--第三弹

是一个表示机票状态的枚举类型,枚举成员为(‘completed’, ‘cancelled_by_company’, ‘cancelled_by_user’)。国庆假期期间,因疫情原因,游客或航空公司会取消行程,现需要统计每日退票情况,并在连续两天退票率出现下降时调整新的票价策略。退票率计算规则如下:(被航空公司或游客取消的绿码游客生成的订单数量) / (绿码游客生成的订单总数)。是一个表示用户是否被禁止的枚举类型,枚举成员为 (‘Yes’, ‘No’)。为 No 的用户,非绿码游客即。

NimbleX_的博客 1323

手把手教你搭建全流程的Discussbase论坛

「Discussbase」是一个开源的简单论坛。使用“技术栈”(MemFire Cloud 、 Nextjs)构建和运行。

NimbleX_的博客 1257

系统公告 | MemFire Cloud推出微信小程序SDK

推出基于库进行改造的SDK,可以较好的适用国内微信小程序生态。支持的小程序平台:微信小程序提供数据库、存储、认证等基本操作API接口,具体可以参考在线文档接口调用方法supabase-js一致,无额外学习成本。

NimbleX_的博客 1235

只需几步,即刻享有个性化电影小程序

本示例是一个查看电影推荐个性化的微信小程序,小程序后端服务使用了,其中使用到的功能包括:云数据库、对象存储、自动生成的API。

NimbleX_的博客 1211
上一篇: 系统公告 | 用Navicat就可以访问应用数据库啦~
下一篇: 【架构篇】Supabase架构和功能介绍
NimbleX_
博客等级 码龄6年 241粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值