美文网首页
Oppo面经

Oppo面经

作者: 那就这样吧丶xx | 来源:发表于2022-03-23 09:38 被阅读0次

    Oppo面经

    1. udf和udtf,udaf的区别,常见sql方法
      UDF:用户定义(普通)函数,只对单行数值产生作用
      UDAF:用户定义聚合函数,可对多行数据产生作用;等同与SQL中常用的SUM(),AVG(),也是聚合函数 多进一出
      UDTF:用户定义表生成函数,用来解决输入一行输出多行
    2. hive中sql中表连接方式,如何广播小表,在sql中怎么体现?
    3. 怎么写行转列,列转行?

    列转行

    select name,mo,time from people_movie lateral view explode(movie) movie as mo,time; 把一列炸开成多行

    1. A ABC 2016-05

    2. A EFG 2016-09

    3. B OPQ 2015-06

    4. B XYZ 2016-04

    5. A ABC 2016-05

    行转列

    > select t1.base, concat_ws('|', collect_set(t1.name)) name

    From

    (select name, concat(constellation, "," , blood_type) base

    from person_info) t1

    group by t1.base

    1. Hive中的常见窗口函数

    row_number():从1开始,按照顺序,生成分组内记录的序列,row_number()的值不会存在重复,当排序的值相同时,按照表中记录的顺序进行排列; 1,2,3,4,5

    rank():生成数据项在分组中的排名,排名相等会在名次中留下空位。1,2,3,3,5

    dense_rank():生成数据项在分组中的排名,排名相等会在名次中不会留下空位。1,2,3,3,4

    LEAD(col,n,DEFAULT) 用于统计窗口内往下第n行值

    LAG(col,n,DEFAULT) 用于统计窗口内往上第n行值

    1. 数仓怎么搭建的

    2. 数据是怎么导入数仓的

    3. Mysql索引为什么这么高效?

    4. 什么是组合索引?怎么用的?最左匹配原则?

    5. Kafka消息积压怎么处理

    6. Spark和MR的区别

    7. Spark中的shuffle过程

    8. Hadoop中的MR流程描述一下

    9. Hadoop数据存储的方式有哪些?ORC和parquet的区别?

    Parquet 支持嵌套式结构,ORC 多层嵌套比较复杂,Parquet 不支持ACID,ORC 支持ACID特性

    Parquet不支持增删等操作,ORC支持增删等操作。ORC作为存储,可以借助元数据过滤掉更多不需要的数据,查询时需要的集群资源比Parquet更少

    1. Hive Sql语句中怎么写广播器?(广播小表连接大表)

    2. 数据倾斜的处理方式?

    3. Linux中如何统计文件中字母出现的个数

    grep -o "hello" demo.log | wc -l

    1. Shell脚本如何写?

    2. 星型模型和雪花模型的区别及应用场景

    星型模式是以事实表为中心,所有的维度表直接连接在事实表上,像星星一样。 星形模式的维度建模由一个事实表和一组维表。

    雪花模式(Snowflake Schema)是对星形模式的扩展。雪花模式的维度表可以拥有其他维度表的,但是由于这种模型不太容易理解,维护成本比较高,而且性能方面需要关联多层维表,性能比星型模型要低。

    从现在项目中看 大部分 Fact 和 Dimnsn 的关联关系都是 星型的 ,有很少量的是采用了雪花型的 。

    至于什么模式适用什么场景很难有一个可靠的规则去决定,主要裁决与模型的运行效率 和 BA 的经验。以及现行的趋势

    相关文章

      网友评论

          本文标题:Oppo面经

          本文链接:https://www.haomeiwen.com/subject/npkcjrtx.html