数据库分区

2020年,Kafka入门看这一篇就够了!

佐手、 提交于 2020-02-26 04:50:20
Kafka 创建背景 Kafka 是一个消息系统,原本开发自 LinkedIn,用作 LinkedIn 的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础。现在它已被多家不同类型的公司 作为多种类型的数据管道和消息系统使用。 活动流数据是几乎所有站点在对其网站使用情况做报表时都要用到的数据中最常规的部分。活动数据包括页面访问量(Page View)、被查看内容方面的信息以及搜索情况等内容。这种数据通常的处理方式是先把各种活动以日志的形式写入某种文件,然后周期性地对这些文件进行统计分析。运营数据指的是服务器的性能数据(CPU、IO 使用率、请求时间、服务日志等等数据)。运营数据的统计方法种类繁多。 近年来,活动和运营数据处理已经成为了网站软件产品特性中一个至关重要的组成部分,这就需要一套稍微更加复杂的基础设施对其提供支持。 Kafka 简介 Kafka 是一种分布式的,基于发布 / 订阅的消息系统。 主要设计目标如下: 以时间复杂度为 O(1) 的方式提供消息持久化能力,即使对 TB 级以上数据也能保证常数时间复杂度的访问性能。 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒 100K 条以上消息的传输。 支持 Kafka Server 间的消息分区,及分布式消费,同时保证每个 Partition 内的消息顺序传输。

Spark学习四:Spark架构设计和RDD的stage划分

不羁的心 提交于 2020-02-26 00:32:29
文章目录 架构设计 Spark运行基本流程 RDD之间的依赖关系 stage的划分 RDD运行过程 参考网址 架构设计 学习完 Spark学习二:spark基础理论知识 ,我们可以对Spark的一些组件和术语应该有了基本的认识,下面介绍Spark的架构设计。本节内容主要参考 厦门大学林子雨老师的Spark课程 。非常感谢林子雨老师! 如下图所示。 Spark运行架构包括集群资源管理器( Cluster Manager )、运行作业任务的工作节点( Worker Node )、每个应用的任务控制节点( driver program )和每个工作节点上负责具体任务的执行进程( Executor )。其中,集群资源管理器可以是Spark自带的资源管理器,也可以是YARN或Mesos等资源管理框架。 与Hadoop MapReduce计算框架相比,Spark所采用的Executor有两个优点: 一是利用多线程来执行具体的任务(Hadoop MapReduce采用的是进程模型) (Spark和MapReduce的运行模式在 Spark学习二:spark基础理论知识 里也详细说明过),减少任务的启动开销; 二是Executor中有一个BlockManager存储模块 ,会将内存和磁盘共同作为存储设备,当需要多轮迭代计算时,可以将中间结果存储到这个存储模块里,下次需要时

5.10.2. Declarative Partitioning

大兔子大兔子 提交于 2020-02-25 16:07:23
5.10.2. Declarative Partitioning 5.10.2.声明分区 PostgreSQL offers a way to specify how to divide a table into pieces called partitions. The table that is divided is referred to as a partitioned table . The specification consists of the partitioning method and a list of columns or expressions to be used as the partition key . PostgreSQL提供将表进行分区的方式。被分割的表称为分区表。声明由分区方式及分区键(一组列或者表达式)组成。 All rows inserted into a partitioned table will be routed to one of the partitions based on the value of the partition key. Each partition has a subset of the data defined by its partition bounds . The currently

5.10.1. Overview

风流意气都作罢 提交于 2020-02-25 12:32:30
5.10.1. Overview 5.10.1.概览 Partitioning refers to splitting what is logically one large table into smaller physical pieces. Partitioning can provide several benefits: 分区是指将逻辑上的大表切分为较小的物理片。分区可提供如下优势: • Query performance can be improved dramatically in certain situations, particularly when most of the heavily accessed rows of the table are in a single partition or a small number of partitions. The partitioning substitutes for leading columns of indexes, reducing index size and making it more likely that the heavily-used parts of the indexes fit in memory. •查询性能会显著提高,特别是当频繁查询的行在某一个或某几个分区中时。

MySQL 5.6, 5.7, 8.0的新特性

时间秒杀一切 提交于 2020-02-24 05:52:28
MySQL 5.6, 5.7, 8.0的新特性 对于MySQL的历史,相信很多人早已耳熟能详,这里就不要赘述。下面仅从产品特性的角度梳理其发展过程中的里程碑事件。 1995年,MySQL 1.0发布,仅供内部使用。 1996年,MySQL 3.11.1发布,直接跳过了MySQL 2.x版本。 1999年,MySQL AB公司成立。同年,发布MySQL 3.23,该版本集成了Berkeley DB存储引擎。该引擎由Sleepycat公司开发,支持事务。在集成该引擎的过程中,对源码进行了改造,为后续可插拔式存储引擎架构奠定了基础。 2000年,ISAM升级为MyISAM存储引擎。同年,MySQL基于GPL协议开放源码。 2002年,MySQL 4.0发布,集成了后来大名鼎鼎的InnoDB存储引擎。该引擎由Innobase公司开发,支持事务,支持行级锁,适用于OLTP等高并发场景。 2005年,MySQL 5.0发布,开始支持游标,存储过程,触发器,视图,XA事务等特性。同年,Oracle收购Innobase公司。 2008年,Sun以10亿美金收购MySQL AB。同年,发布MySQL 5.1,其开始支持定时器(Event scheduler),分区,基于行的复制等特性。 2009年,Oracle以74亿美金收购Sun公司。 2010年, MySQL 5.5 发布

快速学习-Hive企业级调优

筅森魡賤 提交于 2020-02-18 14:18:46
第 9 章 企业级调优 9.1 Fetch 抓取 Fetch 抓取是指,Hive 中对某些情况的查询可以不必使用 MapReduce 计算。例如: SELECT * FROM employees; 在这种情况下,Hive 可以简单地读取 employee 对应的存储目录下的文件,然后输出查询结果到控制台。 在 hive-default.xml.template 文件中 hive.fetch.task.conversion 默认是 more,老版本 hive默认是 minimal,该属性修改为 more 以后,在全局查找、字段查找、limit 查找等都不走mapreduce。 <property> <name>hive.fetch.task.conversion</name> <value>more</value> <description> Expects one of [none, minimal, more]. Some select queries can be converted to single FETCH task minimizing latency. Currently the query should be single sourced not having any subquery and should not have any aggregations or

ClickHouse学习笔记

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-18 09:21:09
1. 概述 ClickHouse 是一个用于联机分析 (OLAP:Online Analytical Processing) 的列式数据库管理系统 (DBMS:Database Management System) ,简称 CK 。 ClickHouse 是一个完全的列式数据库管理系统,允许在运行时创建表和数据库,加载数据和运行查询,而无需重新配置和重新启动服务器, 支持线性扩展,简单方便,高可靠性,容错 。 ClickHouse 官方文档: https://clickhouse.yandex/docs/en/ 2. 应用场景 OLAP 场景关键特征: 大多数是读请求 数据总是以相当大的批 (> 1000 rows) 进行写入 不修改已添加的数据 每次查询都从数据库中读取大量的行,但是同时又仅需要少量的列 宽表,即每个表包含着大量的列 较少的查询 ( 通常每台服务器每秒数百个查询或更少 ) 对于简单查询,允许延迟大约 50 毫秒 列中的数据相对较小: 数字和短字符串 ( 例如,每个 UR60 个字节 ) 处理单个查询时需要高吞吐量(每个服务器每秒高达数十亿行) 事务不是必须的 对数据一致性要求低 每一个查询除了一个大表外都很小 查询结果明显小于源数据,换句话说,数据被过滤或聚合后能够被盛放在单台服务器的内存中 应用场景: 用于结构良好清晰且不可变的事件或日志流分析 。 不适合的场景

ssAs分区

非 Y 不嫁゛ 提交于 2020-02-16 13:35:45
在大多数情况下,分区包含的记录应少于 2 千万条,每个度量值组包含的总分区数应少于 2,000 个。此外,应避免定义所含记录不足 2 百万条的分区。分区太多会导致元数据操作速度缓慢,分区太少又会导致错过并行。 为实时数据定义单独的 ROLAP 分区,并将实时 ROLAP 分区放入其自己的度量值组。 http://blog.sina.com.cn/s/blog_62c0483c0100tdy7.html 练习1:创建度量组分区 AdventureWorksDW2008R2样本数据库存储了4年数据,按年(物理)分区Internet Sales度量组。 1)双击之前创建好的Adventure Works cube,进入分区(partitions)页面。 2)展开“Internet Sales”度量组,默认情况下,只有一个分区,绑定整个FactInternetSales事实表,表绑定(Table Binding)类型。 3)将默认分区重命名为“Internet Sales 2005”,绑定类型更改为“Query Binding”,查询语句: SELECT * FROM [dbo] . [FactInternetSales] WHERE OrderDateKey <= 20051231 4)点击“new partition”,同理,添加新分区“Internet Sales 2006”,

面试官系列,深入数据库分区分库分表

做~自己de王妃 提交于 2020-02-15 17:53:53
一、为什么要分库分表 软件时代,传统应用都有这样一个特点:访问量、数据量都比较小,单库单表都完全可以支撑整个业务。随着互联网的发展和用户规模的迅速扩大,对系统的要求也越来越高。因此传统的MySQL单库单表架构的性能问题就暴露出来了。而有下面几个因素会影响数据库性能: 数据量 MySQL单库数据量在5000万以内性能比较好,超过阈值后性能会随着数据量的增大而变弱。MySQL单表的数据量是500w-1000w之间性能比较好,超过1000w性能也会下降。 磁盘 因为单个服务的磁盘空间是有限制的,如果并发压力下,所有的请求都访问同一个节点,肯定会对磁盘IO造成非常大的影响。 数据库连接 数据库连接是非常稀少的资源,如果一个库里既有用户、商品、订单相关的数据,当海量用户同时操作时,数据库连接就很可能成为瓶颈。 为了提升性能,所以我们必须要解决上述几个问题,那就有必要引进分库分表,当然除了分库分表,还有别的解决方案,就是NoSQL和NewSQL,NoSQL主要是MongoDB等,NewSQL则以TiDB为代表。 二、分区分库分表的原理 1、什么是分区、分表、分库 (1)分区 就是把一张表的数据分成N个区块,在逻辑上看最终只是一张表,但底层是由N个物理区块组成的,分区实现比较简单,数据库mysql、oracle等很容易就可支持。 (2)分表

Solaris系统磁盘镜像配置步骤

て烟熏妆下的殇ゞ 提交于 2020-02-12 17:36:48
注:此文章笔者实验记录,欢迎大家指正 查看磁盘分区 查看系统的磁盘数据与容量: 用format查看一下磁盘的情况,0号盘是c1t0d0,系统源磁盘,1号盘是c1t1d0,新增加磁盘,作为镜像盘使用。 注意:两块硬盘的容量最好相等,如果镜像盘比源盘大,在做完分区同步后,镜像盘的大小会变成与源盘相同,多余的那部分看不到,会浪费掉 查看源磁盘分区情况: 如图所示:源磁盘建有3个分区:s0,s1,s3,分别挂载到根目录 ,swap和/export/home 目录。对无挂载点的分区将不显示。 如图所示,查看源磁盘完整分区表时,还有一个s4分区,容量为196M。 注意:solaris 磁盘镜像,需要一个独立分区,容量最少为10M。作为metadb数据库的存放位置,s4分区将用于存放metadb数据库。 查看镜像磁盘分区情况: 查看分区情况时,提示,需要使用fdisk对磁盘操作,格式成solaris的格式, 注意:镜像磁盘一定要fdisk成solaris的格式, fdisk完成后,查看分区信息 备份vfstab和system 备份vfstab和system以备不时之需 cp /etc/vfstab /etc/vfstab.bak cp /etc/system /etc/system.bak 将源磁盘分区与镜像磁盘分区同步 prtvtoc /dev/rdsk/c1t0d0s2 | fmthard