2016-09-10 2 views
0

Есть ли способ, чтобы PXF выбирал только столбец, используемый в запросе, кроме фильтрации разделов Hive.PXF Hive Plugin, чтобы выбрать только столбцы, выбранные в запросе

У меня есть данные, хранящиеся в формате Hive-ORC и использующие внешнюю таблицу pxf для выполнения запросов в HAWQ. Самые большие таблицы хранятся в Hive, и мы не можем сделать другую копию данных в HAWQ.

Thanks--

P.S - Собирает ли оптимизатор запросов статистику на внешних таблиц в HAWQ 2.0?

ответ

2

Вы всегда можете запустить запрос типа select foo from bar на внешних таблицах в HAWQ. Однако, если ваш вопрос заключается в том, действительно ли PXF выполняет проецирование столбцов, чтобы избежать чтения всех столбцов, тогда ответ будет No. В настоящее время PXF будет читать все столбцы из файла ORC и возвращать записи в HAWQ, который затем выполняет фильтрацию проекции на своем конце. Тем не менее, https://issues.apache.org/jira/browse/HAWQ-583, активно разрабатывается и должен быть выпущен в предстоящей версии HAWQ, которая будет вызывать прогнозы столбцов до ORC, чтобы улучшить производительность чтения файлов ORC.

Да, оптимизатор запросов собирает статистику по внешним таблицам, это также обрабатывается PXF. Тем не менее, это только для некоторых источников данных: https://issues.apache.org/jira/browse/HAWQ-44

+0

Одним из возможных вариантов работы столбчатой ​​функциональности было бы использовать что-то вроде gplink для «объединения» запроса непосредственно в Hive. Хотя проекция будет происходить во время чтения, вы потеряете преимущества параллелизма узлов данных, предлагаемого PXF. Для широкой таблицы ORC это может быть полезным компромиссом, но это зависит исключительно от ширины столбца и столбца. –

Смежные вопросы