当前位置: 首页 > news >正文

业务相关

目录

一、Spark

1.spark主要用来计算什么? 随便说段代码

2.spark 运行命令说一个,平常用哪些参数,怎么考虑的

3.spark shuffle的代码有哪些,平日哪些操作涉及到shuffle了

4.计算中遇到最难解决的是什么?

5.Spark 调过哪些参数

二、Hive

1.压缩格式比较

2.动态分区和指定分区的对比

3.计算最复杂的业务逻辑是什么

4.小文件治理怎么搞

5.再平衡怎么搞

6.开窗函数有哪些,用于哪里

7.关于数组的函数

8.hdfs block块大小默认是多少,调过吗?什么情况下调整?

三、数据仓库

1.有多少表,表的数据量是多少

2.模型设计怎么做的(数据分层怎么做的)

3.高频数据怎么做的

4.有哪些主题域 有哪些实体 有哪些维度

5.每日增量数据有多少

6.缓慢变化维的应用

7.拉链表的应用,拉链表的增量/全量统计

8.sqoop的同步效率

9.sqoop的数据倾斜

四、Python

1.pandas如何处理大规模数据

2.如何提高高并发

3.协程 进程 线程 

4.Fast Api 和 Flask

5.增量同步怎么做 全量同步怎么做 

6.Python 深拷贝 浅拷贝的使用场景


一、Spark

1.spark主要用来计算什么? 随便说段代码

2.spark 运行命令说一个,平常用哪些参数,怎么考虑的

3.spark shuffle的代码有哪些,平日哪些操作涉及到shuffle了

4.计算中遇到最难解决的是什么?

Impala连接打满

5.Spark 调过哪些参数

二、Hive

1.压缩格式比较

2.动态分区和指定分区的对比

3.计算最复杂的业务逻辑是什么

4.小文件治理怎么搞

5.再平衡怎么搞

6.开窗函数有哪些,用于哪里

7.关于数组的函数

8.hdfs block块大小默认是多少,调过吗?什么情况下调整?

  • 默认128M 可调 
  • 小文件处理:若存储大量小文件(如日志),调小块大小(如64MB)可减少存储浪费,但会增加NameNode元数据压力。
  • 大文件处理:对TB/PB级文件,调大块(如256MB或512MB)可减少分块数量,降低元数据开销

三、数据仓库

1.有多少表,表的数据量是多少


每日 zm_fund.fundperformance 135W条数据
假设7年 ZM_DW_ES.FUNDROLLSTATIS_JIXIAO 18亿数据


基金数量统计: 正常 公募+私募+尽调 = 3+3+1 = 7W +投后1W +模拟10W =总共18W  

                          实际 18W+模拟无效34W = 52W ,

fundid层100W
投后一万只基金
朝阳43 W  --> 朝阳库有误,现在只有两三万
聚源3W(2.9W)
尽调1W
脱敏模拟44W,有效10W
-----------------------------------------------
fundid层共100W
原始净值数据 2.5亿
插补净值日频 4亿
插补净值周频 1亿
----------------------------------------------
股:债:CTA:市场中性 12:4:2:1

2.模型设计怎么做的(数据分层怎么做的)

基于对外输出标尺库的数据,每类的评分数据 400w,

需要 有池子分类数据,基金净值数据,实体主要就是基金,维度有策略分类和赛道分类

初始ODS层进行数据同步fundinitcode

然后 dwd层进行 基金每日绩效统计 和 基金时序的绩效统计

然后DWS 基金在股票型池子的时序绩效评分 

然后 ADS 基金在股票型池子的时序的近系列的绩效评分(多行) 到 最终的大宽表(多列)

ADS:股票多头总分评分表,绩效质量评分表,资产配置能力评分表,场景应对能力评分表 alpha获取能力评分表

TiDB 查询,对外api服务,sqoop 增量同步。 

ZM_DW_RANK.DW_FUND_SCORE_DAY_NORM_LONG  基金在股票型池子的时序的绩效评分
ZM_DW_RANK.DW_FUND_SCORE_DAY_NORM_STATISPERIOD_LONG  基金在股票型池子的时序的近系列绩效评分   hera985   a.statistic_date,a.statistic_period,a.rankconfigid,a.frequency,a.fund_id,a.zm_fund_id
zm_dw_rank.t_fund_stock_performance hera1015 近系列绩效多行转多列 max(case  a.statistic_date when 1 then a,daywinrate else NULL END)  AS total_daywinrate ,--成立以来_对比基准胜率

zm_dw_rank.t_fund_stock_performance tidb 分区同步


set hive.exec.dynamic.partition=true;  
set hive.exec.dynamic.partition.mode=nonstrict;
set hive.exec.max.dynamic.partitions=2000;
set hive.exec.max.dynamic.partitions.pernode=400;
set hive.optimize.sort.dynamic.partition=true;
--SET hive.map.memory.mb=10240;  -- 设置Map任务的内存为2GB
--SET hive.reduce.memory.mb=20480; -- 设置Reduce任务的内存为2GB
--SET hive.exec.reducers.bytes.per.reducer=314572800 ;-- 300M 设置每个Reducer处理的数据量。虽然这是控制Reducer数量的参数,
--但是通过调整它,可以间接影响Map任务的数量,因为Map和Reduce任务的数量通常是成比例的。

INSERT OVERWRITE TABLE zm_dw_rank.t_fund_stock_performance PARTITION(statistic_date)
 select 
  fund_id,
  zm_fund_id,
  a.rankconfigid AS category_id,
  b.rankconfigname AS category_name,
max(case  a.statistic_period when 74 then  a.daywinrate   else NULL END)            AS y5_daywinrate ,--近5年_对比基准胜率
max(case  a.statistic_period when 2 then   a.daywinrate    else NULL END)           AS year_daywinrate ,--今年以来_对比基准胜率
max(case  a.statistic_period when 1 then   a.daywinrate    else NULL END)           AS total_daywinrate ,--成立以来_对比基准胜率
 1 is_valid ,--是否有效
current_date() create_time, --创建时间
a.statistic_date
  FROM
  zm_dw_rank.dw_fund_score_day_norm_statisperiod_long a
  LEFT JOIN  zm_ods_flare_fund.ods_FundRankConfig b on a.rankconfigid = b.rankconfigid
WHERE statistic_period IN (1, 2, 3, 5, 6, 7, 8, 9, 74)
 and a.rankconfigid  in (1660,1661,1662,1663,1664,1673)
--  and a.zm_fund_id = 1322647
--  and a.statistic_date = '2024-12-22'
 GROUP BY A.fund_id,A.zm_fund_id,A.rankconfigid,b.rankconfigname,a.statistic_date ,1,current_date();

基于什么需求,做了什么业务,有哪些表/字段,ODS层数据从哪儿来,DWD层数据怎么处理,ADS层什么数据,支撑哪些查询 (建模方法论)

3.高频数据怎么做的

4.有哪些主题域 有哪些实体 有哪些维度

5.每日增量数据有多少

6.缓慢变化维的应用

7.拉链表的应用,拉链表的增量/全量统计

8.sqoop的同步效率

9.sqoop的数据倾斜

四、Python

1.pandas如何处理大规模数据

2.如何提高高并发

3.协程 进程 线程 

4.Fast Api 和 Flask

每日并发量4000

5.增量同步怎么做 全量同步怎么做 

6.Python 深拷贝 浅拷贝的使用场景

7.Python瓶颈如何定位

--------------------------------------------------------------pyinstrument
from pyinstrument import Profiler

    profiler = Profiler()
    profiler.start()
    ErrorCode,message = service.get_updated_calculation(oldfundsyscode=121739,fundsyscode=10000063521,fundid=10000072227,familytype=2)
    profiler.stop()
    print(profiler.output_text(unicode=True, color=True))

相关文章:

  • 程序控制结构
  • 理解文字识别:一文读懂OCR商业化产品的算法逻辑
  • 使用AI一步一步实现若依(26)
  • 汽车方向盘开关功能测试的技术解析
  • Redis中的数据类型与适用场景
  • 《基于机器学习发电数据电量预测》开题报告
  • LEMO 部署笔记
  • ESP32S3 WIFI 实现TCP服务器和静态IP
  • 机器学习的四种主流学习方式
  • QOpenGLWidget动态加载功能实现教程(Qt+OpenGL)
  • 如何同步fork的更新
  • 【IDEA的个性化配置】
  • 备赛蓝桥杯之第十六届模拟赛2期职业院校组第五题:文本自动生成器
  • SQL Server 2022常见问题解答
  • Mybatis笔记(上)
  • VsCode启用右括号自动跳过(自动重写) - 自录制gif演示
  • 26考研——栈、队列和数组_数组和特殊矩阵(3)
  • 力扣刷题-热题100题-第24题(c++、python)
  • 代码规范之Variable Names变量名
  • 如何使用 CSS 实现多列布局,有哪些注意事项
  • 摩根大通任命杜峯为亚太区副主席,加码中国市场业务布局
  • “女乘客遭顺风车深夜丢高速服务区”续:滴滴永久封禁两名涉事司机账号
  • 阿迪达斯一季度营收增近13%,称美国加征关税对业绩带来不确定性
  • 金砖国家外长会晤发表主席声明,强调南方国家合作
  • 现场聆听总书记讲话,“00后”博士和大模型CEO都“热血沸腾”
  • 今年一季度全国社会物流总额达91万亿元,工业品比重超八成