数仓心得(一):管理和发展
做数仓也有三年了,经历过业务和平台的零到一,一到二,一把鼻涕一把泪。把这些经历总结下,主要从三个方面去总结:一、数仓管理和发展;二、数仓逻辑架构和维度建模;三、平台选型。先从数仓管理和发展说起,因为好的数仓要有明确的发展方向和高执行力的管理维护规则,没有一套强硬可执行管理模式,后面两个也是枉费...
gphdfs外部表和hive的融合
一、在所有节点上安装java1.6或以上版本二、在segment上安装hadoop,支持以下版本。Hadoop DistributionVersiongp_hadoop_ target_versionPivotal HD...
mysql联合索引的选择性
联合索引就是同时对表中多个列进行索引,联合索引会依次根据联合索引中的列排序存储。下面通过下面的实验来探讨下联合索引的使用选择性:版本:percona 5.6.27create table test(a int,b int,c int,name varchar(32),PRIMARY key(a),key index_a_b_c(a,b,c)) ENGINE=INNODBinser...
python跨库检查数据一致性
因为最近上线了samza实时流平台,实时从源数据端实时传输数据到数据仓库,于是就需要检查samza数据传输的准确性,则通过下面的python脚本定时检查两个数据端表的行数,以简单的检测下数据一致性。下面的脚本每天在早上6点运行,检查昨天以前的所有数据行数是否一致,并邮件通知。因为要检测的表比较多,并且清洗规则不一...
greenplum何时收集统计信息
在GP的postgresql.conf中有控制自动收集统计信息的参数 gp_autostats_mode设置,gp_autostats_mode有三个值:none、no_change、no_no_stats(默认)none:禁止收集统计信息no_change:当一条DML执行后影响的行数超过gp_autostats_on_change_threshold参数指定的值时,会执行完这条DML后再自动执行一个analyze的操...
GP修改参数导致重启失败
[gpadmin@gp-segment5 ]$ gpstart ..... 20170104:16:35:48:000907 gpstart:gp-segment5:gpadmin-[CRITICAL]:-Failed to start Master instance in admin mode 20170104:16:35:48:000907 gpstart:gp-segment5:gpadmin-[CRITICAL]:-Error occurred: non-zero rc: 1 Command was: 'env GPSESSID=0000...
GP standby切换成master
GP集群master服务器挂了,需要手动将standby切换成master,让集群继续对外提供服务1、执行gpactivatestandby激活standby[gpadmin@gp-segment5 ~]$ gpactivatestandby -d $MASTER_DATA_DIRECTORY-bash: gpactivatestandby: command not found找不到gpactivatestandby命令,猜测可能是环境变量的原...
mysql索引覆盖扫描优化
覆盖扫描即直接在索引中扫描出结果返回给客户端,不需要根据索引再去表上扫描结果,这种效率非常高。当extra列出现Using index时即为覆盖扫描现生产环境有个语句要优化,select create_day,remarks_format,count(*) from CDM.cdm_account_itemized GROUP BY create_day,remarks_format;执行需要20秒,看...
pg_stats没有表统计信息
数据库中表的统计信息保存在pg_statistic中,pg_stats是pg_statistic数据字典上的一个视图,可以方便我们看pg_statistic的内容。现要通过数据字段获取数据库中所有的表和对应的schema名字返回给服务端,这个时候pg_stats视图就派上用场了!但是遇到了一些表在pg_stats中没有信息,今天就一探究竟什么时候pg_stats...
Lock wait timeout exceeded; try restarting transaction
今天开发提交一个存储过程要发布到正式环境call report.proc_zerobuy(20161222,20161222,0);Lock wait timeout exceeded; try restarting transaction请求锁超时了再次执行这个存储过程,查看事务表:一共有两个事务在运行mysql> SELECT * FROM information_schema.INNODB_TRX\G;***********...
Failed to start Master instance in admin mode
GP无法启动,信息如下:[gpadmin@gp-master gpseg-1]$ gpstart20161223:09:32:09:002004 gpstart:gp-master:gpadmin-[INFO]:-Starting gpstart with args:20161223:09:32:09:002004 gpstart:gp-master:gpadmin-[INFO]:-Gathering information and validating the environment...20161223:09:32:09:002004...
mysql恢复drop表
drop误操作删除表后,恢复的大概流程是1、从备份中将表恢复到备份时间点2、找到drop操作点3、从binlog中找到备份点到drop点中间所有事件,并筛选出该表的事件4、执行找到该表的事件一、实验数据:mysql> select * from sale;+--------+---------+--------+| month | user_id | amount |+-------...
用python进行数据库数据迁移
现要将mysql数据库上每5秒查询一次结果并覆盖写入到postgresql中去,实现的方法有很多:一、用shell,将查询出来的数据放到中间文本,再load到pg中。这种方法数据要落地,而且这台服务器上必须要安装mysql和pg,才能远程连接。二、用kettle实现,在linux上使用较麻烦,杀鸡焉用牛刀。三、使用python,linux...
pt-table-checksum校验主从一致性,使用pt-table-sync修复数据不一致
pt-table-checksum和pt-table-sync是percona-toolkit(安装文档请见http://blog.itpub.net/29989552/viewspace-2020786/)工具中的功能,用来检测主从数据一致性和修复主从不一致。下面通过一组实验学习这两个功能的使用1、主库创建表并插入数据CREATE TABLE `NewTable` (`id` int(8) NULL ,...
python监控mysql主从脚本
闲来无事写了个python监控mysql主从的脚本,算是记录学习python阶段性的一个实战吧!#coding=utf-8import MySQLdbimport smtplibfrom email.mime.text import MIMEText#定义一个发邮件函数def mail(sub,content): mailto_list=["hz@ina.com"] ...
用python获取mysql中的表行数
import MySQLdb#打开数据库连接conn=MySQLdb.connect(host='172.30.249.57',port=3306,user='root',passwd='Welcome1>')#使用cursor()方法获取游标cursor1=conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) cursor2=conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) begin=True...
ImportError: No module named utils
[root@trcloud-gtt-dw python]cat email.pyimport smtplibprint 'aaa'[root@trcloud-gtt-dw python]# python email.pyaaaTraceback (most recent call last): File "email.py", line 3, in import smtplib File "/usr/lib64/python2.6/smtplib.py", line 46, in
mysql关联查询优化
mysql中任何关联查询都是nest loop(嵌套循环)操作,nest loop是在驱动表中取出一条数据,然后从被驱动表中逐行比较,把符合规则的放入结果集中,然后再取下一行,依次循环,驱动表每返回一行,被驱动表就要扫描一次。针对nest loop关联机制需要从下面几个方面着手优化:1、减少nest loop循环次数,使用小结果集做驱动表...
mysql安装依赖perl(Data::Dumper)
安装Percona mysql的时候出现依赖包错误[root@localhost upload]# rpm -ivh Percona-Server-server-56-5.6.27-rel76.0.el6.x86_64.rpm警告:Percona-Server-server-56-5.6.27-rel76.0.el6.x86_64.rpm: 头V4 DSA/SHA1 Signature, 密钥 ID cd2efd2a: NOKEY错误:依赖检测失败: ...
greenplum vacuum
greenplum中所有的delete并没有删除数据,而是将这数据标识为delete,而且update是delete加insert操作,随着业务的发展,表的大小就会越来越大。green提供的vacuum工具回收已经删除的数据。 简单的vacuum会回收空间并可再次利用,vacuum表时没有请求排它锁,其他操作仍可以对表进行读写。 vacuum full回收空间会跨...