精华内容
下载资源
问答
  • 行存储列存储优缺点

    千次阅读 2019-05-16 11:46:29
    行存储 列存储 优点 写入效率高,保证数据完整性 读取效率高,没有冗余 缺点 数据有冗余现象,计算速度慢 写入次数多,速度慢,小号cpu 使用场景 关注整张表内容,或者需要经常更新数据、...
    行存储 列存储
    优点 写入效率高,保证数据完整性 读取效率高,没有冗余
    缺点 数据有冗余现象,计算速度慢 写入次数多,速度慢,消耗cpu
    使用场景 关注整张表内容,或者需要经常更新数据、需要经常读取整行数据、不需要聚集运算,或者快速查询需求、数据表本身数据行并不多 经常关注一张表某几列而非整表数据的时候、基于一列或比较少的列计算的时候、数据表拥有非常多的列的时候、数据表有非常多行数据并且需要聚集运算的时候、数据表列里有非常多的重复数据,有利于高度压缩

    行存储的写入是一次性完成,消耗的时间比列存储少, 并且能够保证数据的完整性,缺点是数据读取过程中会产生冗余数据,
    如果只有少量数据,此影响可以忽略;数量大可能会影响到数据的处理效率。
    列存储在写入效率、保证数据完整性上都不如行存储,它的优势是在读取过程不会产生冗余数据,这对数据完整性要求不高的大数据处理领域,比如互联网,犹为重要。

    展开全文
  • 行存储列存储优缺点

    千次阅读 2019-10-11 17:17:31
    行存储:数据按行存储在底层文件系统中,通常,每一行会被分配固定的空间 优点:有利于增加、修改整行记录等操作,有利于整行数据的读取操作 缺点:单列查询时,会读取一些不必要的数据 按列存储 :数据以列为...
    • 按行存储:数据按行存储在底层文件系统中,通常,每一行会被分配固定的空间

      • 优点:有利于增加、修改整行记录等操作,有利于整行数据的读取操作
      • 缺点:单列查询时,会读取一些不必要的数据
    • 按列存储 :数据以列为单位,存储在底层文件系统中

      • 优点:有利于面向单列数据的读取/统计等操作
      • 缺点:整行读取时,可能需要多次I/O操作
    展开全文
  • 参考文章:式存储和存储优缺点和paruqet文件结构 一、式存储和式存储的比较 式存储和式存储是针对数据在存储介质中的排序形式而言的,假设存在一张table,那么: 式存储:依次连续存储第1、2、3...

    参考文章:行式存储和列式存储优缺点和paruqet文件结构

    一、列式存储和行式存储的比较

    列式存储和行式存储是针对数据在存储介质中的排序形式而言的,假设存在一张table,那么:

    • 行式存储:依次连续存储第1、2、3...行的数据到存储介质中;
    • 列式存储:依次连续存储第1、2、3...列的数据到存储介质中。

    图1-1所示为行式存储和列式存储的示意图,一张table包含5个字段(列)即rowid、date/time、customer name以及quantity,共7行,图中的红色箭头表示存储顺序。

    标图1-1. 行式存储和列式存储区别题

     

    二、行式存储和列式存储的优缺点和适用场景

    存储形式的差异决定了适用场景的不同:

    • 行式存储适合”针对行”的查询
      比如(mysql)select * from table_name limit 1,因为只会读取图1-1中的“row-based store 第1个绿色部分的数据”(只有指定的行“1 845 2 3 1”才会被读取),而select rowid from table_name则需要读取row-based store所有绿色部分的数据(虽然目的仅是要查询1个字段);此外还适用于insert/update操作比较多的场景,因为只需要更改部分数据块即可。
    • 列式存储适合“针对列”的查询
      比如select rowid from table_name,因为只会读取图1-1中的“column-based store 第1个绿色部分的数据”(查询时只有涉及到的字段会被读取),而select * from table_name limit 1则需要读取column-based stores所有绿色部分的数据(虽然目的就是要查询第1行的数据);但是不适用于insert/update操作比较多的场景,比如当插入1个row时,由于列式存储导致同一个row的数据被分散在多个数据块中,因此需要去遍历所有数据块的数据此外由于同一个字段连续存储(同一列的内容有很多值是重复的,可以压缩),因此更加便于编码压缩。
    存储类别 适用于 不适用于
    row-based 针对行的查询,
    insert/update操作
    针对列的查询
    column-based 针对列的查询,
    编码压缩减小存储空间占用
    针对行的查询,
    insert/update操作

    综合来看,列式存储比较适合大数据量(压缩比高)、分析型操作(针对少数几列);不适合频率较高的删除(全列检索)、更新(重新压缩)操作。

    列式存储基于字典表的编码压缩

    图2-1所示为列式存储中将某张table基于字典表进行编码压缩的示例,图中左边为源表,假设该table中的customers和material字段的取值均只有右上表所示的5种,那么当源表的行数很大时,customers和material字段就会存在大量重复的取值,为了节省存储空间对这两个字段进行编码,即使用一个字典表(右上图)记录该两个字段的distinct取值,又下表则用右上表字段取值对应的index(整数1、2、3、4、5)来代替原来的string,由于string占用的存储空间比这几个index占用的存储空间大多了,因此可以较大程度上压缩占用的存储空间。

    图2-1. 列式存储基于字典表压缩数据标题

    三、parquet文件结构

    基于列式存储的两个典型实现是:hbase和parquet,其中:

    • hbase可以看成是一个基于列式存储的非关系型数据库NoSQL;
    • parquet是基于列式存储定义的一种文件格式。

    parquet的文件结构如图3-1所示:

     

    图3-1. parquet文件结构一览图标题

     

    从图中可以看出,1个parquet文件由header(1个)、block(可以多个)、footer(1个)组成,分别负责:

    • header:只包含一个4个byte的数字PAR1,用来识别整个Parquet文件格式。文件中所有的metadata都存在于footer中;
    • block:存储数据;
    • footer:包含block中的metadata比如版本信息、schema信息等,footer中最后2个字段分别是1个4个byte长度的footer的metadata、同header中一样的PAR1。

    图3-2所示为parquet文件中,block、rowgroup、columnchunk以及page的关系:

    标图3-2. parquet中rowgroup、block、columnchunk以及page的关系题

     

    简而言之:

    • 1个block就是指1个rowgroup;
    • 1个columnchunk对应1个字段;
      1个columnchunk中可能存在多个page(page默认大小为1M)。

    因此如果将一个parquet文件类比成一张大excel 表,那么:

    • header就相当于excel表的后缀名;
    • block就相当于excel表中的某些数据行(如果行数太多导致需要的byte数超过了block size那就需要多个block);
    • footer就相当于excel表的页脚记录了字段数、行数、各block占用的存储空间等元数据)。
    展开全文
  • 显而易见,两种存储格式都有各自的优缺点行存储的写入是一次性完成,消耗的时间比列存储少,并且能够保证数据的完整性,缺点是数据读取过程中会产生冗余数据,如果只有少量数据,此影响可以忽略;数量大可能会影响...
    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/vagabond6/article/details/79555282


    写入:
    行存储的写入是一次完成,数据的完整性因此可以确定。
    列存储需要把一行记录拆分成单列保存,写入次数明显比行存储多。
    行存储在写入上占有很大的优势

    数据修改:
    行存储是在指定位置写入一次,列存储是将磁盘定位到多个列上分别写入。
    行存储在数据修改也是占优的

    数据读取:
    行存储通常将一行数据完全读出,如果只需要其中几列数据,就会存在冗余列
    列存储每次读取的数据是集合中的一段或者全部。
    由于列储存的数据是同质的,这种情况使数据解析变得容易。行存储则复杂的多,因为在一行记录中保存了多种类型的数据,数据解析需要在多种数据类型之间频繁转换,这个操作很消耗cpu
    所以列存储的解析过程中更有利于分析大数据


    显而易见,两种存储格式都有各自的优缺点:行存储的写入是一次性完成,消耗的时间比列存储少,并且能够保证数据的完整性,缺点是数据读取过程中会产生冗余数据,如果只有少量数据,此影响可以忽略;数量大可能会影响到数据的处理效率。列存储在写入效率、保证数据完整性上都不如行存储,它的优势是在读取过程,不会产生冗余数据,这对数据完整性要求不高的大数据处理领域,比如互联网,犹为重要。


    什么时候应该使用行式存储?什么时候应该使用列式存储呢?
    如果你大部分时间都是关注整张表的内容,而不是单独某几列,并且所关注的内容是不需要通过任何聚集运算的,那么推荐使用行式存储。原因是重构每一行数据(即解压缩过程)对于HANA来说,是一个不小的负担。
    列式存储的话,比如你比较关注的都是某几列的内容,或者有频繁聚集需要的,通过聚集之后进行数据分析的表。


    展开全文
  • 行存储vs列存储

    2016-04-11 16:16:42
    目前大数据存储有两种方案可供选择:行存储列存储。业界对两种存储方案有很多争持,集中焦点是:谁能够更有效地处理海量数据,且兼顾安全、可靠、完整性。从目前发展情况看,关系数据库已经不适应这种巨大的存储量...
  • 行存储列存储

    2013-03-29 17:09:31
    目前大数据存储有两种方案可供选择:行存储列存储。业界对两种存储方案有很多争持,集中焦点是:谁能够更有效地处理海量数据,且兼顾安全、可靠、完整性。从目前发展情况看,关系数据库已经不适应这种巨大的存储量...
  • 文章目录存储方式对比优缺点对比简单对比式存储式存储的优点式存储的缺点列式存储列式存储的优点列式存储的缺点适用场景对比参考 存储方式对比 式存储就是每一的所有数据存在一个block中,各个block之间...
  • 目前大数据存储有两种方案可供选择:行存储列存储。业界对两种存储方案有很多争持,集中焦点是:谁能够更有效地处理海量数据,且兼顾安全、可靠、完整性。从目前发展情况看,关系数据库已经不适应这种巨大的存储量...
  • 在这里,我不讨论这些软件的技术和优缺点,只围绕机械磁盘的物理特质,分析行存储列存储的存储特点,以及由此产生的一些问题和解决办法。  一.结构布局  行存储数据排列  列存储数据排列  表格的灰色背景...
  • 目前大数据存储有两种方案可供选择:行存储(Row-Based)和列存储(Column-Based)。业界对两种存储方案有很多争持,集中焦点是:谁能够更有效地处理海量数据,且兼顾安全、可靠、完整性。从目前发展情况看,关系...
  • 行存储还是列存储f分析

    千次阅读 2014-07-25 17:33:21
    目前大数据存储有两种方案可供选择:行存储列存储。业界对两种存储方案有很多争持,集中焦点是:谁能够更有效地处理海量数据,且兼顾安全、可靠、完整性。从目前发展情况看,关系数据库已经不适应这种巨大的存储量...
  • 目前大数据存储有两种方案可供选择:行存储列存储。业界对两种存储方案有很多争持,集中焦点是:谁能够更有效地处理海量数据,且兼顾安全、可靠、完整性。从目前发展情况看,关系数据库已经不适应这种巨大的存储量...
  • 列存储行存储进阶

    千次阅读 2013-02-26 13:29:07
    目前大数据存储有两种方案可供选择:行存储列存储。业界对两种存储方案有很多争持,集中焦点是:谁能够更有效地处理海量数据,且兼顾安全、可靠、完整性。从目前发展情况看,关系数据库已经不适应这种巨大的存储量...
  • 行存储列存储--大数据应用选择

    千次阅读 2015-05-23 21:28:27
    目前大数据存储有两种方案可供选择:行存储列存储。业界对两种存储方案有很多争持,集中焦点是:谁能够更有效地处理海量数据,且兼顾安全、可靠、完整性。从目前发展情况看,关系数据库已经不适应这种巨大的存储量...
  • 存储存储的比较

    千次阅读 2018-03-04 21:15:37
    存储的优点: 同一数据存放在同一个block块里面,select * from table_name;数据能直接获取出来;  INSERT/UPDATE比较方便 存储缺点: ...不同类型数据存放在同一个block块里面,压缩...存储
  • 查询满足条件的一整行数据的时候,列存储则需要去每个聚集的字段找到对应的每个列的值,行存储只需要找到其中一个值,其余的值都在相邻地方,所以此时行存储查询的速度更快。 列存储的特点 因为每个字段的数据聚集...
  • 导读:在讲《Apache Druid 底层存储设计》时就说过要讲一讲列式存储。现在来了,通过本文你可以了解到行存储模式、列存储模式、它们的优缺点以及列存储模式的优化等知识。今日格言:不要...
  • 建立索引的可以保证的唯一性 立索引可以有效缩短数据的检索时间 建立索引可以加快表与表之间的连接 为用来排序或者是分组的字段添加索引可以加快分组和排序顺序 索引的缺点: 创建索引和维护索引需要时间成本...
  • 什么是列存储

    2020-11-07 17:01:32
    现在来了,通过本文你可以了解到行存储模式、列存储模式、它们的优缺点以及列存储模式的优化等知识。 今日格言:不要局限于单向思维,多对比了解更多不同维度的东西。 从数据存储讲起 我们最先接触的数据库系统,大...
  • 现在来了,通过本文你可以了解到行存储模式、列存储模式、它们的优缺点以及列存储模式的优化等知识。 今日格言:不要局限于单向思维,多对比了解更多不同维度的东西。 从数据存储讲起 我们最先接触的数据库系统,...
  • 可以从几个方面做答:行列存储都有哪些数据库,概念以及优缺点。02核心问题回答1、传统的关系型数据库,如 Oracle、DB2、MySQL、SQL SERVER 等采用存储法(Row-based),在基于存储的数据库中,数据是按照...
  • Hbase的优缺点

    2021-01-18 18:22:11
    HBase是一个式数据库,相对于于传统的式数据库而言。当你的单张表字段很多的时候,可以将相同的(以regin为单位)存在到不同的服务实例上,分散负载压力。 二、Hbase的缺点 架构设计复杂,且使用HDFS作为...
  • 索引优缺点

    2018-05-30 14:38:44
    优点保证的唯一性提高检索效率加快表与表之间的连接对于分组和排序的字段提高效率缺点创建索引和维护索引需要时间成本,这个成本随着数据量的增加而加大创建索引和维护索引需要空间成本,每一条索引都要占据数据库...
  • 数据库索引的优缺点

    千次阅读 2018-10-18 22:03:56
    索引的优缺点 索引的优点: ① 建立索引的可以保证的唯一性,生成唯一的rowId ② 建立索引可以有效缩短数据的检索时间 ③ 建立索引可以加快表与表之间的连接 ④ 为用来排序或者是分组的字段添加索引可以加快分组...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 148
精华内容 59
关键字:

行存储列存储优缺点