宏观大数据-模型部署说明 V1.3.1

宏观大数据-模型部署说明 V1.3.1

模型部署

2、 准备工作

2.1 获取最新版本
2.1.1 查看钉钉群公告

在这里插入图片描述

2.1.2 确认最新版本

【截至2021-10-13最新版本为:模型部署文档\V1.3.1-20210924版本】,所需资源列表如下

  • Python环境包:

    模型部署文档\Python环境包\python379.zip
    
  • 个性化包:

    模型部署文档\个性化包\mysql-connector-java-5.1.39-bin.jar
    模型部署文档\个性化包\py4j-0.10.4-src.zip
    
  • Python模型【普通模型和Spark改造模型代码已合并

    模型部署文档\V1.3.1-20210924版本\hsp-hgjc-model_20210924.zip
    
2.2 配置修改
2.2.1 配置文件修改

​ 配置文件修改【模型部署文档\V1.3.1-20210924版本\hsp-hgjc-model_20210924\app\config\settings.ini】

  • 宏观决策业务库—mysql:

    [mysql_db]
    host = host地址
    user = 用户名
    pwd = 密码
    dbname = 数据库名
    port = 3306
    dbschema = 数据库名
    driver=com.mysql.jdbc.Driver
    
  • 宏观决策业务库—pg:

    [gp_db]
    host=host地址
    port=5432
    user=用户名
    pwd=密码
    dbname=数据库名
    dbschema=数据库模式
    
  • 集市层数据库—hive

    [hive_db]
    host=host地址
    port=21066
    user=用户名
    pwd=密码
    dbname=数据库名
    dbschema=数据库名
    # 是否启用kerberos认证,如果是kerberos 则填写: kerberos
    use_auth=kerberos
    principal=hive/hadoop.hadoop.com@HADOOP.COM
    keytab_file=/pingan/tool/pingan_1633440279428_keytab/user.keytab
    
  • spark_set:

    spark submit 命令以及是否使用,具体见使用见配置文件中的备注及下文部署时的命令介绍;推荐【以文件夹形式提交命令】

    # 如果是不需要执行spark_submit命令(如:阿里云),则use_spark_submit为False,其他的填入True
    use_spark_submit=True
    # 如下两种方式只能使用其中一个,不需要spark_submit的,如阿里云,随便放开一个就行
    # 以文件夹形式提交命令
     spark_submit=
    # 以zip方式提交命令
    # spark_submit=
    # 目前支持odps,hive,阿里云填写odps
    spark_platform=hive
    
  • tab_space_schema:

    兼容老的表结构,部分会使用到运行监测空间的表,如果所有表都放宏观决策空间,此时这个配置可以都配置这一个宏观决策空间的模式;例:mds_prd为集市层数据库名

    [tab_space_schema]
    # 宏观决策集市空间
    schema=mds_prd
    # 运行监测集市空间
    schema_yx=mds_prd
    
  • tab_space_set:设置非 Spark 模型的表所在数据库;【以产品下发为准,暂时不用修改】,注意修改表的前缀

    # 表空间设置:表=数据库类型
    [tab_space_set]
    # ==============================================中长期模型======================================================
    modl_para_pop=gp
    modl_para_insu_clct=gp
    modl_para_insu_pay=gp
    
    econ_scen_info_d=mysql
    modl_sbj_para_cfg_d=mysql
    modl_para_dierat=mysql
    modl_para_fee=mysql
    modl_b_inpt_fee_d=mysql
    modl_b_inpt_clct_d=mysql
    modl_a_inpt_fee_d=mysql
    modl_a_inpt_clct_d=mysql
    modl_inpt_retr_adjm_d=mysql
    modl_inpt_fort_pop_d=mysql
    modl_a_para_rat_clct=mysql
    modl_outp=mysql
    ac_simu_scen_devi_poolarea_d=mysql
    econ_fort_d=mysql
    econ_fort_sum_d=mysql
    econ_eld_pop_tre_d=mysql
    econ_eld_pop_tre_sum_d=mysql
    econ_tre_d=mysql
    econ_tre_sum_d=mysql
    env_incexpd_sum_d=mysql
    env_pay_smlt_rslt_d=mysql
    env_growrat_sum_d=mysql
    mid_long_modl_oupt_rslt_d=mysql
    econ_para_d=mysql
    # ==============================================药品目录模型======================================================
    sco_params_d=mysql
    drug_info_sys_in_d=mysql
    drug_user_input_d=mysql
    drug_info_for_test_d=mysql
    fund_info_d=gp
    drug_cptn_mkt_share_cnfm_d=gp
    fund_variation_result_d=mysql
    drug_variation_result_d=mysql
    # ==============================================药品目录外模型======================================================
    pharm_catalog_info_prepare=mysql
    pharm_model_params=mysql
    # ==============================================药品招采模型======================================================
    ac_drug_bidprcu_model_para_d=mysql
    ac_drug_use_info_d=mysql
    ac_drug_hosp_user_info_d=mysql
    ac_fund_info_d=mysql
    ac_drug_use_chg_rslt_d=mysql
    ac_fund_fee_chg_rslt_d=mysql
    #==============================================政策模拟======================================================
    ac_treatment_policy_analysis_d=mysql
    # ==============================================医疗机构费用===================================================
    ##模型输入
    fct_agg_modl_fixmedins_sum_kpi_mi=hive
    FCT_AGG_MODL_FIXMEDINS_DETL_SUM_KPI_MI=hive
    FCT_AGG_FIXMEDINS_DETL_PSNCNT_MI=hive
    FCT_AGG_FIXMEDINS_STD_PSNCNT_MI=hive
    hospital_type=hive
    special_type=hive
    ##模型输出
    medins_modl_output_d=hive
    # ==============================================医疗价格服务======================================================
    
  • tab_spark_space_set:设置 Spark 所在表的空间模式、所在数据库信息;【以产品下发为准,暂时不用修改】

  • 注意修改表的前缀【dm_yxjc,dm_hgjc为对应的mds_prd】

    [tab_spark_space_set]
    fee_table=mds.fct_idp_settled_fee_info_detl_di
    fee_table_db=hive
    dict_table=dm_yxjc.dim_idp_data_dic_map
    dict_table_db=hive
    ;setl_table=dm_yxjc.fct_idp_setl_info_detl_d
    ;setl_table_db=hive
    # 模型结果转换表
    mp_scen_ana_d=mp_scen_diff_type_ana_d
    mp_scen_ana_d_db=mysql
    
    
    model_detl=mp_scen_detl_info_d
    model_detl_db=mysql
    model_econ=econ_scen_info_d
    model_econ_db=mysql
    dict=hgjc.dim_cfg_info_b
    dict_db=mysql
    #模型输出结果
    fee_info_agg=modl_fee_adjm_rslt_d
    fee_info_agg_db=mysql
    item_fee_info_agg=modl_med_servitem_fee_d
    item_fee_info_agg_db=mysql
    # 中间表,无需表结构
    temp_table=temp
    temp_table_db=mysql
    # 中间表,无需表结构
    temp_table2=temp2
    temp_table2_db=mysql
    #政策模拟
    
    # 中间表,无需表结构
    mid_idp_setl_info_detl=dm_hgjc.mid_idp_setl_info_detl
    mid_idp_setl_info_detl_db=hive
    res_idp_setl_info_detl_d=res_idp_setl_info_detl_d
    res_idp_setl_info_detl_d_db=mysql
    # 中间表,无需表结构
    pol_hn_pol_trt_model_d_dcl=pol_hn_pol_trt_model_d_dcl
    pol_hn_pol_trt_model_d_dcl_db=mysql
    fct_idp_setl_info_detl_d=dm_hgjc.modl_setl_info_detl_d
    fct_idp_setl_info_detl_d_db=hive
    # 中间表,无需表结构
    origin_data=origin_data
    origin_data_db=hive
    # 中间表,无需表结构
    pol_hn_pol_trt_model_d_init=fct_trt_pol_yi_init
    pol_hn_pol_trt_model_d_init_db=hive
    # 中间表,无需表结构
    pol_hn_pol_trt_model_d_dedc=fct_trt_pol_yi_dedc
    pol_hn_pol_trt_model_d_dedc_db=hive
    # 中间表,无需表结构
    pol_hn_pol_trt_model_d_reim_prop=fct_trt_pol_yi_reim_prop
    pol_hn_pol_trt_model_d_reim_prop_db=hive
    # 中间表,无需表结构
    pol_hn_pol_trt_model_d_pol=fct_trt_pol_yi_pol
    pol_hn_pol_trt_model_d_pol_db=hive
    pol_hn_pol_trt_model_d=pol_hn_pol_trt_model_d
    pol_hn_pol_trt_model_d_db=mysql
    mid_idp_setl_info_detl_p=dm_hgjc.mid_idp_setl_info_detl_p
    mid_idp_setl_info_detl_p_db=hive
    # 中间表,无需表结构
    saving_sim_result_step1=saving_sim_result_step1
    saving_sim_result_step1_db=hive
    mid_idp_setl_info_detl_f=dm_hgjc.mid_idp_setl_info_detl_f
    mid_idp_setl_info_detl_f_db=hive
    mid_idp_setl_info_detl_d=dm_hgjc.mid_idp_setl_info_detl_d
    mid_idp_setl_info_detl_d_db=hive
    ac_treatment_policy_analysis_d=dm_hgjc.ac_treatment_policy_analysis_d
    ac_treatment_policy_analysis_d_db=hive
    
    
    
2.2.2 配置模型输出

在这里插入图片描述

​ 文件功能说明:针对中长期模型的模型输出表 modl_outp 到应用可直接使用的结果表的数据转换逻辑,此部分为 sql 执行,如有本地不支持 mysql,语法需要自行修改。

2.3 准备模型服务器
2.3.1 服务器配置

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VJ5h0WgR-1646116334386)(华为-宏观大数据-模型部署说明 V1.3.1.assets/image-20211013172422733.png)]

2.3.2 服务器配置检查
#查看内存:
cat /proc/meminfo | grep MemTotal
#查看CPU核数:
cat /proc/cpuinfo | grep "cpu cores" | uniq
2.3.3 MRS客户端安装
2.3.3.1 获取软件包
  • 登录FusionInsight Manager
https://10.53.153.211:28443/web/pingan/Huawei12# %<br />pingan1/Huawei12# %
pingan1-pingan7 密码都是Huawei12#$5

在这里插入图片描述

2.3.3.2 安装客户端
10.53.154.154root/admin@123
  • 通过xftp上传安装包到服务器【路径:/opt/client】

  • 安装包解压缩

    #进入安装包所在目录,例如“/opt/client”。执行如下命令解压安装包到本地目录。
    tar -xvf FusionInsight_Cluster_1_Services_Client.tar
    #执行sha256sum命令校验解压得到的文件,检查回显信息与sha256文件里面的内容是否一致,例如:
    sha256sum -c FusionInsight_Cluster_1_Services_ClientConfig.tar.sha256
    #结果:FusionInsight_Cluster_1_Services_Client.tar: OK 
    tar -xvf FusionInsight_Cluster_1_Services_ClientConfig.tar
    #进入客户端解压目录
    cd /opt/client/FusionInsight_Cluster_1_Services_ClientConfig
    #执行cat realm.ini >> /etc/hosts,将域名映射关系导入到hosts文件中
    cat realm.ini >> /etc/hosts
    #进入安装包所在目录,执行如下命令安装客户端到指定目录(绝对路径),例如安装到“/opt/hadoopclient”目录
    ./install.sh /opt/hadoopclient
    #成功的结果:Components client installation is complete.
    

    遇到的问题,缺少NTP

在这里插入图片描述

安装NTP,失败
在这里插入图片描述

可修改【install.sh】将NTP检查代码注释掉

在这里插入图片描述

2.3.3.3 验证客户端
#执行cd /opt/hadoopclient命令进入客户端安装目录。
cd /opt/hadoopclient
#执行source bigdata_env命令配置客户端环境变量。
source bigdata_env
#如果集群为安全模式,执行以下命令,设置kinit认证,输入客户端用户登录密码;普通模式集群无需执行用户认证。集群账号为pingan
kinit pingan
Password for pingan@HADOOP.COM: #输入admin用户登录密码(与登录集群的用户密码一致)

集群重装后,之前安装的客户端将不再可用,需要重新部署客户端。

#使用rm -rf命令删除所有客户端程序所在文件夹内的文件(例如删除“/opt/hadoopclient”文件夹)。
rm -rf /opt/hadoopclient
#重新安装客户端
2.3.3.4 登录hive库
#执行以下命令,切换到客户端安装目录
cd /opt/hadoopclient
#执行source bigdata_env命令配置客户端环境变量。
source bigdata_env
#如果集群为安全模式,执行以下命令,设置kinit认证,输入客户端用户登录密码;普通模式集群无需执行用户认证。集群账号为pingan
kinit pingan
Password for pingan@HADOOP.COM: #输入admin用户登录密码(与登录集群的用户密码一致)
#根据集群认证模式,完成Hive客户端登录。
beeline

在这里插入图片描述

2.4 普通模型部署
2.4.1 Pyhton 安装
#通过xftp上传python379.zip
上传路径:/pingan/tool/python379.zip
#进入/pingan/tool/
cd /pingan/tool/
#解压 python379.zip:
unzip python379.zip
#验证python环境,查看版本
/pingan/tool/python3.7.9/bin/python3 -V
#结果:Python 3.7.9

2.4.2 模型安装
2.4.2.1 前提条件检查
  • 应用功能检查

    ​ 检查模型对应的菜单是否可以正常查询、保存、修改;如果有问题,则需要修复应用程

    序内容,才内容完成后,才能进行模型调试。

    ​ 模型-菜单对应关系见文件《模型场景依赖整理.xlsx》
    在这里插入图片描述

  • 依赖数据检查

    ​ 检查模型输入表、依赖表是否有、是否为本省份数据,如果不是,则需要修改这些数据,

    部分数据可以从初始化工具中进行修复后,重新初始化。

    ​ 检查输入表时,要注意对应的时间维度(年份)以及其他维度(如:统筹区、医疗机构

    等级)等维度是否能匹配上。

    ​ 模型-输入、依赖表对应关系见文件《模型场景依赖整理.xlsx》

2.4.2.2 上传模型

注:如下操作的用户为有 hive 权限的用户,所有文件及程序都要放入此用户有足够权限的目录下

#通过xftp上传最新模型hsp-hgjc-model到【/pingan/model】
/pingan/model

在这里插入图片描述

注:如下操作的用户为有 hive 权限的用户,所有文件及程序都要放入此用户有足够权限的目录下

2.4.2.3 场景初始化
  • 清空模型数据(首次部署):

    delete from econ_scen_info_d;
    
  • 初始化模型数据

    ​ 标准场景初始化:确保econ_scen_info_d(模型场景主表)有中长期模型的标准场景,具体代号包括:1、2、

    3、5、6、7、8等7个场景;若无,则需执行初始化【select * from econ_scen_info_d where SCEN_TYPE in(‘1’,‘2’,‘3’,‘5’,‘6’,‘7’,‘8’);】

    --执行【初始化数据之前执行(mysql)标准场景.txt】脚本初始化
    update econ_scen_info_d set SCEN_RUN_STAS ='2' SCEN_TYPE in('1','2','3','5','6','7','8');
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HY1hlHaJ-1646116334393)(.\华为-宏观大数据-模型部署说明 V1.3.1.assets\image-20211009163526903.png)]

    标准场景:主表中 scen_type 为场景类型、def_flag 为 1、del_flag 为 0 的数据,每个场景有且只能有一个


/pingan/tool/python3.7.9/bin/python3  /pingan/model/hsp-hgjc-model_20210924/running_start.py 1

​ 查看运行结果:

先确认输出表是否有数据,此示例模型的输出表为:modl_outp,根据此次运行的模型scen_id 查询此结果表,有数据即为模型运行成功; 
根据运行的 scen_id 查询模型主表 econ_scen_info_b,此数据的 scen_run_stas 是否为“4”,如果是,则运行成功;
如果运行成功,则还需检查模型输出表是否有数据,如果没有数据,则优先根据模型输入输出文档排查此场景输入表的数据、维度是否正确;
如果运行失败,则查看运行日志,分析具体原因,如分析不出来问题,则发送日志给到产品研发。
2.4.2.4 应用模型初始化

​ 使用数据初始化工具导入应用模型初始化数据

​ 参照一体化工具安装

2.4.2.5 模型调试
  • 运行模型:每年运行一次
    在这里插入图片描述
#python3路径 主文件 场景类型
/pingan/tool/python3.7.9/bin/python3  /pingan/model/hsp-hgjc-model_20210924/running_start.py init_1

​ 运行普通模型

在这里插入图片描述

#python3路径 主文件 场景类型
/pingan/tool/python3.7.9/bin/python3  /pingan/model/hsp-hgjc-model_20210924/running_start.py 1

​ 确定模型主表 econ_scen_info_d 中有对应场景类型的数据(模型代码见文件《模型场景依赖整理.xlsx》的模型代号,与此表 scen_type 对应),并且 scen_run_stas 为 2,之后才能开始进行此模型调试。

​ 启动模型执行命令(以模型代号为“1”的示例):

#python3路径 主文件 场景类型
/pingan/tool/python3.7.9/bin/python3  /pingan/model/hsp-hgjc-model_20210924/running_start.py 1

​ 查看运行结果:

先确认输出表是否有数据,此示例模型的输出表为:modl_outp,根据此次运行的模型scen_id 查询此结果表,有数据即为模型运行成功; 
根据运行的 scen_id 查询模型主表 econ_scen_info_b,此数据的 scen_run_stas 是否为“4”,如果是,则运行成功;
如果运行成功,则还需检查模型输出表是否有数据,如果没有数据,则优先根据模型输入输出文档排查此场景输入表的数据、维度是否正确;
如果运行失败,则查看运行日志,分析具体原因,如分析不出来问题,则发送日志给到产品研发。
2.5 Spark模型部署
2.5.1 Pyhton 安装
#通过xftp上传python379.zip
上传路径:/pingan/tool/python379.zip
#执行以下命令,切换到客户端安装目录
cd /opt/hadoopclient
#执行source bigdata_env命令配置客户端环境变量。
source bigdata_env
#如果集群为安全模式,执行以下命令,设置kinit认证,输入客户端用户登录密码;普通模式集群无需执行用户认证。集群账号为pingan
kinit pingan
Password for pingan@HADOOP.COM: #输入admin用户登录密码(与登录集群的用户密码一致)
#直接执行HDFS Shell命令,查看文件目录,仅可在/user/pingan目录下操作【集群账号为pingan】
hdfs dfs -ls /

在这里插入图片描述

常见命令如下:

命令说明样例
hdfs dfs -mkdir 文件夹名称创建文件夹hdfs dfs -mkdir /tmp/mydir
hdfs dfs -ls 文件夹名称查看文件夹hdfs dfs -ls /tmp
hdfs dfs -put 客户端节点上本地文件上传本地文件到HDFS指定路径hdfs dfs -put /opt/test.txt /tmp上传客户端节点“/opt/tests.txt”文件到HDFS的“/tmp”路径下
hdfs dfs -get hdfs指定文件 客户端节点上**指定路径下载HDFS文件到本地指定路径**hdfs dfs -get /tmp/test.txt /opt/**下载HDFS的“/tmp/test.txt”文件到客户端节点的“/opt”路径下
hdfs dfs -rm -r -f hdfs指定文件夹删除文件夹hdfs dfs -rm -r -f /tmp/mydir
#查看文件夹
hdfs dfs -ls /user/pingan/mds
#创建文件夹
hdfs dfs -mkdir /user/pingan/mds/tool
#上传python379.zip
hdfs dfs -put /pingan/tool/python379.zip /user/pingan/mds/tool
#验证上传结果

在这里插入图片描述

2.5.2 模型安装
2.5.2.1 前提条件检查
  • 应用功能检查

    ​ 检查模型对应的菜单是否可以正常查询、保存、修改;如果有问题,则需要修复应用程

    序内容,才内容完成后,才能进行模型调试。

    ​ 模型-菜单对应关系见文件《模型场景依赖整理.xlsx》

在这里插入图片描述

  • 依赖数据检查

    ​ 检查模型输入表、依赖表是否有、是否为本省份数据,如果不是,则需要修改这些数据,

    部分数据可以从初始化工具中进行修复后,重新初始化。

    ​ 检查输入表时,要注意对应的时间维度(年份)以及其他维度(如:统筹区、医疗机构

    等级)等维度是否能匹配上。

    ​ 模型-输入、依赖表对应关系见文件《模型场景依赖整理.xlsx》

2.5.2.2 上传个性化包
#通过上传个性化包到模型服务器【/pingan/tool/】
#mysql-connector-java-5.1.39-bin.jar
#py4j-0.10.4-src.zip
#上传个性化包
hdfs dfs -put /pingan/tool/mysql-connector-java-5.1.39-bin.jar /user/pingan/mds/tool
hdfs dfs -put /pingan/tool/py4j-0.10.4-src.zip /user/pingan/mds/tool

在这里插入图片描述

2.5.2.3 上传模型
#先删除
hdfs dfs -rm -r -skipTrash /user/pingan/mds/tool/hsp-hgjc-model
#上传命令:【强制覆盖命令:hdfs dfs -put -f】
hdfs dfs -put /pingan/tool/hsp-hgjc-model /user/pingan/mds/tool/hsp-hgjc-model

在这里插入图片描述

在这里插入图片描述

2.5.2.4 应用模型初始化

​ 使用数据初始化工具导入应用模型初始化数据,如普通模型已经初始化,则无需再执行

​ 参照一体化工具安装

2.5.2.5 Spark-Submit 提交命令介绍
# spark 提交模式
master yarn 
# spark 部署模式
deploy-mode cluster
# 执行器个数(可根据实际情况修改) 
num-executors 2 
# 核心执行器个数
executor-cores 1
# 执行器使用内存(按照每 1 万人 100M 的容量设置)
executor-memory 4g 
# 驱动器内存
driver-memory 4g
# 上传至 hdfs 的 python 环境包地址 hdfsA 方式
conf spark.yarn.dist.archives=hdfs:///user/ybapp/python379.zip#PyEnv,hdfs:///user/ybapp/hsp-hgjc-model
# 上传至 hdfs 的 python 环境包地址 hdfsB 方式
conf spark.yarn.dist.archives=hdfs:///user/ybapp/python379.zip#PyEnv,hdfs:///user/ybapp/hsp-hgjc-model.zip#hsp-hgjc-model
# spark python 使用路径
conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=PyEnv/python3.7.9/bin/python3.7 
conf spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON=PyEnv/python3.7.9/bin/python3.7 
conf spark.executorEnv.PYSPARK_PYTHON=PyEnv/python3.7.9/bin/python3.7 
conf spark.executorEnv.PYSPARK_DRIVER_PYTHON=PyEnv/python3.7.9/bin/python3.7 
conf spark.pyspark.python=PyEnv/python3.7.9/bin/python3.7 
conf spark.pyspark.driver.python=PyEnv/python3.7.9/bin/python3.7 
# 启用 hive 的动态分区
conf hive.exec.dynamici.partition=true 
conf hive.exec.dynamic.partition.mode=nonstrict 
# 指定我们使用的队列(前期没有队列是,可以去掉,使用默认队列)
conf spark.yarn.queue=root.default 
conf mapreduce.job.user.name=pingan 
conf spark.mapreduce.job.user.name=pingan 
conf spark.sql.catalogImplementation=hive 
# 集群需要使用到我们个性化的驱动包
jars hdfs://hnsybj/user/ybapp/mysql-connector-java-5.1.39-bin.jar,hdfs://hnsybj/user/ybapp/py4j-0.10.4-src.zip 
# python 文件:文件根目录地址、主执行文件地址(都要事先上传至 hdfs,否则非单文件目录的工程无法启动)hdfsA 方式
py-files hdfs:///user/ybapp/hsp-hgjc-model hdfs:///user/ybapp/hsp-hgjc-model/running_start.py
# python 文件:文件根目录地址、主执行文件地址(都要事先上传至 hdfs,否则非单文件目录的工程无法启动)hdfsB 方式
py-files hdfs:///user/ybapp/hsp-hgjc-model /running_start.py
2.5.2.6 模型调试
2.5.3 模型调试
2.5.3.1 Spark 配置文件修改

​ 配置文件修改【模型部署文档\V1.3.1-20210924版本\hsp-hgjc-model_20210924\app\config\settings.ini】

​ spark_set:

​ spark submit 命令以及是否使用,具体见使用见配置文件中的备注及下文部署时的命令介绍;推荐【以文件夹形式提交命令】

# 如果是不需要执行spark_submit命令(如:阿里云),则use_spark_submit为False,其他的填入True
use_spark_submit=True
# 如下两种方式只能使用其中一个,不需要spark_submit的,如阿里云,随便放开一个就行
# 以文件夹形式提交命令
 spark_submit=
# 以zip方式提交命令
# spark_submit=
# 目前支持odps,hive,阿里云填写odps
spark_platform=hive

下文以 hdsfA 代表以文件夹形式提交命令,以 hdfsB 代表以 zip 方式提交命令

2.5.3.2 文件夹形式分发部署(hdfsA)

​ 这种方式,适用于 spark 集群服务器可以分发文件夹资源的平台,测试方式,可按照正常部署进行测试,当运行模型时如果出现读取不到包,即 ModuleNotFoundError 时,是不支持文件夹形式部署的,则需要采用 zip 压缩包形式的部署;

​ 这种形式需要修改配置文件 setting.ini 中的 spark_submit 为#以文件夹形式提交命令

​ 针对ModuleNotFoundError 问题可通过命令增加参数配置解决,建议以hdfsA方式,便于更新操作,命令如下:

spark_submit 的值 + ‘ spark_model’+ ‘ 场景 id’ + ‘ 场景类型’

#命令如下
spark-submit \
--master yarn \
--deploy-mode cluster \
--num-executors 2  \
--executor-cores 1 \
--executor-memory 4g \
--driver-memory 4g \
--conf spark.pyspark.driver.python=./python3.7.9/python3.7.9/bin/python3 \
--conf spark.pyspark.python=./python3.7.9/python3.7.9/bin/python3 \
--archives hdfs:///user/pingan/mds/tool/python379.zip#python3.7.9,hdfs:///user/pingan/mds/tool/hsp-hgjc-model \
--jars  hdfs:///user/pingan/mds/tool/mysql-connector-java-5.1.39-bin.jar,hdfs:///user/pingan/mds/tool/py4j-0.10.4-src.zip \
--conf hive.exec.dynamici.partition=true  \
--conf hive.exec.dynamic.partition.mode=nonstrict \
--conf mapreduce.job.user.name=pingan  \
--conf spark.mapreduce.job.user.name=pingan  \
--conf spark.sql.catalogImplementation=hive \
--conf spark.yarn.dist.pyFiles=hdfs:///user/pingan/mds/tool/hsp-hgjc-model \
hdfs:///user/pingan/mds/tool/hsp-hgjc-model/running_start.py spark_model 14 14 

# 注意hdfs:///设置为三条斜线,例如
--conf spark.yarn.dist.pyFiles=hdfs:///user/pingan/mds/tool/hsp-hgjc-model
# 仅黑龙江部署过程中为了验证本地环境写的py文件
test_spark_session.py mds_prd.ac_bidprcu_age_grp_useamt_d
# 指定我们使用的队列(前期没有队列是,可以去掉,使用默认队列)
--conf spark.yarn.queue=root.default  \





    


#测试命令
spark-submit \
--master yarn \
--deploy-mode cluster \
--num-executors 2  \
--executor-cores 1 \
--executor-memory 4g \
--driver-memory 4g \
--conf spark.serializer=org.apache.spark.serializer.KryoSerializer \
--conf spark.rdd.compress=true  \
--conf spark.speculation.interval=10000ms \
--conf spark.sql.legacy.setCommandRejectsSparkCoreConfs=false \
--conf spark.pyspark.driver.python=./python3.7.9/python3.7.9/bin/python3 \
--conf spark.pyspark.python=./python3.7.9/python3.7.9/bin/python3 \
--archives hdfs:///user/pingan/mds/tool/python379.zip#python3.7.9,hdfs:///user/pingan/mds/tool/hsp-hgjc-model \
--jars  hdfs:///user/pingan/mds/tool/mysql-connector-java-5.1.39-bin.jar,hdfs:///user/pingan/mds/tool/py4j-0.10.4-src.zip \
--conf hive.exec.dynamici.partition=true  \
--conf hive.exec.dynamic.partition.mode=nonstrict \
--conf mapreduce.job.user.name=pingan  \
--conf spark.mapreduce.job.user.name=pingan  \
--conf spark.sql.catalogImplementation=hive \
--conf spark.yarn.dist.pyFiles=hdfs:///user/pingan/mds/tool/hsp-hgjc-model \
hdfs:///user/pingan/mds/tool/hsp-hgjc-model/running_start.py spark_model 14 14 

2.5.3.3 日志查看

​ 命令查看

#执行完成后,查看日志:yarn logs -applicationId 实际id(日志中的application id)
yarn logs -applicationId application_1633750358201_6781
#下载日志:yarn logs -applicationId 实际id > logs1.txt

​ yarn客户端

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lbbqXe1c-1646116334398)(华为-宏观大数据-模型部署说明 V1.3.1.assets/image-20211013220526594.png)]

选择集群节点

在这里插入图片描述

找到对应applicationId

在这里插入图片描述

点击logs

在这里插入图片描述

在这里插入图片描述

附录

常见问题FQA
$1 政策模拟—14—待遇政策仿真模拟
1.1 模型场景依赖
场景依赖(数仓)来源备注
set hive.optimize.sort.dynamic.partition=true;
set hive.exec.dynamic.partition = true;
set hive.exec.dynamic.partition.mode = nonstrict;
set hive.exec.parallel = true;
set hive.exec.parallel.thread.number = 16;
set tez.queue.name=root.ambari-qa;
set hive.merge.tezfiles=true;
set hive.merge.size.per.task=512000000;
set hive.merge.smallfiles.avgsize=512000000;
set hive.map.aggr=true;
set hive.groupby.skewindata=true;
set hive.optimize.skewjoin=true;
set hive.skewjoin.key=500000;



--odps sql 
--********************************************************************--
--author:gengzf
--create time:2020-07-21 14:06:11
--last update by:gengzf
--last update time:2020-11-19 18:16:00
--结算信息明细表

--********************************************************************--
--------------------------------字典----------------------------------------
--结算类别	SETL_TYPE
--1	中心报销
--2	联网结算
--3	补充报销

--支付地点类别	PAY_LOC
--1	中心
--2	医疗机构
--3	省内异地
--4	跨省异地
--5	互联网医院

--人员类别	PSN_TYPE
--11	在职
--1101	职工在职
--1102	公务员在职
--1103	灵活就业人员在职
--1160	地方其他扩展人员
--12	退休人员
--1201	职工退休
--1202	公务员退休
--1203	灵活就业人员退休
--1260	地方其他扩展人员
--13	离休
--1300	离休人员
--1360	地方其他扩展人员
--14	居民(未成年)
--1401	新生儿
--1402	学龄前儿童
--1403	中小学生
--1404	大学生
--1405	未成年(未入学)
--15	居民(成年)
--1501	普通居民(成年)
--1560	地方其他扩展身份
--16	居民(老年)
--------------------------------字典----------------------------------------
with 
medmap as (select std_dic_code,prd_dic_code from mds_prd.DIM_IDP_DATA_DIC_MAP where std_dic_type='MED_TYPE' and  prd_dic_type ='MDTRT_WAY' )
,hosplvmap as (select std_dic_code,prd_dic_code from mds_prd.DIM_IDP_DATA_DIC_MAP where std_dic_type='HOSP_LV'  and  prd_dic_type ='MEDINSLV_MAJCLS')
,tt as (
    select mdtrt_id
    ,fix_blng_admdvs
    ,dscg_way
    ,med_type
    ,case when inhosp_stas='0' then ipt_days else 0 end ipt_days
    ,inhosp_stas
        ,dscg_dept_codg as dscg_dept_code
    ,DSCG_DEPT_NAME
     ,dscg_maindiag_code
    ,dscg_maindiag_name
     ,ROW_NUMBER() OVER(PARTITION BY mdtrt_id ORDER BY updt_time desc ) AS num 
    from dwd.dwd_dgn_mdtrt_d
    where vali_flag='1'
)
,mdtrt_d as (
    select mdtrt_id
    ,fix_blng_admdvs
    ,dscg_way
    ,ipt_days
    ,inhosp_stas
        ,dscg_dept_code
    ,DSCG_DEPT_NAME
    ,dscg_maindiag_code
    ,dscg_maindiag_name
    ,med_type
    from tt
    where num=1
)
,tt1 AS
(
 SELECT  mdtrt_id
 ,poolarea_no as poolarea_no
 ,diag_code as diag_code
 ,diag_name as diag_name
 ,diag_srt_no
 ,ROW_NUMBER() OVER(PARTITION BY mdtrt_id ORDER BY diag_srt_no asc ) AS num 
 FROM dwd.DWD_DGN_SETL_DIAG_LIST_D 
 WHERE   vali_flag='1'
)
,t4 AS
(
 SELECT  mdtrt_id
 ,poolarea_no as poolarea_no
 ,diag_code as diag_code
 ,diag_name as diag_name
 FROM tt1 
 WHERE  num=1
)
,cxcl as (
    select mdtrt_id,insu_admdvs
    FROM        dwd.dwd_fin_setl_d t1             --结算信息表
WHERE --etl_date = substr('${bdp.system.bizdate}',1,6)	--经办时间
date_format(t1.updt_time,'yyyy-MM-dd') = '${p.ETL_DATE}'
and t1.refd_setl_flag='1'
)
,a as (
    SELECT  
       t1.insu_admdvs as poolarea_no                                             --统筹区编号
       ,mdtrt_d.fix_blng_admdvs                                        --定点归属医保区划
       ,t1.insutype         --险种类型
       ,mdtrt_d.med_type         --医疗类型
	   ,t1.setl_type        --结算类别
	   ,t1.clr_way          --清算方式
	   ,t1.pay_loc          --支付地点类别
	   ,t1.psn_type as psn_tyt_type --医疗人员类别
	   ,t1.fixmedins_code   --定点医药机构编号
	   ,t1.psn_type         --人员类别
	   ,case when medmap.prd_dic_code='1' then coalesce(t4.diag_code,'') 
       when  medmap.prd_dic_code='3' then t1.dise_no
      WHEN medmap.prd_dic_code='2' then coalesce(mdtrt_d.dscg_maindiag_code,'')  
       ELSE ''  end  as dise_no        --病种编号
       ,t1.setl_id          --结算id
       ,t1.mdtrt_id         --就诊ID
       ,t1.mdtrt_cert_type  --就诊凭证类型	   
       ,t1.init_setl_id	    --原结算ID 
       ,' ' as out_fil_type --异地备案类型(非异地就医默认为空)
       ,t1.setl_time        --结算时间
       ,t1.begndate         --开始日期
       ,t1.enddate	        --结束日期
       ,t1.year	            --年度
       ,t1.clr_type         --清算类别
	   ,t1.clr_optins       --清算经办机构
	   ,t1.refd_setl_flag   --退费结算标志
	   ,t1.manl_reim_rea    --零星报销原因
       ,t1.fixmedins_name   --定点医药机构名称
       ,t1.hosp_lv          --医院等级
       ,t1.dedc_hosp_lv     --起付线医院等级
       ,t1.afil_rlts        --隶属关系
	   ,t1.insu_admdvs      --参保所属医保区划
       ,t1.emp_no           --单位编号
       ,t1.emp_mgt_type     --单位管理类型
       ,t1.emp_type         --单位类型
       ,t1.emp_name         --单位名称
       ,t1.econ_type        --经济类型
	   ,t1.afil_indu as indu--所属行业
	   ,t1.psn_no           --人员编号
       ,t1.psn_insu_rlts_id --人员参保关系id
       ,t1.psn_cert_type    --人员证件类型
       ,t1.brdy             --出生日期
       ,t1.naty             --民族
       ,t1.age              --年龄
       ,t1.gend             --性别
	   ,t1.cvlserv_flag     --公务员标志
       ,t1.cvlserv_lv       --公务员等级
       ,t1.nwb_flag         --新生儿标志
	   ,t1.sp_psn_type      --特殊人员类型
       ,t1.sp_psn_type_lv   --特殊人员类型等级
	   ,case when medmap.prd_dic_code ='1' then coalesce(t4.diag_name,'') 
       when  mdtrt_d.med_type ='3' then t1.dise_name
       WHEN  medmap.prd_dic_code='2' then coalesce(mdtrt_d.dscg_maindiag_name,'')  
       ELSE '' end dise_name        --病种名称
	   ,t1.vali_flag        --有效标志
	   ,mdtrt_d.dscg_way    --离院方式  
       ,nvl(t1.medfee_sumamt,0) as medfee_sumamt   --医疗费总额
       ,nvl(t1.fund_pay_sumamt,0) as fund_pay_sumamt  --基金支付总额
       ,nvl(t1.dedc_std,0) as dedc --起付标准
       ,nvl(t1.act_pay_dedc,0) as act_pay_dedc    --实际支付起付线
       ,nvl(t1.pool_prop_selfpay,0)as pool_prop_selfpay--基本医疗统筹支付比例
       ,nvl(t1.hifp_pay,0) as hifp_pay        --统筹基金支出
       ,nvl(t1.overlmt_selfpay,0)as overlmt_selfpay  --超限价自费费用
       ,nvl(t1.crt_dedc,0) as crt_dedc        --本次起付线
       ,nvl(t1.fulamt_ownpay_amt,0)as fulamt_ownpay_amt--全自费金额
       ,nvl(t1.inscp_amt,0) as inscp_amt       --符合范围金额
       ,nvl(t1.acct_pay,0)as acct_pay         --个人账户支出
       ,nvl(t1.psn_pay,0) as psn_payamt         --个人支付金额
       ,nvl(t1.preselfpay_amt,0)as preselfpay_amt   --先行自付金额
       ,nvl(t1.cash_payamt,0) as cash_payamt     --现金支付金额
       ,nvl(t1.othfund_pay,0) as othfund_pay     --其它基金支付
       ,nvl(t1.cvlserv_pay,0) as hifcs_pay      --公务员医疗补助基金支出
       ,nvl(t1.hifes_pay,0) as hifes_pay      --补充医疗保险基金支出
       ,nvl(t1.hifmi_pay,0) as mihi_hifes_pay       --大病补充医疗保险基金支出
       ,nvl(t1.hifob_pay,0) as hifob_med_subs_fund_pay     --大额医疗补助基金支出
       ,nvl(t1.hifdm_pay,0) as hifd_pay    -- 伤残人员医疗保障基金支出
       ,nvl(t1.maf_pay,0) as maf_pay        --医疗救助基金支出
       ,nvl(mdtrt_d.ipt_days,0) as ipt_days    --住院天数
       ,mdtrt_d.inhosp_stas --在院状态
        ,hosplvmap.prd_dic_code as medinslv         --医疗机构级别
      -- ,hosplv_2_medinslv(t1.hosp_lv) as medinslv         --医疗机构级别
       ,uuid() as rid       --唯一记录号
       ,'oms' as dwh_created_by         --创建人
       ,current_date() as dwh_created_dt     --创建时间
       ,'101400' as dwh_src_sys_id         --源系统ID
       ,'医保业务基础子系统' as dwh_src_sys_name    --源系统名称
       ,'300706246' as dwh_job_id       --任务ID
         ,mdtrt_d.DSCG_DEPT_CODE
,t1.CLCT_GRDE
,t5.FIXMEDINS_TYPE
,mdtrt_d.DSCG_DEPT_NAME
,'' as RESD_NATU
,t1.FLXEMPE_FLAG
,t7.MAT_IDET_CODE
,'0' as dwh_soft_delete_flg
,case when medmap.prd_dic_code='1' then coalesce(t4.diag_code,'') 
       when  medmap.prd_dic_code='3' then t1.dise_no
      WHEN medmap.prd_dic_code='2' then coalesce(mdtrt_d.dscg_maindiag_code,'')  
       ELSE ''  end  as diag_code          --病种编号
       ,case when medmap.prd_dic_code='1' then coalesce(t4.diag_name,'') 
       when  medmap.prd_dic_code='3' then t1.dise_name
       WHEN medmap.prd_dic_code='2' then coalesce(mdtrt_d.dscg_maindiag_name,'')  
       ELSE '' end  diag_name        --病种名称
       ,date_format (t1.setl_time,'yyyyMMdd') as dt       --分区键
      -- ,mdtrt_d.vali_flag as mdtrtflag
FROM        dwd.dwd_fin_setl_d t1             --结算信息表
inner JOIN   mdtrt_d       --就诊信息表
ON  t1.mdtrt_id = mdtrt_d.mdtrt_id                    --就诊ID
LEFT JOIN t4 ON t1.mdtrt_id=t4.mdtrt_id --and t1.dwh_prov_admdvs=t4.dwh_prov_admdvs
LEFT JOIN (SELECT fixmedins_code
 ,max(fixmedins_type) as fixmedins_type
 FROM dwd.DWD_PTY_FIXMEDINS_b
 WHERE vali_flag='1' --and dwh_active_flg='1' and dwh_soft_delete_flg='0'
 and begntime <=to_date('${p.ETL_DATE}')
and endtime >=to_date('${p.ETL_DATE}')
 group by fixmedins_code --,dwh_prov_admdvs
 )t5 ON t1.FIXMEDINS_CODE=t5.FIXMEDINS_CODE --and t1.dwh_prov_admdvs=t5.dwh_prov_admdvs
 LEFT JOIN (SELECT max(mat_idet_code) as mat_idet_code
 ,psn_no
 FROM dwd.dwd_pty_ma_obj_info_b
 WHERE vali_flag='1' 
group by psn_no ) t7 ON t1.psn_no=t7.psn_no --and t1.dwh_prov_admdvs=t7.dwh_prov_admdvs
left join medmap on medmap.std_dic_code=mdtrt_d.med_type
left join hosplvmap on hosplvmap.std_dic_code=t1.hosp_lv
WHERE 
date_format(t1.updt_time,'yyyy-MM-dd') = '${p.ETL_DATE}'
)
INSERT OVERWRITE TABLE mds_prd.fct_idp_setl_info_detl_di PARTITION (dt)
SELECT  
        poolarea_no                                             --统筹区编号
       ,fix_blng_admdvs                                        --定点归属医保区划
       ,insutype         --险种类型
       ,med_type         --医疗类型
	   ,setl_type        --结算类别
	   ,clr_way          --清算方式
	   ,pay_loc          --支付地点类别
	   ,psn_tyt_type --医疗人员类别
	   ,fixmedins_code   --定点医药机构编号
	   ,psn_type         --人员类别
	   ,dise_no          --病种编号
       ,setl_id          --结算id
       ,mdtrt_id         --就诊ID
       ,mdtrt_cert_type  --就诊凭证类型	   
       ,init_setl_id	    --原结算ID 
       ,out_fil_type --异地备案类型(非异地就医默认为空)
       ,setl_time        --结算时间
       ,begndate         --开始日期
       ,enddate	        --结束日期
       ,year	            --年度
       ,clr_type         --清算类别
	   ,clr_optins       --清算经办机构
	   ,refd_setl_flag   --退费结算标志
	   ,manl_reim_rea    --零星报销原因
       ,fixmedins_name   --定点医药机构名称
       ,hosp_lv          --医院等级
       ,dedc_hosp_lv     --起付线医院等级
       ,afil_rlts        --隶属关系
	   ,insu_admdvs      --参保所属医保区划
       ,emp_no           --单位编号
       ,emp_mgt_type     --单位管理类型
       ,emp_type         --单位类型
       ,emp_name         --单位名称
       ,econ_type        --经济类型
	   ,indu--所属行业
	   ,psn_no           --人员编号
       ,psn_insu_rlts_id --人员参保关系id
       ,psn_cert_type    --人员证件类型
       ,brdy             --出生日期
       ,naty             --民族
       ,cast(age as string) as age              --年龄
       ,gend             --性别
	   ,cvlserv_flag     --公务员标志
       ,cvlserv_lv       --公务员等级
       ,nwb_flag         --新生儿标志
	   ,sp_psn_type      --特殊人员类型
       ,sp_psn_type_lv   --特殊人员类型等级
	   ,dise_name        --病种名称
	   ,vali_flag        --有效标志
	   ,dscg_way    --离院方式  
       ,medfee_sumamt   --医疗费总额
       ,fund_pay_sumamt  --基金支付总额
       ,dedc --起付标准
       ,act_pay_dedc    --实际支付起付线
       ,pool_prop_selfpay--基本医疗统筹支付比例
       ,hifp_pay        --统筹基金支出
       ,overlmt_selfpay  --超限价自费费用
       ,crt_dedc        --本次起付线
       ,fulamt_ownpay_amt--全自费金额
       ,inscp_amt       --符合范围金额
       ,acct_pay         --个人账户支出
       ,psn_payamt         --个人支付金额
       ,preselfpay_amt   --先行自付金额
       ,cash_payamt     --现金支付金额
       ,othfund_pay     --其它基金支付
       ,hifcs_pay      --公务员医疗补助基金支出
       ,hifes_pay      --补充医疗保险基金支出
       ,mihi_hifes_pay       --大病补充医疗保险基金支出
       ,hifob_med_subs_fund_pay     --大额医疗补助基金支出
       ,hifd_pay    -- 伤残人员医疗保障基金支出
       ,maf_pay        --医疗救助基金支出
       ,ipt_days    --住院天数
       ,inhosp_stas --在院状态
       ,medinslv         --医疗机构级别
       ,rid       --唯一记录号
       ,dwh_created_by         --创建人
       ,dwh_created_dt     --创建时间
       ,dwh_src_sys_id         --源系统ID
       ,dwh_src_sys_name    --源系统名称
       ,dwh_job_id       --任务ID
       ,DSCG_DEPT_CODE
,CLCT_GRDE
,FIXMEDINS_TYPE
,DSCG_DEPT_NAME
,RESD_NATU
,FLXEMPE_FLAG
,MAT_IDET_CODE
,diag_code          
,diag_name
       ,dt       --分区键
FROM    a
where vali_flag='1' and refd_setl_flag='0'
and insutype in ('310','510','380','390','391')
--and mdtrtflag='1'
UNION ALL
SELECT  t1.poolarea_no                                             --统筹区编号
       ,t1.fix_blng_admdvs                                        --定点归属医保区划
       ,t1.insutype         --险种类型
       ,t1.med_type         --医疗类型
	   ,t1.setl_type        --结算类别
	   ,t1.clr_way          --清算方式
	   ,t1.pay_loc          --支付地点类别
	   ,t1.psn_trt_type as psn_tyt_type --医疗人员类别
	   ,t1.fixmedins_code   --定点医药机构编号
	   ,t1.psn_type         --人员类别
	   ,t1.dise_no          --病种编号
       ,t1.setl_id          --结算id
       ,t1.mdtrt_id         --就诊ID
       ,t1.mdtrt_cert_type  --就诊凭证类型	   
       ,t1.init_setl_id	    --原结算ID 
       ,t1.out_fil_type --异地备案类型(非异地就医默认为空)
       ,t1.setl_time        --结算时间
       ,cast(t1.begndate as date) as begndate        --开始日期
       ,cast(t1.enddate as date) as enddate	        --结束日期
       ,t1.year	            --年度
       ,t1.clr_type         --清算类别
	   ,t1.clr_optins       --清算经办机构
	   ,t1.refd_setl_flag   --退费结算标志
	   ,t1.manl_reim_rea    --零星报销原因
       ,t1.fixmedins_name   --定点医药机构名称
       ,t1.hosp_lv          --医院等级
       ,t1.dedc_hosp_lv     --起付线医院等级
       ,t1.afil_rlts        --隶属关系
	   ,t1.insu_admdvs      --参保所属医保区划
       ,t1.emp_no           --单位编号
       ,t1.emp_mgt_type     --单位管理类型
       ,t1.emp_type         --单位类型
       ,t1.emp_name         --单位名称
       ,t1.econ_type        --经济类型
	   ,t1.indu--所属行业
	   ,t1.psn_no           --人员编号
       ,t1.psn_insu_rlts_id --人员参保关系id
       ,t1.psn_cert_type    --人员证件类型
       ,cast(t1.brdy as date) as brdy          --出生日期
       ,t1.naty             --民族
       ,t1.age              --年龄
       ,t1.gend             --性别
	   ,t1.cvlserv_flag     --公务员标志
       ,t1.cvlserv_lv       --公务员等级
       ,t1.nwb_flag         --新生儿标志
	   ,t1.sp_psn_type      --特殊人员类型
       ,t1.sp_psn_type_lv   --特殊人员类型等级
	   ,t1.dise_name        --病种名称
	   ,t1.vali_flag        --有效标志
	   ,t1.dscg_way    --离院方式  
       ,t1.medfee_sumamt   --医疗费总额
       ,t1.fund_pay_sumamt  --基金支付总额
       ,t1.dedc --起付标准
       ,t1.act_pay_dedc    --实际支付起付线
       ,t1.pool_prop_selfpay--基本医疗统筹支付比例
       ,t1.hifp_pay        --统筹基金支出
       ,t1.overlmt_selfpay  --超限价自费费用
       ,t1.crt_dedc        --本次起付线
       ,t1.fulamt_ownpay_amt--全自费金额
       ,t1.inscp_amt       --符合范围金额
       ,t1.acct_pay         --个人账户支出
       ,t1.psn_payamt         --个人支付金额
       ,t1.preselfpay_amt   --先行自付金额
       ,t1.cash_payamt     --现金支付金额
       ,t1.othfund_pay     --其它基金支付
       ,t1.hifcs_pay      --公务员医疗补助基金支出
       ,t1.hifes_pay      --补充医疗保险基金支出
       ,t1.mihi_hifes_pay       --大病补充医疗保险基金支出
       ,t1.hifob_med_subs_fund_pay     --大额医疗补助基金支出
       ,t1.hifd_pay    -- 伤残人员医疗保障基金支出
       ,t1.maf_pay        --医疗救助基金支出
       ,t1.ipt_days    --住院天数
       ,t1.inhosp_stas --在院状态
       ,t1.medinslv         --医疗机构级别
       ,t1.rid       --唯一记录号
       ,t1.dwh_created_by         --创建人
       ,t1.dwh_created_dt     --创建时间
       ,t1.dwh_src_sys_id         --源系统ID
       ,t1.dwh_src_sys_name    --源系统名称
       ,t1.dwh_job_id       --任务ID
       ,t1.DSCG_DEPT_CODE
,t1.CLCT_GRDE
,t1.FIXMEDINS_TYPE
,t1.DSCG_DEPT_NAME
,t1.RESD_NATU
,t1.FLXEMPE_FLAG
,t1.MAT_IDET_CODE
,t1.diag_code          
,t1.diag_name
       ,t1.dt as dt 
       FROM 
(
SELECT  t1.poolarea_no                                             --统筹区编号
       ,t1.fix_blng_admdvs                                        --定点归属医保区划
       ,t1.insutype         --险种类型
       ,t1.med_type         --医疗类型
	   ,t1.setl_type        --结算类别
	   ,t1.clr_way          --清算方式
	   ,t1.pay_loc          --支付地点类别
	   ,t1.psn_trt_type --医疗人员类别
	   ,t1.fixmedins_code   --定点医药机构编号
	   ,t1.psn_type         --人员类别
	   ,t1.dise_no          --病种编号
       ,t1.setl_id          --结算id
       ,t1.mdtrt_id         --就诊ID
       ,t1.mdtrt_cert_type  --就诊凭证类型	   
       ,t1.init_setl_id	    --原结算ID 
       ,t1.out_fil_type --异地备案类型(非异地就医默认为空)
       ,t1.setl_time        --结算时间
       ,t1.begndate         --开始日期
       ,t1.enddate	        --结束日期
       ,t1.year	            --年度
       ,t1.clr_type         --清算类别
	   ,t1.clr_optins       --清算经办机构
	   ,t1.refd_setl_flag   --退费结算标志
	   ,t1.manl_reim_rea    --零星报销原因
       ,t1.fixmedins_name   --定点医药机构名称
       ,t1.hosp_lv          --医院等级
       ,t1.dedc_hosp_lv     --起付线医院等级
       ,t1.afil_rlts        --隶属关系
	   ,t1.insu_admdvs      --参保所属医保区划
       ,t1.emp_no           --单位编号
       ,t1.emp_mgt_type     --单位管理类型
       ,t1.emp_type         --单位类型
       ,t1.emp_name         --单位名称
       ,t1.econ_type        --经济类型
	   ,t1.indu--所属行业
	   ,t1.psn_no           --人员编号
       ,t1.psn_insu_rlts_id --人员参保关系id
       ,t1.psn_cert_type    --人员证件类型
       ,t1.brdy             --出生日期
       ,t1.naty             --民族
       ,t1.age              --年龄
       ,t1.gend             --性别
	   ,t1.cvlserv_flag     --公务员标志
       ,t1.cvlserv_lv       --公务员等级
       ,t1.nwb_flag         --新生儿标志
	   ,t1.sp_psn_type      --特殊人员类型
       ,t1.sp_psn_type_lv   --特殊人员类型等级
	   ,t1.dise_name        --病种名称
	   ,t1.vali_flag        --有效标志
	   ,t1.dscg_way    --离院方式  
       ,t1.medfee_sumamt   --医疗费总额
       ,t1.fund_pay_sumamt  --基金支付总额
       ,t1.dedc --起付标准
       ,t1.act_pay_dedc    --实际支付起付线
       ,t1.pool_prop_selfpay--基本医疗统筹支付比例
       ,t1.hifp_pay        --统筹基金支出
       ,t1.overlmt_selfpay_fee as overlmt_selfpay  --超限价自费费用
       ,t1.crt_dedc        --本次起付线
       ,t1.fulamt_ownpay_amt--全自费金额
       ,t1.inscp_amt       --符合范围金额
       ,t1.acct_pay         --个人账户支出
       ,t1.psn_payamt         --个人支付金额
       ,t1.preselfpay_amt   --先行自付金额
       ,t1.cashpay_amt as cash_payamt     --现金支付金额
       ,t1.othfund_pay     --其它基金支付
       ,t1.hifcs_pay      --公务员医疗补助基金支出
       ,t1.hifes_pay      --补充医疗保险基金支出
       ,t1.mihi_hifes_pay       --大病补充医疗保险基金支出
       ,t1.hifob_med_subs_fund_pay     --大额医疗补助基金支出
       ,t1.hifd_pay    -- 伤残人员医疗保障基金支出
       ,t1.maf_pay        --医疗救助基金支出
       ,t1.ipt_days    --住院天数
       ,t1.inhosp_stas --在院状态
       ,t1.medinslv         --医疗机构级别
       ,t1.rid       --唯一记录号
       ,t1.dwh_created_by         --创建人
       ,t1.dwh_created_dt     --创建时间
       ,t1.dwh_src_sys_id         --源系统ID
       ,t1.dwh_src_sys_name    --源系统名称
       ,t1.dwh_job_id       --任务ID
              ,t1.DSCG_DEPT_CODE
,t1.CLCT_GRDE
,t1.FIXMEDINS_TYPE
,t1.DSCG_DEPT_NAME
,t1.RESD_NATU
,t1.FLXEMPE_FLAG
,t1.MAT_IDET_CODE
,t1.diag_code          
,t1.diag_name
       ,t1.dt as dt
       ,t3.setl_id as setl_id_null 
       ,t4.mdtrt_id as mdtrtnull 
 from mds_prd.fct_idp_setl_info_detl_di t1
left semi join a  t2 on t1.dt=t2.dt 
left join a  t3 on t1.setl_id=t3.setl_id  and t3.dt=t1.dt and t1.insu_admdvs=t3.insu_admdvs
left join cxcl t4 on t1.mdtrt_id=t4.mdtrt_id   and t1.insu_admdvs=t4.insu_admdvs
) t1 where t1.setl_id_null is null and t1.mdtrtnull is null
;
$2 政策模拟—14—待遇政策仿真模拟
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值