gpt4 book ai didi

projection - 添加列对vertica DB中超投影的影响

转载 作者:行者123 更新时间:2023-12-02 04:29:39 25 4
gpt4 key购买 nike

我在 vertica DB 中有一个概念性问题。如果我在 vertica 中创建一个表“abc”,其中列 a、b、c 按 a、b 排序,它将自动为其创建一个 super 投影。现在,如果我更改表“abc”并向其添加列“d”,它将创建一个新的 super 投影。问题是,“a,b 的顺序”会在这个新的 super 投影中受到影响吗? vertica 在新的 super 投影中会保留这个顺序吗?另外,它还会包含此顺序的“d”列吗?默认行为是什么?

最佳答案

Will vertica retain this order by in the new superprojection?

它将保留初始 CREATE TABLE 语句中指定的顺序。

Also, will it also include the column 'd' to this order by?

Vertica 只会向 super 投影添加新列(这是默认行为)。

浏览

让我们创建表并添加数据:

CREATE TABLE public.abc (
a int,
b int,
c int
) ORDER BY a, b;

INSERT INTO public.abc (a, b, c) VALUES (1, 2, 3);

向表格添加数据时会自动添加 super 投影:

CREATE PROJECTION public.abc /*+createtype(P)*/
(
a,
b,
c
)
AS
SELECT abc.a,
abc.b,
abc.c
FROM public.abc
ORDER BY abc.a,
abc.b
SEGMENTED BY hash(abc.a, abc.b, abc.c) ALL NODES KSAFE 1;

让我们向表中添加一个新列:

 ALTER TABLE public.abc ADD COLUMN d int;

新列添加到任何 super 投影中的投影列和表列(不在 ORDER BY 中):

CREATE PROJECTION public.abc /*+createtype(P)*/
(
a,
b,
c,
d -- Added here
)
AS
SELECT abc.a,
abc.b,
abc.c,
abc.d -- Added here
FROM public.abc
ORDER BY abc.a,
abc.b
SEGMENTED BY hash(abc.a, abc.b, abc.c) ALL NODES KSAFE 1;

关于projection - 添加列对vertica DB中超投影的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24200498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com