投影列编码
创建表及其投影后,可以调用 ALTER TABLE...ALTER COLUMN 来设置或更改一个或多个投影中现有列的编码类型。例如:
ALTER TABLE store.store_dimension ALTER COLUMN store_region
ENCODING rle PROJECTIONS (store.store_dimension_p1_b0, store.store_dimension_p2);
在此示例中,ALTER TABLE 语句指定对两个投影的 store_region
列设置 RLE 编码: store_dimension_p1_b0
和 store_dimension_p2
。PROJECTIONS
列表分别通过投影名称和基本名称引用这两个投影。可以通过任意一种方式引用投影;在这两种情况下,更改都会传播到投影的所有伙伴实例并相应地存储在其 DDL 中:
=> select export_objects('','store.store_dimension');
export_objects
------------------------------------------------------------------
CREATE TABLE store.store_dimension
(
store_key int NOT NULL,
store_name varchar(64),
store_number int,
store_address varchar(256),
store_city varchar(64),
store_state char(2),
store_region varchar(64)
);
CREATE PROJECTION store.store_dimension_p1
(
store_key,
store_name,
store_number,
store_address,
store_city,
store_state,
store_region ENCODING RLE
)
AS
SELECT store_dimension.store_key,
store_dimension.store_name,
store_dimension.store_number,
store_dimension.store_address,
store_dimension.store_city,
store_dimension.store_state,
store_dimension.store_region
FROM store.store_dimension
ORDER BY store_dimension.store_key
SEGMENTED BY hash(store_dimension.store_key) ALL NODES KSAFE 1;
CREATE PROJECTION store.store_dimension_p2
(
store_key,
store_name,
store_number,
store_address,
store_city,
store_state,
store_region ENCODING RLE
)
AS
SELECT ...