时间戳是主键

Timestamp Primary key Kudu

我正在尝试通过信封将数据加载到 Kudu table。 主键列之一是时间戳。 动态链接库: 创建 TABLE BAL ( client_id 整数 bal_id 整数, effective_time 时间戳, prsn_id 整数, bal_amount 双倍, prsn_name 字符串, 主键(client_id、bal_id、effective_time) ) 哈希分区 (client_id) 分区 8 存储为 KUDU;

但是报错Java.lang.illelegalArgumentException

所以我的问题很简单 - timestamp 列是否可以作为主键的一部分??

是的,将时间戳作为主键的一部分是完全可以的。 请找代码:

use ${var:db_name};
CREATE TABLE test (
  table_name STRING NOT NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
  table_id BIGINT NOT NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
  last_read_timestamp TIMESTAMP NOT NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
  window STRING NOT NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
  ext_gen_timestamp timestamp NOT NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
  extract_date timestamp NOT NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
  manual_rerun STRING NULL ENCODING AUTO_ENCODING COMPRESSION DEFAULT_COMPRESSION,
  PRIMARY KEY (table_name, table_id, last_read_timestamp)
)
STORED AS KUDU;

*