每周1T的GPS终端轨迹数据如果存储?采用什么技术存储和分析 5C

业务场景:基于车辆的终端GPS数据开发电子围栏、车辆轨迹监控等行业应用。
数据量:每周1T的数据,
其他:数据格式相对简单,但是应用比较繁杂,有大量的数据计算
问题:目前数据库已经承担不起了,采用水平切割分库分表勉强跑,很脆弱;数据库服务器成本较高。

采用hbase+hadoop 是否是最佳方案? 这边技术背景都是.net,烧脑呀。

4个回答

是不是只读不写?是不是数据有明显的稀疏性(比如集中在某个城市,某个省份,某几条线路)?是不是按照时间,访问的频率有明显的不同(比如大部分的查询都是最近几周)?
你是怎么查询的,数据的关联性是什么?
我觉得如果你能搞清楚以上问题,可以不用数据库,自己设计数据结构,性能可以好很多。

可以尝试使用elasticsearch这种类型的数据库,至少可以解决两个问题:
1、elasticsearch对外接口采用http,与开发语言框架无关
2、数据水平切分,并有复制备份,大数据场景下应该可以搞定,至少比数据库好一些
3、elasticsearch有一个geo地理库,就是用于处理大量地理信息而设计的,由于我没涉及过这方面,题主可以看一下

好像MongoDB也有关于地理位置的专用模型,可以了解一下

巨松时序数据库,可以了解一下,可以定期将历史数据导入到时序数据库,近期数据还是使用当前的架构处理,读历史数据时从时序数据库中读,对现在的架构修改少...

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
分析 OpenTSDB数据的存储
数据例子:采集1个服务器(hostname = 127.0.0.1)的CPU使用率,发现该服务器在 21:00 的时候,CPU 使用率达到 99%。下面结合例子看看OpenTSDB存储的一些核心概念1)Metric:即平时我们所说的监控项。譬如上面的 CPU 使用率。2)Tags:就是一些标签,在 OpenTSDB 里面,Tags 由 tagk 和 tagv 组成,即 tagk = takv。标签...
MATLAB实现gps数据采集及存储
MATLAB实现gps数据采集及存储,MATLAB实现gps数据采集及存储.
网络存储 采用Access数据库
网络存储 (1)网络存储是最近在网上开始流行的一种存储工具,即用户可以将文件数据存储在网络上的某个服务器上,这样用户只要在有网络的地方均可以访问自己的文件数据, 省却携带存储工具的麻烦。同时网络存储允许用户对文件、目录进行管理,也可以压缩文件以节省空间。实现网络存储主要涉及几个技术要点:访问服务器文件系统, 文件上载、下载,服务器端操作,交互界面以及权限管理。 (2)该系统采用Access数据库,数据库位置在/db目录下,数据库名称为“New.mdb”。 (3)必须使用IIS在WEB服务器上创建虚拟目录来测试此系统。
采用十字链表存储的稀疏矩阵
题目描述 当矩阵的非零元个数和位置在操作过程中变化较大时,就不宜采用顺序存储的结构来表示三元组的线性表了。因此,在这种情况下,采用链式存储结构表示三元组更为恰当。十字链表就是能够实现这样功能的一种数据结构。 在十字链表中,每个非零元可以用一个包含5个域的结点表示。其中i、j和e这3个域分别表示该非零元所在的行、列和非零元的值,向右域right用来链接同一行中下一个非零元,而向下域down用
采用三元组存储稀疏矩阵
下面是我做的一个三元组存储稀疏矩阵转置的练习题,Vc6.0编译成功rn也能输出正确结果,但是我要把矩阵的行,列下标改成0开始怎么改,rn自己改了半天输出结果还是乱码,求高手相助!rn原正确答案!/***************************************************rn*作者:杨川 *rn*时间:07.2.14 *rn*环境:vc 6.0 *rn*内容解释:采用三元组存储稀疏矩阵,实现转置,求和。* *rn****************************************************/rn#includern#define MaxNum 100rntypedef int DataType;rnclass Triple //三元组数据类定义rnrn int row; //元素行号rn int col; //元素列号rn DataType data; //存储元素的值rn friend class Smatrix;rn;rn//-----------------------------------rnclass Smatrix //稀疏矩阵顺序存储类定义rnrn int m; //稀疏矩阵总行数rn int n; //稀疏矩阵总烈数rn int total; //稀疏矩阵非0元素总个数rn Triple item[MaxNum]; //稀疏矩阵三元组顺序表rnpublic:rn Smatrix()m=n=total=0;rn void InitMatrix(Smatrix &M);rn //初始化稀疏矩阵m,使他成为不含任何元素的空矩阵rn Smatrix Transpose(Smatrix &M);rn //返回稀疏矩阵m的转置矩阵rn Smatrix Sadd(Smatrix &M1,Smatrix &M2);rn //f返回m1,m2矩阵和,要求两个矩阵的行,列数对应相同rn void InputMatrix(Smatrix &M,int m,int n);rn //按照一定格式输入m*n稀疏矩阵所对应的三元级线性表rn void Print(Smatrix &M);rn //按照一格式输出稀疏矩阵Mrn;rn//----------------------------------------------------rn//初始化稀疏矩阵m,使他成为不含任何元素的空矩阵rnvoid Smatrix::InitMatrix(Smatrix &M)rnrn M.m=M.n=M.total=0;rnrn//------------------------------------------------------rn//按照一定格式输入m*n稀疏矩阵所对应的三元级线性表rnvoid Smatrix::InputMatrix(Smatrix &M,int m,int n)rnrn M.m=m;rn M.n=n;rn int row,col,val,k=0;rn cout<<"请输入元素(行。列。数值),以0结束!"<>row>>col>>val;rn while(row!=0)rn rn M.item[k].row=row;rn M.item[k].col=col;rn M.item[k].data=val;rn cin>>row>>col>>val;rn ++k;rn rn M.total=k;rnrn//--------------------------------------------------------rn//返回稀疏矩阵m的转置矩阵rnSmatrix Smatrix::Transpose(Smatrix &M)rnrn Smatrix T; //用T暂存转置结果rn int i,k=0,col;rn T.InitMatrix(T);rn T.m=M.n;rn T.n=M.m;rn T.total=M.total;rn if(total==0)rn return T;rn for(col=0;col<=n;col++)rn for(i=0;i<=total;i++)rn if(M.item[i].col==col)rn rn T.item[k].row=M.item[i].col;rn T.item[k].col=M.item[i].row;rn T.item[k].data=M.item[i].data;rn k++;rn rnreturn T;rnrn//-----------------------------------------------------------rn//f返回m1,m2矩阵和,要求两个矩阵的行,列数对应相同rnSmatrix Smatrix::Sadd(Smatrix &M1,Smatrix &M2)rnrn Smatrix T; //用T暂存A+B的结果rn int i=0,j=0,k=0; //定义i为M1的下标,j为M2的下标,K为T的非0元素个数rn T.InitMatrix(T);rn if((M1.total==-1)&&(M2.total==-1))rn return T;rn while(i<=M1.total&&j<=M2.total)rn rn if(M1.item[i].row==M2.item[j].row) //如果M1的行号等于M2的行号rn rn if(M1.item[i].col==M2.item[j].col)//如果M1的列号等于M2的列号rn rn T.item[k].row=M1.item[i].row;rn T.item[k].col=M1.item[i].col;rn T.item[k].data=M1.item[i].data+M2.item[j].data;rn i++;j++;k++;rn rn else if(M1.item[i].colM2.item[j].col) //如果M1的列号大于M2的列号rn rn T.item[k].row=M2.item[j].row;rn T.item[k].col=M2.item[j].col;rn T.item[k].data=M2.item[j].data;rn j++;k++;rn rn rn else if(M1.item[i].rowM2.item[j].row) //如果M1的行号大于M2的行号rn rn T.item[k].row=M2.item[j].row;rn T.item[k].col=M2.item[j].col;rn T.item[k].data=M2.item[j].data;rn j++;k++;rn rn rn while(i<=M1.total&&j>M2.total)rn rn T.item[k].row=M1.item[i].row;rn T.item[k].col=M1.item[i].col;rn T.item[k].data=M1.item[i].data;rn i++;k++;rn rn if(i>M1.total&&j<=M2.total)rn while(j>m>>n;rn A.InputMatrix(A,m,n);rn cout<<"建立稀疏矩阵B:"<>m>>n;rn B.InputMatrix(B,m,n);rn cout<<"稀疏矩阵:A=";rn A.Print(A);rn cout<<"A矩阵转置结果:M=";rn M=A.Transpose(A);rn M.Print(M);rn cout<<"矩阵A+B的结果:"<
用pika替换redis存储司机GPS轨迹
一、背景 公司原本用redis存司机的GPS轨迹,但是redis内存消耗大,现改用pika来存储司机的GPS轨迹 二、pika介绍 https://www.w3cschool.cn/pika/pika-yel222nz.html 三、步骤 1.配置文件 base.properties文件中新增pika配置 2.工具类编写
android程序的自动更新 和 基于GPS定位的轨迹存储
android程序的自动更新 和 基于GPS定位的轨迹存储
测试成功读取存储GPS数据到数据库应用
测试成功读取存储GPS数据到数据库应用   Rc.local 自动启动: Su –ubuntu–c “/usr/bin/getGps.sh” & /usr/bin/getGps.sh: #!/bin/bash python getGps.py & sleep 2   getGps.py 代码:   #!/usr/bin/envpython   importseri
大量的GPS数据该怎么存储?
现在服务器端接收来自手机端的GPS采集数据,存储在数据库中是不是应该比文本文件中高效?那数据库中GPS数据该怎样定义呢?(也就是表的设计)
编程读取gps中存储的数据
请问一下高手们哈 怎么样用c#(或者vb)实现从gps中读取已经存在的数据 网上的基本上都是接受实时数据的 我现在时在室内的话 没法接受卫星信号 但是我想读取里面存储的数据 用表格(如datagridview)显示出来 该怎么实现 rn这个跟gps的具体型号是不是有关 如果是的话 提供个思路也可以 谢谢
GPS 数据轨迹显示开发方法??
各位大侠rnrn 我们有个系统用到了GPS功能,在下位机将GPS的数据信息上传上来后,如何把经纬度信息用于在地图上标注显示?rnrn GPS信息记录成一个文本文件后,如何将文件的信息转换为路径轨迹在地图上显示?rnrn 请各位有过类似开发的支招。rnrn 我只知道百度,GOOGLE有免费的地图API可以调用,其它还有撒方法?rnrn 还有就是记录GPS信息的文件有无规范化的格式??
Spark存储分析 - RDD存储调用与数据读写过程
RDD存储调用读数据过程写数据过程
数据的存储
大小端 大端存储模式:数据的低位字节序内容保存在内存的高地址中,数据的高位字节序内容保存在内存的低地址中 小端存储模式:数据的低位字节序内容保存在内存的低地址中,数据的高位字节序内容保存在内存的高地址中 百度2015系统工程师笔试题 请简述大端字节序和小端字节序的概念,设计一个小程序来判断当前机器的字节序。(10分) //int check_sys() //{ // int a = ...
数据的存储!
我有两个表,他们之间的关联字是:PROJ。rn表一的字段有:PROJ,ATYPE,…rn表二的字段有:PROJ,COUNTRYNAME…。rn当我从一个数据录入界面中有很多的dbedit对应着表一的字段,还有一个dbgrid对应的是表二的字段。当我添加了一个PROJ的数值后,以及其他的表一,表二的数值以后,进行保存,如何也能把这个proj的值能同时对应的是表二的proj呢,然后把proj的内容也保存。对于表二,每一个proj可能对应多个countryname的值.rn高分求救阿!在线等待!
数据下的存储
该资源主要描述了大数据时代存储的信息,详细的介绍了大数据时代信息的重要性,大家可以关注一下
HDS存储产品技术学习及竞争分析
HDS存储产品技术学习及竞争分析 公司介绍 技术特点 中端产品 高端产品
CloudStack相关技术-主存储和二级存储
主存储主存储和一个集群相关联,为集群中所有host上运行的虚拟机提供虚拟磁盘。在KVM和VMware中,我们可以在zone范围提供主存储。 我们可以为集群(或zone)添加多个主存储服务器,但至少也要有一个,一般它位于hosts的附近来提高性能。CloudStack管理着客户虚拟磁盘到特定主存储设备的分配。 如果需要避免额外的数据拷贝,使用基于zone的主存储是很有用的。使用基于集群的主存储时,
在采用临时表的分页存储过程中
是不是每次换页都会生成一次临时表?rnrn这样会不会有较大的资源消耗?从而性能较低?rnrn如果做个判断,是新查询就创建临时表,是换页就读临时表是不是会好些?rn
如果打开数据库里存储的文件?
数据里的文件是以image型存储的rn可以直接从字段中取出值,转成byte[]类型rn现在怎么打开它?
采用docker overlay存储驱动
使用OverlayFS来作为默认的存储系统。首先要升级到CentOS7.2(或者使用linux内核3.18版本以上),有一个XFS的Bug在7.2系统被修复了。 1.    将OverlayFS加到module目录下 echo "overlay" > /etc/modules-load.d/overlay.conf 2.    reboot 系统,执行ls
cinder后端采用nfs存储
作者:【吴业亮】云计算开发工程师 博客:http://blog.csdn.net/wylfengyujiancheng 一、nfs服务器配置 1、安装软件包# yum install nfs* -y2、创建共享目录# mkdir /data3、赋予权限# chown 165:165 /data # chmod 777 data/4、配置NFSecho '/data 192.168.5.0/
Spark存储分析 - Shuffle分析
Shuffle简介 在MapReduce框架中,shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环节,shuffle的性能高低直接影响了整个程序的性能和吞吐量。Spark作为MapReduce框架的一种实现,自然也实现了shuffle的逻辑,本文就深入研究Spark的shuffle是如何实现的,有什么优缺点。   Shuffle的...
采用llink-rlink方式存储二叉排序树
采用llink-rlink方式存储二叉排序树,用C语言写的,还算凑合。
采用什么什么形式存储中间结果比较好
现在在做一个C++项目,分析一堆文件,得到一些中间数据结果,要把它存下来,因为后面还要频繁的用到这些中间结果。现在想把这些中间结果按照一定格式写到一些txt文件中去,后面用之前再读进来,但是感觉比较烦,请问有没有好点的方法,有人跟我说写到xml文件,不知道会方便不(数据库之类的是不能用的),谢谢了
hashMap存储分析
hashMap存储分析hashMap存储分析
android 存储简要分析
NULL 博文链接:https://haitian235.iteye.com/blog/971219
高效存储解决方案的分析
介绍了一种存储虚拟化的实例理论与分析,帮助对存储虚拟化有需求应用的人们有更多了解
案例分析_存储和负载均衡
根据新的网络规划设计师考试大纲和作者长期辅导考试的经验,对考试中的所有知识点进行了归类分析和总结,挖掘其中的考试热点、重点、难点和基点,并准确把握考试的重点和难点,对其进行了详细的分析和讲解。让考生的复习应考非常有针对性,起到事半功倍的效果。(一次付费学习课程,直到通过考试,并且每年真题解析免费更新rn)
存储培训教材快照技术
什么是快照 常见快照技术 H3C 快照拷贝技术 H3C TimeMark技术 H3C 快照代理技术
网络存储数据保护技术
保护,在词典里是守住、保全的意思。相应的,数据保护包含两个方面:一是保护数据不泄漏,防止未经授权的访问;二是保护数据不丢失。
存储\iSCSI技术白皮书
存储\iSCSI技术白皮书存储\iSCSI技术白皮书存储\iSCSI技术白皮书
Web存储相关技术
Web存储的相关技术有sessionStorage、localStorage和cookies html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage。 1.客户端存储:window.sessionStorage 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。 2.硬盘存储:window.loca...
存储过程中的休眠技术??
我的存储过程启动后需要检测某一条件是否成立,若不成立,则等待几分钟继续检测,我用空循环检测,结果不理想,有没有比较精确的延时休眠技术?
存储网络协议和相关技术
存储网络协议和相关技术 存储网络协议和相关技术
持久化技术SharedPreferences存储
public interface SharedPreferences android.content.SharedPreferences Class Overview Interface for accessing and modifying preference data returned by getSharedPreferences(Strin
大数据 — 存储相关技术
文件系统 HDFS https://blog.csdn.net/skisqibao/article/details/82990636 将一个超级大的文件,分布式存储到不同的服务器上。 数据库 Hbase https://blog.csdn.net/volitationlong/article/details/82385361 消息中间件 概念介绍 https://blog.csdn.net/...
iscsi技术(存储资源共享)
iscsi 服务端 下载tagetcli(策略编写共享工具) yum install targetcli -y 打开共享工具 systemctl start target.service 创建物理分区 fdisk /dev/vda 同步分区表 partprobe 创建物理卷 [root@nodel ~]# pvcreate /dev/vda1 WARNING: xfs signat...
mysql存储与索引技术
介绍mysql不同的存储引擎 以及 索引技术在mysql中的应用
存储容灾技术
HDS HUS110存储设备,存储容灾技术交流
织梦DedeCMS的cookie存储分析
织梦DedeCMS的cookie存储分析 dedecms的cookie设置特别有意思,我们通常都是直接重写cookie。最多也就是用key/val的键/值对的形式来做。但是我们看dede,不但重写了cookie的写如,读取,删除,而且还对cookie做了必要的验证。 首先我们看dedecms的cookie写入。 function PutCookie($key, $value, $kpt
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池