⑴ localstorage的跨域存储方案
html5标准中一个亮点就是提供了浏览器本地存储的功能。方式有两种:localStorage和 sessionStorage。 相对于cookie,他们具有存储空间大的特点,一般可以存储5M左右,而cookie一般只有4k。
localStorage和 sessionStorage的主要区别是:localStorage的生命周期是永久的,意思就是如果不主动清除,存储的数据将一直被保存。而sessionStorage顾名思义是针对一个session的数据存储,生命周期为当前窗口,一旦窗口关闭,那么存储的数据将被清空。
当然作为孪生兄弟,两者也有很多相同点。比如存取数据的方法就是一样的。
另外,不同浏览器无法共享localStorage和sessionStorage中的信息。同一浏览器的相同域名和端口的不同页面间可以共享相同的 localStorage,但是不同页面间无法共享sessionStorage的信息。这里需要注意的是,页面仅指顶级窗口,如果一个页面包含多个iframe且他们属于同源页面,那么他们之间是可以共享sessionStorage的。在实际开发过程中,遇到的最多的问题就是localStorage的同源策略问题。为了了解这个问题,我们先得清楚什么是同源策略。同源策略( same-origin policy )是浏览器执行的一种安全措施,目的是为了保证用户信息的安全,防止恶意的网站窃取数据。浏览器的同源策略具体如下:
只要不同源就不能共享localStorage的数据。但是在实际开发中又时常会遇到这样的需求,那我们该如何解决呢?
目前广泛采用的是postMessage和iframe相结合的方法。postMessage(data,origin)方法允许来自不同源的脚本采用异步方式进行通信,可以实现跨文本档、多窗口、跨域消息传递。接受两个参数:
具体示例:
http://www.test.com/index_a.html
http://www.test2.com/getmessage.html
http://www.test2.com/index_b.html
以上示例中,很好的实现了localStorage的跨域存储功能。这样就算解决问题了吗?
我们还会遇到另一个棘手的问题。在safari浏览器下,这种方法就不可行了。由于safari浏览器的默认限制,父页面无法向iframe里的跨域页面传递信息。这时针对safari浏览器就得另辟蹊径了。本人在项目中用的方法是在safari浏览器下,用url传值的方法来实现跨域存储功能。用这种方法有一个问题必须要先考虑的,就是safari浏览器的url能够支持多长的字符呢? url的长度极限是由两方面决定的,一个是浏览器本身的限制,另一个就是服务器的限制。有人在Apache 2.4服务器上设置了一个非常大的LimitRequestLine 和 LimitRequestFieldSize,然后进行测试,结果表明safari浏览器可以支持超过64k个字符的长度。一般服务器默认支持2~3万个字符长度的url不成问题。所以只要需要传输的数据量不是非常大的话,可以直接通过url来进行传递,如此就能解决safari下的跨域存储问题。示例如下:
http://www.test.com/index_a.html
http://www.test2.com/index_b.html
如此就可以比较好的解决localStorage的跨域存储问题了。
⑵ 综合使用时序数据与截面数据能解决多重共线性吗
时序数据与截面数据能解决多重共线性请参考下面时序数据库白皮书。
思极有容数据库
时序数据库技术白皮书
北京中电普华信息技术有限公司
2020年4月
目录
1大数据时代的挑战1
2产品特点1
3系统结构2
4存储结构4
5数据分区、水平扩展6
6高可靠系统7
7STable:多表聚合9
8数据模型10
9实时流式计算11
10便捷的安装、部署、维护12
11更多亮点13
12参数指标13
13应用场景14
1大数据时代的挑战
随着移动互联网的普及,数据通讯成本的急剧下降,以及各种低成本的传感技术和智能设备的出现,除传统的手机、计算机在实时采集数据之外,手环、共享单车、出租车、智能电表、环境监测设备、电梯、大型设备、工业生产线等也都在源源不断的产生海量的实时数据并发往云端。这些海量数据是企业宝贵的财富,能够帮助企业实时监控业务或设备的运行情况,生成各种维度的报表,而且通过大数据分析和机器学习,对业务进行预测和预警,能够帮助企业进行科学决策、节约成本并创造新的价值。
仔细研究发现,所有机器、设备、传感器、以及交易系统所产生的数据都是时序的,而且很多还带有位置信息。这些数据具有明显的特征,1:数据是时序的,一定带有时间戳;2:数据是结构化的;3:数据极少有更新或删除操作;4:无需传统数据库的事务处理;5:相对互联网应用,写多读少;6:用户关注的是一段时间的趋势,而不是某一特点时间点的值;7:数据是有保留期限的;8:数据的查询分析一定是基于时间段和地理区域的;9:除存储查询外,往往还需要各种统计和实时计算操作;10:数据量巨大,一天采集的数据就可以超过100亿条。
看似简单的事情,但由于数据记录条数巨大,导致数据的实时写入成为瓶颈,查询分析极为缓慢,成为新的技术挑战。传统的关系型数据库或Nosql数据库以及流式计算引擎由于没有充分利用这些数据的特点,性能提升极为有限,只能依靠集群技术,投入更多的计算资源和存储资源来处理,企业运营维护成本急剧上升。
2产品特点
思极有容时序数据库正是普华公司面对这一高速增长的物联网大数据市场和技术挑战推出的创新性的大数据处理产品,它不依赖任何第三方软件,也不是优化或包装了一个开源的数据库或流式计算产品,而是在吸取众多传统关系型数据库、NoSQL数据库、流式计算引擎、消息队列等软件的优点之后自主开发的产品,在时序空间大数据处理上,有着自己独到的优势。
·10倍以上的性能提升:定义了创新的数据存储结构,单核每秒就能处理至少2万次请求,插入数百万个数据点,读出一千万以上数据点,比现有通用数据库快了十倍以上。
·硬件或云服务成本降至1/5:由于超强性能,计算资源不到通用大数据方案的1/5;通过列式存储和先进的压缩算法,存储空间不到通用数据库的1/10。
·全栈时序数据处理引擎:将数据库、消息队列、缓存、流式计算等功能融合一起,应用无需再集成Kafka/Redis/HBase/HDFS等软件,大幅降低应用开发和维护的复杂度成本。
·强大的分析功能:无论是十年前还是一秒钟前的数据,指定时间范围即可查询。数据可在时间轴上或多个设备上进行聚合。临时查询可通过Shell,Python,R,Matlab随时进行。
·与第三方工具无缝连接:不用一行代码,即可与Telegraf,Grafana,Matlab,R等工具集成。后续将支持MQTT,OPC等工具,与BI工具也能够无缝连接。
·零运维成本、零学习成本:安装、集群一秒搞定,无需分库分表,实时备份。支持标准SQL语句,支持JDBC,RESTful连接,支持Python/Java/C/C++/Go等开发语言,与MySQL相似,零学习成本。
采用思极有容时序数据库,可将典型的物联网、车联网、工业互联网大数据平台的整体成本降至现有的1/5。同样的硬件资源,思极有容时序数据库能将系统处理能力和容量增加五倍以上。
3系统结构
思极有容时序数据库是基于硬件、软件系统不可靠、一定会有故障的假设进行设计的,是基于任何单台计算机都无足够能力处理海量数据的假设进行设计的,因此思极有容时序数据库从研发的第一天起,就是按照分布式高可靠架构进行设计的,是完全去中心化的。思极有容时序数据库整个系统结构如下图所示,下面对一些基本概念进行介绍。
物理节点:集群里的任何一台物理机器(dnode),根据其具体的CPU、内存、存储和其它物理资源,思极有容时序数据库将自动配置多个虚拟节点。
虚拟数据节点:存储具体的时序数据,所有针对时序数据的插入和查询操作,都在虚拟数据节点上进行(图例中用V标明)。位于不同物理机器上的虚拟数据节点可以组成一个虚拟数据节点组(如图例中dnode0中的V0,dnode1中的V1,dnode6中的V2组成了一个组),虚拟节点组里的虚拟节点的数据以异步的方式进行同步,并实现数据的最终一致性,以保证一份数据在多台物理机器上有拷贝,而且即使一台物理机器宕机,总有位于其他物理机器上的虚拟节点能处理数据请求,从而保证系统运行的高可靠性。
虚拟管理节点:负责所有节点运行状态的采集、节点的负载均衡,以及所有MetaData的管理,包括用户、数据库、表的管理(图例中用M标明)。当应用需要插入或查询一张表时,如果不知道这张表位于哪个数据节点,应用会连接管理节点来获取该信息。MetaData的管理也需要有高可靠的保证,系统采用Master-Slave的机制,容许多到5个虚拟管理节点组成一个虚拟管理节点集群(如图例中的M0,M1,M2)。这个虚拟管理节点集群的创建是完全自动的,无需任何人工干预,应用也无需知道虚拟管理节点具体在哪台物理机器上运行。
集群对外服务IP:整个系统可以由多台甚至数万台服务器组成,但对于应用而言,只需要提供整个集群中任何一台或两台服务器的IP地址即可。集群将根据应用的请求,自动的将请求转发到相应的一个甚至多个节点进行处理,包括聚合、计算操作等。这些复杂的分发和路由对应用是完全透明的。
4存储结构
为提高压缩和查询效率,思极有容时序数据库采用列式存储。与众多时序数据库不同的是,思极有容时序数据库基于时序数据的特点,将每一个采集点的数据作为数据库中的一张独立的表来存储。这样对于一个采集点的数据而言,无论在内存还是硬盘上,数据点在介质上是连续存放的,这样大幅减少随机读取操作,减少IO操作次数,数量级的提升读取和查询效率。而且由于不同数据采集设备产生数据的过程完全独立,每个设备只产生属于自己的数据,一张表也就只有一个写入者。这样每个表就可以采用无锁方式来写,写入速度就能大幅提升。同时,对于一个数据采集点而言,其产生的数据是时序的,因此写的操作可用追加的方式实现,进一步大幅提高数据写入速度。
数据具体写如流程如图所示:
写入数据时,先将数据点写进Commit日志,然后转发给同一虚拟节点组里的其他节点,再按列写入分配的内存块。当内存块的剩余空间达到一定临界值或设定的commit时间时,内存块的数据将写入硬盘。内存块是固定大小(如16K)的,但依据系统内存的大小,每个采集点可以分配一个到多个内存块,采取LRU策略进行管理。在一个内存块里,数据是连续存放的,但块与块是不连续的,因此思极有容时序数据库为每一个表在内存里建立有块的索引,以方便写入和查询。
数据写入硬盘是以添加日志的方式进行的,以求大幅提高落盘的速度。为避免合并操作,每个采集点(表)的数据也是按块存储,在一个块内,数据点是按列连续存放的,但块与块之间可以不是连续的。思极有容时序数据库对每张表会维护一索引,保存每个数据块在文件中的偏移量,起始时间、数据点数、压缩算法等信息。每个数据文件仅仅保存固定一段时间的数据(比如一周,可以配置),因此一个表的数据会分布在多个数据文件中。查询时,根据给定的时间段,思极有容时序数据库将计算出查找的数据会在哪个数据文件,然后读取。这样大幅减少了硬盘操作次数。多个数据文件的设计还有利于数据同步、数据恢复、数据自动删除操作,更有利于数据按照新旧程度在不同物理介质上存储,比如最新的数据存放在SSD盘上,最老的数据存放在大容量但慢速的硬盘上。通过这样的设计,思极有容时序数据库将硬盘的随机读取几乎降为零,从而大幅提升写入和查询效率,让思极有容时序数据库在很廉价的存储设备上也有超强的性能。
为减少文件个数,一个虚拟节点内的所有表在同一时间段的数据都是存储在同一个数据文件里,而不是一张表一个数据文件。但是对于一个数据节点,每个虚拟节点都会有自己独立的数据文件。
5数据分区、水平扩展
为处理每日高达数亿条的海量数据,数据必须在多个节点存放。在思极有容时序数据库里,数据是按照每个采集点(表)来存放的。一张表(一个采集点)的数据,即使每秒产生一百个字节的数据量,一年也才3G的数据量,压缩后,往往还不到300M,因此在思极有容时序数据库里,一个表的数据是不跨节点存储的,以便于单张表的快速高效的插入、查询和计算。
为更好的数据分区,思极有容时序数据库采用了虚拟数据节点的设计。一个虚拟数据节点包含多个表,表的数量可以配置。根据其计算和存储资源,一个物理节点将被划分为多个虚拟数据节点。虚拟数据节点的设计带来几大优势:
1)更好的支持硬件异构环境,资源多的服务器可以创建更多的虚拟节点;
2)恢复一个宕机的节点,可以让众多的其他节点参与进来,大大加快速度;
3)如果撤掉一个数据节点,该节点上的虚拟节点将被相当均匀的迁移到其他节点上去;
4)新增一个数据节点,负载过热的节点的上的部分虚拟节点将被整体迁移过来。这一切让负载更加均衡,让数据同步变得更加高效。
与传统的数据库相似,用户可以创建多个数据库,每个库里面,可以创建多个表。一个库可以横跨多个虚拟数据节点,但一个虚拟数据节点仅仅属于一个数据库。当用户添加一个表时,管理节点将查看已经分配的虚拟节点里是否还有空位,如果有,就将该表分配到这虚拟节点。如果这个库的所有虚拟节点都没有空位,管理节点将根据负载均衡的策略(随机、轮询等)来分配一个新的虚拟节点给该库,然后将该表分配到新的虚拟节点里。由于一台物理主机有多个虚拟数据节点,这种策略能保证负载均匀分布。
管理节点负责整个系统的负载均衡,包括虚拟数据节点的增加、删除、迁移、合并与拆分。管理节点并不保存每个采集点采集的数据,只是管理虚拟节点,即使宕机,也不会影响现有各虚拟节点的数据插入和查询操作。各个采集点或应用从管理节点获取分配的虚拟数据节点信息后,然后直接与虚拟数据节点通讯,直接将数据插入数据库,对于查询操作也是如此。因此,系统容量以及吞吐率与虚拟数据节点的个数成正比,整个系统是水平扩展的
6高可靠系统
为保证数据节点的高可靠性,思极有容时序数据库引入了虚拟数据节点组的概念,并采用异步的方式进行数据同步。一个虚拟节点组由处于不同物理主机上的虚拟数据节点组成,虚拟数据节点个数就是数据冗余的个数(ReplicationFactor,一般大于2)。在一个虚拟节点组里,各个虚拟数据节点通过心跳包实时知道对方的状态。如果一个虚拟数据节点收到数据写入的请求,该请求会被立即转发给其他虚拟数据节点,然后在本地存储处理。当应用连接思极有容时序数据库系统时,对于要操作的任何一张表,系统会给应用提供该表所属的虚拟数据节点组里各个虚拟节点的IP地址(如果replicationfactor为3,就会有3个IP地址),如果链接其中一个失败或者操作失败,应用会尝试第二个、第三个,只有所有节点失败才会返回失败。这样保证虚拟数据节点组里任何一台机器宕机,都不会影响对外的服务。这些复杂的重新连接流程都被思极有容时序数据库Driver包装隐藏起来,应用开发者无需写程序来实现。
为保证效率,思极有容时序数据库采取异步方式实现多个副本之间的实时数据同步,采取的是最终一致性,而不是强一致。当一台主机重启时,每个虚拟数据节点都会检查自己数据的版本是否与其他虚拟节点一致,如果版本不一致,需要同步后才能进入对外服务状态。在运行过程中,由于各种原因,数据仍然可以失去同步,这种不同步会在收到转发的写入请求时被发现,一旦被发现,版本低的虚拟数据节点将马上停止对外服务,进入同步流程,同步完后,才会重新恢复对外服务。同步过程中,高版本的节点还可以正常的对外提供服务。
管理节点负责存储Meta数据,同时根据每个数据节点状态来负责负载均衡,因此也要保证其高可靠性。多个虚拟管理节点组成一个虚拟管理节点组,因为Meta数据可以被多个应用同时更新,因此思极有容时序数据库采用的是Master-Slave模式实现虚拟管理节点的数据同步。写的操作,只有Slave节点写入成功后,Master节点才会返回成功,从而保证数据的强一致性。如果Master节点宕机,系统有机制保证其中一个Slave会立即被选举为Master,从而保证系统写操作的高可靠性。
由于Meta数据量并不大,Meta数据虽然需持久化存储,但将其完全保存在内存,以保证查询操作的高效。在应用侧,为避免每次数据操作都访问管理节点,思极有容时序数据库Driver将必要的Meta数据都会缓存在本地,只有当需要的Meta数据不存在或失效的情况下,才会访问管理节点,这样大大提高系统性能。
管理节点在集群中存在,但对于应用和系统管理员而言,是完全透明的。整个系统会自动在物理节点上创建虚拟管理节点以及虚拟管理节点组。
7STable:多表聚合
各个数据采集点的时钟是很难同步的,为保证其时序,而且为保证单一采集点的数据在存储介质上的连续性,思极有容时序数据库要求每个数据采集点单独建表,这样能极大提高数据的插入速度以及查询速度,但是这将导致系统表的数量猛增,让应用对表的维护以及聚合、统计操作难度加大。为降低应用的开发难度,思极有容时序数据库引入了STable超级表的概念。
STable是表的集合,包含多张表,而且这个集合里每张表的Schema是一样的。同一类型的采集设备可创建一个STable。与表一样,包含Schema,但还包含标签信息。Schema定义了表的每列数据的属性,如温度、压力等,而标签信息是静态的,属于MetaData,如采集设备的型号、位置等。思极有容时序数据库扩展了标准SQL的table的定义,创建时,除指定Schema外,还可以带关键词tags来指定有哪些标签。如:
createtablem1(tstimestamp,pressureint,rpmint)tags(modelbinary(8),colorbinary(8))
上述SQL创建了一个STablem1,带有标签model和标签color。为某一个具体的采集点创建表时,可以指定其所属的STable以及标签的值,比如:
createtablet1usingm1tags(‘apple’,‘red’)
上述SQL以STablem1为模板,创建了一张表t1,这张表的Schema就是m1的Schema,但标签model设为apple,标签color设为red。插入数据时,仍然按照正常的方式进行插入。但查询时,除传统的表的查询外,还可以基于标签对STable进行各种聚合查询或统计。如:
selectavg(pressue)fromm1wheremodel=’apple’interval(5m)groupbycolor
上面这个SQL语句表示将标签model值为apple的所有采集点的记录的每5分钟的平均值计算出来,并按照标签color进行分组。
对于STable的查询操作,完全与正常的表一样。但一个定义的STable可以包含多张表(多个数据采集点),应用可通过指定标签的过滤条件,对一个STable下的全部或部分表进行聚合或统计操作,这样大大简化应用的开发。其具体流程如下图所示:
1)、应用将一个查询条件发往系统;
2)、Driver将查询的过滤条件发往MetaNode(管理节点);
3)、管理节点将符合查询过滤条件的表的列表发回Driver(包含每个表对应的数据节点的IP地址);
4)、这些返回的表可能分布在多个数据节点,Driver将计算的请求发往相应的多个数据节点;
5)、每个数据节点完成相应的聚合计算,将结果返回给Driver;
6)、Driver将多个数据节点返回的结果做最后的聚合,将其返回给应用。
8数据模型
思极有容时序数据库采用的仍然是传统的关系型数据库的模型。用户需要根据应用场景,创建一到多个库,然后在每个库里创建多张表,创建表时需要定义Schema。对于同一类型的采集点,为便于聚合统计操作,可以先定义超级表STable,然后再定义表。
不同的采集点往往具有不同的数据特征,比如有的采集点数据采集频率高,有的数据保留时长较长,有的采集数据需要3份备份,而有的数据一份备份即可,有的采集点一条记录很大,而有的采集点的记录仅仅16个字节,很小。为让各种场景下思极有容时序数据库都能最大效率的工作,思极有容时序数据库建议将不同数据特征的表创建在不同的库里。创建一个库时,除SQL标准的选项外,应用还可以指定保留时长、数据备份的份数、cache大小、是否压缩等多种参数。
思极有容时序数据库对库的数量、STable的数量以及表的数量没有做任何限制,而且其多少不会对性能产生影响,应用按照自己的场景创建即可。
9实时流式计算
在存储的原始数据上,思极有容时序数据库可以做各种计算,目前支持的主要操作包括:
·Avg:以每个采样时间范围内的value的平均值作为结果
·Dev:以每个采样时间范围内的value的标准差作为结果
·Count:以每个采样时间范围内的点的数目作为结果
·First:以每个采样时间范围内的第一个value作为结果
·Last:以每个采样时间范围内的最后一个value作为结果
·LeastSquares:对每个采样时间范围内的value进行最小二乘法的拟合
·Max:以每个采样时间范围内的value的最大值作为结果
·Min:以每个采样时间范围内的value的最小值作为结果
·Percentile:每个采样时间范围内的value的第p百分位数作为结果。
·Sum:以每个采样时间范围内的value的总和作为结果
·Diff:以每两个相邻的value的差值作为结果
·Div:以每个value除以一个除数作为结果
·Scale:以每个value乘以一个倍数作为结果
·基于多个采集点数据的四则运算表达式
思极有容时序数据库还可对一个或多个数据流进行实时聚合、统计等计算,并将计算出的衍生数据当做新的数据保存进思极有容时序数据库,以便后续的操作。实时计算与聚合查询很类似,只是后台定时进行,并自动滑动计算窗口的起始点。工作方式与其他流式计算引擎的SlidingWindow相似。
实时计算可以通过一个简单的创建表的操作来实现。如:
createtabled1asselectavg(pressure)fromt1interval(60s)sliding(10s)
上述SQL表示将表t1里字段pressure每10秒钟(每次滑动的时间间隔)将过去的60秒钟(聚合计算的时间间隔)的数据平均值计算出来并写入表d1。计算出的衍生数据可以与其他原始数据或计算出的衍生数据进行再次计算。
10便捷的安装、部署、维护
思极有容时序数据库是在Linux上开发的,任何Linux系统都可以运行,而且不依赖任何第三方软件,也不是在某个开源项目上包装出来的产品。获得安装包并解压后,只需执行安装脚本就一切搞定,极其简单。
安装后,会在安装的机器上自动创建虚拟数据节点和管理节点,开发者就可以使用了,能满足一般性的需求。但如果数据量大,就需要将软件安装到多台主机。这时也只需要在每台机器配置好MasterIP,系统管理员打开思极有容时序数据库Shell,将新添加的主机添加进系统即可。如果要撤销一个物理节点,登录思极有容时序数据库Shell,将其删除即可,极其简单。传统数据库所需要的数据分区、数据迁移等等都一概不存在。
因为数据是自动同步到多个节点的,系统管理员不用担心数据的丢失,也不用制定备份和数据恢复策略,一切全自动进行。
如果软件需要升级,只要在思极有容时序数据库Shell里将新版本上传即可。管理节点将挨个把每个节点的软件进行升级,而且整个系统的服务将不停止,服务不受任何影响。如果要更换设备,只需将其拔除,安装上软件后,将新设备重新插入即可。换言之,思极有容时序数据库完全支持在线升级以及硬件的热插拔,从而保证服务的7*24的不间断运行。
开发人员需要做的是定义表的结构,根据具体场景,配置好各种参数,让系统性能达到最优。系统管理员只需要关注与硬件相关的报警信息,对于经常出问题的服务器或硬盘,进行更换而已。使用思极有容时序数据库,整个系统的运维工作变得极为简单,将大大降低运营成本。
11更多亮点
订阅模式:与标准的数据库不同,思极有容时序数据库还提供一种订阅模式。应用程序可以订阅数据库某张表的内容,一旦该表有新的记录,应用将立即得到通知。同一个表可以被多个应用订阅。与流行的消息中间件Kafka一样,订阅采取的是pull而不是push模式。Kafka的publish操作由数据库插入操作代替。由于思极有容时序数据库具有极高的插入速度,通过采用订阅模式,思极有容时序数据库本身也可以作为一个消息队列中间件来使用。
异步插入:为避免网络延迟带来的性能下降,更好的提高数据插入速度,思极有容时序数据库还提供一组API让应用异步插入数据。当应用调用插入API时,将立即得到反馈,等记录成功插入后,思极有容时序数据库将调用应用提供的回调函数通知应用。采用异步插入,性能将大幅提高。
Nagle算法:时序数据应用场景里,每条记录一般都很小,很多不到20字节,因此整个系统处理的是大量的小数据包。为了更进一步提高性能,减少网络IO次数,思极有容时序数据库采用了类似TCP协议的Naggle算法,客户端将缓存插入请求,只有记录的大小超过一定的大小或者缓存时间超过100毫秒,被缓存的插入请求才会被发往系统。对于时间要求很高的应用,该功能可以关闭。
12参数指标
·支持数据类型:tinyint,smallint,int,bigint,float,double,binary
·单记录最大长度:4096字节
·最大记录条数:仅受存储空间限制
·最大表的个数:仅受节点个数限制
·最大数据备份数:5份
·单节点插入速度:3万条/秒(单核,16字节每记录,每次一条,无同步备份)
·单节点查询速度:2000万条/秒(单核,16字节每记录,全内存)
·更多指标将陆续提供
13应用场景
思极有容时序数据库作为一个基础性的软件,应用范围及其广泛,原则上,所有使用机器、设备、传感器采集数据的地方都可以用上。一些典型场景罗列如下:
·公共安全:上网记录、通话记录、个体追踪、区间筛选
·电力行业:智能电表、电网、发电设备的集中监测
·通讯行业:话费详单、用户行为、基站/通讯设备监测
·金融行业:交易记录、存取记录、ATM、POS机监测
·出行工具:火车/汽车/出租/飞机/自行车的实时监测
·交通行业:实时路况,路口流量监测,卡口数据
·石油石化:油井、运输管线、运输车队的实时监测
·互联网:服务器/应用监测、用户访问日志、广告点击日志
·物流行业:车辆、集装箱的追踪监测
·环境监测:天气、空气、水文、地质环境等监测
·物联网:电梯、锅炉、机械、水表、气表等各种联网设备
·军工行业:各种军事装备的数据采集、存储
·制造业:生产过程管控,流程数据、供应链数据采集与分析
网页链接技术白皮书网页链接请单击查看!
⑶ 400MB=多少GB
硬盘概述
硬盘(港台称之为硬盘)是电脑主要的存储媒介之一,由一个或者多个铝制或者玻璃制的盘片组成。这些盘片外覆盖有铁磁性材料。绝大多数硬盘都是固定硬盘,被永久性地密封固定在硬盘驱动器中。
[编辑本段]硬盘发展
从第一块硬盘RAMAC的问世到现在单碟容量高达250GB多的硬盘,硬盘也经历了几代的发展,以下是其发展历史。
1.1956年9月,IBM的一个工程小组向世界展示了第一台磁盘存储系统IBM 350 RAMAC(Random Access Method of Accounting and Control),其磁头可以直接移动到盘片上的任何一块存储区域,从而成功地实现了随机存储,这套系统的总容量只有5MB,共使用了50个直径为24英寸的磁盘,这些盘片表面涂有一层磁性物质,它们被叠起来固定在一起,绕着同一个轴旋转。此款RAMAC当时主要应用于飞机预约、自动银行、医学诊断及太空领域。
2.1968年IBM公司首次提出“温彻斯特/Winchester”技术,探讨对硬盘技术做重大改造的可能性。“温彻斯特”技术的精隋是:“密封、固定并高速旋转的镀磁盘片,磁头沿盘片径向移动,磁头悬浮在高速转动的盘片上方,而不与盘片直接接触”,这也是现代绝大多数硬盘的原型。
3.1973年IBM公司制造出第一台采用“温彻期特”技术的硬盘,从此硬盘技术的发展有了正确的结构基础。它的容量为60MB,转速略低于3000RPM,采用4张14英寸盘片,存储密度为每平方英寸1.7MB。
4.1979年,IBM再次发明了薄膜磁头,为进一步减小硬盘体积、增大容量、提高读写速度提供了可能。
5.80年代末期IBM发明的MR(Magneto Resistive)磁阻是对硬盘技术发展的又一项重大贡献,这种磁头在读取数据时对信号变化相当敏感,使得盘片的存储密度比以往每英寸20MB提高了数十倍。
6.1991年IBM生产的3.5英寸的硬盘使用了MR磁头,使硬盘的容量首次达到了1GB,从此硬盘容量开始进入了GB数量级。
7.1999年9月7日,Maxtor宣布了首块单碟容量高达10.2GB的ATA硬盘,从而把硬盘的容量引入了一个新的里程碑。
8.2000年2月23日,希捷发布了转速高达15,000RPM的Cheetah X15系列硬盘,其平均寻道时间仅3.9ms,它也是到目前为止转速最高的硬盘;其性能相当于阅读一整部Shakespeare只花.15秒。此系列产品的内部数据传输率高达48MB/s,数据缓存为4~16MB,支持Ultra160/m SCSI及Fibre Channel(光纤通道) ,这将硬盘外部数据传输率提高到了160MB~200MB/s。总得来说,希捷的此款("積架")Cheetah X15系列将硬盘的性能提升到了一个全新的高度。
9.2000年3月16日,硬盘领域又有新突破,第一款“玻璃硬盘”问世,这就是IBM推出的Deskstar 75GXP及Deskstar 40GV,此两款硬盘均使用玻璃取代传统的铝作为盘片材料,这能为硬盘带来更大的平滑性及更高的坚固性。另外玻璃材料在高转速时具有更高的稳定性。此外Deskstar 75GXP系列产品的最高容量达75GB,而Deskstar 40GV的数据存储密度则高达14.3 十亿数据位/每平方英寸,这再次刷新数据存储密度世界记录。
10.以下是近年来关于硬盘价格的趣味数字
1995年 200MB~400MB 大于4000元/GB
1996年 1.2GB~2.1GB 1500元~2000/GB
1998年 1.2GB~2.1GB 200元~250元/GB
2000年 4.3GB~6.4GB 40元/GB
2002年 10GB~20GB 20元/GB
2004年 40GB~80GB 6.9元/GB
2005年 80GB~160GB 4.5元/GB
2006年 80GB~250GB 3.8元/GB
2008年 160GB~1TB 0.8元/GB
未来的发展趋势
希捷存储新技术:2009年出2500G硬盘
硬盘记录密度越大就可以实现越大的磁盘容量,希捷最近发布的160GB 5400rpm 2.5英寸
垂直纪录笔记本硬盘的纪录密度是每平方英寸135Gbits,东芝最新展示的2.5英寸硬盘每平
方英寸纪录密度是188Gbits,而在加州硅谷的IDEMA DiSKON展会上,希捷展示了1种磁记录
设备,每平方英寸可以纪录421Gbits数据!
希捷CEO Bill Watkins表示,在纪录密度上的突破将开启数字革命,硬盘在各种存储需
求上可以持续保持领先优势。根据希捷的新闻稿,希捷宣称采用421Gbits/平方英寸密度制
造的1.8英寸硬盘可以容纳275GB数据,2.5英寸硬盘可以容纳500GB数据,而全尺寸的3.5英
寸硬盘则可以容纳2.5TB数据,预计希捷将在2009年拿出全尺寸3.5英寸2.5TB容量的硬盘。
日立2010年推5000G硬盘 等同半个人脑存储量
据国外媒体报道,日立日前宣布,将于2010年推出5TB(5000G)硬盘,从而向新兴的固态
硬盘发起挑战。
如今,固态硬盘逐渐蚕食传统硬盘业务, 尤其是在笔记本电脑市场。但是,这并不意
味着传统硬盘将从此退出历史舞台。
硬盘专家日立的做法是,尽可能提升硬盘的存储空间。据悉,日立计划于2010年推出5TB
3.5英寸商用硬盘。该硬盘采用了电流正交平面垂直巨磁阻(CPP-GMR)技术,使每平方英寸的
存储密度达到1TB。
至于5TB的硬盘能够存储多少内容, 日立高管Yoshihiro Shiroishi称:“到2010年,2
块硬盘的存储量就与人类大脑的存储量相当。
[编辑本段]硬盘接口
IDE
IDE的英文全称为“Integrated Drive Electronics”,即“电子集成驱动器”,俗称PATA并口。它的本意是指把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器。把盘体与控制器集成在一起的做法减少了硬盘接口的电缆数目与长度,数据传输的可靠性得到了增强,硬盘制造起来变得更容易,因为硬盘生产厂商不需要再担心自己的硬盘是否与其它厂商生产的控制器兼容。对用户而言,硬盘安装起来也更为方便。IDE这一接口技术从诞生至今就一直在不断发展,性能也不断的提高,其拥有的价格低廉、兼容性强的特点,为其造就了其它类型硬盘无法替代的地位。
I
IDE代表着硬盘的一种类型,但在实际的应用中,人们也习惯用IDE来称呼最早出现IDE类型硬盘ATA-1,这种类型的接口随着接口技术的发展已经被淘汰了,而其后发展分支出更多类型的硬盘接口,比如ATA、Ultra ATA、DMA、Ultra DMA等接口都属于IDE硬盘。
SATA
使用SATA(Serial ATA)口的硬盘又叫串口硬盘,是未来PC机硬盘的趋势。2001年,由Intel、APT、Dell、IBM、希捷、迈拓这几大厂商组成的Serial ATA委员会正式确立了Serial ATA 1.0规范,2002年,虽然串行ATA的相关设备还未正式上市,但Serial ATA委员会已抢先确立了Serial ATA 2.0规范。Serial ATA采用串行连接方式,串行ATA总线使用嵌入式时钟信号,具备了更强的纠错能力,与以往相比其最大的区别在于能对传输指令(不仅仅是数据)进行检查,如果发现错误会自动矫正,这在很大程度上提高了数据传输的可靠性。串行接口还具有结构简单、支持热插拔的优点。
支持Serial-ATA技术的标志
主板上的Serial-ATA接口
串口硬盘是一种完全不同于并行ATA的新型硬盘接口类型,由于采用串行方式传输数据而知名。相对于并行ATA来说,就具有非常多的优势。首先,Serial ATA以连续串行的方式传送数据,一次只会传送1位数据。这样能减少SATA接口的针脚数目,使连接电缆数目变少,效率也会更高。实际上,Serial ATA 仅用四支针脚就能完成所有的工作,分别用于连接电缆、连接地线、发送数据和接收数据,同时这样的架构还能降低系统能耗和减小系统复杂性。其次,Serial ATA的起点更高、发展潜力更大,Serial ATA 1.0定义的数据传输率可达150MB/s,这比目前最新的并行ATA(即ATA/133)所能达到133MB/s的最高数据传输率还高,而在Serial ATA 2.0的数据传输率将达到300MB/s,最终SATA将实现600MB/s的最高数据传输率。
SATA2
希捷在SATA的基础上加入NCQ本地命令阵列技术,并提高了磁盘速率。
SCSI 希捷在服务器上使用的接口,可以热插拔
SAS(Serial ATA SCSI)希捷在高端服务器上的接口。
[编辑本段]硬盘品牌
希捷(Seagate)
在收购迈拓之后,是目前市场占有率最大的品牌。
内置硬盘的产品线分为面向桌面的7200转/分的酷鱼系列和收购的迈拓品牌的DiamondMax系列;面向企业近线存储的7200RPM的ES系列;面向企业的Savvio系列和Cheetah系列;面向数字影像监控的SV系列;面向笔记本的Momentus系列,等等。
西部数据(Westdigital)
市场占有率仅次于希捷。以桌面产品为主。其桌面产品分为侧重高IO性能的Black系列(俗称“黑盘”),普通的Blue系列(俗称蓝盘),以及侧重低功耗、低噪音的环保Green系列(俗称绿盘)。
西部数据同时也提供面向企业近线存储的Raid Edition系列,简称RE系列。同时也有SATA接口的1000RPM的猛禽系列和迅猛龙(VelociRaptor)系列。
西部数据的笔记本硬盘为Scorpio系列。
日立(Hitachi)
第三大硬盘厂商。主要由收购的原IBM硬盘部门发展而来。
产品线分面向企业高性能的UltraStar系列;面向桌面和近线存储的DeskStar系列;面向笔记本的TravelStar系列;
此外,日立还有面向数字影像监控的CinemaStar系列和面向恶劣工作环境的Enrastar系列。
三星(Samsung)
韩国硬盘厂商。产品型号多以Spinpoint开头。
此外,主要硬盘厂商还有侧重笔记本市场的东芝,以及同时侧重笔记本市场和企业级高性能市场的富士通这两个日本厂商。
[编辑本段]硬盘的物理结构
1、磁头
硬盘内部结构磁头是硬盘中最昂贵的部件,也是硬盘技术中最重要和最关键的一环。传统的磁头是读写合一的电磁感应式磁头,但是,硬盘的读、写却是两种截然不同的操作,为此,这种二合一磁头在设计时必须要同时兼顾到读/写两种特性,从而造成了硬盘设计上的局限。而MR磁头(Magnetoresistive heads),即磁阻磁头,采用的是分离式的磁头结构:写入磁头仍采用传统的磁感应磁头(MR磁头不能进行写操作),读取磁头则采用新型的MR磁头,即所谓的感应写、磁阻读。这样,在设计时就可以针对两者的不同特性分别进行优化,以得到最好的读/写性能。另外,MR磁头是通过阻值变化而不是电流变化去感应信号幅度,因而对信号变化相当敏感,读取数据的准确性也相应提高。而且由于读取的信号幅度与磁道宽度无关,故磁道可以做得很窄,从而提高了盘片密度,达到200MB/英寸2,而使用传统的磁头只能达到20MB/英寸2,这也是MR磁头被广泛应用的最主要原因。目前,MR磁头已得到广泛应用,而采用多层结构和磁阻效应更好的材料制作的GMR磁头(Giant Magnetoresistive heads)也逐渐普及。
2、磁道
当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。这些磁道用肉眼是根本看不到的,因为它们仅是盘面上以特殊方式磁化了的一些磁化区,磁盘上的信息便是沿着这样的轨道存放的。相邻磁道之间并不是紧挨着的,这是因为磁化单元相隔太近时磁性会相互产生影响,同时也为磁头的读写带来困难。一张1.44MB的3.5英寸软盘,一面有80个磁道,而硬盘上的磁道密度则远远大于此值,通常一面有成千上万个磁道。
3、扇区
磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区,每个扇区可以存放512个字节的信息,磁盘驱动器在向磁盘读取和写入数据时,要以扇区为单位。1.44MB3.5英寸的软盘,每个磁道分为18个扇区。
4、柱面
硬盘通常由重叠的一组盘片构成,每个盘面都被划分为数目相等的磁道,并从外缘的“0”开始编号,具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面。磁盘的柱面数与一个盘面上的磁道数是相等的。由于每个盘面都有自己的磁头,因此,盘面数等于总的磁头数。所谓硬盘的CHS,即Cylinder(柱面)、Head(磁头)、Sector(扇区),只要知道了硬盘的CHS的数目,即可确定硬盘的容量,硬盘的容量=柱面数*磁头数*扇区数*512B。
[编辑本段]硬盘的逻辑结构
1. 硬盘参数释疑
到目前为止, 人们常说的硬盘参数还是古老的 CHS(Cylinder/Head/Sector)参数。那么为什么要使用这些参数,它们的意义是什么?它们的取值范围是什么?
很久以前, 硬盘的容量还非常小的时候,人们采用与软盘类似的结构生产硬盘。也就是硬盘盘片的每一条磁道都具有相同的扇区数。由此产生了所谓的3D参数 (Disk Geometry). 既磁头数(Heads),柱面数(Cylinders),扇区数(Sectors),以及相应的寻址方式。
其中:
磁头数(Heads)表示硬盘总共有几个磁头,也就是有几面盘片, 最大为 255 (用 8 个二进制位存储);
柱面数(Cylinders) 表示硬盘每一面盘片上有几条磁道,最大为 1023(用 10 个二进制位存储);
扇区数(Sectors) 表示每一条磁道上有几个扇区, 最大为 63(用 6个二进制位存储);
每个扇区一般是 512个字节, 理论上讲这不是必须的,但好像没有取别的值的。
所以磁盘最大容量为:
255 * 1023 * 63 * 512 / 1048576 = 7.837 GB ( 1M =1048576 Bytes )或硬盘厂商常用的单位:
255 * 1023 * 63 * 512 / 1000000 = 8.414 GB ( 1M =1000000 Bytes )
在 CHS 寻址方式中,磁头,柱面,扇区的取值范围分别为 0到 Heads - 1。0 到 Cylinders - 1。 1 到 Sectors (注意是从 1 开始)。
2. 基本 Int 13H 调用简介
BIOS Int 13H 调用是 BIOS提供的磁盘基本输入输出中断调用,它可以完成磁盘(包括硬盘和软盘)的复位,读写,校验,定位,诊,格式化等功能。它使用的就是 CHS 寻址方式, 因此最大识能访问 8 GB 左右的硬盘 (本文中如不作特殊说明,均以 1M = 1048576 字节为单位)。
3. 现代硬盘结构简介
在老式硬盘中,由于每个磁道的扇区数相等,所以外道的记录密度要远低于内道, 因此会浪费很多磁盘空间 (与软盘一样)。为了解决这一问题,进一步提高硬盘容量,人们改用等密度结构生产硬盘。也就是说,外圈磁道的扇区比内圈磁道多,采用这种结构后,硬盘不再具有实际的3D参数,寻址方式也改为线性寻址,即以扇区为单位进行寻址。
为了与使用3D寻址的老软件兼容 (如使用BIOSInt13H接口的软件), 在硬盘控制器内部安装了一个地址翻译器,由它负责将老式3D参数翻译成新的线性参数。这也是为什么现在硬盘的3D参数可以有多种选择的原因(不同的工作模式,对应不同的3D参数, 如 LBA,LARGE,NORMAL)。
4. 扩展 Int 13H 简介
虽然现代硬盘都已经采用了线性寻址,但是由于基本 Int13H 的制约,使用 BIOS Int 13H 接口的程序, 如 DOS 等还只能访问 8 G以内的硬盘空间。为了打破这一限制, Microsoft 等几家公司制定了扩展 Int 13H 标准(Extended Int13H),采用线性寻址方式存取硬盘, 所以突破了 8 G的限制,而且还加入了对可拆卸介质 (如活动硬盘) 的支持。
⑷ 本地缓存/cookie、sessionStorage、localStorage的区别
1、cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递,而sessionStorage和localStorage不会自动把数据发送给服务器,仅在本地保存。
2、存储大小限制也不同,cookie数据不能超过4K,同时因为每次http请求都会携带cookie、所以cookie 只适合保存很小的数据。sessionStorage和localStorage虽然也有存储大小的限制,但比 cookie大得 多,可以达到5M或更大
3、数据有效期不同,sessionStorage仅仅在当前浏览器窗口关闭之前有效;localStorage始终有效,窗口或 者浏览器关闭之后也一直保存,因此作用持久数据;cookie,只在设置cookie过期时间之前有效,即使 窗口关闭或者浏览器关闭。
4、作用域不同:sessionStorage在不同的浏览器窗口中不共享,即使是同一个页面,localStorage在所有的同源窗
1.cookie :具有极高的扩展性和可用性
(1).可以控制保存在cookie中的session对象的大小。
(2).通过加密和安全传输技术,减少cookie被破解的可能性
(3).可以控制cookie的生命期,给cookie一个时效性 。
cookie的缺点:
(1).cookie的长度和数量的限制。最多只能有20条cookie,每个cookie长度不能超过4KB。否则会被截掉至4KB。
(2).安全性问题。如果cookie被人拦掉了,就可以获取到所有session信息
2.localStorage (永久存储)
用于持久化的本地存储,除非主动删除数据,否则数据是永远也不过期的。
3.sessionStorage (临时存储,浏览器关闭就消失)
用于本地存储一个会话(session)中的数据,这个数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionstorage不是一种持久化的本地存储,仅仅是会话级别的存储。
⑸ mysql VARCHAR的最大长度到底是多少
以前一直都认为有两个字节来记录长度(长度小也可以用一个字节记录),所以这个问题当时觉得就挺无聊的不过后来群里有人给了解释,突然才发现原来事情不是这么简单MYSQL COMPACT格式,每条记录有一个字节来表示NULL字段分布,如果表中有字段允许为空,则最大只能定到65532,如果没有字段允许为空,则那个字节可以节省,最大可以定义到65533,不知道是不是这个原因于是上网看了些资料,又在本地做了些实验,原来vachar的最大长度真的是不定的(根据是否有非空字段来决定)在本地做了下实验,innodb+latin的环境
复制代码 代码如下:
-- success
drop table if exists test;
create table test(name varchar(65533) not null)engine=innodb DEFAULT CHARSET=latin1-- too large
drop table if exists test;
create table test(name varchar(65533))engine=innodb DEFAULT CHARSET=latin1对于第二种情况,允许空字段的时候是不能加到65533的长度的,最大只能到65532,到底应该是引文的那种说法。
网上也有人做了类似的实验,参考http://stackoverflow.com/questions/8295131/best-practise-for-sql-varchar-column-length复制代码 代码如下:
name varchar(100) not null will be 1 byte (length) + up to 100 chars (latin1)name varchar(500) not null will be 2 bytes (length) + up to 500 chars (latin1)name varchar(65533) not null will be 2 bytes (length) + up to 65533 chars (latin1)name varchar(65532) will be 2 bytes (length) + up to 65532 chars (latin1) + 1 null byte总结一下,原来mysql的vachar字段的类型虽然最大长度是65535,但是并不是能存这么多数据,最大可以到65533(不允许非空字段的时候),当允许非空字段的时候只能到65532。
以下是其它网友的补充说明:
这不是一个固定的数字。本文简要说明一下限制规则。
strlen 计算字符串长度,一个中文当2字符
mb_strlen根据它的字符编码模式,统计字符quotcount计算数组中的元素数目或对象中的属性个数复制代码 代码如下:
<?php
header('Content-Type:text/html;charset=UTF-8');$string1="谢春业";//定义中文字符变量
$string2="xcy";//定义英文字符变量
//直接输出看看他们的长度
echo strlen($string1);
echo "</br>";
echo strlen($string2);
echo "</br>";
//用 php 多字节扩展函数 mb_strlen试试看
echo mb_strlen($string1,'utf8');
echo "</br>";
echo mb_strlen($string2,'utf8');
echo "</br>";
?>
输出结果是:
9
3
3
3
1、限制规则
字段的限制在字段定义的时候有以下规则:
a) 存储限制
varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时需要2个字节),因此最大长度不能超过65535。
b) 编码长度限制
字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766;字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845。
对于英文比较多的论坛 ,使用GBK则每个字符占用2个字节,而使用UTF-8英文却只占一个字节。
若定义的时候超过上述限制,则varchar字段会被强行转为text类型,并产生warning。
c) 行长度限制
导致实际应用中varchar长度限制的是一个行定义的长度。 MySQL要求一个行的定义长度不能超过65535。若定义的表长度超过这个值,则提示ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs。
2、计算例子
举两个例说明一下实际长度的计算。
a) 若一个表只有一个varchar类型,如定义为
create table t4(c varchar(N)) charset=gbk;则此处N的最大值为(65535-1-2)/2= 32766。
减1的原因是实际行存储从第二个字节开始';
减2的原因是varchar头部的2个字节表示长度;
除2的原因是字符编码是gbk。
b) 若一个表定义为
create table t4(c int, c2 char(30), c3 varchar(N)) charset=utf8;则此处N的最大值为 (65535-1-2-4-30*3)/3=21812减1和减2与上例相同;
减4的原因是int类型的c占4个字节;
减30*3的原因是char(30)占用90个字节,编码是utf8。
如果被varchar超过上述的b规则,被强转成text类型,则每个字段占用定义长度为11字节,当然这已经不是“varchar”了。
⑹ window.sessionStorage、window.localStorage与cookie总结
前言:最近项目中用到了本地存储和cookie,虽然平时也经常提到,但是在用的时候还是有些模糊,这里做一下总结,以便加深记忆。
Web Storage是为了在本地“存储”数据而生,均不会被发送到服务器端。包括了两种存储方式:sessionStorage和localStorage,这两个对象在支持的浏览器中都是以 window 对象属性的形式存在的。
相同点:
1、仅在客户端中保存,不参与和服务器的通信
2、都有同源策略限制,不同浏览器无法共享localStorage或sessionStorage中的信息
3、存储大小均为5M左右
不同点:
1、生命周期
localStoage:是一种永久性存储,除非手动清除。
sessionStorage:会话存储,存储在 sessionStorage 里面的数据在页面会话结束时会被清除,也就是一旦窗口或者标签页被关闭,那么所有通过 sessionStorage 存储的数据也会被删。页面会话在浏览器打开期间一直保持,并且重新加载或恢复页面仍会保持原来的页面会话。
2.作用域
localStorage: 在同一个浏览器内,同源文档(页面属于相同域名和端口)之间,即使是不同页面可以共享 localStorage 数据,可以互相读取、覆盖。
sessionStorage: 与 localStorage 一样需要同一浏览器同源文档这一条件。不仅如此,sessionStorage 的作用域还被限定在了窗口中,也就是说,只有同一浏览器、同一窗口的同源文档才能共享数据。
语法:
sessionStorage或localStorage两种存储方式几乎都有相同的方法和属性。
1.localStorage.length 和 sessionStorage.length : 返回本地存储列表长度;需要说明的是可以通过localStorage对象获取对应的存储数据,比如已经存储了一个键为name的数据,使用localStorage.name获取存储数据;下面的方法都是基于localStorage 对象 或 sessionStorage 对象;
2.getItem( keyName )方法:通过键获取存储的数据;
3.setItem( keyName,value )方法:存储数据,keyName为存储数据的键,value实际要存储的数据(可以把keyName理解成 给要存储的数据起的名字,便于管理);
4.removeItem( keyName )方法: 将指定键名的数据删除;
5.clear() 方法:清空所有的存储数据;
6.key() 方法: 获取键值,需要注意的是并不能返回指定布尔值需要作进一步处理
基本概念
1、cookie 确实非常小,它的大小限制为4KB左右。
2、要表示唯一的一个cookie值需要:name、domain、path
3、一般由服务器生成,可设置失效时间。如果在浏览器端生成Cookie,默认是关闭浏览器后失效。
4、每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题。
cookie的使用
document.cookie,通过该方法可以读取、修改、删除cookie。
⑺ 浏览器支持的Localstorage最大支持多大,数据是储存在哪里
localStorage 存储在浏览器中。
localStorage中一般浏览器支持的是5M大小,在不同的浏览器中localStorage会有所不同。
localStorage:
用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去删除。
localStorage 属性是只读的。
只想将数据保存在当前会话中,可以使用 sessionStorage 属性, 改数据对象临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。
(7)本地存储最大长度扩展阅读:
localStorage主要有以下几种方法:
1、localStorage.setItem("key", "value");
存储名字为key的一个值value,如果key存在,就更新value。
例:
localStorage.setItem("name","john"); //设置name为john
localStorage.setItem("name","john1"); //覆盖之前的值,现在name所对应的值是john1
2、var lastname = localStorage.getItem("key");
获取名称为key的值,如果key不存在则返回null。
3、localStorage.removeItem("key");
删除名称为“key”的信息,这个key所对应的value也会全部被删除。
4、localStorage.clear():
清空localStorage中所有信息。
⑻ 腾讯会议能录多久制
腾讯会议客户端分为免费版和专业版,升级为专业版后会议时长不受限制,会议人数上限可扩容,不过2020年1月24日起至疫情结束,腾讯会议面向所有用户免费开放300人不限时会议功能,可打开客户端直接使用。
⑼ HTML5中sessionStorage最大容量是多少
目前最大的应该是支持5M的最大容量。
⑽ 数据分析项目包含哪些流程
1、数据采集
了解数据采集的意义在于真正了解数据的原始面貌,包括数据产生的时间、条件、格式、内容、长度、限制条件等。
2、数据存储
无论数据存储于云端还是本地,数据的存储不只是我们看到的数据库那么简单。
3、数据提取
数据提取是将数据取出的过程,数据提取的核心环节是从哪取、何时取、如何取。
4、数据挖掘
数据挖掘是面对海量数据时进行数据价值提炼的关键。
5、数据分析
数据分析相对于数据挖掘更多的是偏向业务应用和解读,当数据挖掘算法得出结论后,如何解释算法在结果、可信度、显着程度等方面对于业务的实际意义,如何将挖掘结果反馈到业务操作过程中便于业务理解和实施是关键。
6、数据展现
数据展现即数据可视化的部分,数据分析师如何把数据观点展示给业务的过程。数据展现除遵循各公司统一规范原则外,具体形式还要根据实际需求和场景而定。
7、数据应用
数据应用是数据具有落地价值的直接体现,这个过程需要数据分析师具备数据沟通能力、业务推动能力和项目工作能力。