числами (хочу протестировать чарты).
Допустим, есть 32 автомобиля. Каждый автомобиль каждый час передает числа в бд. Выглядит примерно так:
id (guid), car_id (guid), date_time (timestamp), magic (jsonb)
someId1, carOneId, 2022-01-01T00:00:00, {key1: 1, key2: 2}
someId2, carOneId, 2022-01-01T01:00:00, {key1: 1, key2: 2}
someId3, carOneId, 2022-01-01T02:00:00, {key1: 1, key2: 2}
...
someId24, carOneId, 2022-01-01T23:00:00, {key1: 1, key2: 2}
И так по каждой машине. Я написал простенький скрипт, который генерирует мне INSERT. На локалхосте вставка данных для 1 авто за 2 дня длится 20 секунд (одной транзакцией).
Как мне лучше нагенерить данных для 24 авто на целый год (365 дней, каждый час в дне) ? Спасибо!
посмотрите в сторону generate_series() upd. и random()
спасибо, смотрел я на них. Пока не помогло. ДУмаю, может как-то из csv или json файла можно данные импортировтаь быстрее
Вы решение ищите уже больше чем ваш текущий скрипт будет работать
61 минута будет нужна вашему скрипту
это непростительно много ))))
Вам это нужно сделать один раз, ускорять дольше
надо не смотреть, а пробовать
А что-нибудь типа такого не подойдет? WITH cars as ( select a.a, uuid_generate_v4() id from generate_series(1, 32) a ), params as ( select a.id as car_id, t.t as date_time from cars as a cross join generate_series('2022-05-09 00:00:00'::timestamp, '2022-05-11 00:00:00'::timestamp, interval '1 hour') t ) INSERT INTO my_table (id, car_id, date_time, magic) SELECT uuid_generate_v4() as id, p.car_id, p.date_time, jsonb_build_object('key1', (random()*50)::int, 'key2', (random()*50)::int) as magic FROM params as p
Обсуждают сегодня