Visualización de datos, parte 12: configuración de PowerDesigner para generar decenas de millones de datos y generar datos

Introducción:

    En el trabajo, encontré la necesidad de hacer pruebas, así que pensé en escribir insertos por lotes por mí mismo. Pero la cantidad de datos es demasiado grande y el procesamiento por lotes con inserción es demasiado complicado.

Tabla de hechos y definición de la tabla de dimensiones, y datos de prueba:

    (1) Hoja informativa sobre ingresos médicos

crear tabla project_cost_fact

(

  id int clave primaria auto_increment,

  cost_direction_code VARCHAR (20) comentario 'código de dirección de costo', 

  hospital_code VARCHAR (20) comentario'Código de coma fija hospitalaria ', 

  level_code VARCHAR (20) comentario 'Código de nivel hospitalario',

  time_code VARCHAR (10) comentario 'código de tiempo',

  código de tipo de ingreso VARCHAR (32) comentario 'Código de categoría de ingreso: 1. Ingresos de pacientes ambulatorios 2. Ingresos de registro 3. Ingresos de diagnóstico 4. Ingresos de inspección 5. Ingresos de exámenes de laboratorio 6. Ingresos de tratamiento 7. Ingresos de cirugía 8. Ingresos de materiales de salud 9. Ingresos de medicina occidental 10. Ingresos de la medicina herbaria china11, ingresos de la medicina china patentada12, ingresos de las tarifas de servicios farmacéuticos13, ingresos de otros servicios ambulatorios14, ingresos de hospitalizaciones15, ingresos de camas16, ingresos de cuidados de enfermería17, ingresos de otras hospitalizaciones ',

  tomando prestado VARCHAR (32) comentario 'dirección del préstamo',

  comentario DOBLE de acumulación 'Importe', 

  total DOBLE comentario 'total'

)

    (2) Tabla de dimensión temporal

CREAR TABLA time_type (

  código VARCHAR (20) comentario 'Código de tiempo',

  año INT COMENTARIO 'año',

  year_name VARCHAR (20) comentario'nombre del año ',

  trimestre INT COMMENT'Quarter ',

  quarter_name VARCHAR (20) comentario 'Nombre del trimestre',

  mes INT COMENTARIO 'mes',

  month_name VARCHAR (20) comentario 'nombre del mes',

  create_time VARCHAR (20) comentario 'tiempo de creación')

insertar en valores de tipo_tiempo ('1', '2017', '2017', '1', 'primer trimestre', '1', 'enero', '2020-04-24 06:50:53') ;

insertar en valores de tipo_tiempo ('2', '2017', '2017', '1', 'primer trimestre', '2', 'febrero', '2020-04-24 06:50:53') ;

insertar en valores de tipo_tiempo ('3', '2017', '2017', '1', 'primer trimestre', '3', 'marzo', '2020-04-24 06:50:53') ;

insertar en los valores de time_type ('4', '2017', '2017', '2', 'Q2', '4', 'April', '2020-04-24 06:50:53') ;

insertar en valores de tipo_tiempo ('5', '2017', '2017', '2', 'Q2', '5', 'Mayo', '2020-04-24 06:50:53') ;

insertar en valores de tipo_tiempo ('6', '2017', '2017', '2', 'segundo trimestre', '6', 'junio', '2020-04-24 06:50:53') ;

insertar en valores de tipo_tiempo ('7', '2017', '2017', '3', 'tercer trimestre', '7', 'julio', '2020-04-24 06:50:53') ;

insertar en valores time_type ('8', '2017', '2017', '3', 'tercer trimestre', '8', 'agosto', '2020-04-24 06:50:53') ;

insertar en valores de tipo_tiempo ('9', '2017', '2017', '3', 'tercer trimestre', '9', 'septiembre', '2020-04-24 06:50:53') ;

insertar en los valores de tipo_tiempo ('10 ',' 2017 ',' 2017 ',' 4 ',' Q4 ',' 10 ',' Octubre ',' 2020-04-24 06:50:53 ') ;

insertar en los valores de tipo_tiempo ('11 ',' 2017 ',' 2017 ',' 4 ',' cuarto trimestre ',' 11 ',' noviembre ',' 2020-04-24 06:50:53 ' );

insertar en los valores de tipo_tiempo ('12 ',' 2017 ',' 2017 ',' 4 ',' cuarto trimestre ',' 12 ',' diciembre ',' 2020-04-24 06:50:53 ' );

insertar en valores de tipo_tiempo ('13 ',' 2018 ',' 2018 ',' 1 ',' primer trimestre ',' 1 ',' enero ',' 2020-04-24 06:50:53 ') ;

insertar en valores de tipo_tiempo ('14 ',' 2018 ',' 2018 ',' 1 ',' primer trimestre ',' 2 ',' febrero ',' 2020-04-24 06:50:53 ') ;

insertar en valores de tipo_tiempo ('15 ',' 2018 ',' 2018 ',' 1 ',' primer trimestre ',' 3 ',' marzo ',' 2020-04-24 06:50:53 ') ;

insertar en valores de tipo_tiempo ('16 ',' 2018 ',' 2018 ',' 2 ',' segundo trimestre ',' 4 ',' abril ',' 2020-04-24 06:50:53 ') ;

insertar en valores de tipo_tiempo ('17 ',' 2018 ',' 2018 ',' 2 ',' Q2 ',' 5 ',' Mayo ',' 2020-04-24 06:50:53 ') ;

insertar en valores time_type ('18 ',' 2018 ',' 2018 ',' 2 ',' Q2 ',' 6 ',' June ',' 2020-04-24 06:50:53 ') ;

insertar en valores de tipo_tiempo ('19 ',' 2018 ',' 2018 ',' 3 ',' tercer trimestre ',' 7 ',' julio ',' 2020-04-24 06:50:53 ') ;

insertar en valores de tipo_tiempo ('20 ',' 2018 ',' 2018 ',' 3 ',' tercer trimestre ',' 8 ',' agosto ',' 2020-04-24 06:50:53 ') ;

insertar en los valores time_type ('21 ',' 2018 ',' 2018 ',' 3 ',' tercer trimestre ',' 9 ',' septiembre ',' 2020-04-24 06:50:53 ') ;

insertar en valores de tipo_tiempo ('22 ',' 2018 ',' 2018 ',' 4 ',' Q4 ',' 10 ',' Octubre ',' 2020-04-24 06:50:53 ') ;

insertar en los valores de tipo_tiempo ('23 ',' 2018 ',' 2018 ',' 4 ',' cuarto trimestre ',' 11 ',' noviembre ',' 2020-04-24 06:50:53 ' );

insertar en los valores time_type ('24 ',' 2018 ',' 2018 ',' 4 ',' cuarto trimestre ',' 12 ',' diciembre ',' 2020-04-24 06:50:53 ' );

insertar en los valores de time_type ('25 ',' 2019 ',' 2019 ',' 1 ',' primer trimestre ',' 1 ',' enero ',' 2020-04-24 06:50:53 ') ;

insertar en los valores de time_type ('26 ',' 2019 ',' 2019 ',' 1 ',' primer trimestre ',' 2 ',' febrero ',' 2020-04-24 06:50:53 ') ;

insertar en valores de tipo_tiempo ('27 ',' 2019 ',' 2019 ',' 1 ',' primer trimestre ',' 3 ',' marzo ',' 2020-04-24 06:50:53 ') ;

insertar en los valores de time_type ('28 ',' 2019 ',' 2019 ',' 2 ',' Q2 ',' 4 ',' April ',' 2020-04-24 06:50:53 ') ;

insertar en los valores de time_type ('29 ',' 2019 ',' 2019 ',' 2 ',' Q2 ',' 5 ',' May ',' 2020-04-24 06:50:53 ') ;

insertar en los valores de time_type ('30 ',' 2019 ',' 2019 ',' 2 ',' Q2 ',' 6 ',' June ',' 2020-04-24 06:50:53 ') ;

insertar en los valores time_type ('31 ',' 2019 ',' 2019 ',' 3 ',' tercer trimestre ',' 7 ',' julio ',' 2020-04-24 06:50:53 ') ;

insertar en valores de tipo_tiempo ('32 ',' 2019 ',' 2019 ',' 3 ',' tercer trimestre ',' 8 ',' agosto ',' 2020-04-24 06:50:53 ') ;

insertar en valores time_type ('33 ',' 2019 ',' 2019 ',' 3 ',' tercer trimestre ',' 9 ',' septiembre ',' 2020-04-24 06:50:53 ') ;

insertar en los valores de time_type ('34 ',' 2019 ',' 2019 ',' 4 ',' Q4 ',' 10 ',' October ',' 2020-04-24 06:50:53 ') ;

insertar en valores de tipo_tiempo ('35 ',' 2019 ',' 2019 ',' 4 ',' cuarto trimestre ',' 11 ',' noviembre ',' 2020-04-24 06:50:53 ' );

insertar en los valores de tipo_tiempo ('36 ',' 2019 ',' 2019 ',' 4 ',' cuarto trimestre ',' 12 ',' diciembre ',' 2020-04-24 06:50:53 ' );

    (3) Tabla de dimensiones del hospital

crear hospital de mesa

id int clave primaria auto_increment,

hospital_code VARCHAR (20) comentario 'código de hospital', 

hospital_name VARCHAR (20) comentario 'nombre del hospital' 

)

insertar en el hospital (código_hospitalario, nombre_hospital) valores ('6251088', '徐 水 ** 医院');

insertar en el hospital (código_hospitalario, nombre_hospitalario) valores ('6250007', '徐 水 ** 医院');

insertar en el hospital (código_hospitalario, nombre_hospital) valores ('6250009', ', ** 医院');

insertar en el hospital (código_hospitalario, nombre_hospital) valores ('6251035', '保定 ** 医院');

inserte en el hospital (código_hospitalario, nombre_hospital) valores ('6251001', '保定 ** 医院');

inserte en el hospital (código_hospitalario, nombre_hospital) valores ('6251002', '保定 ** 医院');

insertar en el hospital (código_hospitalario, nombre_hospital) valores ('6251004', '保定 ** 院');

insertar en el hospital (código_hospitalario, nombre_hospital) valores ('6251888', '徐 ** 医院');

insertar en el hospital (código_hospitalario, nombre_hospitalario) valores ('6251005', '徐 水 ** 医院');

insertar en el hospital (código_hospitalario, nombre_hospitalario) valores ('6258888', '徐 水 ** 医院');  

    (4) Dimensiones del nivel del hospital

CREAR TABLA hospital_level (

  level_code VARCHAR (20) comentario 'Código de nivel hospitalario',

  level_name VARCHAR (20) comentario 'Nombre de nivel de hospital',

  create_time VARCHAR (20) comentario 'tiempo de creación'

  )

insertar en los valores de hospital_level ('1', 'hospital de tercer nivel', '2020-04-24 06:50:42');

insertar en los valores de hospital_level ('2', 'hospital de segundo nivel', '2020-04-24 06:50:42');

insertar en los valores de hospital_level ('3', 'hospital de primer nivel', '2020-04-24 06:50:42');

insertar en los valores de hospital_level ('4', 'Por debajo del primer nivel (médico comunitario)', '2020-04-24 06:50:42');

    (5) Tabla de dimensiones del departamento

crear tabla office_type (

  id int clave primaria auto_increment,

  office_code VARCHAR (32) comentario 'Código de departamento',

  office_name VARCHAR (32) comentario 'Nombre del departamento'

)

insertar en office_type (office_code, office_name) value ('1', '普 外科');

insertar en office_type (office_code, office_name) value ('2', '骨 外科');

insertar en office_type (office_code, office_name) value ('3', '心 内科');

insertar en office_type (office_code, office_name) value ('4', '口腔科');

insertar en office_type (office_code, office_name) value ('5', '消化科');

insertar en office_type (office_code, office_name) value ('6', '肾 内科');

insertar en office_type (office_code, office_name) value ('7', '眼科');

insertar en office_type (office_code, office_name) value ('8', '免疫 科');

insertar en office_type (office_code, office_name) valor ('9', 'Departamento de Enfermedades Infecciosas');

insertar en office_type (office_code, office_name) value ('10', '急诊 科');

insertar en office_type (office_code, office_name) value ('11', '皮肤科');

insertar en office_type (office_code, office_name) value ('12', '神经 内科');

insertar en office_type (office_code, office_name) value ('13', 'medicina neonatal');

insertar en office_type (office_code, office_name) value ('14', '耳鼻喉科 科');

insertar en office_type (office_code, office_name) value ('15', '呼吸 中心');

insertar en el valor de office_type (office_code, office_name) ('16', 'Centro de tumores hematológicos');

    (6) Tabla de dimensiones de artículo de coste

crear tabla project_type

(

id int clave primaria auto_increment,

 project_code VARCHAR (32) comment'Cost project code ',

 nombre_proyecto VARCHAR (32) comentario 'Nombre del proyecto de coste'

)

insertar en project_type (project_code, project_name) valores ('1', '员 经费');

insertar en project_type (project_code, project_name) valores ('2', 'tarifa de material sanitario');

insertar en project_type (project_code, project_name) valores ('3', '药品 费');

insertar en project_type (project_code, project_name) valores ('4', 'depreciación de activos fijos');

insertar en project_type (project_code, project_name) valores ('5', 'amortización de activos intangibles');

insertar en project_type (project_code, project_name) valores ('6', 'retirar fondo de riesgo médico');

insertar en project_type (project_code, project_name) valores ('7', 'otros gastos');

insertar en project_type (project_code, project_name) valores ('8', '合计');

insertar en project_type (project_code, project_name) valores ('9', 'Ingresos del departamento');

insertar en project_type (project_code, project_name) valores ('10 ',' ingresos-costo ');

insertar en project_type (project_code, project_name) valores ('11 ',' 床 日 成本 ');

insertar en project_type (project_code, project_name) valores ('12 ',' 诊 次 成本 ');

    (7) Tabla de dimensiones de categoría de ingresos

crear tabla tipo_ingreso (

id int clave primaria auto_increment,

código de tipo de ingreso VARCHAR (32) comentario 'Código de categoría de ingreso: 1. Ingresos de pacientes ambulatorios 2. Ingresos de registro 3. Ingresos de diagnóstico 4. Ingresos de inspección 5. Ingresos de exámenes de laboratorio 6. Ingresos de tratamiento 7. Ingresos de cirugía 8. Ingresos de materiales de salud 9. Ingresos de medicina occidental 10. Ingresos de la medicina herbaria china11, ingresos de la medicina china patentada12, ingresos de las tarifas de servicios farmacéuticos13, ingresos de otros servicios ambulatorios14, ingresos de hospitalizaciones15, ingresos de camas16, ingresos de cuidados de enfermería17, ingresos de otras hospitalizaciones ',

ingresos_tipo_nombre VARCHAR (32) comentario'Nombre de la categoría de ingresos: 1. Ingresos de pacientes ambulatorios 2. Ingresos de registro 3. Ingresos de diagnóstico 4. Ingresos de inspección 5. Ingresos de exámenes de laboratorio 6. Ingresos de tratamiento 7. Ingresos de cirugía 8. Ingresos de material de salud 9. Ingresos de medicina occidental 10. Ingresos por hierbas medicinales chinas 11, ingresos por medicinas chinas patentadas 12, ingresos por tarifas de servicios de farmacia 13, ingresos por otras clínicas ambulatorias 14, ingresos por hospitalización 15, ingresos por camas 16, ingresos por cuidados de enfermería 17, otros ingresos por hospitalización '

)  

insertar en tipo_ingreso (código_tipo_ingreso, nombre_tipo_ingreso) valores ('1', '门诊 收入');

insertar en tipo_ingreso (código_tipo_ingreso, nombre_tipo_ingreso) valores ('2', '挂号 收入');

insertar en tipo_ingreso (código_tipo_ingreso, nombre_tipo_ingreso) valores ('3', '诊察 收入');

insertar en tipo_ingreso (código_tipo_ingreso, nombre_tipo_ingreso) valores ('4', '检查 收入');

insertar en tipo_ingreso (código_tipo_ingreso, nombre_tipo_ingreso) valores ('5', '化验 收入');

insertar en tipo_ingreso (código_tipo_ingreso, nombre_tipo_ingreso) valores ('6', '治疗 收入');

insertar en tipo_ingreso (código_tipo_ingreso, nombre_tipo_ingreso) valores ('7', '手术 收入');

insertar en tipo_ingreso (código_tipo_ingreso, nombre_tipo_ingreso) valores ('8', '卫生 材料 收入');

insertar en tipo_ingreso (código_tipo_ingreso, nombre_tipo_ingreso) valores ('9', '西药 收入');

insertar en tipo_ingreso (código_tipo_ingreso, nombre_tipo_ingreso) valores ('10 ',' 中草药 收入 ');

insertar en tipo_ingreso (código_tipo_ingreso, nombre_tipo_ingreso) valores ('11 ',' 中成药 收入 ');

insertar en tipo_ingreso (código_tipo_ingreso, nombre_tipo_ingreso) valores ('12 ',' ingreso por tarifa de servicio farmacéutico ');

insertar en tipo_ingreso (código_tipo_ingreso, nombre_tipo_ingreso) valores ('13 ',' 其他 门诊 收入 ');

insertar en tipo_ingreso (código_tipo_ingreso, nombre_tipo_ingreso) valores ('14 ',' 住院 收入 ');

insertar en tipo_ingreso (código_tipo_ingreso, nombre_tipo_ingreso) valores ('15 ',' 床位 收入 ');

insertar en tipo_ingreso (código_tipo_ingreso, nombre_tipo_ingreso) valores ('16 ',' 护理 收入 ');

insertar en tipo_ingreso (código_tipo_ingreso, nombre_tipo_ingreso) valores ('17 ',' 其他 住院 收入 ');

    (8) Tabla de dimensiones de dirección de costes

crear tabla cost_direction_type (

id int clave primaria auto_increment,

cost_direction_code VARCHAR (20) comentario 'código de dirección de costo', 

cost_direction_name VARCHAR (20) comentario 'Nombre de la dirección de costo' 

)

insertar en cost_direction_type (cost_direction_code, cost_direction_name) valores ('1', '医疗 收入');

insertar en cost_direction_type (cost_direction_code, cost_direction_name) valores ('2', 'Ingreso de subsidio básico financiero');

insertar en cost_direction_type (cost_direction_code, cost_direction_name) valores ('3', 'Ingresos por subvenciones del proyecto financiero');

insertar en cost_direction_type (cost_direction_code, cost_direction_name) valores ('4', 'Ingresos de proyectos de ciencia y educación');

insertar en cost_direction_type (cost_direction_code, cost_direction_name) valores ('5', '其他 收入');

insertar en cost_direction_type (cost_direction_code, cost_direction_name) valores ('6', 'costo comercial médico');

insertar en cost_direction_type (cost_direction_code, cost_direction_name) valores ('7', 'Gastos de subvención de proyectos financieros');

insertar en cost_direction_type (cost_direction_code, cost_direction_name) valores ('8', 'gastos de proyectos de ciencia y educación');

insertar en cost_direction_type (cost_direction_code, cost_direction_name) valores ('9', '管理 费用');

    La definición y los datos de la tabla de hechos y la tabla de dimensiones se dan arriba. Al principio de este artículo, también mencioné encontrar un inserto de lote. Puede pensar en la cantidad de datos que son demasiados y demasiados problemas. También se puede lograr a través de la programación psql, y soy demasiado vago para escribir procedimientos almacenados.

Ahora hablemos de la gran cantidad de datos, ¿cómo calcular la cantidad de datos?

Suponga que desea crear 10,000 registros para la tabla de hechos. Debería ser casi suficiente, ¿verdad? ? ?

Número total de registros = registros de tabla de dimensión de tiempo * registros de tabla de dimensión de hospital * registros de tabla de dimensión de nivel de hospital * registros de dimensión de departamento * registros de dimensión de artículo de costo * registros de tabla de dimensión de categoría de ingresos * registros de tabla de dimensión de dirección de gasto *

Número total de registros = 36 * 10 * 3 * 16 * 12 * 17 * 9 = 31726080


PowerDesigner parece tener la función de crear datos de prueba, y la operación es conveniente y el proceso de realización se puede reutilizar. La realización es la siguiente:

1. Introducir la mesa en la biblioteca al revés

image.png

image.png

image.png

2. Especifique el usuario que será operado, no lo operen otros usuarios y preste atención a la seguridad de los datos.

image.png

3. Especifique el usuario y luego especifique qué tablas en el usuario se van a operar (solo creé 1 tabla aquí)

image.png

4. La estructura de la tabla importada es la siguiente:

image.png

Nota:

La identificación es la clave principal y se puede incrementar automáticamente.

De acuerdo con sus necesidades comerciales, genere datos de prueba para la columna especificada. Aquí elijo el tipo de cadena level_code y el tipo de acumulación DOBLE para demostrar. Otras columnas de la tabla se llenarán con cadenas aleatorias de forma predeterminada.

5. Haga doble clic en la estructura de la tabla introducida.

image.png

6. Busque la pestaña Columnas, aquí están todas las columnas de la tabla, cada columna tiene un número de serie delante de ella, busque la columna que se va a operar, haga doble clic en el número de serie delante de ella: aquí mi quincenal es el número de serie 3 delante de leve_code

image.png

image.png

7. Cree un nuevo archivo de perfil de datos de prueba para la columna level_code

image.png

8. Especifique el tipo de datos generados:

Automático: representa la generación de datos numéricos, que pueden ser una secuencia creciente regular y un número aleatorio

Lista: No hay reglas para los datos generados. Puede poner estos datos en una colección. El tipo de datos no está limitado, al igual que el tipo de objeto almacenado en la Lista en Java.

    1) 、 Automático

image.png

image.png

image.png

image.png

El perfil de datos de prueba recién creado se ha aplicado a la columna leve_code

2) 、 Lista

image.png

image.png

image.png

No hay reglas para los datos (excepto para los tipos numéricos, también se pueden especificar algunos tipos de cadenas)

image.png

Si los datos tienen reglas

image.png

image.png

image.png

El perfil de datos de prueba recién creado se ha aplicado a la columna de acumulación

image.png

Como puede ver, los dos perfiles de datos de prueba recién creados

9. Trigger run para generar datos de prueba

image.png

image.png

image.png

Generado al 100%



Supongo que te gusta

Origin blog.51cto.com/51power/2540509
Recomendado
Clasificación