Визуализация данных, часть 12: конфигурация PowerDesigner для генерации десятков миллионов данных и генерации данных

вступление:

    На работе я столкнулся с необходимостью сделать тесты, поэтому подумал о написании пакетных вставок самостоятельно. Однако объем данных слишком велик, и пакетирование с помощью вставки слишком хлопотно.

Таблица фактов и определение таблицы измерений, а также данные испытаний:

    (1) Информационный бюллетень о медицинских доходах

создать таблицу project_cost_fact

(

  id int первичный ключ auto_increment,

  cost_direction_code VARCHAR (20) comment'код направления затрат ', 

  Hospital_code VARCHAR (20) comment'Код стационарной фиксированной точки ', 

  level_code VARCHAR (20) comment'Код больничного уровня ',

  time_code VARCHAR (10) комментарий 'временной код',

  доход_типа_код VARCHAR (32) комментарий 'Код категории дохода: 1. Амбулаторный доход 2. Доход от регистрации 3. Доход от диагностики 4. Доход от обследования 5. Доход от лабораторного обследования 6. Доход от лечения 7. Доход от хирургии 8. Доход от медицинских материалов 9. Доход от западной медицины 10. Доход от китайских лечебных трав11, доход от патентованной китайской медицины12, доход от платы за фармацевтические услуги13, доход от других амбулаторных услуг14, доход от госпитализации15, доход от койки16, доход от сестринского ухода17, доход от других госпитализаций ',

  заимствование VARCHAR (32) comment 'направление заимствования',

  начисление ДВОЙНОЙ комментарий 'Сумма', 

  всего ДВОЙНОЙ комментарий

)

    (2) Таблица измерения времени

СОЗДАТЬ ТАБЛИЦУ time_type (

  code VARCHAR (20) комментарий 'Временной код',

  год INT КОММЕНТАРИЙ'год ',

  year_name VARCHAR (20) comment'year name ',

  квартал INT КОММЕНТАРИЙ 'Квартал',

  Quarter_name VARCHAR (20) comment'Название квартала ',

  month INT КОММЕНТАРИЙ'month ',

  month_name VARCHAR (20) comment'month name ',

  create_time VARCHAR (20) comment'create time ')

вставить в значения time_type ('1', '2017', '2017', '1', 'первый квартал', '1', 'Январь', '2020-04-24 06:50:53') ;

вставить в значения time_type ('2', '2017', '2017', '1', 'первый квартал', '2', 'Февраль', '2020-04-24 06:50:53') ;

вставить в значения time_type ('3', '2017', '2017', '1', 'первый квартал', '3', 'March', '2020-04-24 06:50:53') ;

вставить в значения time_type ('4', '2017', '2017', '2', 'Q2', '4', 'April', '2020-04-24 06:50:53') ;

вставить в значения time_type ('5', '2017', '2017', '2', 'Q2', '5', 'May', '2020-04-24 06:50:53') ;

вставить в значения time_type ('6', '2017', '2017', '2', 'второй квартал', '6', 'июнь', '2020-04-24 06:50:53') ;

вставить в значения time_type ('7', '2017', '2017', '3', 'третий квартал', '7', 'July', '2020-04-24 06:50:53') ;

вставить в значения time_type ('8', '2017', '2017', '3', 'третий квартал', '8', 'August', '2020-04-24 06:50:53') ;

вставить в значения time_type ('9', '2017', '2017', '3', 'третий квартал', '9', 'September', '2020-04-24 06:50:53') ;

вставить в значения time_type ('10 ',' 2017 ',' 2017 ',' 4 ',' Q4 ',' 10 ',' October ',' 2020-04-24 06:50:53 ') ;

вставить в значения time_type ('11 ',' 2017 ',' 2017 ',' 4 ',' четвертый квартал ',' 11 ',' ноябрь ',' 2020-04-24 06:50:53 ' );

вставить в значения time_type ('12 ',' 2017 ',' 2017 ',' 4 ',' четвертый квартал ',' 12 ',' декабрь ',' 2020-04-24 06:50:53 ' );

вставить в значения time_type ('13 ',' 2018 ',' 2018 ',' 1 ',' первый квартал ',' 1 ',' Январь ',' 2020-04-24 06:50:53 ') ;

вставить в значения time_type ('14 ',' 2018 ',' 2018 ',' 1 ',' первый квартал ',' 2 ',' Февраль ',' 2020-04-24 06:50:53 ') ;

вставить в значения time_type ('15 ',' 2018 ',' 2018 ',' 1 ',' первый квартал ',' 3 ',' March ',' 2020-04-24 06:50:53 ') ;

вставить в значения time_type ('16 ',' 2018 ',' 2018 ',' 2 ',' второй квартал ',' 4 ',' April ',' 2020-04-24 06:50:53 ') ;

вставить в значения time_type ('17 ',' 2018 ',' 2018 ',' 2 ',' Q2 ',' 5 ',' May ',' 2020-04-24 06:50:53 ') ;

вставить в значения time_type ('18 ',' 2018 ',' 2018 ',' 2 ',' Q2 ',' 6 ',' June ',' 2020-04-24 06:50:53 ') ;

вставить в значения time_type ('19 ',' 2018 ',' 2018 ',' 3 ',' третий квартал ',' 7 ',' июль ',' 2020-04-24 06:50:53 ') ;

вставить в значения time_type ('20 ',' 2018 ',' 2018 ',' 3 ',' третий квартал ',' 8 ',' август ',' 2020-04-24 06:50:53 ') ;

вставить в значения time_type ('21 ',' 2018 ',' 2018 ',' 3 ',' третий квартал ',' 9 ',' сентябрь ',' 2020-04-24 06:50:53 ') ;

вставить в значения time_type ('22 ',' 2018 ',' 2018 ',' 4 ',' Q4 ',' 10 ',' October ',' 2020-04-24 06:50:53 ') ;

вставить в значения time_type ('23 ',' 2018 ',' 2018 ',' 4 ',' четвертый квартал ',' 11 ',' ноябрь ',' 2020-04-24 06:50:53 ' );

вставить в значения time_type ('24 ',' 2018 ',' 2018 ',' 4 ',' четвертый квартал ',' 12 ',' декабрь ',' 2020-04-24 06:50:53 ' );

вставить в значения time_type ('25 ',' 2019 ',' 2019 ',' 1 ',' первый квартал ',' 1 ',' Январь ',' 2020-04-24 06:50:53 ') ;

вставить в значения time_type ('26 ',' 2019 ',' 2019 ',' 1 ',' первый квартал ',' 2 ',' Февраль ',' 2020-04-24 06:50:53 ') ;

вставить в значения time_type ('27 ',' 2019 ',' 2019 ',' 1 ',' первый квартал ',' 3 ',' март ',' 2020-04-24 06:50:53 ') ;

вставить в значения time_type ('28 ',' 2019 ',' 2019 ',' 2 ',' Q2 ',' 4 ',' April ',' 2020-04-24 06:50:53 ') ;

вставить в значения time_type ('29 ',' 2019 ',' 2019 ',' 2 ',' Q2 ',' 5 ',' May ',' 2020-04-24 06:50:53 ') ;

вставить в значения time_type ('30 ',' 2019 ',' 2019 ',' 2 ',' Q2 ',' 6 ',' June ',' 2020-04-24 06:50:53 ') ;

вставить в значения time_type ('31 ',' 2019 ',' 2019 ',' 3 ',' третий квартал ',' 7 ',' июль ',' 2020-04-24 06:50:53 ') ;

вставить в значения time_type ('32 ',' 2019 ',' 2019 ',' 3 ',' третий квартал ',' 8 ',' август ',' 2020-04-24 06:50:53 ') ;

вставить в значения time_type ('33 ',' 2019 ',' 2019 ',' 3 ',' третий квартал ',' 9 ',' сентябрь ',' 2020-04-24 06:50:53 ') ;

вставить в значения time_type ('34 ',' 2019 ',' 2019 ',' 4 ',' Q4 ',' 10 ',' October ',' 2020-04-24 06:50:53 ') ;

вставить в значения time_type ('35 ',' 2019 ',' 2019 ',' 4 ',' четвертый квартал ',' 11 ',' ноябрь ',' 2020-04-24 06:50:53 ' );

вставить в значения time_type ('36 ',' 2019 ',' 2019 ',' 4 ',' четвертый квартал ',' 12 ',' декабрь ',' 2020-04-24 06:50:53 ' );

    (3) Таблица размеров больницы

создать стол больница (

id int первичный ключ auto_increment,

Hospital_code VARCHAR (20) комментарий 'код больницы', 

имя_больницы VARCHAR (20) comment'имя больницы ' 

)

вставить в значения больницы (код больницы, название больницы) ('6251088', '徐 水 ** 医院');

вставить в значения больницы (код_ больницы, название_ больницы) ('6250007', '徐 水 ** 医院');

вставить в значения больницы (код_больницы, название_больницы) ('6250009', '保定 ** 医院');

вставить в значения больницы (код_больницы, имя_больницы) ('6251035', '保定 **)');

вставить в значения больницы (код больницы, название больницы) ('6251001', '保定 ** 保定');

вставить в значения больницы (код_больницы, название_больницы) ('6251002', '保定 ** 医院');

вставить в значения больницы (код_ больницы, имя_ больницы) ('6251004', '保定 ** 院');

вставить в значения больницы (код больницы, название больницы) ('6251888', '徐 ** 医院');

вставить в значения больницы (код_больницы, название_больницы) ('6251005', '徐 水 ** 医院');

вставить в значения больницы (код больницы, название больницы) ('6258888', '徐 水 ** 医院');  

    (4) Размеры больничного уровня

СОЗДАТЬ ТАБЛИЦУ Hospital_level (

  level_code VARCHAR (20) comment'Код больничного уровня ',

  level_name VARCHAR (20) comment'Название больничного уровня ',

  create_time VARCHAR (20) комментарий 'время создания'

  )

вставить в значения Hospital_level ('1', 'больница третьего уровня', '2020-04-24 06:50:42');

вставить в значения Hospital_level ('2', 'больница второго уровня', '2020-04-24 06:50:42');

вставить в значения Hospital_level ('3', 'больница первого уровня', '2020-04-24 06:50:42');

вставить в значения Hospital_level ('4', 'Ниже первого уровня (медицинское сообщество)', '2020-04-24 06:50:42');

    (5) Таблица размеров отдела

создать таблицу office_type (

  id int первичный ключ auto_increment,

  office_code VARCHAR (32) комментарий 'Код отдела',

  office_name VARCHAR (32) comment'Название отдела '

)

вставить в office_type (office_code, office_name) значение ('1', '普 外科');

вставить в значение office_type (office_code, office_name) ('2', '骨 外科');

вставить в значение office_type (office_code, office_name) ('3', '心 内科');

вставить в значение office_type (office_code, office_name) ('4', '口腔科');

вставить в значение office_type (office_code, office_name) ('5', '消化科');

вставить в значение office_type (office_code, office_name) ('6', '肾 内科');

вставить в значение office_type (office_code, office_name) ('7', '眼科');

вставить в значение office_type (office_code, office_name) ('8', '免疫 科');

вставить в значение office_type (office_code, office_name) ('9', 'Инфекционное отделение');

вставить в значение office_type (office_code, office_name) ('10', '急诊 科');

вставить в значение office_type (office_code, office_name) ('11', '皮肤科');

вставить в значение office_type (office_code, office_name) ('12', '神经 内科');

вставить в значение office_type (office_code, office_name) ('13', 'неонатальная медицина');

вставить в значение office_type (office_code, office_name) ('14', '耳鼻喉科 科');

вставить в значение office_type (office_code, office_name) ('15', '呼吸 中心');

вставить в значение office_type (office_code, office_name) ('16', 'Гематологический онкологический центр');

    (6) Таблица аналитик статей затрат

создать таблицу project_type

(

id int первичный ключ auto_increment,

 project_code VARCHAR (32) comment'Код проекта затрат ',

 имя_проекта VARCHAR (32) comment'Cost project name '

)

вставить в значения project_type (project_code, project_name) ('1', '员 经费');

вставить в значения project_type (project_code, project_name) ('2', 'плата за санитарные материалы');

вставить в значения project_type (код_проекта, имя_проекта) ('3', '子')

вставить в значения project_type (project_code, project_name) ('4', 'амортизация основных средств');

вставить в значения project_type (project_code, project_name) ('5', 'амортизация нематериальных активов');

вставить в значения project_type (project_code, project_name) ('6', 'вывести фонд медицинского риска');

вставить в значения project_type (код_проекта, имя_проекта) ('7', 'прочие расходы');

вставить в значения project_type (project_code, project_name) ('8', '合计');

вставить в значения project_type (project_code, project_name) ('9', 'Доход отдела');

вставить в значения project_type (project_code, project_name) ('10 ',' доход-стоимость ');

вставить в значения project_type (project_code, project_name) ('11 ',' 床 日 成本 ');

вставить в значения project_type (project_code, project_name) ('12 ',' 诊 次 成本 ');

    (7) Таблица параметров категории дохода

создать таблицу yield_type (

id int первичный ключ auto_increment,

доход_типа_код VARCHAR (32) комментарий 'Код категории дохода: 1. Амбулаторный доход 2. Доход от регистрации 3. Доход от диагностики 4. Доход от обследования 5. Доход от лабораторного обследования 6. Доход от лечения 7. Доход от хирургии 8. Доход от медицинских материалов 9. Доход от западной медицины 10. Доход от китайских лечебных трав11, доход от патентованной китайской медицины12, доход от платы за фармацевтические услуги13, доход от других амбулаторных услуг14, доход от госпитализации15, доход от койки16, доход от сестринского ухода17, доход от других госпитализаций ',

Доход_типа_имя VARCHAR (32) comment'Название категории дохода: 1. Амбулаторный доход 2. Доход от регистрации 3. Доход от диагностики 4. Доход от обследования 5. Доход от лабораторного обследования 6. Доход от лечения 7. Доход от хирургии 8. Материальный доход от здравоохранения 9. Доход от западной медицины 10. Доход от китайских лечебных трав 11, доход от патентованных китайских лекарств 12, доход от платы за аптечные услуги 13, доход от других поликлиник 14, доход от госпитализации 15, доход от койки 16, доход от сестринского ухода 17, доход от других госпитализаций '

)  

вставить в значения типа дохода (код_типа_дохода, имя_типа_дохода) ('1', '门诊 收入');

вставить в значения типа дохода (код_типа_дохода, имя_типа_дохода) ('2', '挂号 收入');

вставить в значения типа дохода (код_типа_дохода, имя_типа_дохода) ('3', '诊察 收入');

вставить в значения типа дохода (код_типа_дохода, имя_типа_дохода) ('4', '检查 收入');

вставить в значения yield_type (код_типа_дохода, имя_типа_дохода) ('5', '化验 收入');

вставить в значения yield_type (код_типа_дохода, имя_типа_дохода) ('6', '治疗 收入');

вставить в значения типа дохода (код_типа_дохода, имя_типа_дохода) ('7', '手术 收入');

вставить в значения yield_type (код_типа_дохода, имя_типа_дохода) ('8', '卫生 材料 收入');

вставить в значения yield_type (код_типа_дохода, имя_типа_дохода) ('9', '西药 收入');

вставить в значения типа дохода (код_типа_дохода, имя_типа_дохода) ('10 ',' 中草药 收入 ');

вставить в значения типа дохода (код_типа_дохода, имя_типа_дохода) ('11 ',' 中成药 收入 ');

вставить в значения yield_type (код_типа_дохода, имя_типа_дохода) ('12 ',' доход от платы за фармацевтические услуги ');

вставить в значения типа дохода (код_типа_дохода, имя_типа_дохода) ('13 ',' 其他 门诊 收入 ');

вставить в значения типа дохода (код_типа_дохода, имя_типа_дохода) ('14 ',' 住院 收入 ');

вставить в значения типа дохода (код_типа_дохода, имя_типа_дохода) ('15 ',' 床位 收入 ');

вставить в значения типа дохода (код_типа_дохода, имя_типа_дохода) ('16 ',' 护理 收入 ');

вставить в значения типа дохода (код_типа_дохода, имя_типа_дохода) ('17 ',' 其他 住院 收入 ');

    (8) Таблица размеров направления затрат

создать таблицу cost_direction_type (

id int первичный ключ auto_increment,

cost_direction_code VARCHAR (20) comment'код направления затрат ', 

cost_direction_name VARCHAR (20) comment'Название направления затрат ' 

)

вставить в значения cost_direction_type (cost_direction_code, cost_direction_name) ('1', '医疗 收入');

вставить в значения cost_direction_type (cost_direction_code, cost_direction_name) ('2', 'Финансовый базовый доход от субсидии');

вставить в значения cost_direction_type (cost_direction_code, cost_direction_name) ('3', 'Доход от субсидии финансового проекта');

вставить в значения cost_direction_type (cost_direction_code, cost_direction_name) ('4', 'Доход от научно-образовательного проекта');

вставить в значения cost_direction_type (cost_direction_code, cost_direction_name) ('5', '其他 收入');

вставить в значения cost_direction_type (cost_direction_code, cost_direction_name) ('6', 'стоимость медицинского бизнеса');

вставить в значения cost_direction_type (cost_direction_code, cost_direction_name) ('7', 'Расходы на субсидию финансового проекта');

вставить в значения cost_direction_type (cost_direction_code, cost_direction_name) ('8', 'расходы на научные и образовательные проекты');

вставить в значения cost_direction_type (cost_direction_code, cost_direction_name) ('9', '管理 费用');

    Определение и данные таблицы фактов и таблицы измерений приведены выше. В начале этой статьи я также упомянул о поиске пакетной вставки. Вы можете подумать о количестве данных, которое слишком много и слишком много проблем. Этого также можно достичь с помощью программирования на psql, а мне лень писать хранимые процедуры.

Теперь поговорим о большом количестве данных, как рассчитать объем данных?

Предположим, вы хотите создать 10 000 записей для таблицы фактов. Этого должно быть почти достаточно, верно? ? ?

Общее количество записей = записи таблицы измерения времени * записи таблицы измерения больницы * записи таблицы измерения уровня больницы * записи измерения отдела * записи измерения элемента затрат * записи таблицы измерения категории дохода * записи таблицы измерения направления расходов *

Общее количество записей = 36 * 10 * 3 * 16 * 12 * 17 * 9 = 31726080


В PowerDesigner вроде бы есть функция создания тестовых данных, и работа удобна, и процесс реализации можно использовать повторно.Реализация такова:

1. Переверните таблицу в библиотеке.

image.png

image.png

image.png

2. Укажите пользователя для управления, не используйте его для других пользователей и обратите внимание на безопасность данных.

image.png

3. Укажите пользователя, а затем укажите, какие таблицы в этом пользователе будут использоваться (здесь я создал только 1 таблицу).

image.png

4. Импортированная структура таблицы выглядит следующим образом:

image.png

нота:

Идентификатор является первичным ключом и может быть увеличен самостоятельно, все равно.

В соответствии с потребностями вашего бизнеса создайте тестовые данные для указанного столбца. Здесь я выбираю строковый тип level_code и тип начисления DOUBLE для демонстрации. Остальные столбцы в таблице по умолчанию будут заполнены случайными строками.

5. Дважды щелкните представленную структуру таблицы.

image.png

6. Найдите вкладку «Столбцы», здесь все столбцы в таблице, перед каждым столбцом стоит порядковый номер, найдите столбец, который будет использоваться, дважды щелкните серийный номер перед ним: вот мой двухнедельный период - серийный номер 3 перед leve_code

image.png

image.png

7. Создайте новый файл профиля тестовых данных для столбца level_code.

image.png

8. Укажите сгенерированный тип данных:

Автоматически: представляет создание числовых данных, которые могут быть регулярной возрастающей последовательностью и случайным числом.

Список: для сгенерированных данных нет правил. Вы можете поместить эти данные в коллекцию. Тип данных не ограничен, как и тип Objct, хранящийся в списке в java.

    1) 、 Автоматический

image.png

image.png

image.png

image.png

Недавно созданный профиль тестовых данных был применен к столбцу leve_code

2) 、 Список

image.png

image.png

image.png

Для данных нет правил (кроме числовых типов, также можно указать некоторые строковые типы)

image.png

Если в данных есть правила

image.png

image.png

image.png

Недавно созданный профиль тестовых данных был применен к столбцу начисления.

image.png

Как видите, два недавно созданных профиля тестовых данных

9. Триггерный запуск для создания тестовых данных.

image.png

image.png

image.png

Создано на 100%



рекомендация

отblog.51cto.com/51power/2540509
рекомендация