数据库分区

分布式系统架构常识之CAP理论

旧街凉风 提交于 2019-11-27 12:41:36
什么是CAP理论? 2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想。2年后麻省理工学院的Seth Gilbert和NancyLynch从理论上证明了CAP,之后CAP理论正式成为分布式计算领域的公认定理。 CAP理论是由下面三个概念组成的,且在分布式系统中三者不能兼得,只能同时满足两种条件。 一致性(C) All nodes see the same data at the same time 所有数据库集群节点在同一时间点看到的数据完全一致,即所有节点能实时保持数据同步。 可用性(A) Reads and writes always succeed 读写操作永远是成功的。即服务一直是可用的,即使集群一部分节点故障,集群整体还能正常响应客户端的读写请求。 分区容错性(P) The system continues to operate despite arbitrary message loss or failure of part of the system 尽管系统中有任意的信息丢失或故障,系统仍在继续运行。以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。 CAP权衡使用 1、保留CA,放弃P 如果想避免分区容错性问题的发生

OLTP与OLAP的介绍

对着背影说爱祢 提交于 2019-11-27 07:39:43
简介 数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。 OLTP 系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调并发操作; OLAP 系统则强调数据分析,强调SQL执行市场,强调磁盘I/O,强调分区等。 OLTP与OLAP之间的比较 OLTP OLTP,也叫联机事务处理(Online Transaction Processing) ,表示事务性非常高的系统,一般都是高可用的在线系统,以小的事务以及小的查询为主,评估其系统的时候,一般看其每秒执行的Transaction以及Execute SQL的数量。在这样的系统中,单个数据库每秒处理的Transaction往往超过几百个,或者是几千个,Select 语句的执行量每秒几千甚至几万个。典型的OLTP系统有电子商务系统、银行、证券等,如美国eBay的业务数据库,就是很典型的OLTP数据库。 OLTP系统最容易出现瓶颈的地方就是CPU与磁盘子系统。 (1

MySQL分区与传统的分库分表

℡╲_俬逩灬. 提交于 2019-11-27 07:29:08
传统的分库分表 传统的分库分表都是通过应用层逻辑实现的,对于数据库层面来说,都是普通的表和库。 分库 分库的原因 首先,在单台数据库服务器性能足够的情况下,分库对于数据库性能是没有影响的。在数据库存储上, database 只起到一个 namespace 的作用。 database 中的表文件存储在一个以 database名 命名的文件夹中。比如下面的 employees 数据库: mysql> show tables in employees; +---------------------+ | Tables_in_employees | +---------------------+ | departments | | dept_emp | | dept_manager | | employees | | salaries | | titles | +---------------------+ 在操作系统中看是这样的: # haitian at haitian-coder.local in /usr/local/var/mysql/employees on git:master ● [21:19:47] → ls db.opt dept_emp.frm dept_manager.ibd salaries.frm titles.ibd departments.frm dept

Linux运维基础-磁盘管理

只谈情不闲聊 提交于 2019-11-27 05:19:25
设备文件 一切皆文件:open(),read(),write(),close() 设备类型: 字符文件:char,c,存取单位字符,键盘 块设备:block,b,存取单位块,磁盘 设备文件:/dev/下关联至一个设备驱动程序,进而能够与之对应的硬件设备进行通信 设备号码:主设备号(标识设备类型),次设备号(标识同一类型下的不同设备) 硬盘接口类型: 并行:IDE,SCSI 串口:SATA,SAS,USB 复制设备文件cp -a 例如:在/data下创建字符设备:mknod /data/zerofile c 1 5 创建10M的test文件:dd if=/data/zero of=test bs=1M count=10 hexdump -C test查看二进制,里面全是0 CHS 磁盘三维 sector 扇区 head 磁头 track磁道 cylinder 柱面(柱面数等于磁道数) 6bit sector 8bit head 10bit track 采用24bit位寻址 最大寻址空间8GB LBA(逻辑块寻址) LBA是一个整数,通过转换成CHS格式完成磁盘具体寻址 LBA采用48个 bit位寻址 最大寻址空间128PB 使用磁盘 1.分区 2.创建文件系统,格式化 3,挂载:分配目录名 磁盘分区: 为什么分区: 优化I/O性能 实现磁盘空间配额限制 提高修复速度 隔离系统和程序

第4章 SparkSQL数据源

寵の児 提交于 2019-11-27 03:52:32
第 4 章 SparkSQL 数据源 4 .1 通用加载 / 保存方法 4 .1.1 手动指定选项   Spark SQL 的 DataFrame 接口支持多种数据源的操作。一个 DataFrame 可以进行 RDDs 方式的操作,也可以被注册为临时表。把 DataFrame 注册为临时表之后,就可以对该 DataFrame 执行 SQL 查询。   Spark SQL 的默认数据源为 Parquet 格式。数据源为 Parquet 文件时, Spark SQL 可以方便的执行所有的操作。修改配置项 spark.sql.sources.default ,可修改默认数据源格式。 val df = spark.read.load("examples/src/main/resources/users.parquet") df.select("name", "favorite_color").write.save("namesAndFavColors.parquet")   当数据源格式不是 parquet 格式文件时,需要手动指定数据源的格式。数据源格式需要指定全名(例如: org.apache.spark.sql.parquet ),如果数据源格式为内置格式,则只需要指定简称 定json, parquet, jdbc, orc, libsvm, csv, text 来指定数据 的格式。

oracle常见基础知识

不羁岁月 提交于 2019-11-27 01:24:04
oracle使用的脚本语言称为什么? PL-SQL oracle中游标的分类? oracle中游标分为两类:显示游标和隐式游标 oracle中function与procedure的区别? (1) function一定要有返回值,但procedure不需要返回值 (2) procedure可以返回多个返回值 (3) 在SQL数据操纵语句(DML:select、update、delete、insert)中只能调用function而不能调用procedure oracle导如\出数据有哪几种方式? (1) 通过oracle工具 exp\imp:导入\出的数据是二进制数据 (2) 通过plsql相关工具:导入\出的数据是文本文件 oracle中存在哪几种格式的文件? 数据文件(.dbf、ora)、日志文件(.log)、控制文件(.ctl) oracle中常见的优化的方法? (1) 建合适的索引:减少IO次数 (2) 将索引数据和表数据分开在不同的表空间上:减低IO冲突 (3) 建立表分区,将数据分别存储在不同表分区上:空间换时间思想 (4) 将数据库表按一定的规则进行逻辑分割 (5) 按规则编写SQL语句 (5.1) SQL全部大写或小写 (5.2) 尽量使用占位符?而不直接使用字符 (5.3) 多表查询时,选择数据最少的表放在右边作为基础表,比如存在中间表时 (5.4)

SQL的基本操作(三)

大兔子大兔子 提交于 2019-11-27 01:22:01
Hive基本SQL操作 Hive DDL(数据库定义语言) 1、数据库的基本操作 --展示所有数据库 show databases; --切换数据库 use database_name; /*创建数据库 CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [WITH DBPROPERTIES (property_name=property_value, ...)]; */ create database test; /* 删除数据库 DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE]; */ drop database database_name; 注意:当进入hive的命令行开始编写SQL语句的时候,如果没有任何相关的数据库操作,那么默认情况下,所有的表存在于default数据库,在hdfs上的展示形式是将此数据库的表保存在hive的默认路径下,如果创建了数据库,那么会在hive的默认路径下生成一个database_name.db的文件夹,此数据库的所有表会保存在database_name.db的目录下。 2、数据库表的基本操作 /*

linux基础

北慕城南 提交于 2019-11-27 00:39:13
lsmod 查看内存中加载的各种模块 locate xfs 快速查看 cat /proc/filesystems 查看操作系统所支持的文件系统 which xfs_info 查看xfs_info这个工具的路径是什么 rpm -qf `which xfs_info` 查询这个路径的工具来自于哪个包 lsblk -f 可以查看分区的文件系统 mkfs.ext4 /dev/sda6 给sda6分区创建ext4的文件系统 blkid 查看文件系统列表 mkfs.ext4 -L /data/mysql /dev/sda6 给sda6分区设置一个标签,叫/data/mysql mke2fs -t ext4 /dev/sdb1 mke2fs专门创建ext系列的文件系统,啥都不加默认是ext2文件系统,如果把ext2文件系统加-j 则加上日志功能,但是文件系统自动变成ext3 要想彻底清空分区,得使用 dd if=/dev/zero of=/dev/sdb1 bs=1M 用0填充sdb1分区,每块1M,直到填满为止,sdb1分区连文件系统都会被清掉的 dd if=/dev/zero of=/dev/sdb bs=1M 用0把分区表冲了,就没有分区了 mkfs.ext4 -b /dev/sdb1 指定sdb1分区的文件系统块大小为1024字节 tune2fs -l /dev/sdb1

Hadoop Hive基础sql语法

自闭症网瘾萝莉.ら 提交于 2019-11-27 00:19:31
1.先建 表 drop table sfmk.xzz_0726_srcarea_desarea; create table sfmk.xzz_0726_srcarea_desarea ( srcarea_desarea string ) row format delimited fields terminated by ','; 2.将数据上传至hive 服务器 如:'/user/013/upload/ 3.执行 load 命令 load data inpath '/user/013/upload/test_data.csv' into table mark._srcarea_desarea; 导入数据到表中 1.DDL 操作 1.建表 2.3.创建简单表 4.创建外部表 5.建分区表 6.建Bucket表 7.创建表并创建索引字段ds 8.复制一个空表 9.显示所有表 10.按正条件正则表达式显示表 11.修改表结构 12.表添加一列 13.添加一列并增加列字段注释 14.更改表名 15.删除列 16.增加删除分区 17.重命名表 18.修改列的名字类型位置注释 19.表添加一列 20.添加一列并增加列字段注释 21.增加更新列 22.增加表的元数据信息 23.改变表文件格式与组织 24.创建删除视图 25.创建数据库 26.显示命令 2.DML 操作元数据存储 1

【hive】——Hive sql语法详解

你。 提交于 2019-11-27 00:18:34
Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构 化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行,通过自己的SQL 去查询分析需 要的内容,这套SQL 简称Hive SQL,使不熟悉mapreduce 的用户很方便的利用SQL 语言查询,汇总,分析数据。而mapreduce开发人员可以把 己写的mapper 和reducer 作为插件来支持Hive 做更复杂的数据分析。 它与关系型数据库的SQL 略有不同,但支持了绝大多数的语句如DDL、DML 以及常见的聚合函数、连接查询、条件查询。HIVE不适合用于联机 online)事务处理,也不提供实时查询功能。它最适合应用在基于大量不可变数据的批处理作业。 HIVE的特点:可伸缩(在Hadoop的集群上动态的添加设备),可扩展,容错,输入格式的松散耦合。 Hive 的官方文档中对查询语言有了很详细的描述,请参考:http://wiki.apache.org/hadoop/Hive/LanguageManual ,本文的内容大部分翻译自该页面,期间加入了一些在使用过程中需要注意到的事项。 1. DDL 操作 DDL •建表 •删除表 •修改表结构 •创建/删除视图 •创建数据库