2016-08-08 9 views
0

Каков эффективный способ экспорта данных из таблицы hive/impala с условиями в файл (данные будут огромными, близкими к 10 ГБ)? Формат таблицы улей - пакет с мгновенным сжатием, а файл - csv.Экспортировать данные из таблицы hive/impala с несколькими условиями в файл

таблицы разбивается ежедневно и должны быть извлечены на ежедневной основе данных, я хотел бы знать, если

1) Imapala подхода

импала-оболочка -k -i имя_сервера: PORTNAME -B - д 'выберите * из таблицы, где Год_Месяц_Дата = $$$$$$$$' -o имя_файла '--output_delimiter = \ 001'

2) улей подход

Вставка переписывает каталог '/ путь' выберите * из таблицы, где year_month_date = $$$$$$$$

будет эффективным

+1

Добавить информацию: 1. формат файла таблицы hive 2. Формат файла экспортируемого файла –

ответ

1

Пожалуйста, попробуйте использовать Dynamic Разметка для таблицы Hive/Impala эффективно экспортировать данные условно.

Partition вашей таблица со столбцами интереса и на основе ваших запросов для достижения наилучших результатов

Шага 1: Создать временную улую Таблицу TmpTable и загружать исходные данные в него

Шаг 2: Набор улей параметров для поддержки динамического раздела

SET hive.exec.dynamic.partition.mode=non-strict; 
SET hive.exec.dynamic.partition=true; 

Шаг 3: Создать ваш главный улей таблицу со столбцами разделов, например:

CREATE TABLE employee (
emp_id int, 
emp_name string 
PARTITIONED BY (location string) 
STORED AS PARQUET; 

Шаг 4: Загрузка данных из временной таблицы в вашей таблице сотрудников (основная таблица)

insert overwrite table employee partition(location) 
select emp_id,emp_name, location from TmpTable; 

Шаг 5: экспортировать данные с улья с условием

INSERT OVERWRITE DIRECTORY '/path/to/output/dir' SELECT * FROM employee WHERE location='CALIFORNIA'; 

См. эту ссылку:

Dynamic Partition Concept

Надеюсь, это полезно.

+0

Спасибо, Адди, извините, я не дал полного требования. Я просто обновил вопрос с подробностями о разделе. Пожалуйста, взгляните и оцените свой ответ –

1

Предполагая, что таблица tbl как ваш улей паркетной стол и condition в качестве условия фильтра.

CTAS Команда:

CREATE TABLE tbl_text ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '/tmp/data' AS select * from tbl where condition; 

Вы найдете текстовый файл CSV (разграничены '') на /tmp/data в HDFS.

Вы можете получить этот файл в локальной файловой системе, при необходимости с помощью:

hadoop fs -get /tmp/data 
+0

Спасибо dev, Извините, мне не дано общее требование. Я просто обновил вопрос с подробностями о разделе. Пожалуйста, взгляните и оцените свой ответ. –

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

  • Нет связанных вопросов^_^