Hive data warehouse financiero negocio-negocio combate uno

Nombre comercial: Clientes de los 10 principales clientes en volumen de transacciones mensuales del departamento comercial de una empresa financiera

Descripción técnica:

1. Acceso a datos

Los datos provienen de la mesa de negocios en el sistema de mostrador y la mesa en el sistema integrado de marketing de Lexus

Base de datos del sistema 1:

hive_s5_szdb_sz_asset_client
hive_s5_szdb_sz_his_his_deliver
hive_s5_szdb_sz_his_his_fundjour
hive_s5_szdb_sz_his_his_assetdebit

Base de datos del sistema 2:
hive_s8__t_gxgl_gxmx_query
hive_s8__t_ehr_jjr_jbxx

2. Escribir SQL empresarial en el almacén de datos de Hive

Basado en el desarrollo del modelo estrella

Tabla de dimensiones relacionada con la tabla de hechos

Preparación empresarial:

1. Volumen mensual de transacciones = ingresos = comisión + monto incurrido + interés financiero pagadero

- 当期 佣金 fare0 
con un as (seleccione branch_no, client_id from hive.hive_s5_szdb_sz_asset_client donde hive_p_date = 20190531 y branch_no in (1,2))
con b as (seleccione branch_no, client_id, fund_account, client_name, sum (fare0) value from hive .hive_s5_szdb_sz_his_his_deliver donde hive_p_date entre 20190501 y 20190531 y branch_no en (1,2) y asset_prop = 7 agrupar por branch_no, client_id, fund_account, client_name orden por suma (fare0) desc)
- 当期 发生 金额 ocurren_balance (默认 为 金额)
, c como (seleccione branch_no, client_id, fund_account, max (client_name) client_name, sum (-occur_balance) value de hive.hive_s5_szdb_sz_his_his_fundjour donde hive_p_date entre 20190501 y 20190531 y branch_no en (271,2) y business_flag, 15 , 2718,2721,2724,2732,2735,2738,2741,2744,2769,2776,2778,2779,2794,2795) y asset_prop = 7 group by branch_no, client_id, fund_account order by sum (-occur_balance) desc)
- -Ingresos por cobrar por intereses al final del período actual -Ingresos por cobrar por intereses al final del período anterior = interés financiero pagadero fin_pre_intereses
, da como
 (BRANCH_NO select, client_id, fund_account, max (client_name) client_name, sum (fin_pre_interest) valor1 de hive.hive_s5_szdb_sz_his_his_assetdebit donde hive_p_date = 20190531 y BRANCH_NO en) grupo (1,2 por BRANCH_NO, client_id, orden fund_account por BRANCH_NO, client_id) un
izquierda unirse (seleccione branch_no, client_id, fund_account, max (client_name) client_name, sum (fin_pre_interest) value2 de hive.hive_s5_szdb_sz_his_his_assetdebit donde hive_p_date = 20181231 y branch_no in (1,2) grupo de cliente por branch_no, client_id por branch_incount, en a.branch_no = b.branch_no y a.client_id = b.client_id orden por branch_no, (valor1-valor2) desc)
-, c como (seleccione branch_no, client_id, fund_account, max (client_name) client_name, sum (fin_pre_interest) value1 de hive.hive_s5_szdb_sz_his_his_assetdebit donde hive_p_date entre 20190501 y 20190531 y branch_no en (1,2) orden de grupo de cuenta por sucursal, fondo_cuenta por branch_no, client_id, fund_account)
-客户服务 关系
, e as (seleccione a.ryid, a.khid, a.gxlxbh, b.xm de (
seleccione * de (seleccione ryid, khid, caso cuando gxlxbh = 2 luego '服务 关系 'else' @ 'end gxlxbh from hive.hive_s8__t_gxgl_gxmx_query where hive_p_date = 20190507) where gxlxbh! =' @ ') Una 
combinación (seleccione ryid, xm de hive.hive_s8__t_ehr_jr_50. ryid)
/ * 查看 中间 状态 结果 seleccione a.branch_no, a.client_id,
nvl (nvl (b.client_name, c.client_name), d.client_name) client_name,
nvl (nvl (b.fund_account, c.fund_account), d.fund_account) fondo_cuenta,
(nvl (b.value, 0) + nvl (c.value, 0) + nvl (d.value, 0)) value1, xm , gxlxbh
desde una unión izquierda b en a.branch_no = b.branch_no y a.client_id = b.client_id
unión izquierda c en a.branch_no = c.branch_no y a.client_id = c.client_id
unión izquierda d en a.branch_no = d.branch_no y a.client_id = d.client_id  
left join e on a.client_id = e.khid 
order by value1 desc; * /
- 目前 里面 都是 信用 账户 的 业务 (后续 若有 变动 请 调整)
, f as (seleccione a.branch_no, a.client_id,
nvl (nvl (b.client_name, c.client_name), d.client_name) client_name,
nvl (nvl (b.fund_account, c.fund_account), d.fund_account) fund_account,
(nvl (b.value, 0) + nvl (c.value, 0) + nvl (d.value, 0)) value1, xm, gxlxbh
desde una unión izquierda b en a.branch_no = b.branch_no y a.client_id = b.client_id
unión izquierda c en a.branch_no = c.branch_no y a.client_id = c.client_id
unión izquierda d en a.branch_no = d. branch_no y a.client_id = d.client_id  
left join e en a.client_id = e.khid
ordenar por valor1 desc)
- 去 重, 每个 营业 部 输出 10 条 交易 量 前 10 的 客户 数据
, g como (seleccione * , row_number () over (partición por branch_no order by value1 desc) deshacer de f donde valor1> 0)
seleccionar branch_no, client_id, client_name, fund_account, value1, rid, 201904, xm, gxlxbh desde g donde rid <= 10;

3. Empaquete sql en .py script

1) Script que ejecuta python xxx.py date

2) Después de configurarse en la plataforma de administración de big data, la plataforma programa de forma predeterminada las tareas para el día anterior a la ejecución

4. Exportar datos a la base de datos backend de la plataforma de informes.

1) Personalice los datos de resultados de sql empresarial en la plataforma de informes (tablas, pares clave-valor, diagramas montados en anillo, diagramas de radar ...) visualización, visualización en pantalla grande

2) Operaciones relacionadas de la plataforma de informes

3) La configuración de autoridad del informe es visible para el usuario designado, y la autoridad de informe correspondiente está abierta al departamento de demanda correspondiente.

5. Gestión de tareas

1) Configure la vista de dependencia del script, nota: cada paso es una tarea, con una identificación de tarea correspondiente

Entrante -> Cálculo de indicadores -> Indicadores estadísticos -> Exportar indicadores a tablas relacionadas en la base de datos backend xxxreport de una plataforma de informes

2) Establezca los parámetros de ejecución de la fecha de la tarea, ya sea que se estén ejecutando datos en el día de negociación

3) Si hay un registro de errores durante la operación al día siguiente, busque y analice el motivo específico de acuerdo con el registro.

6. Configuración de programación

1) Configuración del tiempo de la tarea

La tarea se llama a las 3:30 todos los días y la pantalla de ejecución muestra el registro de ejecución.

7. Verificación de datos

1) El panel de la plataforma de gestión de big data muestra todas las tareas fallidas en las colas de acceso, cálculo, estadísticas y salida todos los días.

2) De acuerdo con el panel de control de la plataforma, puede ver las tareas fallidas individuales. Si la tarea falla, puede encontrar el motivo de acuerdo con el registro. De lo contrario, no habrá nada. La tarea se está ejecutando muy bien.

 

Supongo que te gusta

Origin blog.csdn.net/ALIVEE/article/details/89978177
Recomendado
Clasificación