如何PARTITION_BY列表中的多个列名?

时间:2016-08-05 04:02:08

标签: snappydata

本文档说明:

http://snappydatainc.github.io/snappydata/rowAndColumnTables/

"使用PARTITION_BY {COLUMN}子句提供一组列名称,用于确定分区"

我希望以下列成为分区键: id _ 时间_

CREATE TABLE EXAMPLE_COLUMN_TABLE (     id_ VARCHAR(64),    name_ VARCHAR(128),     time_ TIMESTAMP,    number_ INTEGER     ) USING column  OPTIONS(PARTITION_BY 'time_, id_', buckets '113', PERSISTENT 'ASYNCHRONOUS');

当我运行它时,它表示一切正常,但是,如果我执行 snappy> describe example_column_table ,则time_和id_仍显示为IS_NULLABLE = YES。

如果我只做PARTIION_BY'时间_',然后执行 snappy>描述example_column_table ,该列显示为IS_NULLABLE = NO。

那么,我担心多列名称分区不起作用?

1 个答案:

答案 0 :(得分:1)

即使您指定了多个分区列,列表分区也能正常工作。您可以通过查询计划验证是否将两个列都选为分区列。

IS_NULLABLE问题特定于CLOB(VARCHAR)列类型。你可以试试下面的DDL,其中第二个分区列number_不是CLOB,它也变成了IS_NULLABLE - > NO

活泼> CREATE TABLE EXAMPLE_COLUMN_TABLE2(id_ VARCHAR(64),name_ VARCHAR(128),time_ TIMESTAMP,number_ INTEGER)使用列OPTIONS(PARTITION_BY'time_,number_',buckets'113',PERSISTENT'ASYNCHRONOUS');