Таблица – это логическое представление одного источника данных. Он состоит из логической схемы, разделов, 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 по количеству строк.