自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 maxcompute 框架相关

1、实例数量① instance内存分配[256,12GB],默认为框架内存2G+JVM1G② map实例数根据split size决定,默认是256MB切分一个块,限制[1,100000]③ reduce实例数默认为map实例数的1/4,限制[0,2000]。当map后数据膨胀会导致reduce处理数据量较大,速度较慢,需要手动优化2、字节大小限制① resource字节数单job输入字节数默认不超过2GB② split size默认256MB,根据spli

2021-08-21 16:27:47 151

原创 SQL join

1、hash join① 适用情况:大表join小表,等值连接② 实现方式:小表作为hash表,存放在内存中 -> 按照join condition映射建立与大表(probe table)值相对应的hash表,也就是通过hash可以很快得到小表与大表对应的行,将大表和小表扫描一次就可以得到最终的结果集2、nested loop join① 适用情况:比较暴力的一种方式,适用性强② 实现方式:将两个表分为内外表,每扫描外表的一行数据都要在内表中查找与之匹配的行 ,查询效率低,为O(n

2021-08-18 16:22:29 100

原创 SQL索引相关

1、索引的概念索引是排好序的数据结构,用于提高查询速度2、索引的类型① 聚簇索引:索引顺序和数据存储顺序一致,类似于字典拼音目录② 非聚簇索引:索引的顺序与数据存储顺序不一致,类似于字典偏旁部首目录3、索引的数据结构① B树:平衡搜索二叉树,节点由key(排好序)和data组成,可以通过指针使用二分查找达到h*log(n)的查询效率② B+树:是B树的升级版,区别在于B+树的非叶子节点(最底层的节点)不存放数据,每一层可以存放更多的key,减小树高,减少了IO(IO消耗远大于数据

2021-08-18 14:39:42 92

原创 postgres SQL使用

1、可以直接进行类型转换比如:date::DATE 直接转换为date类型,其他类型同理2、JSON取数方式args::JSON->>'key_name'进行取值3、date类型直接+-来获取天数差值date01-date024、算百分比操作case when cnt01=0 then 0 else cnt02::float8/cnt01 end (避免出现除数为0异常)...

2021-08-16 10:46:17 99

原创 常用Java开发工具代码

1、比较string类型时间的大小public boolean lg(String s1, String s2) { int i1 = Integer.parseInt(s1); int i2 = Integer.parseInt(s2); if (i1 > i2) { return true; } return false;}2、将时间戳格式化为时间 public Stri

2021-07-14 14:24:45 248 1

原创 flink失去时间属性特性的操作

1、对时间属性字段以外的字段进行GROUP BY(滚动窗口、滑动窗口或会话窗口中的GROUP BY除外)操作。2、双流JOIN操作。3、复杂事件处理(CEP)语句中的MATCH_RECOGNIZE操作4、OVER窗口中的PARTITION BY操作5、UNION操作。UNION = RETRACT+UNION ALL如果经过以上操作后,继续使用该时间属性字段进行窗口函数运算,会出现类似org.apache.flink.table.api.ValidationException: Wind

2021-07-11 21:35:09 489 2

原创 flink双流join的技术思考

1、A流和B流时间相隔较短,几分钟或者几小时①策略:直接使用join操作②解释:join底层走的是:A来B没来,A会缓存起来(默认1.5天),B流来去缓存查A,join成功,然后输出。③注意点:如果是A left join B ,A来B没来A会先输出一条没join上的数据,B来的时候会将之前的输出做逻辑撤回,然后将join上的最新结果重新输出(下游要做好过滤等操作,保证输出的幂等性)2、A流和B流相隔时间较长,比如订单流这种以若干天为变化周期的数据①比如要给订单实时流添加相关的维度信息

2021-07-11 21:06:33 663

原创 遇到的报错

1、CAUSE: Source MQ-xxx partitions number has changed from 100 to 120ACTION: Wait the failover finish, flink is trying to recovery from source partiton change 实时任务运行时,MQ分区发生变化,会造成failover,flink会自动调整分区,不用特殊处理...

2021-07-05 15:28:37 102

原创 输出JSON对象带转义符“\“

最简单的办法做一个replaceJSONObject res = new JSONObject();res.put(key, val);return res.toString().replaceAll("\\\\","");这样输出的字符串就不再携带转义符

2021-07-05 10:53:11 751

原创 程序包不存在

确认依赖没有爆红,但是还是提示程序包不存在在命令行输入mvn idea:idea参考:https://baijiahao.baidu.com/s?id=1666135264347817292&wfr=spider&for=pc

2021-06-30 12:17:05 121

原创 flink双流join的策略

场景:比如电商订单业务的实时流,订单和订单明细1、订单流随着订单状态的变化,不断产生新数据2、订单明细作为流水表随着订单的产生,只来一次? or 订单明细随着订单状态的变化,同步更新?策略:1、如果订单明细流随着订单的产生,只来一次,a:双流join,因为双流join数据默认缓存在状态中1.5天,那么如果订单流1.5天后果来,将会join不上明细流。b:维表join,将订单明细流实时写到维表中,订单流过来去查维表做关联,那么明细流如果延迟了,将会导致先来的订单数据join不上。c:给订单

2021-06-10 11:18:04 630

原创 SQL谓词下推存在的“陷阱“

谓词下推:在SQL执行优化策略时,会将where相关的过滤条件放在前面来执行,如果此时涉及和另一张表的join操作,那么就可能会踩坑场景:1、A joinB 2、将join后的A的数据执行UDF 3、UDF处理后的数据过滤谓词下推后的执行顺序: 1、A中某字段执行UDF 2、对UDF处理后的数据进行过滤 3、过滤后的A与B再进行join问题点:谓词下推的原则是:先过滤再join,但是UDF逻辑较重,效率上:(join后少量数据执行UDF的时间)<(先全量执行UDF再过滤的时间),所以自动.

2021-06-10 10:52:13 359

原创 SQL过滤掉某一种类型下的子类型数据

1、如果选择s1=1 and s2='a'的数据,那么写法为where s1=1 and s2='a'2、如果不要s1为1时s2为'a'的数据,那么逻辑与上面取反为where s1!=1 OR s2!='a',写法如下

2021-06-07 18:11:45 143

原创 flink 经常发生 remove container

将一些维表加载到内存中,因为数据量过大导致节点加载时间长,worker节点与master节点的心跳超时,导致container被remove掉解决办法:1、减少加载到内存中的数量量2、默认每个节点发送一份数据,可以将全量数据分散到不同的worker节点上,减少单节点加载数据的压力...

2021-06-07 18:06:10 289

原创 flink保存点

1、手动触发2、程序停止不会自动删除3、可用于系统升级、集群迁移和数据存档等

2021-06-07 17:50:20 151

原创 maven已经引入依赖,可以运行,但是会爆红

目前遇到这个问题,发现是依赖下载不完整造成了办法:在maven仓库中,删除已经下载的依赖,clear一下,然后重启IDEA,重新下载依赖即可

2021-06-07 15:12:54 994

原创 Failed to execute goal org.springframework.boot:spring-boot-maven-plugin

<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId></plugin>意思好像是找不到main方法,但是明明有main方法把pom文件里的这个依赖注掉就可以了如果不行再试试别的办法呢...

2021-06-07 00:38:57 489

原创 错误: 找不到或无法加载主类 com.

报错:错误: 找不到或无法加载主类 com.根据个人经验的一种办法,仅供参考:1、2、按步骤勾选上,重新执行即可成功,如果不行的话,原因应该不一样,请另寻他法。

2021-05-05 16:57:50 895

原创 位图bitmap bitset

暂时引用一片文章来记录,后续分享自己的心得:https://blog.csdn.net/jiabeis/article/details/98962359

2021-05-05 16:30:31 74

原创 URL encode and decode简单认识

1、URL:uniform resource location 即统一资源定位符2、URLencode的方式:https://mp.csdn.net/editor/html?not_checkout=1编码后(具体编码方式可以百度):https%3A%2F%2Fmp.csdn.net%2Feditor%2Fhtml%3Fnot_checkout%3D13、编码的作用:防止服务端接收到的URL产生乱码4、注意点:如果URL包含了%号,需要进行转义...

2021-05-04 21:35:28 95

原创 分桶表

使用示例:CREATE TABLE page_view(viewTime INT, userid BIGINT, page_url STRING, referrer_url STRING, ip STRING COMMENT 'IP Address of the User') COMMENT 'This is the page view table' PARTITIONED BY(dt STRING, country STRING) CLUSTERED BY(userid)

2021-05-03 23:40:42 87

原创 distribute by、group by、sort by、order by的相关释义

1、group by把相同的key发送到同一个reduce分区中,后面必须做聚合操作2、distribute by把相同的key发送到下游同一个reduce分区中,只是做数据分散3、order by全部排序,把所有数据拉到同一个节点进行排序,数据量大的时候可能会造成内存溢出4、sort by区内排序,对每个reduce分区内的数据进行排序,不保证全局有序5、cluster by如果distribute by和sort by的字段相同时,只用cluster by就可以完成

2021-05-03 22:09:49 1057

原创 Hologres使用记录

1、Holo直查maxcompute的限制1)单查询限制200G2)分区数限制512解决办法:将maxcompute的数据导入holo作为内表使用2、Holo在即系查询场景的使用通过flink将数据实时清洗到holo中,做一张增量更新的实时表,然后使用holo直查(结合报表工具来具体使用)如果需要维度信息,可以通过建立maxcompute外表的方式,做到同时将maxcompute外表+holo内表的联合查询,也就是对接多数据源的联合查询3、如何实现将离线数据定时写入到holo

2021-05-03 10:27:46 839

原创 数仓建模理论

1、首先从需求出发2、确定需求相关的数据域以及子域3、确定好维度和度量值4、画出模型矩阵,将每个域、维度、度量值对应起来5、根据规划好的维度以及度量值,去上游找对应的数据源,以及对缺失的数据字段的补充...

2021-05-02 23:58:45 60

原创 maxcompute相关

1、多条JSON嵌套格式解析类似于这种格式的字符串:"{...},{...}"LATERAL VIEW EXPLODE(SPLIT(SUBSTR(strs,3,LENGTH(orgpoiids)-4),'},{')) ex AS str

2021-05-02 23:26:35 249

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除