【spotfire】关于starrocks数据源信息链接的使用

文章目录

前言

starrocks在spotfire侧可以视为MySQL型的数据库,笔者在配置starrocks数据源的时候,在configuration工具里选择了启用所有 MySQL 相关的 data source template(包括 MySQL、MySQL5 等)

但在information designer里配置时,只有MySQL5这种方式连接上了SR数据库(原因未知,怀疑和configuration工具里的配置有关,没对比过。)

  1. MySQL 中,可使用形如 '2026-06-06' 的字符串作为条件查询 DATE 类型列,MySQL 会自动完成隐式类型转换。
  2. spotfire支持的时间格式大概率是形如'M/d/yyyy HH:mm:ss',这种格式的数据直接传给starrocks执行的话,是无法利用分区键的

利用MySQL隐式类型转化,使spotfire发起的SQL可以走分区

将spotfire信息

date类型分区键

对于date型的分区键,笔者猜测由于spotfire连接MySQL的数据库配置,

会做格式转换,抛给starrocks执行的sql里,会强制转换时间类型,数据库执行的sql形如:

这种格式也无法使用分区键。

可以将信息链接里该分区键格式改为string,然后参考如下表达式对待查时间进行按需设置

sql 复制代码
Year(DateAdd('dd',-3,DateTimeNow()))
& '-'
& right(String(Month(DateAdd('dd',-3,DateTimeNow())) + 100),2)
& '-'
& right(String(Day(DateAdd('dd',-3,DateTimeNow())) + 100),2)
& ' '
& right(String(Hour(DateTimeNow()) + 100),2)
& ':'
& right(String(MINUTE(DateTimeNow()) + 100),2)
& ':'
& right(String(SECOND(DateTimeNow()) + 100),2)

自动生成的分区表达式列

starrocks里bigint、date型的列作为分区列时,会有一个名为'__generated_partition_column_0'的实体列,spotfire里可以使用这一列进行按需加载设置,这么设置可以利用分区键,sql执行效率较高。

强制用户必须对某列进行按需设置才可以打开数据

方一:改信息链接SQL

sql 复制代码
d1.`date_timekey` = ?DATETIME  -- DATETIME类似变量名,可改为其他的,这么写只有一个条件

信息链接打开时,会提示必填项

-- 如何作为不传参的修改

方二:在information designer添加提示

单独为某一列添加提示,勾选强制性后为必填项