数据存储

IT知识架构

こ雲淡風輕ζ 提交于 2020-02-08 00:55:07
一、IT知识架构 1.数据存储(磁盘 ) (1)SAN架构、NAS架构、DAS架构(专门将数据存储于磁盘阵列,属于共享存储架构,一般用于云计算、运维) (2)HDFS(分布式存储架构,只解决数据存储);集群(应用) HDFS:Hadoop的分布式系统 H:Hadoop D:定义 FS:系统 2.系统:linux系统 3.算法 (1)map-reduces的数据处理集群:它是将海量数据按照一定的方式修改为键值关系(key-value) (2)HDFS+map-reduces=Hadoop集群(运行于linux上的高性能集群) (3)通过数学(统计学)+Python=算法 (4)数据可视化 4.IT的工作方向:运维、开发 运维 :linux操作系统(Windows-桌面工程师) (1)linux运维、Web架构、搭建自己的网站 (2)虚拟化KVM/XEN、openstack、docker(k8s) (3)Hadoop(大数据)、Hadoop+JAVA=大数据存储方向(HDFS、map-reduces、Hive sql、zookeeper、spark、scala) 开发 :计算机语言 (1)Basic是早期的机械语言 (2)C语言、c++语言是最接近汇编语言的高级语言用于驱动开发、系统开发、嵌入式开发(写板子) (3)驱动程序:需要转换各个厂家之间的指令集,让厂家设备之间互通 前端:Js

曹丽媛7月30日笔记

纵然是瞬间 提交于 2020-02-08 00:38:13
7月30日 数据存储:磁盘(共享) 1、SAN NAS DAS (专门将数据存储于磁盘阵列) 2、分布式存储架构(HDFS:hodoop定义的文件系统。用来做海量数据存储)--集群(应用) 系统:Linux 算法:1、map-reduces的数据处理集群:它是将数据按照一定的方式,修改为键值关系(key-value)HDFS + map-reduces=Hadoop集群(运行于Linux商的一个高性能集群) 2、通过数学(统计学)+Python 云计算—大数据 开发—计算机语言 BASIC早期机械语言 C C++:系统开发、驱动开发、嵌入式开发(写板子) (驱动程序:需要转换各个厂家设备之间的指令集。让厂家设备之间互通) 前端:JS Php css html JAVA 工具:脚本语言—shell\perl\python 数据库:MySQL、nosql 操作系统简介 1、 操作系统干什么的?--平台(承上启下 :上-应用 下-硬件设备(resource)) 硬件设备平台的三大部件:CPU 内存 1/O设备 (运算器 控制器 存储器,input设备 output设备) CPU:所有的运算 内存;向CPU提供数据(CPU只能向内存读取数据)重启系统内存中的数据将会丢失CPU读取内存中指定(需要的数据)这个过程,我们叫寻址(物理地址 逻辑地址) IO设备:网卡(适配器adapter)

MongoDB(1)----基础概念

爱⌒轻易说出口 提交于 2020-02-07 21:36:14
1.什么是MongoDB?   MongoDB是由C++语言实现的一个基于分布式文件存储的开源数据库。旨在为Web应用提供可扩展的高性能数据存储解决方法。它介于关系型数据库(Sql)和非关系型数据库(NoSql)之间。 2.MongoDB数据存储结构?   MongoDB将数据存储为一个文档,以键值对的形式(Key:Value结构)作为其数据结构。如下图所示: 3.MongoDB优缺点? 优点: 1)可以非常方便的为数据建立索引 2)可以通过网络或者本地创建数据镜像 ,使得MongoDB具有更强的扩展性 3)数据面向文档进行存储,操作起来简单 4)不存在Sql注入问题 5)支持大容量的数据存储 6)内置Sharding,分片简单 7)支持故障恢复 缺点: 1)不支持事务 2)复杂的聚合操作通过mapreduce创建,速度慢 3)无法进行关联表查询,不适合关系多的数据、 4)删除数据集合后不会自动释放空间 4.MongoDB的应用场景?   当传统的关系型数据库无法满足 高并发、海量数据存储访问、灵活扩展、 等需求的时候,就可以将MongoDB作为一种解决方案。 总结: 1)程序有大量数据存储(TB甚至PB级别) 2)程序发展速度较快,要求具有快速扩展的能力 3)程序需要3000以上的QPS 4)数据模型暂时无法确定 5)数据价值较低,不需要事务支持和复杂的join操作  

hive的数据存储格式

我怕爱的太早我们不能终老 提交于 2020-02-06 11:52:49
hive支持hadoop中的TextFile、RCFile、SequenceFile、AVRO、ORC、Parquet格式 1、TextFile每一行都是一条记录,每行都以换行符\n结尾,数据不压缩,磁盘开销大,数据解析开销大,可以结合Gzip和Bzip2使用。这种方式,hive不会对数据切分,从而也不会对数据进行并行处理 2、SequenceFile是一种二进制文件,使用方便、可以分割、可以压缩的特点,支持三种压缩格式,NONE、record、block.record压缩效率低,一般建议使用block压缩 3、RCFile是一种列存储相结合的压缩方式,将数据按行分块,保证同一个record在一个块上,避免读取一个记录需要多个block,其次,块数据列式存储有利于数据压缩和快速的列存取 4、AVRO是开源项目,为hadoop提供数据序列化的数据交换的服务,是hadoop的应用程序中流行的文件格式之一 5、ORC文件格式提供了一种将数据存储在hive表中的高效方法,hive从大型表中读取、写入和处理数据时,使用ORC可以提高性能 6、Parquet是一个面向列的二进制格式,parquet对于大型查询类型是高效的,对于扫描特定表格中特定列查询,parquet是特别有用的,parquet使用压缩有snappy gzip,默认snappy。 总结 1、如果仅仅是hive中存储和查询

python共享内存

萝らか妹 提交于 2020-02-05 01:55:36
https://docs.python.org/zh-cn/3/library/multiprocessing.html 共享内存 可以使用 Value 或 Array 将数据存储在共享内存映射中。例如,以下代码: from multiprocessing import Process, Value, Array def f(n, a): n.value = 3.1415927 for i in range(len(a)): a[i] = -a[i] if __name__ == '__main__': num = Value('d', 0.0) arr = Array('i', range(10)) p = Process(target=f, args=(num, arr)) p.start() p.join() print(num.value) print(arr[:])    来源: https://www.cnblogs.com/kekeoutlook/p/12262304.html

海量数据存储之存储设计(一)

徘徊边缘 提交于 2020-02-05 00:20:36
转自:http://forchenyun.iteye.com/blog/942448 相关文章推荐: 海量数据存储之Key-Value存储简介 海里数据存储之存储设计(二) Je的排版真的让人难过...... 从本文开始着重讲解存储细节,思路比较飘逸,观者多包涵。 翻译了一篇Redis作者antirez的 文章 做为本文的切入点,翻译得不好,这部分可以大致一览,后面会有分析。 Append Only和Reuse Blocks的一些区别 对于一颗append only btree(以下简称AOB)来说,最有趣的属性就是它不可能出现corrupt(可以理解为数据不一致状态)。另外一个有趣的属性就是并发访问没有任何问题,因为无论你访问根节点或其它节点,它们总是一致的(Valid)。 但是有一点我不喜欢的,AOB需要一个额外的Compaction(压缩)进程,否则文件会越来越大。如果你的访问需求是绝大部分是读,那么这样是没问题的。但如果你有非常多的写需求,那么问题就来了。 试想一下:如果你的写请求非常大,已经到了磁盘IO的极限,此时你的AOB文件会越来越大,你需要Compaction。但是你已经达到了IO瓶颈,这时你是重新开一个文件还是重写这棵树呢?这些额外的IO将会影响到这棵btree的性能。你能先降低写请求来降低这种冲撞吗?很遗憾不能,另外

Android数据存储——文件存储

╄→尐↘猪︶ㄣ 提交于 2020-02-02 18:49:46
一 。数据存储到文件中 通过openFileOutput()方法来讲数据存储到指定的文件中。接收两个参数,第一个参数是存储的文件名,第二个参数是文件操作模式。openFileOutput()返回的是一个FileOutputStream对象(字节输出流)。 存储代码如下: 1 public void save(String inputTest) { 2 FileOutputStream out = null; //字节 3 BufferedWriter writer = null; //字符缓冲输出流 4 try{ 5 out = openFileOutput("data", Context.MODE_PRIVATE); 6 writer = new BufferedWriter(new OutputStreamWriter(out));//OutputStreamWrite()是将字符流转化为字节流 7 writer.write(inputTest); 8 } catch (IOException e) { 9 e.printStackTrace(); 10 }finally { 11 try{ 12 if (writer!=null) 13 writer.close(); 14 } catch (IOException e) { 15 e.printStackTrace();

Android之SharedPreferences数据存储

♀尐吖头ヾ 提交于 2020-02-02 18:34:19
一、SharedPreferences保存数据介绍   如果有想要保存的相对较小键值集合,应使用SharedPreferences API。SharedPreferences对象指向包含键值对的文件并提供读写这些文件的简单方法。每个SharedPreferences文件由框架进行管理并且可以专用或共享。   SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中重载窗口状态onSaveInstancesState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长整形、Int整形、String字符串型的保存。   处理方式:SharedPreferences类似过去的Windows系统上的ini配置文件,但它分为多种权限,可以全局共享访问 ,Android提示最终是以xml方式来保存,整体效率来看不是特别高,对于常规的轻量级而言要比SQLite要好不少如果真的存储量不大可以考虑自己定义文件格式。Xml处理时Dalvik会通过自带底层的本地XML Parser解析,比如XML pull方式,这样对于内存资源占用比较好。它的本质是基于xml文件存储key-value键值对数据,通过用来存储一些简单的配置信息。其存储位置在/data/data/<包名>

一.什么是protobuf

南楼画角 提交于 2020-01-31 07:56:34
Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。他们用于 RPC 系统和持续数据存储系统。 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。 (翻译自protobuf3官网) 来源: https://www.cnblogs.com/kexianting/p/11507435.html