ClickHouese实战
一、概述ClickHouse 是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),使用C++语言编写,主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。 优点: 列式存储(适合聚合操作) 支持SQL语法 高吞吐写入(LSM Tree、顺序写) 多种引擎 数据分区和并行处理(不利于并发查询) 单表查询快(单表查询优于关联查询) 总结:适合单表查询且qps低的实时聚合查询业务。 二、安装1、系统要求ClickHouse可以在任何具有x86_64,AArch64或PowerPC64LE CPU架构的Linux,FreeBSD或Mac OS X上运行。 官方预构建的二进制文件通常针对x86_64进行编译,并利用SSE 4.2指令集,因此,除非另有说明,支持它的CPU使用将成为额外的系统需求。下面是检查当前CPU是否支持SSE 4.2的命令: 1$ grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo &quo ...
Hexo+NexT搭建静态博客
一、搭建方案 Hexo + Github + Github Pages 二、搭建准备1、安装GitMac自带,无需安装 Windows 自行网上搜索安装 2、安装NodeJSHexo是基于NodeJS编写,Mac上建议先安装homebrew。 Node.js 版本需不低于 10.13,建议使用 Node.js 12.0 及以上版本 Mac 12$ brew install node # 安装node$ npm -v & node -v # 查看安装版本 Windows 官网下载安装并配置环境 3、GithubGithub 上创建一个新仓库。 仓库名必须是<用户名>.github.io,而且必须是public项目。 仓库创建完成在根目录新建一个index.html的文件并添加以下内容。 123456789<!DOCTYPE html><html><head><title>Page Title</title></head><body><h1>J ...
Kubernetes实战
一、Kubernetes概述1、K8s介绍Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,方便进行声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统,其服务、支持和工具的使用范围广泛。 2、K8s能做什么Kubernetes 为你提供了一个可弹性运行分布式系统的框架。 Kubernetes 会满足你的扩展要求、故障转移你的应用、提供部署模式等。 例如,Kubernetes 可以轻松管理系统的 Canary 部署。 应用部署架构分类: 无中心节点架构:GlusterFS 有中心节点架构:HDFS(Yarn) 和 K8S Kubernetes 为你提供: 服务发现和负载均衡 Kubernetes 可以使用 DNS 名称或自己的 IP 地址来曝露容器。 如果进入容器的流量很大, Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定。 存储编排 Kubernetes 允许你自动挂载你选择的存储系统,例如本地存储、公共云提供商等。 自动部署和回滚 你可以使用 Kubernetes 描述已部署容 ...
分布式一致性
一、概述分布式一致性,简单的说就是在一个或多个进程提议了一个值后,使系统中所有进程对这个值达成一致。 为了就某个值达成一致,每个进程都可以提出自己的提议,最终通过分布式一致性算法,所有正确运行的进程学习到相同的值。 工业界对分布式一致性的应用,都是为了构建多副本状态机模型(Replicated State Machine),实现高可用和强一致。 分布式一致性使多台机器具有相同的状态,运行相同的确定性状态机,在少数机器故障时整体仍能正常工作。 分布式系统的设计目标,一般包括如下几个方面: 可用性:可用性是分布式系统的核心需求,其用于衡量一个分布式系统持续对外提供服务的能力。 可扩展性:增加机器后不会改变或极少改变系统行为,并且能获得近似线性的性能提升。 容错性:系统发生错误时,具有对错误进行规避以及从错误中恢复的能力。 性能:对外服务的响应延时和吞吐率要能满足用户的需求。 二、理论1、ACID数据库系统中为保证事务是正确可靠的,所必须具备的四个特性:原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durabil ...
Docker教程
一、概述Docker是一款针对程序开发人员和系统管理员来开发、部署、运行应用的一款虚拟化平台。Docker 可以让你像使用集装箱一样快速的组合成应用,并且可以像运输标准集装箱一样,尽可能的屏蔽代码层面的差异。Docker 会尽可能的缩短从代码测试到产品部署的时间。 二、架构Docker 包括三个基本概念: 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。镜像是无状态的、只读的 。 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。 使用 --link 参数可以让容器之间安全的进行交互。 --link 参数的格式为 --link name:alias,其中 name 是要链接的容器的名称,alias 是这个连接的别名(可选项)。 三、网络模式docker的网络配置分为四种, host、Container、None ...
滴滴数据指标体系建设实践(转)
导读: 指标体系是什么?如何使用 OSM 模型和 AARRR 模型搭建指标体系?如何统一流程、规范化、工具化管理指标体系?本文会对建设的方法论结合滴滴数据指标体系建设实践进行解答分析。 01 什么是指标体系1. 指标体系定义指标体系是将零散单点的具有相互联系的指标,系统化的组织起来,通过单点看全局,通过全局解决单点的问题。它主要由指标和体系两部分组成。 指标是指将业务单元细分后量化的度量值,它使得业务目标可描述、可度量、可拆解,它是业务和数据的结合,是统计的基础,也是量化效果的重要依据。 指标主要分为结果型和过程型: 结果型指标 用于衡量用户发生某个动作后所产生的结果,通常是延后知道的,很难进行干预。结果型指标更多的是监控数据异常,或者是监控某个场景下用户需求是否被满足 过程型指标 用户在做某个动作时候所产生的指标,可以通过某些运营策略来影响这个过程指标,从而影响最终的结果,过程型指标更加关注用户的需求为什么被满足或没被满足 体系是由不同的维度组成,而维度是指用户观察、思考与表述某事物的“思维角度”,维度是指标体系的核心,没有维度,单纯说指标是没有任何意义的。 ...
数仓建模
一、概念数据建模简单来说就是基于对业务的理解,将各种数据进行整合和关联,并最终使得这些数据可用性,可读性增强,让使用方能快速的获取到自己关心的有价值的信息并且及时的作出响应。 二、目的大数据的数仓建模是通过建模的方法更好的组织、存储数据,以便在 性能、成本、效率和数据质量之间找到最佳平衡点。一般主要从下面四点考虑: 高性能:能够快速查询所需的数据,减少数据I/O 低成本:减少不必要的数据冗余和重复计算,实现计算结果数据复用,降低存储成本和计算成本。 高效率:改善用户应用体验,提高使用数据的效率。 高质量:改善数据统计口径的不一致性,减少数据计算错误的可能性,提供高质量的、一致的数据访问平台。 三、数据建模的几种方式1.ER模型(范式建模) 1NF:属性不可再分割(例如不能存在5台电脑的属性,坏处:表都没法用) 2NF:不能存在部分函数依赖(例如主键(学号+课名)–>成绩,姓名,但学号–》姓名,所以姓名部分依赖于主键(学号+课名),所以要去除,坏处:数据冗余) 3NF:不能存在传递函数依赖(学号–》宿舍种类–》价钱,坏处:数据冗余和增删异常) MySQL关系模型:关系 ...
Hive压缩格式与存储格式
介绍hive表常用的存储格式主要包括:orc、parquet、avro、rcfile、sqeuencefile几种,存储格式一般会选择综合性能最好的orc或者parquet,这两种都是列式存储格式。压缩格式一般会选择snappy、lzo、gizp,针对不同的应用场景使用不同的压缩方式。 原文件:1403M 压缩格式 压缩大小 压缩时间 解压时间 是否可切分 Snappy / 6.4s 19.8s 不可切分 LZ4 693M 6.4s 2.36s 不可切分 LZO 684M 7.6s 11.1s 带序号可切分 GZIP 447M 85.6s 21.8s 不可切分 BZIP2 390M 142.3s 62.5s 可切分 压缩比和压缩时间成反比,压缩比越小,耗费时间越大 总结: hive一般用orc,spark一般用parquet,snappy配合parquet性能最高。 压缩方式选择(hive table):数据量大,计算性能要求不高的业务数据,一般用gzip(压缩比最高,压缩解压缩速度最慢) 计算性能要求较高,数据量不是特别大的业务数据, ...
Hive调优
Hive调优1、文件调优Hive支持的存储数据的格式主要有:TEXTFILE(行存储) 、SEQUENCEFILE(行存储) 、ORC(列存储) 、PARQUET(列存储) 。 textfile格式 Hive默认格式,数据不做压缩,磁盘开销大,数据解析开销大。可结合Gzip、Bzip2使用,但使用Gzip这种方式,hive不会对数据进行切分,从而无法对数据进行并行操作。 Orc格式 是Hive 0.11版里引入的新的存储格式。 Parquet格式 Parquet文件是以二进制方式存储的,所以是不可以直接读取的,文件中包括该文件的数据和元数据,因此Parquet格式文件是自解析的。 2、Fetch抓取Hive中对某些情况的查询可以不必使用MapReduce计算。例如:SELECT * FROM employees;在这种情况下,Hive可以简单地读取employee对应的存储目录下的文件,然后输出查询结果到控制台。 在hive-default.xml.template文件中hive.fetch.task.conversion默认是more,老版本hive默认是m ...
Hadoop调优
概述Hadoop 集群的调优可以从四方面着手: Linux 调优 HDFS 调优 MapReduce 调优 YRAN 调优 一、Linux调优修改内核参数管理员通常会保持 Linux 服务器内核的默认设置,这并不是一个明智的做法,因为这有可能对集群的性能产生不利的影响! 下表给出了在 Hadoop 生产集群中推荐使用的 Linux 内核参数配置。 Linux 内核参数配置 参数说明 fs.file-mx=6815744 文件描述符总数 fs.aio-max-nr=1048576 最大并发I/O请求数 net.core.rmem_default=262144 操作系统接收缓冲区的默认大小 net.core.wmem_default=262144 操作系统发送缓冲区的默认大小 net.core.rmem_max=16777216 系统接收缓冲区最大值 net.core.wmem_max=16777216 系统发送缓冲区最大值 net.ipv4.tcp_rmem=409626214416777216 接收窗口尺寸的最小、默认、最大值 n ...