7月3日的面试总结 一.不良贷款率指标的sql语句怎么写,代码怎么写 当时回答:select* from 表 插入函数运算 真实回答:根据计算逻辑运算 二.truncate和delete的区别: 当时回答:truncate是回滚,delete是增删减 答案: 1. 条件删除 这个比较好理解,因为DELETE是可以带WHERE的,所以支持条件删除;而TRUNCATE只能删除整个表。 2.由于DELETE是数据操作语言(DML - Data Manipulation Language),操作时原数据会被放到 rollback segment中,可以被回滚;而TRUNCATE是数据定义语言(DDL - Data Definition Language),操作时不会进行存储,不能进行回滚。 3.随着不断地进行表记录的DML操作,会不断提高表的高水位线(HWM),DELETE操作之后虽然表的数据删除了,但是并没有降低表的高水位,随着DML操作数据库容量也只会上升,不会下降。所以如果使用DELETE,就算将表中的数据减少了很多,在查询时还是很和DELETE操作前速度一样。 而TRUNCATE操作会重置高水位线,数据库容量也会被重置,之后再进行DML操作速度也会有提升。 三. ODS层是代表什么意思 DW层是代表什么意思 DM层是代表什么意思 答:ODS层是贴源层.主要是做数据的收集汇总,然后通过ETL工具来实现,数据的抽取,转换,同步。ODS层是数据仓库的准备区,为DWD层提供基础的原始数据,可以减少对业务系统的影响 建模原则:建模原则及方式:是从业务系统增量抽取,保留时间由业务需求决定,可分表进行周期存储,数据不做清洗转换与业务系统数据模型保持一致,按主题逻辑划分。 DW层,是数据仓库,主要是从ODS数据库中,取出我们需要的数据按照实事表和纬度表进行建模,比如星型模型和雪花模型 建模方式和原则:数据模型和ODS层一致,不做清洗转换处理,为支持数据重跑可额外增加数据业务日期字段,可按照年月日进行分表,用增量ODS层数据和前一天DW表进行merge处理 DM层,数据集市,主要做数据分析和报表数据展示 四,shell脚本中如何进行sql语句操作mysql 1、将SQL语句直接嵌入到shell脚本文件中 2、命令行调用单独的SQL文件 3、使用管道符调用SQL文件 4、在shell脚本中MySQL的提示符下调用SQL 5、shell脚本中变量输入与输出