数仓开发遇到的那些事
Posted 徐一闪_BigData
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数仓开发遇到的那些事相关的知识,希望对你有一定的参考价值。
Flume-HDFS Sink的压缩方式
老程序员:小伙子,别用LZO,去把配置文件改成Snappy
我:为啥?(你不会不知道Snappy不能切片吧)
老程序员:LZO压缩率没Snappy高,你不知道?
我:但是LZO能切片啊.(理直气壮)
老程序员:你Flume配置文件里都写了128M滚动一次了,还切啥
我:(茅厕顿开)对对对.思维定式了.骚瑞骚瑞
Hbase手动自动分区
老程序员:上班严禁摸鱼,你维度表创建完了?
我:好了啊,咱们需求这么简单我连RowKey都不用设计,美滋滋
老程序员:分区规划做了吗?
我:(??)不是有自动分区吗,256M它会自己切一次啊
老程序员:(我刀呢)自动分区会不会数据倾斜?快去改.
我:维度数据也没多少啊.问题不大吧...(小声逼逼),而且我们的需求不就是根据id查单条维度数据来进行关联吗
老程序员:(好像说的有点道理,有点没面子)那你也不能摸鱼啊.来来来我来问你个问题
我:康忙
老程序员:Memstore默认的刷写时机?
我:128M或者一个小时
老程序员:那我九点半写一条,十点写一条,其他时间都没写入,啥时候刷写?
我:应该是十一点(不知道为什么)
老程序员:从底层说说看?
我:说句实话,俺不会(理不直气也壮)
老程序员:是有一个变量名字叫lastEdit,可以见名知义了没?
我:就是说最后一次编辑的时间过了一个小时,才会自动刷写.哦,跟我想的差不多
Hbase删除标记
老程序员:(还嘴硬?)那我再问问你,知道Hbase客户端有啥bug吗?
我:在客户端中删除某id的某一个列族的某一列的数据,它只会删除当前最大版本的一条数据,不会删除一整列,再次查询竟然能查到小版本的数据,完全是坑人
老程序员:(惊!)还不错,那你怎么解决的?最后发现原因了吗?
我:IDEA用API写了个代码,就搞定了,应该是addDelete类的Column()和addColumns().这两个方法的区别就是一个是删除当前列的最大版本,一个是正儿八经的删除整列的数据.
其实最终的问题就是删除标记,客户端里虽然我的语法是删除某一列的数据,但是客户端用的却是Delete这个标记,在API中的addColumns()是DeleteColumn标记,很明显客户端的是有bug的
老程序员:好的,回答的不错,先回去等通知吧.
我:好的好的,谢谢(好像哪里不对)
以上是关于数仓开发遇到的那些事的主要内容,如果未能解决你的问题,请参考以下文章