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

业务相关

目录

一、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))


http://www.kler.cn/a/611199.html

相关文章:

  • 大模型开发框架LangChain GO
  • 5.Excel:从网上获取数据
  • macbook电脑如何清理键盘防止误触
  • 脑启发式AI Agent:解锁人类大脑奥秘,迈向真正的通用人工智能(AGI)
  • AIDD-人工智能药物设计-计算驱动的药物再定位研究:策略、工具评测与典型案例分析
  • css基础-选择器
  • R --- Error in library(***) : there is no package called ‘***’ (服务器非root用户)
  • 【C++】内存模型分析
  • 三分钟掌握音频提取 | 在 Rust 中优雅地处理视频音频
  • 从 MySQL 到时序数据库 TDengine:Zendure 如何实现高效储能数据管理?
  • HTTP 协议中请求与响应的详细解析
  • CSS学习笔记
  • AI玩具迎来爆发式增长,IoT行业如何抓住机遇?
  • LSTM创新点不足?LSTM + Transformer融合模型引领Nature新突破
  • 大模型量化框架GPTQModel的基本使用方法
  • SCI论文阅读指令(特征工程)
  • C语言复习笔记--函数栈帧创建与销毁
  • 鸿蒙 ArkUI 中使用 WebView
  • STL中vector模拟实现
  • 树莓派超全系列文档--(7)RaspberryOS播放音频和视频