0%

当数据量太大,传统的随机存储模型失效,此时就需要外存算法

外存算法概述

传统的存储模型假设有无限内存(RAM),统一的访问代价,该模型简单易懂。而现代的计算机有复杂的存储层次:

通过多级存储的机制,增大了存储量。较慢的存储层次更加远离CPU。由于磁盘访问速度比内存访问慢了2个数量级,根据局部性原理,为了减少访问次数,数据的传输以块(block)为基本单位来平摊访问代价(每个块8-16字节)。

如今的操作系统大多能通过先进的分页和预取策略优化集中区域数据的访问,但是如果数据访问过于分散,再优秀的操作系统也无法发挥优势。所以,设计外存算法要考虑I/O问题。

传统算法的执行时间往往随着数据量的增长线性增长,但数据量特别大的时候,处理时间会急剧上升。原因是内存不够,虚存会不断访问磁盘,进行swap,造成抖动。

阅读全文 »

本文为icourse哈工大课程《大数据算法》笔记

大数据算法概述

大数据4个V

  • Volume:数据规模大
  • Variet:数据类型多,多源异构
  • Velocity:处理速度快
  • Value:基于深度分析的新价值

大数据上问题求解计算问题的过程

  1. 先判断是否可以计算。一个普通数据量上都不能计算的问题,在大数据上,也不可计算
  2. 判断在现有的资源约束下,时间约束下,数据量下,是否是能行可计算
  3. 算法分析与设计
  4. 编程实现算法(Hadoop/Spark)
  5. 软件系统构造
阅读全文 »

环境:MySQL 5.7

LOAD DATA INFILE

MySQL的LOAD DATA INFILE可以快速导入各种格式化的数据。现有位置数据需要导入:

数据为一般文本,位于/root/d_dt_region,以","分割列,以"包裹字段。执行mysql -uroot -p进入MySQL Shell,使用以下命令:

LOAD DATA INFILE "/root/t_dt_region.csv" 
INTO TABLE t_dt_region
FIELDS TERMINATED BY "," ENCLOSED BY "\""
LINES TERMINATED BY "\r\n"
(ID,PARENT_ID,NAME,SHORT_NAME,LONGITUDE,LATITUDE,LEVEL,SORT,STATUS);

阅读全文 »

图灵机

定义:图灵机(TM,Turing Machine)M为七元组

  1. $Q$:有穷状态集
  2. $\Sigma$:有穷输入符号集
  3. $\Gamma$:有穷带符号集,且总有$\Sigma \subset \Gamma$
  4. $\delta$:$Q \times \Gamma \to Q \times \Gamma \times \lbrace L,R \rbrace$转移函数
  5. $q_0 \in Q$:初始状态
  6. $B \in \Gamma - \Sigma$:空格符号
  7. $F \subseteq Q$:终态集或接受状态集
    阅读全文 »