Skip to content

Instantly share code, notes, and snippets.

@steklopod
Last active July 9, 2018 14:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save steklopod/07f91f4fbc8e1c7ff27efde1ab468290 to your computer and use it in GitHub Desktop.
Save steklopod/07f91f4fbc8e1c7ff27efde1ab468290 to your computer and use it in GitHub Desktop.
Postgres-gen_data
SET search_path TO ifd_test, test;
SHOW search_path;
CREATE SCHEMA IF NOT EXISTS test;
DROP TABLE IF EXISTS esb_out_a_report;
CREATE TABLE IF NOT EXISTS esb_out_a_report (
message_id SERIAL NOT NULL PRIMARY KEY,
operation_code INT DEFAULT NULL,
message_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
entity_id VARCHAR(250) DEFAULT NULL,
receiver_id INT DEFAULT NULL,
maintenance_flg INT NOT NULL,
business_data_int INT DEFAULT NULL,
business_data_varchar VARCHAR(250) DEFAULT NULL,
business_data_date DATE DEFAULT NULL
);
COMMENT ON COLUMN esb_out_a_report.message_id
IS 'Последовательная техническая нумерация сообщений. Генерируется автоматически на уровне DB (автоинкремент).';
COMMENT ON COLUMN esb_out_a_report.operation_code
IS 'Тип операции в системе-источнике, заполняется при наличии требований. Заполняется источником: 0 – Вставка, 1 – Обновление, 2 – Удаление';
COMMENT ON COLUMN esb_out_a_report.message_dt
IS 'Timestamp (дата и время) возникновения записи в таблице. Заполняется автоматически, используется для расследования инцидентов. Заполняется источником. Заполняется автоматически на уровне БД.';
COMMENT ON COLUMN esb_out_a_report.entity_id
IS 'ID сущности используемый в системе. Используется для расследования инцидентов. Заполняется на стороне источника. Для составного ключа используется разделитель «;».';
COMMENT ON COLUMN esb_out_a_report.receiver_id
IS 'Содержит дополнительный признак в случае повторных и корректирующих выгрузок, указывающий, какой из потоков является получателем этих сообщений:
null – все потоки являются получателем этого сообщения
UID потока – только поток с соответствующим UID должен осуществить доставку. Другие потоки игнорируют эти сообщения, прокручивая счетчик очереди соответствующим образом
При регламентной публикации сообщений: Система-источник заполняет поле значением null
При повторной выгрузке: Шина заполняет поле значением UID потока для которого предназначается выгрузка, либо null, если выгрузка предназначена всем получателям
При корректирующей выгрузке:
Система-источник заполняет поле значением UID потока, запросившего корректирующую выгрузку (поле receiver_id в таблице запроса корректирующей выгрузки).';
COMMENT ON COLUMN esb_out_a_report.maintenance_flg
IS 'Флаг с признаком корректирующей выгрузки.:
0 – Регламентная публикация пакетных данных
1 – Корректирующая выгрузка пакетных данных
Заполняется системой-источником';
COMMENT ON COLUMN esb_out_a_report.business_data_int
IS 'Бизнес данные в формате integer';
COMMENT ON COLUMN esb_out_a_report.business_data_varchar
IS 'Бизнес данные в формате varchar';
COMMENT ON COLUMN esb_out_a_report.business_data_date
IS 'Бизнес данные в формате date';
TRUNCATE TABLE esb_out_a_report; -- из ->
CREATE TEMPORARY SEQUENCE IF NOT EXISTS seq
START 1;
CREATE TEMPORARY SEQUENCE IF NOT EXISTS seq_2
INCREMENT BY 5
START 5;
INSERT INTO esb_out_a_report(message_id,
entity_id,
maintenance_flg,
operation_code,
receiver_id,
business_data_date,
message_dt,
business_data_int,
business_data_varchar)
SELECT seq,
CONCAT('id #', seq),
seq,
RANDOM() * 666,
NULL,
NOW(),
CURRENT_TIMESTAMP,
2147483647,
(SELECT MD5(RANDOM() :: TEXT))
FROM generate_series(1, 500) AS seq;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment