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

标签 projection vertica

我在 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/

相关文章:

scala - 为什么我的透视图实现无法显示多维数据集的面孔?

java - Hibernate 忽略带有投影 beans 的链式 setter

以特定顺序发生的事件的 SQL 查询

vertica - 如何在 Vertica 中重命名表格和投影?

java - 使用 mongoTemplate 在嵌入式文档字段上进行 MongoDB 投影

mongodb - 如何使用官方的mongo-go-driver从mongo文档中过滤字段

database - 每行和/或列的字节数

运行isql时unixODBC给出错误[Vertica]

python - Vertica,描述表

java - 具有自定义集合属性的 JPA 投影