У нас есть несколько запросов Postgres, которые занимают 6-12 часов, и задаются вопросом, подходит ли Hadoop для этого быстрее. У нас есть (2) 64 ядра с 256 ГБ оперативной памяти, которые Hadoop мог бы использовать.Является ли Hadoop подходящим для этого?
Мы запускаем PostgreSQL 9.2.4. Postgres использует только одно ядро на одном сервере для запроса, поэтому мне интересно, сможет ли Hadoop сделать это примерно в 128 раз быстрее, минус накладные расходы.
У нас есть два набора данных, каждый из которых содержит миллионы строк.
Один набора:
id character varying(20), a_lat double precision, a_long double precision, b_lat double precision, b_long double precision, line_id character varying(20), type character varying(4), freq numeric(10,5)
Set Two:
a_lat double precision, a_long double precision, b_lat double precision, b_long double precision, type character varying(4), freq numeric(10,5)
У нас есть индексы на все латы, длинное, тип и полого FREQ, используя ВТКЕЙ. Обе таблицы имеют «VACUUM ANALYZE», выполняемые непосредственно перед запросом.
Запрос Postgres является:
SELECT
id
FROM
setone one
WHERE
not exists (
SELECT
'x'
FROM
settwo two
WHERE
two.a_lat >= one.a_lat - 0.000278 and
two.a_lat <= one.a_lat + 0.000278 and
two.a_long >= one.a_long - 0.000278 and
two.a_long <= one.a_long + 0.000278 and
two.b_lat >= one.b_lat - 0.000278 and
two.b_lat <= one.b_lat + 0.000278 and
two.b_long >= one.b_long - 0.000278 and
two.b_long <= one.b_long + 0.000278 and
(
two.type = one.type or
two.type = 'S'
) and
two.freq >= one.freq - 1.0 and
two.freq <= one.freq + 1.0
)
ORDER BY
line_id
Это тип вещь Hadoop может сделать? Если это так, вы можете указать мне в правильном направлении?
Много деталей, пропавших без вести, чтобы получить хороший ответ. Какая версия postgresql? Как выглядят ваши столы? Вы АНАЛИЗИРОВАЛИ их? Вы проиндексировали лат и долго? Вы смотрели PostGIS? Вы можете разделить запрос на логические единицы, которые могут работать параллельно? – bma
И почему бы вам просто не разделить запрос на сетки? Он выглядит очень географически ограниченным. Это должно быть меньше усилий, чем перенос всей системы на hadoop. –
Я обновил вопрос более подробно о версии Postgres, таблицах и индексах. Я постараюсь с PostGIS. Я не знаком с разбиением запроса на логические единицы. Можете ли вы объяснить об этом больше? – user1517922