Таблица — это логическое представление одного источника данных. Он состоит из логической схемы, разделов, URL и различных свойств. Таблицей Tajo может быть каталог в HDFS, отдельный файл, одна таблица HBase или таблица RDBMS.
Тахо поддерживает следующие два типа таблиц —
- внешний стол
- внутренний стол
Внешний стол
Внешняя таблица нуждается в свойстве местоположения при создании таблицы. Например, если ваши данные уже есть в виде файлов Text / JSON или таблицы HBase, вы можете зарегистрировать их как внешнюю таблицу Tajo.
Следующий запрос является примером создания внешней таблицы.
create external table sample(col1 int,col2 text,col3 int) location ‘hdfs://path/to/table';
Вот,
-
Внешнее ключевое слово — используется для создания внешней таблицы. Это помогает создать таблицу в указанном месте.
-
Образец относится к имени таблицы.
-
Местоположение — это каталог для HDFS, Amazon S3, HBase или локальной файловой системы. Чтобы назначить свойство местоположения для каталогов, используйте приведенные ниже примеры URI —
-
HDFS — hdfs: // localhost: порт / путь / к / таблице
-
Amazon S3 — s3: // имя корзины / таблица
-
локальная файловая система — файл: /// путь / к / таблице
-
Openstack Swift — swift: // имя корзины / таблица
-
Внешнее ключевое слово — используется для создания внешней таблицы. Это помогает создать таблицу в указанном месте.
Образец относится к имени таблицы.
Местоположение — это каталог для HDFS, Amazon S3, HBase или локальной файловой системы. Чтобы назначить свойство местоположения для каталогов, используйте приведенные ниже примеры URI —
HDFS — hdfs: // localhost: порт / путь / к / таблице
Amazon S3 — s3: // имя корзины / таблица
локальная файловая система — файл: /// путь / к / таблице
Openstack Swift — swift: // имя корзины / таблица
Свойства таблицы
Внешняя таблица имеет следующие свойства —
-
TimeZone — пользователи могут указать часовой пояс для чтения или записи таблицы.
-
Формат сжатия — используется для уменьшения размера данных. Например, текстовый / json-файл использует свойство compress.codec .
TimeZone — пользователи могут указать часовой пояс для чтения или записи таблицы.
Формат сжатия — используется для уменьшения размера данных. Например, текстовый / json-файл использует свойство compress.codec .
Внутренняя таблица
Внутренняя таблица также называется управляемой таблицей . Он создается в заранее определенном физическом месте, называемом табличным пространством.
Синтаксис
create table table1(col1 int,col2 text);
По умолчанию Tajo использует «tajo.warehouse.directory», расположенный в «conf / tajo-site.xml». Чтобы назначить новое местоположение для таблицы, вы можете использовать конфигурацию табличного пространства.
Табличное
Табличное пространство используется для определения местоположений в системе хранения. Поддерживается только для внутренних таблиц. Вы можете получить доступ к табличным пространствам по их именам. Каждое табличное пространство может использовать другой тип хранения. Если вы не укажете табличные пространства, Tajo использует табличное пространство по умолчанию в корневом каталоге.
Конфигурация табличного пространства
У вас есть «conf / tajo-site.xml.template» в Тахо. Скопируйте файл и переименуйте его в «storagesite.json» . Этот файл будет действовать как конфигурация для табличных пространств. Форматы данных Tajo используют следующую конфигурацию —
Конфигурация HDFS
$ vi conf/storage-site.json { "spaces": { "${tablespace_name}": { "uri": “hdfs://localhost:9000/path/to/Tajo" } } }
Конфигурация HBase
$ vi conf/storage-site.json { "spaces": { "${tablespace_name}": { "uri": “hbase:zk://quorum1:port,quorum2:port/" } } }
Конфигурация текстового файла
$ vi conf/storage-site.json { "spaces": { "${tablespace_name}": { “uri”: “hdfs://localhost:9000/path/to/Tajo” } } }
Создание табличного пространства
Доступ к записям внутренней таблицы Tajo возможен только из другой таблицы. Вы можете настроить его с табличным пространством.
Синтаксис
CREATE TABLE [IF NOT EXISTS] <table_name> [(column_list)] [TABLESPACE tablespace_name] [using <storage_type> [with (<key> = <value>, ...)]] [AS <select_statement>]
Вот,
-
ЕСЛИ НЕ СУЩЕСТВУЕТ — Это позволяет избежать ошибки, если эта же таблица еще не была создана.
-
TABLESPACE — это предложение используется для назначения имени табличного пространства.
-
Тип хранения — данные Tajo поддерживают такие форматы, как текст, JSON, HBase, Parquet, Sequencefile и ORC.
-
Оператор выбора AS — выберите записи из другой таблицы.
ЕСЛИ НЕ СУЩЕСТВУЕТ — Это позволяет избежать ошибки, если эта же таблица еще не была создана.
TABLESPACE — это предложение используется для назначения имени табличного пространства.
Тип хранения — данные Tajo поддерживают такие форматы, как текст, JSON, HBase, Parquet, Sequencefile и ORC.
Оператор выбора AS — выберите записи из другой таблицы.
Настроить табличное пространство
Запустите сервисы Hadoop и откройте файл «conf / storage-site.json» , затем добавьте следующие изменения:
$ vi conf/storage-site.json { "spaces": { “space1”: { "uri": “hdfs://localhost:9000/path/to/Tajo" } } }
Здесь Tajo будет ссылаться на данные из расположения HDFS, а space1 — это имя табличного пространства. Если вы не запускаете сервисы Hadoop, вы не можете зарегистрировать табличное пространство.
запрос
default> create table table1(num1 int,num2 text,num3 float) tablespace space1;
Приведенный выше запрос создает таблицу с именем «table1», а «space1» относится к имени табличного пространства.
Форматы данных
Тахо поддерживает форматы данных. Давайте подробно рассмотрим каждый из форматов.
Текст
Простой текстовый файл значений, разделенных символами, представляет собой набор табличных данных, состоящий из строк и столбцов. Каждая строка представляет собой текстовую строку.
Создание таблицы
default> create external table customer(id int,name text,address text,age int) using text with('text.delimiter'=',') location ‘file:/Users/workspace/Tajo/customers.csv’;
Здесь файл customer.csv относится к файлу значений, разделенных запятыми, который находится в каталоге установки Tajo.
Чтобы создать внутреннюю таблицу в текстовом формате, используйте следующий запрос —
default> create table customer(id int,name text,address text,age int) using text;
В приведенном выше запросе вы не назначили никакого табличного пространства, поэтому оно займет табличное пространство Tajo по умолчанию.
свойства
Формат текстового файла имеет следующие свойства —
-
text.delimiter — это символ-разделитель. По умолчанию ‘|’.
-
сжатие.кодек — это формат сжатия. По умолчанию он отключен. Вы можете изменить настройки, используя указанный алгоритм.
-
часовой пояс — таблица, используемая для чтения или записи.
-
text.error-толерантность.max-num — максимальное количество уровней допуска.
-
text.skip.headerlines — Количество строк заголовка на пропущенный.
-
text.serde — это свойство сериализации.
text.delimiter — это символ-разделитель. По умолчанию ‘|’.
сжатие.кодек — это формат сжатия. По умолчанию он отключен. Вы можете изменить настройки, используя указанный алгоритм.
часовой пояс — таблица, используемая для чтения или записи.
text.error-толерантность.max-num — максимальное количество уровней допуска.
text.skip.headerlines — Количество строк заголовка на пропущенный.
text.serde — это свойство сериализации.
JSON
Apache Tajo поддерживает формат JSON для запроса данных. Тахо рассматривает объект JSON как запись SQL. Один объект равен одной строке в таблице Tajo. Давайте рассмотрим «массив.json» следующим образом:
$ hdfs dfs -cat /json/array.json { "num1" : 10, "num2" : "simple json array", "num3" : 50.5 }
После создания этого файла переключитесь на оболочку Tajo и введите следующий запрос, чтобы создать таблицу в формате JSON.
запрос
default> create external table sample (num1 int,num2 text,num3 float) using json location ‘json/array.json’;
Всегда помните, что данные файла должны соответствовать схеме таблицы. В противном случае вы можете опустить имена столбцов и использовать *, который не требует списка столбцов.
Чтобы создать внутреннюю таблицу, используйте следующий запрос —
default> create table sample (num1 int,num2 text,num3 float) using json;
Паркет
Паркет — это столбчатый формат хранения. Tajo использует формат Parquet для легкого, быстрого и эффективного доступа.
Создание таблицы
Следующий запрос является примером для создания таблицы —
CREATE TABLE parquet (num1 int,num2 text,num3 float) USING PARQUET;
Формат файла паркета имеет следующие свойства —
-
parquet.block.size — размер группы строк, которая буферизуется в памяти.
-
parquet.page.size — размер страницы для сжатия.
-
parquet.compression — алгоритм сжатия, используемый для сжатия страниц.
-
parquet.enable.dictionary — логическое значение для включения / выключения кодирования словаря.
parquet.block.size — размер группы строк, которая буферизуется в памяти.
parquet.page.size — размер страницы для сжатия.
parquet.compression — алгоритм сжатия, используемый для сжатия страниц.
parquet.enable.dictionary — логическое значение для включения / выключения кодирования словаря.
файл_конфигурации
RCFile — это файл записи столбца. Он состоит из двоичных пар ключ / значение.
Создание таблицы
Следующий запрос является примером для создания таблицы —
CREATE TABLE Record(num1 int,num2 text,num3 float) USING RCFILE;
RCFile имеет следующие свойства —
-
rcfile.serde — пользовательский класс десериализатора.
-
сжатие.кодек — алгоритм сжатия.
-
rcfile.null — NULL символ.
rcfile.serde — пользовательский класс десериализатора.
сжатие.кодек — алгоритм сжатия.
rcfile.null — NULL символ.
SequenceFile
SequenceFile — это основной формат файла в Hadoop, который состоит из пар ключ / значение.
Создание таблицы
Следующий запрос является примером для создания таблицы —
CREATE TABLE seq(num1 int,num2 text,num3 float) USING sequencefile;
Этот файл последовательности имеет совместимость с Hive. Это может быть написано в Улей, как,
CREATE TABLE table1 (id int, name string, score float, type string) STORED AS sequencefile;
ORC
ORC (Оптимизированный столбец строк) — это формат хранения столбцов из Hive.
Создание таблицы
Следующий запрос является примером для создания таблицы —
CREATE TABLE optimized(num1 int,num2 text,num3 float) USING ORC;
Формат ORC имеет следующие свойства —
orc.max.merge.distance — файл ORC читается, он сливается при уменьшении расстояния.
orc.stripe.size — это размер каждой полосы.
orc.buffer.size — по умолчанию 256 КБ.
orc.rowindex.stride — это шаг индекса ORC по количеству строк.