Создание внешней таблицы Hive
Понимание внешних таблиц Hive
В Hive внешняя таблица - это таблица, которая ссылается на данные, хранящиеся в внешнем месте, например, в HDFS. В отличие от внутренних таблиц, которые хранят данные в метахранилище Hive, внешние таблицы просто предоставляют способ доступа к данным, хранящимся в другом месте.
Создание внешней таблицы Hive
Для создания внешней таблицы Hive можно использовать следующий SQL-запрос:
CREATE EXTERNAL TABLE IF NOT EXISTS table_name (
col1 data_type,
col2 data_type,
...
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/path/to/hdfs/directory';
Разберем разные части этого запроса:
CREATE EXTERNAL TABLE IF NOT EXISTS table_name
: Этот запрос создает новую внешнюю таблицу с указанным именем или пропускает создание, если таблица уже существует.
(col1 data_type, col2 data_type, ...)
: Здесь определяются столбцы таблицы вместе с их типами данных.
ROW FORMAT DELIMITED
: Этот параметр указывает, что данные во внешнем хранилище разделены определенным символом.
FIELDS TERMINATED BY ','
: Этот параметр устанавливает разделитель полей в виде запятой.
STORED AS TEXTFILE
: Этот параметр сообщает Hive, что данные хранятся в текстовом формате.
LOCATION '/path/to/hdfs/directory'
: Этот параметр указывает каталог HDFS, где хранятся данные.
Пример: Создание внешней таблицы Hive
Предположим, что у вас есть CSV-файл, хранящийся в HDFS по пути /user/hive/data/sales.csv
. Вы можете создать внешнюю таблицу Hive следующим образом:
CREATE EXTERNAL TABLE IF NOT EXISTS sales (
product STRING,
quantity INT,
price DOUBLE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/user/hive/data/sales.csv';
Этот запрос создает внешнюю таблицу Hive с именем sales
с тремя столбцами: product
, quantity
и price
. Ожидается, что данные будут в формате CSV, с полями, разделенными запятыми.