2016-06-23 6 views
0

Мне нужно переместить большой объем данных из базы данных Oracle в Hadoop без подключения двух систем. Возможно ли экспортировать данные из Oracle через Sqoop непосредственно в локальную файловую систему без импорта в HDFS. Я хотел бы экспортировать в ORC, а затем просто переместить файлы через внешние диски в кластер Hadoop.Экспорт из RDBMS в Hadoop Совместимый формат

ответ

1

Вы не можете использовать SQOOP в своем случае. SQOOP работает в hadoop и использует JDBC для соединения с БД. Если узлы hadoop не могут подключиться к серверу БД, вы не сможете его использовать.

ORC - очень специфический формат, используемый Hive, вам нужно будет найти, как использовать библиотеки hive для создания файлов ORC за пределами кластеров хаоса, если это возможно.

По вашим ограничениям я предлагаю экспортировать БД с использованием возможностей дампа DB в CSV-файл, сжать файл и затем скопировать его в HDFS.

Если вы планируете использовать Hive, вы можете LOAD текстовый файл в таблицу, предназначенную для хранения данных с помощью ORC.

+0

Я согласен с предложением избегать ORC-CSV, TSV или другого общего нейтрального формата, который ваша база данных Oracle может создавать для промежуточных файлов, упростит возможную загрузку в Hadoop, после чего вы сможете использовать любой подходящий формат Hadoop. –

+0

Единственная проблема с форматами CSV - это могут быть линейные каналы в данных, и мы пытаемся сохранить данные точно так, как они есть. Я могу застрять в использовании xml, но я действительно не хочу из-за его размера. – Shawn

+0

Вы можете использовать различные строки в CSV, например, «|», «@@», «^ A» или что-то другое и то же самое для разделителя столбцов. Проблема состоит в том, что не все компоненты в инструментах DBO и DB dunps позволяют вам указывать эти параметры, и вам потребуется реализовать свой собственный сценарий/читатель. В улье вы можете указать оба параметра при создании таблицы. – RojoSam

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