В памяти Postgresql Python для Redshift - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть несколько сложных вычислений, которые необходимо выполнить над моей таблицей фактов кластера Redshift.Пример a = (b+c)*(d/e) (Позволяет вызывать a как канал).
Я создаю запрос для приведенной выше формулы динамически в моем коде Python, например ((select sum(a).. + select avg(c)) * (select avg(d).. / select avg(e))), запускаю его в Redshift, и вывод снова вставляется в ту же таблицу Redshift, что иновая запись.
Для вычисления в среднем одного a Я выполняю этот запрос 100 раз, в Redshift запускается 100 запросов, чтобы создать 100 новых записей для a.В то время как я выполняю нагрузочное тестирование, я обнаружил, что это занимает слишком много времени, если у меня есть больше расчетов, таких как a.Для расчета 150 каналов у меня ушло около 2 часов.Я думаю, чтобы интегрировать в память postgresql.Пока я искал в Интернете, я нашел два решения для этого

  • testing.postgresql
  • Pyembedpg

Вопросы:

  • Пробовал ли какой-либо орган какое-либо из двух вышеупомянутых решений специально для Redshift, причина того, что я задал этот вопрос, лежит в моей таблице. У меня есть столбец с точностью 19,5 (точность является одной из основных проблем здесь), поэтому я хочузнаете, поддерживается ли он в каком-либо из двух вышеперечисленных инструментов, чтобы я мог перенести данные в память и выполнить вычисления для ускорения процесса?
  • Будет ли реализация этого решения действительно полезной?Ускорит ли это весь процесс?
  • О чем нужно помнить или о чем нужно подумать перед внедрением этого решения (Каковы плюсы и минусы)?
  • Какой из них лучше /безопаснее в использовании?

Я новичок в программировании на Python и его среде.Было бы здорово, если бы кто-то мог помочь мне понять это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...