Hive - Загрузить данные в таблицу

Опубликовано: 18 Февраля, 2022

Таблицы Hive предоставляют нам схему для хранения данных в различных форматах (например, CSV). Hive предоставляет несколько способов добавления данных в таблицы. Мы можем использовать запросы DML (Data Manipulation Language) в Hive для импорта или добавления данных в таблицу. Также можно напрямую поместить таблицу в улей с помощью команд HDFS. Если у нас есть данные в реляционных базах данных, таких как MySQL, ORACLE, IBM DB2 и т. Д., Мы можем использовать Sqoop для эффективной передачи петабайт данных между Hadoop и Hive. В этом конкретном руководстве мы будем использовать запросы Hive DML для загрузки или ВСТАВКИ данных в таблицу Hive.

Чтобы выполнить описанную ниже операцию, убедитесь, что ваш улей работает. Ниже приведены инструкции по запуску куста в вашей локальной системе.

Шаг 1. Запустите все свои Hadoop Daemon

 start-dfs.sh # это запустит namenode, datanode и вторичный namenode
start-yarn.sh # это запустит диспетчер узлов и диспетчер ресурсов  
jps # Чтобы проверить запущенные демоны

Шаг 2. Запустите куст с терминала

 улей

В hive с операторами DML мы можем добавлять данные в таблицу Hive двумя разными способами .

  • Использование команды INSERT
  • Заявление о загрузке данных

1. Использование команды INSERT

Синтаксис:

 ВСТАВИТЬ В ТАБЛИЦУ <имя_таблицы> ЗНАЧЕНИЯ (<добавить значения в соответствии с сущностью столбца>);

Пример:

Чтобы вставить данные в таблицу, давайте создадим таблицу с именем ученик (по умолчанию куст использует свою базу данных по умолчанию для хранения таблиц улья) .

Команда:

 СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ student (
Student_Name STRING,
Student_Rollno INT,
Student_Marks FLOAT)
ФОРМАТ СТРОКИ УДАЛЕН
ПОЛЯ, ЗАКОНЧЕННЫЕ ','; 

Мы успешно создали таблицу студентов в базе данных по умолчанию Hive с атрибутами Student_Name , Student_Rollno и Student_Marks соответственно.

Теперь давайте вставим данные в эту таблицу с помощью запроса INSERT.

ВСТАВИТЬ запрос:

 ВСТАВИТЬ В ТАБЛИЦУ ученические ЦЕННОСТИ ('Дикшант', 1, '95 '), (' Акшат ', 2,' 96 '), (' Дхрув ', 3, '90');

Мы можем проверить данные таблицы студентов с помощью следующей команды.

 ВЫБРАТЬ * ОТ студента; 

2. Заявление о загрузке данных

Hive предоставляет нам возможность загружать предварительно созданные сущности таблиц либо из нашей локальной файловой системы, либо из HDFS. Оператор LOAD DATA используется для загрузки данных в таблицу куста.

Синтаксис:

 ЗАГРУЗИТЬ ДАННЫЕ [ЛОКАЛЬНЫЙ] INPATH '<Расположение данных таблицы>' [ПЕРЕЗАПИСАТЬ] В ТАБЛИЦУ <имя_таблицы>;

Примечание:

  • LOCAL Switch указывает что данные, которые мы загружаем, доступны в нашей локальной файловой системе. Если переключатель LOCAL не используется, куст будет рассматривать местоположение как местоположение пути HDFS.
  • Переключатель OVERWRITE позволяет нам перезаписывать данные таблицы.

Давайте создадим файл CSV (значения, разделенные запятыми) с именем data.csv, поскольку мы предоставили ',' в качестве признака конца поля при создании таблицы в кусте. Мы создаем этот файл в нашей локальной файловой системе по адресу / home / dikshant / Documents для демонстрационных целей.

Команда:

 cd / home / dikshant / Documents // Для смены каталога 
touch data.csv // используем для создания файла data.csv 
nano data.csv // nano - это редактор командной строки Linux для редактирования файлов 
cat data.csv // cat используется для просмотра содержимого файла

ЗАГРУЗИТЕ ДАННЫЕ в таблицу студенческого улья с помощью приведенной ниже команды.

 ЗАГРУЗИТЬ ДАННЫЕ ЛОКАЛЬНЫЙ INPATH '/home/dikshant/Documents/data.csv' В ТАБЛИЦУ ученик;

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

 ВЫБРАТЬ * ОТ студента;  

Мы видим, что мы успешно добавили данные в таблицу учеников.