3.1mongoDB:排序
db.getCollection('test_zhouketao').find({}).sort({'_id': 1})
设置增量:{$and:[{'daas.lastUpdateTime' :{$gte : '${begin_date}'}},{'daas.lastUpdateTime' :{$lt : '${end_date}'}}]}
3.2在容器中查看微服务日志命令
docker ps | grep adapter
docker exec -it [docker_id] bash
/usr/local/tomcat/logs
/data/admatmp
复制docker中文件到服务器根目录命令:docker cp [docker_id]:source_path dst_path /
查看任务发布上线失败 tail -f zte-itp-dcp-adapter.log|grep 'edw_test_quote_adma_0805'
3.3在服务器上执行sparksql环境命令
Spark环境服务器地址(测试环境测试任务) 10.5.21.133,root/Zte_133_it; 进入sparksql环境命令:1)spark-sql;2)use zxvmax;3)show create table ods_alm_test
3.4在服务器上执行hdfs环境命令
Hdfs环境(测试环境测试任务) 10.5.21.133,查看路径下的命令: hdfs dfs -ls /
3.5 kafka日志样例
zte-itp-dcp-adapter_app INFO 10237221 10237221 - 192.169.213.147 10.31.6.126 Apache-HttpClient/4.5.2 (Java/1.8.0_191) d.zte.com.cn /zte-itp-dcp-adapter/task/assign {} 192.169.123.116 POST 2019-08-29 12:32:57 +0800 ok- - - - - HTTP/1.1 - - - - - zte-itp-dcp-datamodeling zte-itp-dcp-adapter TaskCommitService - - - - zte-itp-dcp-datamodeling192.169.65.235^1566915850240^218278 - 8913088503369124154 -5415999034902090158 {"X-Emp-No":"10237221"} - zte-itp-dcp-adapter {"virtualTaskSet":[{"virtualTaskName":"edw_intrmgmt_qm","errCode":"0131","errInfo":"table(zxvmax.edw_intrmgmt_qm_optical_binding_relation)not found","taskSet":[{"taskName":"edw_intrmgmt_qm_power_ic_delivery_info_qy_temp2","id":0,"errCode":"0131","errInfo":"table(zxvmax.edw_intrmgmt_qm_optical_binding_relation)not found"}]}],"taskPreCheckRsp":""} http-nio-8080-exec-10 zte-itp-dcp-adapter/ 358 com.zte.itp.dcp.adapter.task.service.TaskCommitService
com.zte.itp.dcp.adapter.callback.service.CallbackServiceImpl [79] -| send Kafka msg,key:task_assign_result_msg,msg:{"processId":"e3135bbbc38c4fb495928e9ee55e1564","taskAssignResults":[{"isSuccess":"true","taskId":"367017264220766208","taskList":[{"errInfo":"","insID":"4601","isSuccess":"true","taskName":"ods_alm_liuyue_test_0905_4_liuyue_res1_ztetmp(2019-12-02 07:15:00)"},{"errInfo":"","insID":"4602","isSuccess":"true","taskName":"ods_alm_liuyue_test_0905_4_zte02"}],"taskVerCode":"V1.0.6"}]}
3.6 Oracle数据库设置增量条件
LAST_UPDATED_DATE>=to_date($[lastexcutedate],'YYYY-MM-DD HH24:mi:SS')
sync_date >= to_date(substr($[lastexcutedate]-5,1,10),'yyyy-MM-DD') and sync_date < sysdate and to_char(sync_date,'yyyy-MM-dd')>='2020-01-20'
3.6.1 Mysql时间装换函数
select STR_TO_DATE(update_date,'%Y-%m-%d %H:%i:%s') as my_date,DATE_FORMAT(createdate,'%Y-%m-%d %H:%i:%s') from liuyue_test_hour;
update_date >= STR_TO_DATE(substr($[lastexcutedate]-5,1,10),'%Y-%m-%d %H:%i:%s') and update_date < sysdate() and date_format(update_date,'%Y-%m-%d')>='2020-01-20'
3.7 adma任务运行失败日志查询
bundleresult
3.8内部表和外部表
未被external修饰的是内部表(managed table),被external修饰且存储路径为hive的数据仓库(HDFS:/namespace/spark/)的为外部表(external table);
区别:
1)内部表数据由Hive自身管理,外部表数据由HDFS管理;
2)内部表数据存储的位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据的存储位置由自己制定;
3)删除内部表会直接删除元数据(metadata)及存储数据;删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除;
4)对内部表的修改会将修改直接同步给元数据,而对外部表的表结构和分区进行修改,则需要修复(MSCK REPAIR TABLE table_name;)
3.9查看建表语句
show create table zxvmax.edw_dim_employee_cs
3.10维度SQL详解:
tmp01 (1)ods表的所有数据;(2)这里生成的代理键只是为了满足表结构,在tmp03中还会重新生成
tmp02 (1)有效值为N的;(2)渐变列名称有变化的;(3)ods表中已经删除的
tmp03 (1)把所有有效标志不为N,id不为空的记录的最后更新时间设置为当前时间;(2)缓慢变化之后的记录,新增的记录(在此重新生成所有代理键,生成缓慢变化和新增记录的自然键);
tmp02+tmp03的数据插入到逻辑表中。汪良伟
3.10事实增量拉链SQL详解:
拉链表将过去每一天从ods来的的数据置为N,保存,当天从ods来的全量数据置为Y,开始时间为当前时间
tmp1 (1)ods表的所有数据;(2)当前时间为开始时间,结束时间为空
tmp2 (2)将edw表中原有的数据结束时间设置为tmp1中的开始时间,ods中结束时间设置为NULL(相当于ods中所有数据为有效,原来有效数据设置为无效)
tmp3 (3)将原表和tmp2中结束时间不为NULL的有效标志置为N,将tmp2中结束时间为NULL的置为Y
3.11数据集成增量SQL详解:
第一部分:修改的
第二部分:新增的
第三部分:没有变化的
3.12数据集成增量分区漂移不处理SQL详解:
第一种,更新的数据中,只有新增的分区值,更新数据没有跟原分区重合的部分,则不重写原分区。
第一部分:修改的
第二部分:新增的
第三部分:null(原分区中的数据都还在,包括漂走到其他分区的数据)
第二种,更新的数据中,有新增的分区值,更新数据有跟原分区重合的部分,则重写原分区。
第一部分:修改的
第二部分:新增的
第三部分:找到有分区重复的数据,且id不在更新数据中的原表中的数据(即没有变化的数据,但分区变化的漂走了)
3.13数据集成增量分区漂移处理SQL详解:
第一部分:修改的
第二部分:新增的
第三部分:没有变化的
3.14 left anti join 和left semi join
Select * from table1 t1 left anti join table2 t2 on t1.name=t2.name ---left anti join是表1中除去交集的部分
Select * from table1 t1 left anti join table2 t2 on t1.name=t2.name ---left semi join 是取表1中与表2交集的部分
总之,left anti join和left semi join都是取主表中的字段,而没有表2中的。所以不能写成:
Select t2.name from table1 t1 left anti join table2 t2 on t1.name=t2.name
3.15代码补全工具TabNine
edw_engsrv_dpm_site_bom_satisfaction --python任务---251环境
3.16阿里云UI自动化测试:F2etest
3.17 kimball的维度建模理论
3.18 postgresql数据源报错
Java.lang.numberFormatException:For.input.string:”2.97664e+06”
在数据库中执行下面这个语句,执行结果不为空,说明是用户权限问题,需要增加授权
select t1.table_schema as owner,t1.table_name,cast(obj_description(t2.relfilenode,'pg_class') as varchar) as table_comment,coalesce(t2.reltuples, 0) table_rows,concat(t1.table_schema,'.',t1.table_name) as schema_table_name from information_schema.TABLES t1,pg_class t2 where t1.table_name = t2.relname
从表中抽取字段:
select t3.column_name, format_type(t2.atttypid, t2.atttypmod) as data_type, col_description(t2.attrelid, t2.attnum) as column_comment, '0' as data_length from pg_class t1, pg_attribute t2, information_schema.COLUMNS t3 where t1.relname = t3.table_name and t2.attname=t3.column_name and t2.attrelid = t1.oid and t2.attnum > 0 and t3.table_schema= ? and t3.table_name= ?
Spark_pg报错执行:
select concat(b."NAME", '.', a."TBL_NAME") as schema_table_name, a."OWNER" as owner, a."TBL_NAME" as table_name, 0 as table_rows from "TBLS" a, "DBS" b where a."DB_ID" = b."DB_ID"
3.19 postgresql数据库查询某个用户在某个库的表的权限
select * from INFORMATION_SCHEMA.role_table_grants where grantee='postgres' and table_schema ='postgres';
3.20阿里巴巴datax信息
https://github.com/alibaba/DataX/blob/master/hdfsreader/doc/hdfsreader.md