大数据的通识
大数据的通识
OLAP和OLTP
数据处理大致可以分成两大类:
- 联机事务处理OLTP(On-line transaction processing),OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLTP型数据库的典型代表是关系型数据库(mysql)
- 联机分析处理OLAP(On-Line Analytical Processing),OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。OLAP型数据库的典型代表是分布式文件系统(hive),它的数据存储在hdfs集群的文件里
IOPS(Input/Output Operations Per Second)是一个用于电脑存储设备(如硬盘(HDD)、固态硬盘(SSD)或存储区域网络(SAN))性能测试的量测方式,可以视为是每秒的读写次数。 和其他性能测试一様,存储设备制造商提出的IOPS不保证就是实际应用下的性能。[1]
所以OLAP和OLTP之间的关系可以认为OLAP是依赖于OLTP的,因为OLAP分析的数据都是由OLTP所产生的,也可以看作OLAP是OLTP的一种延展
ODBC(Open Database Connectivity,开放数据库互连)提供了一种标准的API(应用程序编程接口)方法来访问数据库管理系统(DBMS)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。ODBC的设计者们努力使它具有最大的独立性和开放性。
特点/系统 | OLTP System Online Transaction Processing | OLAP System Online Analytical Processing |
---|---|---|
业务目的 | 处理业务,如订单、合同等 | 业务支持决策 |
面向对象 | 业务处理人员 | 分析决策人员 |
主要工作 | 负载增、删、改 | 查询 |
主要衡量指标 | 事务吞吐量 | 查询响应速度(QPS) |
数据库设计 | 3NF 或 BCNF | 星型/雪花模型 |
分布式DB
分布式数据库 | 集中式数据库 |
---|---|
由位于不同站点的多个数据文件组成 | 由单个中央数据库文件组成 |
允许多个用户访问和操作数据 | 多个用户同时访问同一文件时发生瓶颈问题 |
从离用户最近的位置快速传送文件 | 文件传递给用户可能需要更长时间 |
如果其中一个站点发生故障,数据可以恢复 | 单站点意味着系统发生故障时停机 |
来自分散数据库的多个文件必须同步 | 在单一的中央系统中更简单地更新和管理数据 |
核心:数据分片+数据同步 数据分片:
- 突破单机硬件限制数据分散到多个节点
- 水平分片,按照行数分割分到不同的节点
- 垂直分片,按照列分到不同的节点,一个模式被分到小的模式 数据同步:
- 用起来和单机DB无异
- 保持数据的一致性
共享存储架构:商业化的 ORACLE RAC做到了数据的分片和同步,每层离散化使用ASM镜像存储技术,让client在使用上没有明显的区别,ASM在每层之间提供了完整的磁盘功能,对应用透明平衡拓展性与性能 无共享存储架构:Hadoop,真正的无共享磁盘,面向商业分析场景,OLAP;MPP架构的数据库,通过网络让多个节点互联 去IOE运动将OLTP从关系型数据库中分离出来,Spanner,NuoDB,TiDB,Oceanbase HATP(融合交易分析处理)数据库,一般存在于云上多
一些资源
DB-Engines 数据库排名网站
Fetching Title#604r
一些无用的话
Julia社区出了很多数据分析的包,你可以去看看。rust本身不是用做数据分析的,所以包比较少。但是像polars这种东西已经完全胜过pandas,你得自己去找找文档看看,我没法细说。Rust最好的地方就在于:pandas很多功能是可以用polars代替的,且polars是自动多线程,处理大数据集远远快于pandas。如果你有个跨课题/项目的数据分析步骤反复用到,可以用polars的API写成rust源码,再用cargo build成二进制可执行文件,用的时候在python脚本里subprocess.Popen就行,特别舒服 正则的与或非
凡是能说的,都能够说清楚 凡是无法言说的,应当保持沉默