幼儿饰品瑜伽美体用品微软
投稿投诉
微软创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品

十分钟验证一个轻量化车联网解决方案

  智能网联汽车在车联网的应用上,通常是以智能传感器、物联网、GIS技术为基础,结合大数据、人工智能技术,通过OT(Operationtecnology)和IT(informationtecnology)融合的方式,实现智能车辆的辅助驾驶、状态监控、远程管理、数据分析及决策等功能。同时,通过对云端大数据的实时分析,还可以对运营车辆实现行程报警、路径规划、电子围栏、订单跟踪等企业级功能。
  车联网云端大数据最重要的工作之一,是处理海量的GPS轨迹数据。GPS轨迹数据本质上是带时间标签的时序数据(timeseriesdata),市面上很多时序数据库都能够满足时序数据的简单存储和简单查询需求。
  但在完整的车联网应用场景中,绝大部分时序数据库是无法直接输出最终业务所需结果的,也无法将时序数据与业务数据进行关联查询。
  因此通常做法是在时序数据库的基础上,配合复杂的系统架构来支撑业务需求。例如,当我们想要将GPS轨迹跟车辆识别码、订单关联时,需要将GPS轨迹数据提取到应用端,使用关系数据库和编程工具进行二次处理。
  这种方式虽然能解决业务查询问题,但是在一定程度上增加了系统的复杂性,并且在性能、开发难度、数据挖掘等方面受到架构限制。有没有更简单、更轻量化的架构呢?
  作为一个基于时序数据库管理系统,支持数据分析、流计算的低延时平台,DolphinDB具有轻量化、一站式的特点,不仅可以高速存储海量结构化数据,还能在库内直接进行复杂计算,内置的高性能流数据处理框架满足了实时流计算的需求,且脚本语言对标准SQL高度兼容,简单易上手。
  这里我们给大家介绍一个基于DolphinDB的车联网大数据处理架构。
  在这一架构中,时间信息、车牌、经纬度、速度等多数据源的海量数据从采集层进入DolphinDB大数据平台,注入流数据表中。DolphinDB通过订阅流数据表,并与订单业务、车辆配置等数据进行关联查询,实现分析与监测预警。输出的结果进入应用层,对接业务系统、消息中间件,或通过多种接口进行可视化展示。架构图如下所示:
  基于DolphinDB的车联网大数据处理架构图
  使用这一架构可以实现海量轨迹数据的存储,车辆、订单的关联聚合查询,以及结果直接输出的完整流程。
  下面我们给出一段查询案例,完整的脚本代码在附件中,任何开发人员都可以花10分钟左右的时间进行复现。数据集
  表描述
  表名
  数据量
  车辆信息表
  tcar
  10万
  订单信息表
  torder
  100万
  GPS轨迹表
  tdrive
  8。64亿环境配置
  项目
  参数
  操作系统
  DELLLatitude5420笔记本电脑windows11(22621。521)
  CPU
  11thGenIntel(R)Core(TM)i51145G72。60GHz1。50GHz
  内存
  16G
  磁盘
  SSD512G
  服务端
  DolphinDB2。00。9SQL语句及参考耗时
  序号
  场景
  耗时
  SQL语句
  1hr统计车辆经纬数据总数
  1ms
  selectcount()fromdrives
  2hr按车牌时间,查询车辆经纬数据
  4ms
  selectfromdriveswherets2022。07。0122:10:10。000,code浙A100207
  3hr按车牌,统计数据总数
  5ms
  selectcount()fromdriveswherecode浙A100207
  4hr按车牌,查看车辆与总部距离
  3ms
  selectts,code,string(long(distance(poi,point(lng,lat)))1000)kmasdistancefromdriveswherets2022。07。0122:10:10。000,code浙A105207
  5hr按车牌,查询一天的所有数据
  3ms
  selectfromdriveswherecode浙A165207andtsbetween2023。01。0100:00:00。000:2023。01。0123:59:59。999
  6hr按车牌按每小时统计平均车速
  12ms
  selectavg(velocity)fromdriveswherecode浙A165207groupbybar(ts,1H)
  7hr按订单ID,查询该订单所有路径
  112ms
  定义存储过程orderQuery
  orderQuery(1000006)
  8hr以60倍速回放某订单的车辆行驶轨迹
  replay函数
  以场景7为例,将轨迹表(8。6亿)和订单表(100w)进行关联,返回某个配送订单的全部车辆运行轨迹,耗时在112毫秒左右:
  场景8中,将某个订单的数据,按60倍速持续写入一个新表中,读取新表数据并输出到GIS系统的地图中,就可以非常方便的实现某个订单车辆配送轨迹的实时播放,轻松回放行驶路径,用于异常排查。10分钟轻松验证(Windows版)
  步骤
  任务
  预计耗时
  操作描述
  1hr部署DolphinDB大数据环境
  1分钟
  下载DolphinDB,并解压(免安装)
  2hr运行
  1秒
  双击dolphindb。exe文件,开启实例
  3hr运行开发环境
  10秒
  打开http:localhost:8848,网页上可执行SQL等脚本
  4hr模拟生成8。64亿数据
  8分钟
  复制《data。txt》脚本,执行。
  (注意,此处模拟的是仿真数据,即每一条数据都是单独生成的,而不是简单的把一份数据重复复制。)
  5hr验证查询性能
  3分钟
  复制《query。txt》脚本,依次执行,观察耗时安装部署下载官网社区最新版,建议2。00。9及以上版本。
  传送门:https:www。dolphindb。cndownloadsDolphinDBWin64V2。00。9。3。zip
  2。windows解压路径,不能有空格,避免安装到ProgramFiles路径下。
  官网教程:https:gitee。comdolphindbTutorialsCNblobmasterstandaloneserver。md
  3。本次测试使用免费的社区版,企业版license可申请免费试用。
  联系方式:https:dolphindb。cnalonealone。php?id23
  4。安装及测试过程中,有任何问题,可添加小助手微信(dolphindb1)咨询。验证说明统计耗时使用timer函数,即排除网络传输和序列化影响,仅统计服务端全部数据处理完成的时间。
  2。性能受磁盘IO、CPU、网络等系统资源的影响,如测试环境不同,表格中的性能实测数据可能会有差异。
  3。web端的交互编程执行方式,可以框选单条脚本,按CtrlE执行。也可以全选,按CtrlE执行。
  4。模拟车辆轨迹写入的性能接近200万条秒(1000万点秒),可以作为真实数据写入性能的参考(排除协议连接、网络传输、序列化等耗时)。
  5。性能测试优先保障性能,配置文件dolphindb。cfg中可以限制资源(核数、内存等)。
  欢迎大家动手尝试,一起来验证一下吧!附录《data。txt》:建库建表,模拟数据生成步骤一:登录login(admin,123456)步骤二:建库、建表1。车辆信息表:tcarif(existsDatabase(dfs:tcar)){dropDatabase(dfs:tcar)}createdatabasedfs:tcarpartitionedbyVALUE(〔code〕)createtabledfs:tcar。car(codeSYMBOL,车牌modelSYMBOL,型号emissionsSYMBOL,排量brandSYMBOL品牌)2。配送订单表:torderif(existsDatabase(dfs:torder)){dropDatabase(dfs:torder)}createdatabasedfs:torderpartitionedbyVALUE(〔date(now())〕),engineTSDBcreatetabledfs:torder。order(orderidLONG,订单号tsTIMESTAMP,下单时间btimeTIMESTAMP,配送起始时间etimeTIMESTAMP,配送截止时间codeSYMBOL,车牌blngDOUBLE,起始经度blatDOUBLE,起始纬度elngDOUBLE,目的地经度elatDOUBLE目的地纬度)partitionedbytssortColumns〔orderid,ts〕,sortKeyMappingFunction〔hashBucket{,9}〕3。车辆行驶路径表:dfsdriveif(existsDatabase(dfs:dfsdrive)){dropDatabase(dfs:dfsdrive)}createdatabasedfs:dfsdrivepartitionedbyVALUE(〔date(now())〕),HASH(〔SYMBOL,30〕),engineTSDBcreatetabledfs:dfsdrive。drive(tsTIMESTAMP,时间戳codeSYMBOL,车牌lngDOUBLE,经度latDOUBLE,纬度velocityINT,速度altitudeINT,海拔directionINT方向)partitionedbyts,codesortColumns〔code,ts〕,sortKeyMappingFunction〔hashBucket{,99}〕步骤三:模拟写入仿真数据写入车辆信息表:tcar(1万条)n100000code100001。。200000产生序列数据code浙Astring(code)modelrand(搅拌车泵车砂石车,n)rand随机函数,用于产生数量为n的向量值emissionsstring(rand(5。。10,n))升brandrand(SANYZOOMLIONXCMGLOXAFANGYUANRJST,n)ttable(code,model,emissions,brand)tcarloadTable(dfs:tcar,car)tcar。append!(t)selectcount()fromtcar数据检查selecttop10fromtcar写入订单信息表:torder(100万条)n1000000orderid1000001。。2000000产生序列数据tstake(2023。01。01。。2023。01。10,n)产生10天的订单tssort(ts)向量结构排序:10w条1月1日10w条1月2日。。。10w条1月10日codesselectcodefromloadTable(dfs:tcar,car)获取1万车牌号码codetake(codes。code,n)向量结构:10w条车牌序列x10天100wbtimetemporalAdd(datetime(ts),rand(14400,n)32400,s)开始配送时间:9点13点随机etimetemporalAdd(datetime(btime),rand(18000,n)3600,s)配送时间:1小时5小时随机blng103。60972rand(1。0,n)0。5blat30。81841rand(1。0,n)0。5elng103。60972rand(1。0,n)0。5elat30。81841rand(1。0,n)0。5ttable(orderid,ts,btime,etime,code,blng,blat,elng,elat)torderloadTable(dfs:torder,order)torder。append!(t)selectcount()fromtorder数据检查selecttop10fromtorder写入车辆轨迹数据,8。64亿天defwritedata(){for(tsin2023。01。01。。2023。01。01){将10w车牌拆分成50份,写入50次(可通过降低拆分数量,进一步提高速度。如内存不支持,可能会OutOfMemory)for(iin1。。50){n8640j(i1)2000codesselectcodefromloadTable(dfs:tcar,car)limitj,2000itimedatetime(ts)10(0。。(n1))lng103。60972rand(1。0,n)0。5lat30。81841rand(1。0,n)0。5velocityrand(100,n)altituderand(300,n)directionrand(360,n)ttable(timeasts,lng,lat,velocity,altitude,direction)ttcj(t,codes)关联车牌和数据,每次写入量:20008640reorderColumns!(tt,loadTable(dfs:dfsdrive,drive)。schema()。colDefs。name)loadTable(dfs:dfsdrive,drive)。append!(tt)ttNULL}}}submitJob(writedata,writedata,writedata)后台执行写入操作drivesloadTable(dfs:dfsdrive,drive)数据检查selectcount()fromdrives《query。tx》:性能测试
  步骤四:数据准备工作检查作业状态(预计执行8分钟)selectjobId,startTimeas开始时间,endTimeas结束时间,(endTimestartTime)1000as执行秒数fromgetRecentJobs(1)确定作业完成后,执行刷盘,LevelFile合并,清除缓存,确保性能测试的准确。因为短时间导入了大量数据,部分数据还在内存(CacheEngine)中,并逐步写入磁盘。为确保性能测试时,数据是从磁盘中读取,需要进行刷盘操作。flushTSDBCache()LevelFile合并:优化历史数据的查询性能chunkIdsexecchunkIdfromgetChunksMeta()wheretype1for(xinchunkIds){triggerTSDBCompaction(x)}清除缓存,确保测试性能准确clearAllCache()步骤五:查询统计全量数据检查:1。统计车辆经纬数据总数drivesloadTable(dfs:dfsdrive,drive)timertselectcount()fromdrivestselecttop10fromdrives2。按车牌时间,查询车辆经纬数据timertselectfromdriveswherets2023。01。0122:10:10。000,code浙A100207t3按车牌,统计数据总数timertselectcount()fromdriveswherecode浙A100207t4按车牌,查看车辆与总部距离poipoint(104。102683,30。482596)总部经纬度timertselectts,code,string(long(distance(poi,point(lng,lat)))1000)kmasdistancefromdriveswherets2023。01。0122:10:10。000,code浙A105207t5按车牌,查询一天的所有数据timertselectfromdriveswherecode浙A165207andtsbetween2023。01。0100:00:00。000:2023。01。0123:59:59。999t6按车牌查询每小时的平均车速timertselectavg(velocity)fromdriveswherecode浙A165207groupbybar(ts,1H)t7按订单ID,查询某订单所有路径新建自定义函数,用来查询订单(100w)的轨迹(8。6亿)deforderQuery(oid){tselectcode,btime,etimefromloadTable(dfs:torder,order)whereorderidoidcarcodet。code〔0〕ttselectfromloadTable(dfs:dfsdrive,drive)wherecodecarcode,tsbetweent。btime〔0〕:t。etime〔0〕returntt}执行订单查询timertorderQuery(1000006)t添加存储过程(函数视图):执行后,可通过api调用此函数try{dropFunctionView(orderQuery)}catch(x){}addFunctionView(orderQuery)8以60倍速(每秒钟播放真实时间1分钟的轨迹数据)的速率,播放某订单的车辆行驶轨迹rate60回放倍速torderQuery(1000006)需要回放的数据showtable(1:0,t。schema()。colDefs。name,t。schema()。colDefs。typeInt)submitJob(replaydrive,回放订单轨迹,replay,t,show,ts,ts,rate,false)持续执行(可通过share函数将表共享,以输出到GIS系统的可视化地图)selectfromshoworderbytsdesc

图羊毛毡的制作方法教你做出可爱的玩偶看到某宝上那么多的羊毛毡玩偶小充,是不是非常的心动呢?想不想自己动手做一个一样可爱的小动物呢?其实这个羊毛毡做起来并不难,下面我们一起来学一下!羊毛毡做的小玩偶不但女生喜……图三星堆博物馆馆藏文物太神奇没有讲解啥也看不懂三星堆遗址属重点文物保护单位,为中国西南地区的青铜时代遗址。博物馆分为综合馆和青铜馆,可欣赏到出土的大量金、青铜器、玉器、陶器、象牙等文物。三星堆位于成都平原,本身就是三……玛瑙的鉴别方法有哪些nbsp4种小妙招简单实用玛瑙是一种用于镶嵌首饰的珠宝,也有很多雕刻的工艺品也是用玛瑙制作而成。天然的玛瑙有三种颜色,分别是白色、红色和琥珀色。那么玛瑙该怎么鉴别真假呢?我们来了解一下。玛瑙的颜色……彩虹六号即将开始反制键鼠转换器使用物理手段取得不公平的优势,也是一种作弊。传统观点认为,在射击游戏中,鼠标的速度和精度天生优于手柄的摇杆操控。手柄的摇杆允许玩家做出平稳和匀速的跟枪动作,但在面对高速移……3600余名选手骑进春天里郑州一选手获鹤壁2023全国山地自大河网讯(记者莫韶华)3月26日,中国鹤壁2023全国山地自行车邀请赛在河南省鹤壁市山城区圆满落幕,来自全国各地的专业选手及骑行爱好者近600人,另有全民健身体验选手约3000……红网夜读丨让自己忙起来才有可能拥有更多的美景用声音传递温暖,欢迎收听红网夜读,我是田萌,田野的田,萌芽的萌。当我们闲下来才会发觉,忙碌的时光是多么美好。罗曼罗兰曾经说过:生活中最沉重的负担不是工作,而是无聊。……图教你怎样折纸船找回儿时的记忆在我们的记忆中,童年的美好时光总是和折纸有关,小时候折过飞机和花朵,当然纸船是不可或缺的。当我们折完小船后,还会把它放到水里玩。下面,让小编教你折精美的纸船。我们小时候还……图贾宝玉林黛玉为何悲剧收场如此结局并非偶然《红楼梦》中贾宝玉与林黛玉的爱情一直为世人所称道,二人从相爱到悲剧收场也引起了人们对此的讨论。可以说,贾宝玉和林黛玉的爱情悲剧是必然的,你知道为什么吗?喜欢看《红楼梦》的……旅游业高质量发展品质是根本随着疫情渐趋平稳,旅游业强劲反弹的态势已全面显现。旅游发展短期看消费,长期看供给,各个旅游主体能否持续高质量发展,供给品质将是决定性因素,无论是景区,还是吃住行购娱等相关业态,……图简笔画动物如何画随便几笔轻松勾勒绘画是一门艺术,运用色彩勾勒美景,但是有些时候没有足够的器具去大规模的绘画,这时候简笔画就显得精致了。简笔画通过简单的线条就可以大致勾勒图案,简单实用。绘画是人类的本性,……图美丽的赵飞燕掌上舞带你走进一代佳人的世界人们对赵飞燕一定都有一定的了解,人们对她多持批判的态度,认为她是红颜祸水,但她的确也是一位多才多艺的美女。今天就让小编带大家去了解赵飞燕欣赏她的掌上舞。现在掌上舞成了一种……猫眼石吊坠神秘诡异nbsp教你选购的小妙招猫眼石又被称为东方猫眼,主要是因为它在灯光的闪耀下,会变得跟猫的瞳孔一样,散发出绚烂的光线,格外的灵动和美丽,令不少女性都特别喜欢佩戴它。大家都知道,猫眼石是很珍贵的宝石……
不负好春光,踏青自驾游首选菱智PLUS不负好春光,踏青自驾游首选菱智PLUS旅行版春分到景色正撩人春风拂兮,杨柳依依,沉睡的大自然已被春风唤醒。在这春光明媚鸟语花香的季节,带上父母孩子、约上三五好……演过一次盲女后,演谁都像盲人的5位女星,是观众入戏太深?影视剧常常会有一些角色是双目失明的设定,演员在演绎的时候通常有四种表现形式,第一种是不露眼睛,或用布条、眼罩遮住眼睛,或用特效妆化得眼睛的轮廓面目全非。像这样:第二……韩媒孙准浩经详细检查后诊断为内侧韧带损伤,确定无缘东亚杯直播吧7月12日讯据韩国媒体OSEN报道,泰山队外援孙准浩经过详细检查,诊断为内侧韧带损伤,确定无缘东亚杯。中超联赛第10轮,山东泰山31击败大连人。比赛中,孙准浩首发出……人类的第一次星际远征大约在距今500年后,人类掌握了一项收集和控制宇宙中能量的技术,且这项技术远比可控核聚变技术先进得多。这种技术的应用直接开启了人类真正意义上的星际旅行时代。距今620年后……肥强湖人的明天,它会好吗,还是更烂?20212022赛季对于湖人队来说,称得上是惨不忍睹。他们错误地选择了付出几乎所有当打之年的优质轮换和一个首轮签换来威斯布鲁克,然后不得不完全用老将底薪来填补剩下的阵容这……拜登全家齐聚美国独立日活动!夫人穿花裙,孙女比第一千金更惊艳拜登一家人齐聚参加了美国独立日活动,拜登的二儿子亨特平时很少亮相,而这次亨特带着妻子梅丽莎和最小的儿子罕见一起亮相。拜登孙女们一个比一个会打扮,更是抢走了第一千金阿什利的风头。……本届国足将解除隔离离开集训地结束使命为卡塔尔世预赛征程画句号按照防疫规定,中国男足代表团成员在海口接受为期147天的医学隔离观察后,于4月24日解除隔离。随后他们将从今天下午开始陆续离开位于海口市的驻地酒店,返回各自属地。中国足协工作组……巴西巨星退役后依旧自律!50岁健身房里秀身材,八块腹肌不输当近日,有媒体关注到里瓦尔多这位优秀的足球巨星,里瓦尔多在职业赛场上取得过非凡的成就,并且帮助巴西取得过非常多的赛场荣誉,因此在他退役之后,依旧有很多球迷对他念念不忘,并且认为他……正道说缅甸首先统一国家的蒲甘帝王阿奴耶陀正道说缅甸正道说缅甸首先统一国家的蒲甘帝王阿奴耶陀,今日拉客过芒卡看到俺最崇拜的偶像大侠阿奴耶陀。正道说缅甸首先统一国家的蒲甘帝王阿奴耶陀是英雄识芵雄,于是就少不了……藏不住了!拼多多的遮羞布被撕开,砍一刀彻底凉了?如今,随着网络购物的兴起,涌现出了越来越多的线上购物平台,就拿我国来说,很多人在线上购物的时候,想必都会选择淘宝、京东等等平台,当然,想必有很多人也会去选择拼多多。拼多多……现在买手机你们还会选128G储存容量的吗?前不久的一个报道,现在大家手机平均安装56个app照这个安装数量,128G怎么够用,请给我512G好吗?其实真的不能怪广大网友安装APP多,而是现在同类型的A……复合无望?李小璐再爆新恋情,开豪车同回豪宅,男方是老熟人引子:李小璐曝丑闻,和贾乃亮离婚后,虽然没有退圈,但也不出来拍戏了。可以说在娱乐圈,成为了一个可有可无的人,可就算她拍戏了,网上有关她的传闻,隔一段时间就会出来一次。真是不消停……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网