学习
实践
活动
工具
TVP
写文章

维度谈OLAP与OLTP数据库

所以OLAP重分析、重决策,数据量大因此需支持高吞吐;对数据多维度分析可能涉及复杂查询,需要能够对多维数据进行钻取、切片切块、旋转。 在线事务处理(OLTP)使大量人员通常通过Internet实时执行大量数据库事务。 例如 从ATM机到店内购买再到酒店预订,OLTP系统是我们日常交易的基础。 B+树全节点遍历更快:B+树遍历整棵树只需要遍历所有的叶子节点即可,,而不需要像B树一样需要对每一层进行遍历,这有利于数据库做全表扫描。 树结构的存储具有很好的读性能和范围查询,确定是承载数量大时需要做其他策略(例如Mysql的分库分表)以适应业务需求,因此基于B+树的存储结构比较适用于OLTP应用场景;例如 MySQL 作为 OLTP 数据库不仅具备事务的处理能力 综上列存储的数据库更适合OLAP,行存储的数据库更适合OLTP

53710

Day24访问数据库

使用SQLite SQLite是一种嵌入式数据库,它的数据库就是一个文件。 要操作关系数据库,首先需要连接到数据库,一个数据库连接称为Connection; 连接到数据库后,需要打开游标,称之为Cursor,通过Cursor执行SQL语句,然后,获得执行结果。 Python定义了一套操作数据库的API接口,任何数据库要连接到Python,只需要提供符合Python标准的数据库驱动即可。 SQLAlchemy用一个字符串表示连接信息: '数据库类型+数据库驱动名称://用户名:口令@机器地址:端口号/数据库名' 下面,我们看看如何向数据库表中添加一行记录。 ORM框架的作用就是把数据库表的一行记录与一个对象互相做自动转换。 正确使用ORM的前提是了解关系数据库的原理。

46540
  • 广告
    关闭

    年末·限时回馈

    热卖云产品年终特惠,2核2G轻量应用服务器6.58元/月起,更多上云必备产品助力您轻松上云

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数据库】01——精通数据库需要掌握这九个维度

    :全面深入介绍数据库系统应用,数据库系统的目标,数据视图,数据库语言,数据库设计思想,数据库引擎,数据库的应用体系结构,数据库的用户与语言,数据库的发展历程九个维度,带你真正理解数据库,知道精通数据库要学习什么内容 该专栏将会把这些维度一网打尽。 文章目录 1.数据库简介 1.1.什么是数据库? 1.2 哪些数据需要被管理? 1.3 为什么需要数据库语言? 1.4 数据库给人类生活带来的改变在哪? 7 数据库的应用体系结构 8 数据库用户和管理员 8.1 数据库用户和用户界面 8.2 数据库管理员 9 数据库系统的历史 1.数据库简介 1.1.什么是数据库? 4.数据库语言——定义和操作数据 数据库的定义语言DDL与数据库的操作语言DML都是数据库系统的操作语言,他们都是SQL语言的一部分,关系型数据库几乎都使用SQL语言。 数据库设计的初始阶段是和领域专家、数据库用户充分讨论,形成数据库用户需求说明书文档,说明数据库用户的数据需求,以及将怎样构造数据库用户满足这些需求。 (2)概念设计。

    7910

    分布式数据库评估维度分析

    那么这类数据库较传统数据库又有何差异?在数据库选型中,需要注意哪些方面?本文尝试描述数据库(特别是分布式数据库)选型需考虑维度,希望帮助企业可以做出最适合的选择。 1. 数据库评估维度概览 人生基本上就是两件事,选题和解题。最好的人生是在每个关键点上,既选对题,又解好题。人生最大的痛苦在于解对了题,但选错了题,而且还不知道自己选错了题。 之所以做了这样的划分,是因为曾参与过多款数据库产品评测,大量的人工测试方式非常低效。这里是尝试将部分对比维度分类提取出来,可尝试使用自动化方式解决上述问题。 计算:虽然不提倡在数据库端进行计算,但如果支持计算的话,将有利于将传统数据库应用迁移到新型数据库中。在分布式架构下,这部分实现较难。 3. 评估维度:数据对象篇 人生基本上就是两件事,选题和解题。 DML DDL DQL:对于分布式数据库而言,灵活复杂的查询能力实现难度较高。很多产品在这部分都有所取舍,没有实现全集。 5. 评估维度:内核功能篇 人生基本上就是两件事,选题和解题。

    41140

    维度模型数据仓库(八) —— 维度子集

    这些特定维度包含在从细节维度选择的行中,所以叫维度子集。维度子集比细节维度小,因此更易使用,查询也更快。         本篇中将准备两个特定维度,它们均取自现有的维度:月份维度(日期维度的子集),Pennsylvania州客户维度(客户维度的子集)。 清单(五)-3-1里的脚本用于建立月份维度,并从日期维度初始装载月份维度。注意月份维度不包含promo_ind列,该列不适用月层次上,因为一个月中可能有多个促销期。促销标记适用于日层次。 无论何时用修改后的脚本增加日期记录时,如果这个日期所在的月份没在月份维度中,那么该月份会被装载到月份维度中。 而特定维度子集是选择基本维度的一个特定子集。清单(五)-3-3里的脚本建立特定维度表,并导入Pennsylvania (PA)客户维度子集。

    1100

    维度模型数据仓库(十一) —— 维度层次

    维度层次         大多数维度都具有一个或多个层次。例如,日期维度就有一个四级层次:年、季度、月和日。这些级别用date_dim表里的列来表示。 日期维度是一个单路径层次,因为除了年-季度-月-日这条路径外,它没有任何其它层次。本篇将讨论在维度的层次上进行分组和钻取查询。 例如,日-月-季度-年这个链条是一个日期维度的层次。除了日期维度,产品和客户维度也有层次。 表(五)- 6-1显示了三个维度的层次。注意客户维度具有两个路径的层次。 product_category , date , sequence , time; 清单(五)- 6-2         Kettle转换用于钻取查询的步骤如图(五)- 6-9到图(五)- 6-24 图(五)- 6-18 图(五)- 6-19 图(五)- 6-20 图(五)- 6-21 图(五)- 6-22 图(五)- 6-23 图(五)- 6-24

    2000

    tensorflow | 维度转换

    学习维度转换 shape 计算维度 tf.shape(input,name = None) 案例1 a = tf.constant([i for i in range(20)],shape

    37220

    维度模型数据仓库(十九) —— 维度合并

    维度合并         随着数据仓库中维度的增加,会发现有些通用的数据存在于多个维度中。例如,客户维度的客户邮编相关信息、送货邮编相关信息和工厂维度里都有邮编、城市和州。 本篇说明如何把三个维度里的邮编相关信息合并到一个新的邮编维度。         修改数据仓库模式 为了合并维度,需要改变数据仓库模式。图(五)- 14-1显示了修改后的模式。 注意图中只显示了与邮编维度相关的表。 图(五)- 14-1         zip_code_dim表与两个事实表相关联。这些关系替换了这两个事实表与客户维度、工厂维度的关系。 66)\G *************************** 1. row ***************************              customer_sk: 24 图(五)- 14-18 图(五)- 14-19 图(五)- 14-20 图(五)- 14-21 图(五)- 14-22 图(五)- 14-23 图(五)- 14-24

    15910

    维度模型数据仓库(十三) —— 退化维度

    退化维度         本篇讨论一种称为退化维度的技术。该技术减少维度的数量,简化维度数据仓库的模式。简单的模式比复杂的更容易理解,也有更好的查询性能。 当一个维度没有数据仓库需要的任何数据时就可以退化此维度。需要把退化维度的相关数据迁移到事实表中,然后删除退化的维度。         退化订单维度         本节说明如何退化订单维度,包括对数据仓库模式和定期装载脚本的修改。使用维度退化技术时你首先要做的识别数据,分析从来不用的数据列。 例如,订单维度的order_number列就可能是这样的一列。但如果用户想看事务的细节,还需要订单号。因此,在退化订单维度前,要把订单号迁移到sales_order_fact表。 清单(五)- 8-3里的脚本向源数据库里的sales_order表新增十行。

    900

    维度模型数据仓库(十四) —— 杂项维度

    杂项维度         本篇讨论杂项维度。简单地说,杂项维度就是一种包含的数据具有很少可能值的维度。 new_customer_ind(如果这是新客户的首个订单,值为yes) web_order_flag(表示此订单是否是在线下的订单)         这类数据常被用于增强销售分析,应该用称为杂项维度的特殊维度类型存储 新增销售订单属性杂项维度 给现有的数据仓库新增一个销售订单杂项维度,需要新增一个名为sales_order_attribute_dim的维度表。 可以预装载这个维度,并且只需装载一次。         注意 如果知道某种组合是不可能出现的,就不需要装载这种组合。执行清单(五)- 9-1里的脚本修改数据库模式。 这个脚本做了四项工作:建立sales_order_attribute_dim表,向表中预装载全部16种可能的组合,给销售订单事实表添加杂项维度代理键,给源数据库里的sales_order表增加对应的四个属性列

    1400

    聊聊维度建模的灵魂所在——维度表设计

    前言 维度表是维度建模的灵魂所在,在维度表设计中碰到的问题(比如维度变化、维度层次、维度一致性、维度整合和拆分等)都会直接关系到维度建模的好坏,因此良好的维表设计就显得至关重要,今天就让我们就一起来探究下关于维表设计的相关概念和一些技术 插入新的维度行 相比重写维度值方法不维护维度属性变化的特点,插入新的维度行方法则通过在维度表中插入新的行来保存和记录变化的情况。 通过新增维度行,我们保存了维度的变化,并实现了维度值变化前的 实和变化后的事实分别与各自的新旧维度值关联。 但是这也给维度表用户带来了困惑,为什么查询会员会在维度表中发现多行记录? 维度一致性的意思是指:两个维度如果有关系,要么就是完全一样的,要么就是一个维度在数学意义上是另一个维度的子集。 不一致既包含维度表内容的不 致,也包含维度属性上的不一致。 前台的业务系统通常是比较复杂的,比如移动端交易系统和PC端交易系统的系统架构和底层数据库、表结构等完全不一致,此时就存在维度的整合问题。

    41140

    维度模型数据仓库(二) —— 维度模型基础

    数据集市就是面向终端用户的数据库。数据集市通常使用维度模型来建模,并根据报表和分析的需求而优化。Kimball和Inmon架构最大的区别就是是否需要一个企业级的数据仓库(EDW)。 一般数据库设计需要满足3NF。在《构建Oracle高可用环境》这本书里有一个很好的例子讲述数据库范式设计。而对于维度模型最简单的描述就是,按照事实表、维度表来构建数据仓库、数据集市。 星型模式是部署在关系数据库管理系统之上的多维结构,主要包含事实表,以及通过主键/外键关系与之关联的维度表。在星型模式实施中,所有维度级别的维度数据存储在单个表或视图中。 雪花模就是将维度层次进一步规范化为子维度。在雪花模式实施中,使用多个表或视图来存储维度数据。单独的数据库表或视图存储与维中每个级别相关的数据。         而维度模型虽然常应用在关系数据库管理系统之上,但是并不要求必须满足3NF,也就是说维度模型允许可控的数据冗余。这样做简少了表和表间关系的数量,同时提高了查询速度。

    1200

    tensorflow | 维度转换

    学习维度转换 shape 计算维度 tf.shape(input,name = None) 案例1 a = tf.constant([i for i in range(20)],shape =[2,2,5

    84950

    详解维度建模

    按照书中所讲,维度建模并不要求维度模型必须满足第3范式。数据库中强调的 3NF 主要是为了消除冗余。规范化的 3NF 将数据划分为多个不同的实体,每个实体构成一个关系表。 比如说订单数据库,开始可能是每个订单中的一行表示一条记录,到后来为了满足 3NF会变成蜘蛛网状图,也许会包含上百个规范化表。 而维度建模解决了模式过分复杂的问题。 我们换一种方式来解释什么是维度建模。学过数据库的童鞋应该都知道星型模型,星型模型在数据仓库的设计中可以为是一种典型的维度模型。 我们在进行维度建模的时候会建一张事实表,这个事实表就是星型模型的中心,然后会有一堆维度表,这些维度表就是向外发散的星星。那么什么是事实表、什么又是维度表吗,下面会专门来解释。 我们可以回过头再看一下事实表的特征,在维度表里没有存放实际的内容,他是一堆主键的集合,这些ID分别能对应到维度表中的一条记录。 2. 维度表 每个维度表都包含单一的主键列。

    7.1K121

    缓慢变化维度

    0x00 前言 本文会分享数据仓库中和缓慢变化维度相关的内容。在看之前建议回顾一下和维度建模相关的知识点,可参考数据仓库系列文章。 为什么会分享这个听起来很奇怪的东西? 因为站在的笔者的视角中,只要是做数据仓库的小伙伴们,在工作中基本上都会接触和维度建模相关的内容,而谈到维度建模,就少不了会和维度表打交道。我们要谈的就是维度表相关的知识点。 在正式开始之前,先解释一下什么是缓慢变化维度。笔者个人理解,缓慢变化维度其实就是指在维度表中那些会随着时间变化的字段,比如用户基本资料。 注:缓慢是一个相对的概念。 缓慢变化维的提出是因为在现实世界中,维度的属性并不是静态的,它会随着时间的流失发生缓慢的变化。 这种随时间发生变化的维度我们一般称之为缓慢变化维,并且把处理维度表的历史变化信息的问题称为处理缓慢变化维的问题,有时也简称为处理SCD的问题。

    1.3K31

    Tensor维度理解

    Tensor维度理解 Tensor在Tensorflow中是N维矩阵,所以涉及到Tensor的方法,也都是对矩阵的处理。 由于是多维,在Tensorflow中Tensor的流动过程就涉及到升维降维,这篇就通过一些接口的使用,来体会Tensor的维度概念。以下是个人体会,有不准确的请指出。 input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None ) 计算Tensor各个维度元素的均值 这个方法根据输入参数axis的维度上减少输入input_tensor的维度。 下面再看下第三个参数keep_dims,该参数缺省值是False,如果设置为True,那么减少的维度将被保留为长度为1。 回头看看最开始的例子: # 2*2 [[ 1. 1.

    89230

    QA度量维度

    QA度量维度 目录 1、执行过程质量 1.1、APP 1.2、Web 2、发布后质量反馈 2.1、APP 2.2、Web 1、执行过程质量 1.1、APP 1、安装测试 (1)首次安装测试

    4810

    维度架构

    什么事多维度架构,看完下面故事你就明白了 我的的惨痛就医经历: 咳嗽,去看呼吸内科,先拍x光,医生开药头孢+止咳水什么的,诊断结果是支气管炎。 回到我们的架构领域 网络架构师,系统架构师,软件架构师,数据库架构师这是基本的岗位...... 任何一个需求,以上极为几位都能各拿出一个套解决方案,但都侧重自己专长的一方面。 开发部说测试部能力不行,测不出bug,导致系统不稳定 运维部说程序不稳定,导致服务器经常崩溃,开发部说程序没有问题 测试部说程序性能太低,酌开发部优化,开发部说数据库配置优化有问题,运维部的DBA说没有问题 ,DBA说问题出在SQL语句与数据库操作上。

    55070

    《语言的维度》自序

    从事科学研究20余年,年纪渐大,有时禁不住要回忆以往。想当初刚刚博士毕业,意气风发, 豪情满怀,放眼四周,青山绿水。即使偶遇冰霜飓风,也总是相信世界本质上还是好...

    22820

    维度模型数据仓库(二十一) —— 分段维度

    分段维度         本篇说明分段维度的实现技术。分段维度包含连续值的分段。 分段维度可以存储多个分段集合。例如,可能有一个用于促销分析的分段集合,另一个用于市场细分,可能还有一个用于销售区域计划。分段一般由用户定义,而且很少能从交易源数据直接获得。 多重星型模式的开发经验实现分段维度。         年度销售订单星型模式         本节说明如何实现一个年度订单分段维度。你需要两个新的星型模式,如图(五)- 16-1所示。 年维度是日期维度的子集。annual_customer_segment_fact是唯一用到annual_order_segment_dim表的表。 清单(五)-16-1里的脚本用于建立分段维度数据仓库模式。

    11120

    扫码关注腾讯云开发者

    领取腾讯云代金券