关系型数据库

Hibernate之二级缓存

回眸只為那壹抹淺笑 提交于 2019-11-26 17:56:57
Hibernate之二级缓存 1. 为什么需要缓存 拉高程序的性能 数据库: 关系型数据库:数据与数据之间存在关系(联系)的数据库 mysql/Oracle、sqlserver 非关系型数据库:数据与数据之间是不存在关系的,key-value 1、基于文件存储的数据库:ehcache 2、基于内存存储的数据库:redis、memcache 3、基于文档存储的数据库:mongodb 2. 什么样的数据需要缓存 很少被修改或根本不改的数据 数据字典 业务场景比如:耗时较高的统计分析sql、电话账单查询sql等 缓存使用场景: 3. ehcache是什么 Ehcache 是现在最流行的纯Java开源缓存框架,配置简单、结构清晰、功能强大 4. ehcache的特点 4.1 够快 Ehcache的发行有一段时长了,经过几年的努力和不计其数的性能测试,Ehcache终被设计于large, high concurrency systems. 4.2 够简单 开发者提供的接口非常简单明了,从Ehcache的搭建到运用运行仅仅需要的是你宝贵的几分钟。其实很多开发者都不知道自己用在用Ehcache,Ehcache被广泛的运用于其他的开源项目 4.3 够袖珍 关于这点的特性,官方给了一个很可爱的名字small foot print ,一般Ehcache的发布版本不会到2M,V 2.2.3 才

Sqoop安装及指令

偶尔善良 提交于 2019-11-26 06:19:59
Sqoop 介绍 sqoop是Apache 提供的工具 用于hdfs和关系型数据库之间数据的导入和导入 可以从hdfs导出数据到关系型数据库,也可以从关系型数据库导入数据到hdfs。 实现步骤: 1. 准备 sqoop 安装包,官网地址: http://sqoop.apache.org 2. 配置 jdk 环境变量和 Hadoop 的环境变量 。因为sqoop 在使用是会去找环境变量对应的路径,从而完整工作。 3.sqoop 解压即可使用(前提是环境变量都配好了) 4. 需要将要 连接的数据库的驱动包 加入sqoop的lib目录下(本例中用的是mysql数据库) 5. 利用指令操作 sqoop Sqoop 基础指令(在Sqoop的bin目录下执行下列指令) 说明 指令示例 查看mysql所有数据库 sh sqoop list-databases --connect jdbc:mysql://hadoop01:3306/ -username root -password root 查看指定数据库下的所有表 sh sqoop list-tables --connect jdbc:mysql://hadoop02:3306/hive -username root -password root 关系型数据库 ==> hdfs sh sqoop import -help (查看 import

关系型数据库全表扫描分片详解

余生颓废 提交于 2019-11-25 20:54:58
导读:数据总线(DBus)专注于数据的实时采集与实时分发,可以对IT系统在业务流程中产生的数据进行汇聚,经过转换处理后成为统一JSON的数据格式(UMS),提供给不同数据使用方订阅和消费,充当数仓平台、大数据分析平台、实时报表和实时营销等业务的数据源。 本文从数据分片的角度出发,具体介绍DBus在数据采集的过程中,运用了什么样的分片策略和分片原理,以及过程中遇到的问题及解决方案。 一、分片策略 对于传统的关系型数据库,DBus通过提供全量数据拉取和增量数据采集两种途径满足用户数据采集需求。DBus数据抽取流程如下图所示(以mysql为例): 全量数据采集的主要原理是:根据主键、唯一索引、索引等信息,确定分片列。之所以分片列要根据主键、唯一索引、索引等选择,是因为这些列的数据在库里建立了良好索引,能提升数据扫描的效率。 根据选定的分片列,对数据进行拆片,确定每片数据的上下界,然后根据每片上下界,以6~8左右的并发度,进行数据拉取。(6~8左右的并发度是经大量测试获得的经验值。实验显示,6~8左右的并发度既不会对源库形成过高压力,又能最大限度提升全量数据拉取的效率。) DBus分片策略示意图: DBus拉取策略示意图: 那么,DBus支持什么类型的列作为分片列?不同类型的分片列,分片策略如何呢? 分片策略这块,DBus借鉴了Sqoop的分片设计,支持以下类型的列作为分片列: