精华内容
下载资源
问答
  • 列存储数据库包括哪些
    2022-05-24 10:56:34

    ClickHouse是俄罗斯的Yandex于2016年开源的一个用于联机分析(OLAP:Online Analytical Processing)的列式数据库管理系统(DBMS:Database Management System),简称CK , 主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。

    它的引擎在实际使用中应用了一种现在比较流行的 LSM 方式。

    它是一套完全由 C++ 模板 Code 写出来的实现.

    ClickHouse会使用服务器上一切可用的资源,从而以最自然的方式并行处理大型查询。

    ClickHouse支持基于SQL的声明式查询语言,该语言大部分情况下是与SQL标准兼容的。
    支持的查询包括 GROUP BY,ORDER BY,IN,JOIN以及非相关子查询。
    不支持窗口函数和相关子查询。

    1,MySQL单条SQL是单线程的,只能跑满一个core,ClickHouse相反,有多少CPU,吃多少资源,所以飞快;
    2,ClickHouse不支持事务,不存在隔离级别。ClickHouse的定位是分析性数据库,而不是严格的关系型数据库
    3,IO方面,MySQL是行存储,ClickHouse是列存储,后者在count()这类操作天然有优势,同时,在IO方面,MySQL需要大量随机IO,ClickHouse基本是顺序IO。

    clickhouse简介_肿么肥四啊哈的博客-CSDN博客_clickhouse是关系型数据库吗

    简单说说列式存储数据库 - 简书

    更多相关内容
  • Table of Contents 存储数据库 Examples of Column StoreDBMSs Hbase Table Row Column Column Family ...存储数据库 ...数据库是以相关存储架构进行数据存储数据库,主要...

    Table of Contents

    列式存储数据库

    Examples of Column Store DBMSs

    Hbase

    Table

    Row

    Column

    Column Family

    Column Qualifier

    Cell

    Timestamp

    Druid(德鲁依)

    Cassandra

    参考


    列式存储数据库

    列式数据库是以列相关存储架构进行数据存储的数据库,主要适合于批量数据处理和即时查询。相对应的是行式数据库,数据以行相关的存储体系架构进行空间分配,主要适合于大批量的数据处理,常用于联机事务型数据处理。

    列存储数据库使用一个称为 keyspace 的概念。keyspace 有点像关系模型中的模式。keyspace 包含所有列族(有点像关系模型中的表),其中包含行,包含列。

    像这样,一个 keyspace 包含多个列族:

    一个列族包含三行,每一行包含他们自己的列。

    如上图所示:

    • 列族由多行组成。
    • 每一行可以包含与其他行不同数量的列。而且这些列不必与其他行的列匹配(例如,它们可以有不同的列名、数据类型、数量等)。
    • 每行包含一列。它不像关系数据库那样跨所有行。每个列包含一个名称/值对,以及一个时间戳。

    下面是每一行的结构:

    • Row Key:每一行都有一个惟一的键,这是该行的惟一标识符。
    • Column:每个列包含名称、值和时间戳。
    • Name:KV 对的 K
    • Value:KV 对的 V
    • Timestamp:这提供了插入数据的日期和时间。这可以用来确定数据的最新版本。

    一些 DBMSs 扩展了列族概念,以提供额外的功能/存储能力。例如,Cassandra 有复合列的概念,它允许您将对象嵌套在列中。

     

    特点/优点

    • 高效的压缩效率,节省磁盘空间和计算CPU和内存
    • 基于 CPU L2 缓存高效的数据迭代
    • 压缩算法:列式数据库由于其每一列都是分开储存的。所以很容易针对每一列的特征运用不同的压缩算法。常见的列式数据库压缩算法有Run Length Encoding , Data Dictionary , Delta Compression , BitMap Index , LZO , Null Compression 等等。根据不同的特征进行的压缩效率从10W:1 到10:1 不等。而且数据越大其压缩效率的提升越为明显。
    • 延迟物化:列式数据库由于其特殊的执行引擎,在数据中间过程运算的时候一般不需要解压数据而是以指针代替运算,直到最后需要输出完整的数据时。
    • 聚合查询:由于它们的结构,柱状数据库在聚合查询(如SUM、COUNT、AVG等)方面表现得特别好。
    • 可扩展性:列式存储数据库是可伸缩的。它们非常适合大规模并行处理(MPP),这涉及到将数据分散到一个大的机器集群中——通常是数千台机器。
    • 快速查询和写入:可以非常快地加载。可以在几秒钟内加载十亿行表。几乎可以立即开始查询和分析。

    Examples of Column Store DBMSs

    Hbase

    在 HBase 中,数据存储在具有行和列的表中。这是一个与关系数据库(rdbms)重叠的术语,但这不是一个有用的类比。相反,将 HBase 表看作多维映射是合理的。

    Table

    HBase 表由多行组成。

    Row

    HBase 的行由一个 rowkey 和一个或多个 column 组成,其中的值与它们相关联。行在存储时按行键的字母顺序排序。因此,行键的设计非常重要。其目标是以相关行彼此相邻的方式存储数据。

    一个常见的 rowkey 模式是一个网站域名。如果您的 rowkey 是域,您可能应该以相反的方式存储它们(org.apache.www, org.apache.mail, org.apache.jira)。通过这种方式,所有Apache域在表中彼此接近,而不是基于子域的第一个字母展开。

    Column

    HBase 中的列由一个列族和一个列限定符组成,它们由一个:(冒号)字符分隔。

    Column Family

    出于性能原因,列族在物理上共使用一组列及其值。每个列族都有一组存储属性,比如它的值是否应该缓存在内存中,它的数据是如何压缩的,或者它的 rowkey 是如何编码的,等等。表中的每一行都有相同的列族,尽管给定行可能不会在给定列族中存储任何内容。

    Column Qualifier

    列限定符被添加到列族中,以提供给定数据块的索引。给定一个列族内容,一个列限定符可能是content:html,另一个可能是content:pdf。虽然列族在表创建时是固定的,但是列限定符是可变的,而且行之间可能会有很大差异。即每一行列的数量是不一样的。

    Cell

    Cell 是行、列族和列限定符的组合,它包含一个值和一个时间戳,时间戳表示值的版本。

    Timestamp

    每个值旁边都有一个时间戳,它是给定版本的值的标识符。默认情况下,时间戳表示写入数据时在 RegionServer 上的时间,也可以在将数据放入计算单元时指定不同的时间戳值。

    Druid(德鲁依)

    德鲁依是一个高性能的实时分析数据库。用于大数据集的 OLAP 查询。Druid 通常用作支持实时摄取、快速查询性能和高正常运行时间的用例的数据库。因此,德鲁依通常被用于支持分析应用的 GUIs,或者作为需要快速聚合的高并发 APIs 的后端。德鲁依最擅长处理面向事件的数据。

    Druid 的核心架构结合了数据仓库、时间序列数据库和日志搜索系统的思想。德鲁依的一些主要特点是:

    1. 列式存储:Druid 使用面向列的存储,这意味着它只需要加载特定查询所需的精确列。这极大地提高了只访问几列的查询的速度。此外,每个列的存储都针对其特定的数据类型进行了优化,该数据类型支持快速扫描和聚合。
    2. 可扩展分布式系统:德鲁依通常部署在数十到数百台服务器的集群中,可以提供每秒数百万条记录的吞吐率,上万亿条记录的保存率,以及亚秒到几秒的查询延迟。
    3. 大规模并行处理:德鲁依可以在整个集群中并行处理一个查询。
    4. 实时或批量摄取:德鲁依可以实时或者批量的获取数据。
    5. 自愈,自平衡,操作方便:作为操作员,要减小或扩展集群,只需添加或删除服务器,集群就会在后台自动地重新平衡自己,而不会有任何停机时间。如果德鲁依的服务器失败了,系统会自动绕过失败的直到这些服务器可以被替换。德鲁依被设计成24/7运行,不需要任何原因的停机计划,包括配置变化和软件更新。
    6. 云本地的、容错的架构,不会丢失数据:一旦德鲁依摄取了你的数据,副本就会安全的存储在后端存储器中(通常是云存储,HDFS,或者共享文件系统)。就算是德鲁依的服务器坏掉了,数据也会从后端存储中恢复。对于小部分服务器不可用的情况下,副本机制可以保证服务器恢复时,数据仍然可以被查询。
    7. 快速过滤索引:Druid 使用 CONCISE 或 Roaring 的压缩位图索引来创建索引,支持跨多列的快速过滤和搜索。
    8. 基于时间的分区:德鲁依首先按时间分区数据,并且可以根据其他字段进行分区。这意味着基于时间的查询将只访问与查询的时间范围匹配的分区。这将显著提高基于时间的数据的性能。
    9. 近似算法:德鲁伊包括近似计数-区分,近似排序,近似直方图和分位数的计算算法。这些算法提供有限的内存使用,通常比精确计算快得多。对于精度比速度更重要的情况,德鲁依也提供精确的计数-清晰和精确的排名。
    10. 自动生成摄取时间:德鲁依选择性地支持数据自动汇总在摄入的时候。这种汇总在一定程度上预先聚合了您的数据,可以节省大量成本并提高性能。

    哪些情况使用德鲁依:

    • 插入率非常高,但是更新不太常见。
    • 大多数查询是聚合和报告查询(“group by”查询)。您还可以进行搜索和扫描查询。
    • 您的查询延迟目标是100ms到几秒。
    • 你的数据有一个时间组件(德鲁伊包括优化和设计选择具体相关的时间)。
    • 可能有多个表,但是每个查询只访问一个大型分布式表。查询可能会碰到多个较小的“查找”表。
    • 您有较高的基数数据列(例如 url、用户 id),需要对它们进行快速计数和排序。
    • 您希望从Kafka、HDFS、本地文件或Amazon S3之类的对象存储加载数据。

    Cassandra

    当您需要可伸缩性和高可用性而又不影响性能时,Apache Cassandra 数据库是正确的选择。在普通硬件或云基础设施上的线性可伸缩性和经过验证的容错能力使其成为关键任务数据的完美平台。Cassandra 对跨多个数据中心复制的支持是同类产品中最好的,它为用户提供了更低的延迟,并让您安心地知道可以在区域中断中幸存下来。

    参考

    https://searchdatabase.techtarget.com.cn/7-20958/

    http://hbase.apache.org/book.html#datamodel

    https://database.guide/what-is-a-column-store-database/

    https://druid.apache.org/docs/latest/design/index.html

    http://cassandra.apache.org/

    展开全文
  • 常见的数据库哪些

    2022-06-26 23:31:53
    数据库是计算机时代有效储存数据的手段,那么现在常用的数据库哪些呢?在现在的应用当中,最常见的数据库模型是关系型数据库和非关系型数据库这两种数据库类型。

    数据库是计算机时代有效储存数据的手段,那么现在常用的数据库有哪些呢?

    在现在的应用当中,最常见的数据库模型是关系型数据库非关系型数据库这两种数据库类型。

      一、关系型数据库的简要介绍

      关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关联的表格分类、合并、连接或选取等运算来实现数据库的管理。其实,目前关系型数据库的具体产品有:Oracle和MySQL。其中Oracle在数据库领域是占领导地位的。

      二、非关系型数据库的简要介绍

      1、键值存储数据库

      键值数据库就类似传统语言中使用的哈希表。可以通过key来添加、查询或者删除数据库,因为使用key主键访问,所以会获得很高的性能及扩展性。键值数据库主要使用一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署、高并发;典型产品:Memcached、Redis、MemcacheDB

      2、列存储数据库

      列存储数据库将数据存储在列族中,一个列族存储经常被一起查询的相关数据,比如人类,我们经常会查询某个人的姓名和年龄,而不是薪资。这种情况下姓名和年龄会被放到一个列族中,薪资会被放到另一个列族中。这种数据库通常用来应对分布式存储海量数据;这种数据库的典型产品有:Cassandra、Hbase

         3、图形数据库

      图形数据库允许我们将数据以图的方式存储。实体会被作为顶点,而实体之间的关系则会被作为边。比如我们有三个实体,Steve Jobs、Apple和Next,则会有两个“Founded by”的边将Apple和Next连接到Steve Jobs。这种数据库的典型产品有:Neo4J、InforGrid。

         4、面向文档数据库

      文档型数据库的灵感是来自于Lotus Notes办公软件,而且它同第一种键值数据库类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高;

      面向文档数据库会将数据以文档形式存储。每个文档都是自包含的数据单元,是一系列数据项的集合。每个数据项都有一个名词与对应值,值既可以是简单的数据类型,如字符串、数字和日期等;也可以是复杂的类型,如有序列表和关联对象。数据存储的最小单位是文档,同一个表中存储的文档属性可以是不同的,数据可以使用XML、JSON或JSONB等多种形式存储。这种数据库的典型产品有:MongoDB、CouchDB.

    展开全文
  • 数据库简介

    千次阅读 2020-06-26 21:13:35
    什么是列式数据库? 列数据存储区也称为面向列的DBMS或列式数据库管理系统。列存储DBMS将数据存储在列而不是行中。...列存储DBMS使用的键空间类似于RDBMS中的数据库架构。 列存储DBMS具有称为列族的概

    什么是列式数据库?

    列数据存储区也称为面向列的DBMS或列式数据库管理系统。列存储DBMS将数据存储在列而不是行中。关系数据库管理系统(RDBMS)将行中的数据和数据属性存储为列标题。基于行的DBMS和基于列的DBMS都使用SQL作为查询语言,但是面向列的DBMS可能会提供更好的查询性能。假设您需要根据ID列出表中的所有名称;而不是遍历所有行,您可以只访问表的单个列。

    以下是列数据存储DBMS的一些关键特性。

    1. 列存储DBMS使用的键空间类似于RDBMS中的数据库架构。
    2. 列存储DBMS具有称为列族的概念。列族就像RDBMS上的表,键空间包含数据库中的所有列族。
    3. 列族包含多个行,每行都有一个唯一的键,称为行键,这是该行的唯一标识符。
    4. 列存储数据库中的每一列都有一个“名称”,“值”和“时间戳记”字段。
    5. 每行可以包含不同数量的列,所有行都不必具有相同的列。
    6. 每列可以包含多行,所有行都不必具有相同的数据类型或大小。

    键空间(Keyspace)

    列存储DBMS使用的键空间类似于RDBMS中的数据库架构。键空间包含所有列族,键空间名称可以是CMS数据库,用于存储用户配置文件、文档和文档元数据。

     

      

    列族(Column Family)

    列族就像RDBMS中的表,一个键空间可以有多个列族。例如,键空间可以具有以下列列族AuthorProfile,MemberProfile,Article,Blog和Question。

     

    行键(Row key)

    列族包含多个行。下面是列族行的示例,行中的第一项是单值行键,它是标识行的唯一键。

     

    列(Column)

    每行可以有多列。列数据存储中的一列包含实际值。列存储数据库中的数据存储在带有时间戳的键/值对中,每行可以具有不同数量的列。

     

    AuthorProfile

    以下是具有三行的AuthorProfile列族,每行具有不同数量和类型的列。从数据中可以看到,每行都有唯一的行键。

     

     

    列族的三行是Mahesh,David和Allen。第一行包含三列:性别,专业知识和等级。第二行有两列,性别和书本。第三行包含三列:城市,图书和等级。

     

    列式存储的主要优点

    列存储数据库的主要优点包括更快的加载,搜索和聚合。列存储数据库具有可伸缩性,可以在几秒钟内读取数十亿条记录。列存储数据库在数据压缩和分区方面也比传统的行存储更有效。

     

    流行的列式数据库

    一些流行的面向列的DBMS包括Bigtable,Cassandra,HBase,Druid,Hypertable,MariaDB,Azure SQL Data warehouse,Google BigQuery,IBM Db2,MemSQL,SQL Server和SAP HANA。

     

    Google BigTable

    Google Bigtable是PB级的列存储数据库,一个完全托管的NoSQL数据库服务,支持大型分析和业务操作的工作负载。主要功能包括:

    1. 低延迟,可大规模扩展的NoSQL
    2. 保证数据一致的情况下,实现10毫秒以下延迟
    3. 通过复制提供高可用、更高的持久性和弹性以解决区域数据故障
    4. 适用于互联网广告技术,金融科技和物联网等应用
    5. 面向机器学习应用的存储引擎
    6. 与开源大数据工具轻松集成

    Apache Cassandra

    Apache Cassandra NoSQL数据库在不降低性能的前提下,提供很强的扩展性和高可用。线性可扩展,以及在商用硬件或云基础架构上经过验证的容错能力使它成为关键数据处理的理想平台。Cassandra对跨多个数据中心的复制提供了一流的支持,为您的用户提供了更低的延迟,并且帮助您的客户在区域数据中心故障的情况下保持数据可用,让用户安心无忧。

    Apache HBase

    Apache HBase是开源、分布式和可扩展的NoSQL大数据存储平台,它可以在几秒钟内访问数十亿行大数据。主要功能包括:

    1. 线性扩展和模块化
    2. 严格一致的读写
    3. 表的自动分片,并且可配置
    4. 支持RegionServer之间的自动故障转移
    5. 方便的基类,可以在Apache HBase表中备份Hadoop MapReduce作业
    6. 易于使用的Java API用于客户端访问
    7. 用于实时查询的块缓存和布隆过滤器
    8. 通过服务器端过滤器支持谓词下推
    9. Thrift网关和REST-ful Web服务支持XML、Protobuf和二进制数据编码
    10. 可扩展的基于jruby的(JIRB)shell

    注:以上内容由google翻译,重新调整和排版而成,有不妥之处,可参考原文: https://www.c-sharpcorner.com/article/what-is-a-column-store-database/

    展开全文
  • 数据库简介

    千次阅读 2019-09-30 09:00:39
    1. 说出至少 3 项 Google BigTable 的核心特性 开发者可以动态的控制族中的各 数据值是按照行标识符,列名及时间戳来定位的 ... 数据库的基本存储单元。有名称和值。如 LastName ---&g...
  • 一句话区别 ...OLAP:基于列存储,查询速度极快,用于海量数据分析,Clickhouse、Vertica、 Amazon Redshift、 Sybase IQ、 Exasol、 Infobright、 InfiniDB、 LucidDB、 SAP HANA、 Google Dremel 列族...
  • 哪些列存储?有什么区别?大多数数据库系统存储一组数据记录,这些记录由表中的列和行组成。字段是列和行的交集:某种类型的单个值。属于同一列的字段通常具有相同的数据类型。例如,如果我们定义了一个包含用户...
  • 8 NoSQL数据库哪些

    千次阅读 2022-03-08 14:40:15
    常见的 NoSQL 数据库包括键值数据库、族数据库、文档数据库和图形数据库,其具体分类和特点如表所示。 NoSQL 数据库分类和特点 分类 相关产品 应用场景 数据模型 优点 缺点 键值数据库 Redis、...
  • 目录什么是行存储和列存储?什么是MongoDB(NoSQL)?OLTP和OLAP什么是CAP定理?使用场景行存储的适用场景:列存储的适用场景:MongoDB相对于MySQL的优点更适用MySQL的场景更适用MongoDB的场景个人理解扩展参考 什么...
  • 大多数数据库系统存储一组数据记录,这些记录由表中的和行组成。字段是和行的交集:某种类型的单个值。 属于同一的字段通常具有相同的数据类型。例如,如果我们定义了一个包含用户数据的表,那么所有的用户名...
  • 导读:本文带你了解面向与面向行的数据库。作者:Alex Petrov来源:大数据DT(ID:hzdashuju)大多数数据库系统存储一组数据记录,这些记录由表中的和行组成。字段是和...
  • 数据库以行、的二维表的形式存储数据。可是却以一维字符串的方式存储。比例如以下面的一个表:EmpIdLastnameFirstnameSalary1SmithJoe400002JonesMary500003JohnsonCathy44000这个简单的表包含员工代码(EmpId), 姓...
  • 存储和行式存储

    2020-10-29 16:57:22
    存储数据库主要包括:HBase,ClickHouse,HP Vertica(也支持行式存储) 行式存储数据库主要包括传统关系型数据库:MySQL,Oracle,DB2,SQLServer 因为是磁盘存储方式不同,所以先跳出固有思维来理解,想
  • 表 1 所示出了每一类数据库的前 3~5 名,排名会不断变化,实时的排名参见 http://db-engines.com/en/ranking 网站。下面对排名靠前的开源数据库做一些简单介绍。1. MySQL/MariaDB2008 年美国 Sun 公司花费 10 亿...
  • 常用数据库哪些

    千次阅读 多人点赞 2019-09-20 09:09:28
    表 1 所示出了每一类数据库的前 3~5 名,排名会不断变化,实时的排名参见http://db-engines.com/en/ranking网站。 表 1 各类数据库排名 大类 类别 前3~5名 说明 SQL 关系数据库 Oracle、...
  • 分布式数据库HBase

    万次阅读 2018-02-14 15:48:39
    本文概述:1、HBase概述2、HBase特点3、HBase和RDBMS以及HDFS的对比区别4、HBase核心术语5、HBase物理模型6、HBase...分布式,版本化的非关系型数据库)HBase概述1)构建在HDFS之上的,分布式、面向的开源数据库...
  • 行式数据库数据库

    千次阅读 2014-11-18 16:41:06
    开发用了很久的Vertica,一直都知道它是“数据库
  • 数据库 指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度的特点、是与应用程序彼此独立的数据集合。当前数据库分为 关系型数据库 和 非关系型数据库 。 一、关系型数据库 关系型数据库: 指采用...
  • 数据库类型

    2021-01-24 15:20:00
    表(Table)是数据库中数据存储最常见和最简单的一种形式,数据库可以将复杂的数据结构用较为简单的二维表来表示。二维表是由行和组成的,分别都包含着数据; 每个表都是由若干行和组成的,在数据库中表中的行被...
  • 什么是数据库数据库(Database)是按照数据结构来组织、存储和管理数据的仓库 什么是关系型数据库,主键,外键,索引分别是什么?... 在关系数据库中,索引是一种单独的、物理的对数据库表中一或多的值
  • 数据库对象有哪些

    万次阅读 2019-08-25 11:08:08
    数据库对象简述 数据库的主要组成部分就是数据库对象,而数据库中的一行数据,称为一条...数据库对象就是数据库的组成部分,主要的数据库对象包含:触发器(Trigger)、表(Table)、视图(View)、存储过程(Stored...
  • 如果要在数据库中将32个字符的UUID(不包含破折号)作为文本存储,则将花费至少32个字节。 仅当每个字符仅需要1个字节时,这才算在内。 但这完全取决于您的编码。 如果每个字符都需要2个字节,那么存储它将花费
  • 常见的非关系型数据库哪些

    千次阅读 2020-06-02 16:04:57
    Redis 是 C 语言开发的一个开源的(遵从 BSD 协议)高性能键值对(key-value)的内存数据库,可以用作数据库、缓存、消息中间件等。 它是一种 NoSQL(not-only sql,泛指非关系型数据库)的数据库。 Redis作为一个...
  • 常见的 NoSQL 数据库包括键值数据库、族数据库、文档数据库和图形数据库
  • ---------------------------------- 常见数据库对象 (了解)------------------------ 表( TABLE ) : 有行有,行又叫做记录;又叫做(属性)字段 备份表:在数据库中创建临时备份表 CREATE TABLE 表名 AS ...
  • 数据库存储引擎

    千次阅读 2021-12-12 11:37:25
    数据库存储引擎是数据库底层软件组件,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据库操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能。使用不同的存储引擎,还可以获得特定...
  • 文章目录数据库介绍数据库管理系统-简称(DBMS)数据库管理系统-主要功能数据库的类型1. 关系数据库2....所谓“数据库”是以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用...
  • 传统的关系型数据库,如 Oracle、DB2、MySQL、SQL SERVER 等采用行...随着大数据的发展,现在出现的存储数据库。它与传统的行式数据库有很大区别的。 行式数据库是按照行存储的,行式数据库擅长随...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 491,000
精华内容 196,400
热门标签
关键字:

列存储数据库包括哪些