
大数据
文章平均质量分 59
Anla Likes Sunshine
Be a creator.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2022_07杂记
一些笔记原创 2022-08-11 16:35:29 · 550 阅读 · 0 评论 -
2022_06杂记
数据仓库工程师经验杂记原创 2022-06-30 11:06:32 · 516 阅读 · 0 评论 -
杂记_202205
1、<> 不能和NULL 比较,返回 NULL2、flink 一任务要从版本 1.12 升级 到 1.13,报错 :Caused by: java.lang.NoSuchMethodError: org.apache.flink.table.factories.DynamicTableFactory$Context.getCatalogTable()Lorg/apache/flink/table/catalog/CatalogTable;参考链接,可看到 Flink计算引擎为VVR 4.0及原创 2022-05-30 17:53:21 · 941 阅读 · 0 评论 -
Flink DataStream任务优化为Flink SQL
1、Caused by: java.io.IOException: Unknown "type" value "kafka". The Canal JSON message …‘format’ = ‘canal-json’ 改为 ‘format’ = ‘json’ ,可参考 链接 ,提到了 canal-json 会调用 deserialize 方法,其会查询 key type 是 哪种 DML (update,delete,insert),其余情况则会Unknown "type" value "kafka原创 2022-04-19 16:22:21 · 3629 阅读 · 0 评论 -
熟悉Java、Flink
1、StringEscapeUtils.unescapeJava 去转义字符方法2、matcher.group(int n) 匹配正则表达式,n为0/1/2/num 代表 匹配 整个表达式/第一个表达式/第二个表达式/第num个表达式,每个表达式能用括号区分3、java工程 好多文件提示Cannot resolve symbol ‘xxxx’ ,参考 java项目Cannot resolve symbol ‘xxxx‘的坑!!! ,我是点了 这个...原创 2022-01-10 18:00:51 · 947 阅读 · 0 评论 -
杂记_202203_week4
1、sum(字段) 字段若存在至少一个非 NULL值的话,sum 的结果值也为非 NULL,若全为NULL,则为NULL。--hiveselect sum(j) --NULL from (select cast(null as int) as j union all select cast(null as int) as j) t--impalaselect sum(j) from (select null as j union all select null as j) t ; --NULL原创 2022-04-01 11:42:31 · 1378 阅读 · 0 评论 -
杂记_202203_week3
1、让键盘代替鼠标工作alt+f4 关闭当前窗口菜单键 / shift+f10 右键enter 左键win+d 桌面shift+alt+numlock 开启鼠标键右边的数字按键代替鼠标移动,ctrl 加速,alt 减速。5是左键。上下键在ctrl+tab选中工作页面后是滚动作用。2、Airflow任务及时性校验优化开发过程:1、表 dag 存有每个 dag的调度时间 schedule interval ,值为 Crontab schedule 格式。2、mysql居然连字符串分割原创 2022-03-24 11:44:33 · 3417 阅读 · 0 评论 -
杂记_202203_week1
1、sla_miss: 这张表记录的是我们在dag文件中设置的sla告警,sla的意思就是,某个任务设置了截止时间,如果某个它到了截止时间仍然没有启动、或者运行成功,那么就会记录到这张表中,作为告警使用;...原创 2022-03-07 17:23:35 · 1844 阅读 · 0 评论 -
学习记录_springboot_flink
maven-surefire-plugin是maven里执行测试用例的插件,不显示配置就会用默认配置。maven打包如何跳过test用例,mvn clean package -Dmaven.test.skip=true ,或者 详细说明链接:学习Maven之Maven Surefire Plugin(JUnit篇) Linux 如何在某路径下全局查找某内容,如 zouwh:grep "zouwh" ./* -rwnH...原创 2022-02-16 17:36:41 · 989 阅读 · 0 评论 -
挖没写过的代码记录_holo_springboot
holo:函数 regexp_split_to_table、 regexp_split_to_array ,\ 是转义功能,参数列表为 (string, pattern [, flags ]) ,pattern是 POSIX正则表达式(BRE | ERE ,这里用的是 ERE)。array坐标从1开始参考链接: Linux/Unix工具与正则表达式的POSIX规范下面总结ERE 最重要的特殊符号:(来源《Linux环境编程图文指南》)SELECT foo FROM regexp_split_to原创 2022-02-10 18:11:28 · 401 阅读 · 0 评论 -
学习还是得系统
1、表更新,如何校验数据准确性:如何通过 excel 拼接所有字段:=IF(B2="string","nvl(t1."&A2&",''),","nvl(cast(t1."&A2&" as string),''),")=IF(B2="string","nvl(t2."&A2&",''),","nvl(cast(t2."&A2&" as string),''),")select count(1) from ( select conca原创 2021-12-06 18:23:46 · 857 阅读 · 0 评论 -
Python实现airflow任务及时性校验
Python实现airflow任务及时性校验1、Python连接Mysql数据库,获取版本号:#!/usr/bin/python# -*- coding: UTF-8 -*-import pymysql# 打开数据库连接db = pymysql.connect("host_id", "user_name", "password", "db_name", charset='utf8' )# 使用cursor()方法获取操作游标 cursor = db.cursor()# 使用exec原创 2021-10-29 18:24:02 · 343 阅读 · 0 评论 -
每天记录一点点_2
sql的一个理解漏洞 user_id<>87 不能选出 user_id is null的记录原创 2021-10-29 18:22:42 · 114 阅读 · 0 评论 -
python_spark_study
1、用 import 导入模块,需要按照“模块.函数” 的格式使用这个模块的函数。在确定自己不会导入多个同名函数(从不同模块导入)的情况下,如果不希望在每次调用函数的时候,都要写上模块的名字,可以使用“from模块 import 函数” ,就可以直接使用函数,而不需要模块名作为前缀。...原创 2021-10-19 17:46:11 · 260 阅读 · 0 评论 -
Airflow 报删除分区任务错误
Airflow 报删除分区任务错误:Error: Error while compiling statement: FAILED: RuntimeException MetaException(message:Invalid partition key & values; keys [xxx, xxx, is_archived, ], values [xxx, xxx, ]) (state=42000,code=40000)1、查看hive元数据:mysql -hxxx -uxxx -pxxx原创 2021-09-15 17:16:25 · 607 阅读 · 0 评论 -
每天记录一点点
1、hive 同步到 holo,数据量不一致,可能是 holo 的主键不唯一导致的,即hive的粒度不唯一。2、sql文件注释 不能有 分号。不然会报找不到字段错误,且非常不明显。3、查看hdfs文件大小: hdfs dfs -du -h -s hdfs路径...原创 2021-09-02 10:55:43 · 423 阅读 · 0 评论 -
好久没更博客了
flink sql 的过滤条件含 field<>'' 是输出不了任何记录的,尽管可看到 select field1,field1<>'' as field2 from table; 中 field2 为 true。原因未知。原创 2021-08-10 14:25:01 · 202 阅读 · 0 评论 -
补充一点记录
1、spark sql报错:Error in query: nondeterministic expressions are only allowed in。原理:rand()等函数不能出现在join…on的后面,使用rand()函数一般解决数据倾斜的问题如何处理:在sparksql 就直接 join on 随机值字段 。2、杀进程:2.1、ps -ef | grep tomcat | grep -v "grep" | awk '{print $2}'kill -9 $id 2.2、推荐:原创 2021-07-02 15:03:22 · 831 阅读 · 0 评论 -
安装pyhive包
1、安装pyhive包:sasl、thrift、thrift-sasl、PyHivePycharm的Terminal中运行:pip install thrift -i https://pypi.tuna.tsinghua.edu.cn/simplepip install thrift-sasl -i https://pypi.tuna.tsinghua.edu.cn/simplepip install PyHive -i https://pypi.tuna.tsinghua.edu.cn/simpl原创 2021-05-19 18:08:15 · 2194 阅读 · 0 评论 -
回刷数据_shell脚本调用sql脚本报错隐秘处理方案_同步数仓数据到Hologres的较优方案
1、回刷每日23:30的数据,日期为 datetime_begin 到一个月前的数据run_history_data(){ datetime_begin="2021-04-13" statdate_end_ymd=`date -d "-1 months ${datetime_begin}" +"%Y%m%d"` datetime_end_ymd=`date -d "-1 months ${datetime_begin}" +"%Y-%m-%d"`原创 2021-04-16 11:26:19 · 693 阅读 · 0 评论 -
探索Holo_java操作日期
1、探索HoloBEGIN; --事务开始create table public.dim_terminal_mt ( "statdate" text NOT NULL, "terminal" text NOT NULL, "operation_bd_user_id" int4, "operation_bd_user_name" text, "operation_bd_user_mobile" text, "org_level_1_id" int4, "org_level_2_id" int原创 2021-04-08 16:44:51 · 710 阅读 · 0 评论 -
java工程_impala同步到hologres
很久没碰过java工程了,安装IDEA,下载JDK、Maven,遇到一些问题,阿伟帮着看问题,欣喜回想起自己之前写过关于Maven的博客,对自己还是有用的,和阿伟通力解决了pom.xml的问题。博客链接是:掌握maven1、如何下载安装Maven,参考:Maven下载及安装遇到的问题:1.1、pom.xml 报错 :Failed to read artifact descriptor for org.glassfish:javax.el:jar:3.0.1-b06-SNAPSHOT如何解决:可看到原创 2021-04-07 18:14:04 · 502 阅读 · 0 评论 -
钉钉通知_连接impala
1、钉钉通知:实现 通知 和 @ 功能参考:自定义机器人接入# 检查程序返回码function check_run(){ result=$? echo "[`date +'%Y-%m-%d %H:%M:%S'`] check_run start" if [[ ${result} -ne 0 ]] ; then # 调用邮件告警脚本 exit ${result} fi echo "[`date +'%Y-%m-%d %H:%M:%S'`] c原创 2021-03-31 10:30:40 · 312 阅读 · 0 评论 -
刷新表内容_数据验证_认识Airflow SubDAGs
一、刷新表内容,以excel表中内容进行替换1、hue指定csv路径并创建表,得到的表属性如: createtab_stmt CREATE TABLE `test.table_name`( `field_1` string COMMENT 'from deserializer', `field_2` string COMMENT 'from deserializer') ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCS原创 2021-03-19 16:38:23 · 594 阅读 · 0 评论 -
探索Hive元数据_sql杂记
1、探索Hive元数据涉及表说明:column_v2:表示该分区、表存储的字段信息,包含字段名称和类型和字段偏移。sds:保存数据存储的信息,包含分区、表存储的HDFS路径地址等。tbls:记录Hive数据库创建的所有表,有tbl_name、tbl_id等字段如果表结构有变动,那么cd_id会改变。如果想查看变动前的表cd_id,可通过下面语句查询到结果数量与表分区数量相等:select * from sds where location like '%table_name%';再通过下原创 2021-02-25 18:50:57 · 430 阅读 · 0 评论 -
hive_shell_mysql_python.杂记
1、not in 后的表字段不能为空,否则无效。create table test0201_1 as select null as id union all select 1 as id;create table test0201_2 as select 2 as id union all select 1 as id;select count(1) from test0201_2 where id not in(select id from test0201_1); --0select coun原创 2021-02-24 20:39:54 · 1330 阅读 · 3 评论 -
Python实现airflow任务及时性校验(未完成版)
select 1 as seq,greatest(0,1,-1) as a --取函数内字段值的最大值,这里返回1union allselect 2 as seq,least(0,1,-1) as a --取函数内字段值的最小值,这里返回-1union allselect 3 as seq,greatest(0,null,-1) as a --由于字段存在null,函数值返回nullunion allselect 4 as seq,least(0,null,-1) as a --由于字段存在nu原创 2021-01-30 18:34:45 · 310 阅读 · 2 评论 -
被逼上梁山_python、shell
其实平时就是个搬代码工人,但因为要做sqoop批量导出,而之前没有批量操作的功能代码,因此被逼上梁山写个性化shell功能。因为要做钉钉机器人功能,有些个性化逻辑,而编写python。不得不说shell 和python都是作中作脚本语言,语法之晦涩难读,真之谁写谁知道。断断续续接触了三个月,也仍旧难以妙手生花,抑扬顿挫写写测测让人恶心得很,不过想想待我写多查多了,就能是风中最靓的仔,因此出此博记。1、shell 获取MySQL查询结果并处理参考:shell 获取MySQL查询结果并处理举例获取统计值(原创 2021-01-13 18:31:37 · 179 阅读 · 0 评论 -
hive的udtf函数:inline+实现动态分区+小文件处理+杂记
1、inline 函数说明:翻译:将结构数组分解为多行。返回一个包含N列的行集(N=结构中顶级元素的数目),数组中每个结构一行。场景:源表粒度为 班级,目标表粒度为 班级+老师。with t as ( select 'class1' as class_id, '物联网工程' as class_name,'Anla' as chinese_teacher,200 as chinese_teacher_donate_amount ,'Satellite' as math_tea原创 2020-12-31 18:26:07 · 973 阅读 · 0 评论 -
airflow延时启动+sqoop分批次导出
1、Airflow上的task1依赖于task2,如何让task1在task2完成后45分钟启动?背景:task1是个sqoop导入任务,task2是个sqoop导出任务,导出会导致mysql主从延迟,这里设置了延时45分钟启动task1来解决这个问题,具体时间可根据实际情况调整。default_args = { 'owner': 'anla', 'depends_on_past': False, 'start_date': datetime(2020,12,23), '原创 2020-12-24 13:48:04 · 617 阅读 · 0 评论 -
lateral view + explode使用_解决非等值连接造成的笛卡尔积导致运行耗时长_canal、binlog用处_Sqoop导出的坑_impala\hive区别新发现
with t as ( select 1 as id,'lisi' as name union all select 2 as id,'wangwu' as name)select t.id ,t.name ,ex.basic_salaryfrom t lateral view explode(split('4500,5000',',')) ex as basic_salary原创 2020-12-02 17:54:30 · 1241 阅读 · 0 评论 -
sqoop数据倾斜解决实战
参考资料:Mysql查看执行计划: https://blog.youkuaiyun.com/weixin_41558728/article/details/81704916sqoop 并行抽取数据,同时解决数据倾斜: https://blog.youkuaiyun.com/qq_27882063/article/details/108352356利用 force index优化sql语句性能: https://www.jianshu.com/p/df2bb6ca178esqoop官网: http://sqoop.apach原创 2020-11-24 18:57:06 · 1565 阅读 · 2 评论 -
窗口函数-进阶+小常识
with t as (select 'terminal_1' as terminal,8 as packet, 4 as money, 1 as timeunion allselect 'terminal_1' as terminal,8 as packet, 2 as money, 2 as timeunion allselect 'terminal_1' as terminal,8 as packet, 1 as money, 3 as timeunion allselect 'termi原创 2020-11-20 19:10:43 · 256 阅读 · 0 评论 -
杂记3_first_value窗口+表追加指标开发+中位数+ntile窗口开发
1.1、需求:获取id1的最新id2with t as (select 1 as id1,80 as id2,1 as time union allselect 1 as id1,90 as id2,2 as time union all select 1 as id1,70 as id2,3 as time union allselect 2 as id1,20 as id2,1 as time union allselect 2 as id1,30 as id2,2 as time原创 2020-11-04 18:07:50 · 766 阅读 · 1 评论 -
代码库-python推送邮件
#coding=utf-8# #!/usr/bin/python3# @author zouwh# @date 2020-10-29# python推送邮件代码库import smtplibfrom email.mime.text import MIMETextfrom email.utils import formataddrfrom email.mime.multipart import MIMEMultipartfrom email.mime.application import原创 2020-10-29 17:01:15 · 382 阅读 · 0 评论 -
full outer join应用场景
和分析师对数的过程,了解到她会使用full outer join 来检测结果表与主表的对齐数量,发现很好用。场景:如果主表的所有粒度值都要(如主表粒度是设备,即指所有设备都要在结果表中),例子1、2、3、4的计算值会为0。以下例子的说明:t1为结果表,t2为主表,查看是否主表(t1)所有设备进入结果表(t2)中。1、t1的,与t2的差集数select count(t1.id) from (select 1 id union all select 2 id union all select 3 id原创 2020-10-29 11:47:49 · 1619 阅读 · 0 评论 -
代码库-令人头皮发麻的涉及粒度和时间维度的需求
需求时间维度:2019年5月1号-至今,数据以月统计。即每个分区的数据除了当前月份的时间跨度是一号到现在来统计的,其他(历史)是按整个月统计的,,因此一个分区中最小粒度只有一条记录。#昨天nowdate=`date -d "-1 days" +"%Y%m%d"`#昨天年月ym_nowdate=`date -d "${nowdate}" +"%Y%m"` #索引cur_statdate="20190501"#索引年月statdate=`date -d "${cur_statdate}" +"%原创 2020-10-27 11:44:56 · 256 阅读 · 0 评论 -
杂记
环境: Hive1、将小数转换为百分:concat( cast( cast(0.86425*100 as decimal(9,2)) as string), ‘%’)2、发现窗口函数是可以嵌套的,使用场景如:省份水平利润(目标列)按省份的总利润排序省113002省122002省1累计5002省214001省222001省2累计6001select *, dense_rank() over(order by原创 2020-10-15 20:59:06 · 532 阅读 · 0 评论 -
吐血impala、hive日期整理
背景1:impala查询拥有秒级的响应时间,且impala 兼容 hive 的绝大多数 sql 语法。背景2:在hue的开发过程中,我先在impala中做开发,后面spark引擎来运行sql脚本,发现impala与hive的函数有些是不兼容或不相同的。因为没有厘清所需功能在hive和impala的转换,花了不少时间在等待hive,现在想想真是吐血。所以为了后面的工作顺畅,这篇 Impala与hive的日期吐血整理 就理所当然的出世了。关于日期的区别,我目前知道的有:impala: impala的 un原创 2020-09-22 15:02:09 · 498 阅读 · 0 评论 -
改动报表的调用频度为更小
1、源列表分析思路:有被每日调度的表所依赖的表需要在daily.py设置跨DAG依赖所有相关源表的bash都要转移到hourly.py去daily.py里的相关依赖关系删除,转移到hourly.py去2、跨DAG依赖配置,即被频度更小的定时调度依赖的需要配置这个:22、11、12# 跨DAG依赖:common_hourly(依赖execution_date当天最后一次调度)def execution_date_hourly(execution_date: datetime) ->原创 2020-09-21 17:48:55 · 296 阅读 · 0 评论