Интеграция SQL и умножение на огромный набор данныхPython

Программы на Python
Ответить
Anonymous
 Интеграция SQL и умножение на огромный набор данных

Сообщение Anonymous »

Я хотел бы найти эффективный метод умножения двух элементов массива на элемент, а затем интегрировать результат.
Моя таблица содержит первичный ключ, затем 5 списков реальных значений (16 бит): время, канал A, B, C и D. Каждый список содержит 2000 элементов.
Моя проблема в том, что я пробовал использовать функции на основе Python или SQL, например:

Код: Выделить всё

CREATE OR REPLACE FUNCTION trapezoid_mul_fast(
a float4[],
b float4[],
x float8[]
)
RETURNS float8
LANGUAGE SQL
IMMUTABLE
AS $$
SELECT SUM(
(x[i] - x[i-1]) * ((a[i]*b[i]) + (a[i-1]*b[i-1])) * 0.5
)
FROM generate_subscripts(a, 1) AS i
WHERE i > 1;
$$;
то (например)

Код: Выделить всё

 SELECT
id,
trapezoid_mul_fast(channel_a, channel_b, time_ns) AS int_ab
FROM my_table;
Но, к сожалению, это занимает слишком много времени. В идеале я хотел бы выполнить это на 300 миллионах строк и просто получить результат каждого интегрирования примерно за 24 часа. Может ли кто-нибудь сказать мне, в чем я ошибаюсь и возможно ли это вообще?

Подробнее здесь: https://stackoverflow.com/questions/798 ... ge-dataset
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»