Учебники

Apache Tajo — Управление таблицами

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