Мне нужно сгенерировать около миллиона случайных поездок между 40К пунктов назначения.Каждый пункт назначения имеет свой собственный вес (total_probability
), чем он больше, тем больше поездок должно начинаться или заканчиваться в этом месте.
Либо поездки должны генерироваться случайным образом, но пункты назначения (начальная и конечная точки)должны быть взвешены по вероятности, или можно просто предварительно рассчитать точное количество поездок (разделить каждый вес на сумму весов, умножить на 1M и округлить до целых чисел).
Проблема в том, как сделать это в PostgreSQL без генерации таблицы 40K * 40K со всеми парами получателей.
Table "public.dests"
Column | Type | Modifiers
-------------------+------------------+-----------
id | integer |
total_probability | double precision |
Table "public.trips"
Column | Type | Modifiers
------------+------------------+-----------
from_id | integer |
to_id | integer |
trips_num | integer |
...
some other metrics...
Первичный ключ для поездок - (from_id, to_id) Должен ли я генерировать таблицус 1M записей, а затем обновлять его итеративно, или цикл for с 1M вставками будет достаточно быстрым?Я работаю на 2-ядерном легком ноутбуке.
PS Я сдался и сделал это на Python.Чтобы выполнить набор запросов и преобразование в Python, я буду запускать сценарии SQL из Python, а не из сценария оболочки.Спасибо за предложения!