Ошибка создания иерархической разделенной таблицы Vertica - PullRequest
0 голосов
/ 08 марта 2019


Я использую аналитическую базу данных Vertica v8.1.1-8 .
Я создал таблицу с простым предложением разделения:

CREATE TABLE public.test
(
    id timestamp NOT NULL,
    cid numeric(37,15) NOT NULL DEFAULT 0
) 
UNSEGMENTED ALL NODES PARTITION BY id::DATE;

Таблица успешно создана, и я вставил в нее несколько строк.Но когда я выполняю следующий SQL,

SELECT DUMP_PARTITION_KEYS();

я вижу следующее:

Partition keys on node v_public_node0001
  Projection 'test_super'
   No of partition keys: 0

 Partition keys on node v_public_node0003
  Projection 'test_super'
   No of partition keys: 0

Я ожидал, что должны быть какие-то действительные "ключи раздела".
Таким образом, интересно, пропустил ли я здесь какой-либо шаг?

Как проверить, что моя таблица действительно "разбита на разделы"?

2) Затем я попытался "Иерархическое разделение" с мета CALENDAR_HIERARCHY_DAY-функция, чтобы использовать группировку разделов.Но само создание таблицы времени не удалось.

CREATE TABLE public.test
(
    id timestamp NOT NULL,
    cid numeric(37,15) NOT NULL DEFAULT 0
) 
UNSEGMENTED ALL NODES PARTITION BY id::DATE 
 GROUP BY CALENDAR_HIERARCHY_DAY(id::DATE, 2, 2);

со следующей ошибкой:

16:45:14  [CREATE - 0 rows, 0.130 secs]  [Code: 4856, SQL State: 42601]  [Vertica][VJDBC](4856) ERROR: Syntax error at or near "GROUP"
... 1 statement(s) executed, 0 rows affected, exec/fetch time: 0.130/0.000 sec  [0 successful, 1 errors]

Может кто-нибудь pls.подсказать что я не так сделал?
Моя цель - создать таблицу с иерархическим разделением.

Заранее большое спасибо,
- Kuntal

1 Ответ

1 голос
/ 08 марта 2019

1) Причина, по которой вы не видите ключи раздела сразу после вставки, заключается в том, что разбиение происходит только на диске (для узла, для проекции).Когда вы вставляете строки в таблицу, эти строки записываются в Write-optimized-store (WOS) или в память другими словами.По истечении заданного интервала данные в памяти (WOS) записываются на диск или в оптимизированное для чтения хранилище (ROS).В этот момент вы увидите ключи раздела.

Процесс копирования данных из WOS в ROS выполняется движком кортежа (https://www.vertica.com/docs/latest/HTML/Content/Authoring/Glossary/TupleMover.htm).

Короче говоря, чтобы увидеть ключи раздела,Либо подождите 5 минут или около того, чтобы движок кортежей запустил автоматический moveout, или вы можете принудительно записать данные из WOS в ROS, выполнив руководство moveout.

SELECT DO_TM_TASK('moveout', 'public.test');

Затем вам следуетсм. ключи.

2) Иерархическое разбиение - это функция Vertica 9.Чтобы использовать эту функцию, вам нужно будет обновить хотя бы до Vertica 9.0.

https://www.vertica.com/blog/whats-new-vertica-9-0-hierarchical-partitioning/

...