面试问题总结

面试问题总结

  • 第一次面试
    • SQL开窗函数(SQLServer、Oracle、DB2、Hive支持)
    • Linux初级用户到高级用户都会什么(意思相近)
    • 三范式
  • 第二次面试
    • SQL拉链表(逻辑结构)
    • SQL优化
  • 第三次面试
    • Hive如何更新数据

第一次面试

SQL开窗函数(SQLServer、Oracle、DB2、Hive支持)

开窗函数格式: 函数名(列) over(选项)
over关键字表示把函数当成开窗函数而不是聚合函数。SQL 标准允许将所有聚合函数用做开窗函数。
Hive使用子查询需要指定别名
在同一个select语句中可以同时使用多个开窗函数,而且这些开窗函数并不会相互干
扰。
rank() over():相同一样下一个+2。
dense_rank() over():相同一样下一个+1。
row_number() over():相同不一样。

Linux初级用户到高级用户都会什么(意思相近)

三范式

第一范式:保证每列的原子性,表中的所有字段值都是不可分解的原子值
第二范式:保证一张表只描述一件事情,满足第一范式的基础上,所有非关键字段都完全依赖于关键字
第三范式:保证每列都和主键直接相关,表中不存在非关键字段关键字段的传递函数依赖,决定某字段值的必须是主键。

第二次面试

SQL拉链表(逻辑结构)

拉链表,既能满足数据的历史状态,又可以最大程度的节省存储。
拉链表=每日新增数据+历史数据(历史数据部分字段需要修改)

SQL优化

第三次面试

Hive如何更新数据

Hive中无update。
Hive更新用overwrite关检词可以做,也可以做拉链,前提是数据量要小,每天新增数据量可控,不然速度超级慢,最好的方式就是不处理,因为有分区的存在,每次选取分区时间最近的,也就相当于做了一个拉链,不考虑性能可以用overwrite。

你可能感兴趣的:(面试)