多值列函数咨询

Viewed 37

您好 ,
我们非常希望doris拥有any \ match \ equals 函数,请问有没有?

value 的数据是, "123,ab,32"
any是, select any(value , '123,ab2') from base_metadata , 任意一个,true。
match是,select match是(value , 'ab2,ba2') from base_metadata , 子集,false。
equals,select equals(value , '32,123,ab') from base_metadata , 等于,true。

CREATE TABLE
  `base_metadata` (
    `id` bigint(20) NOT NULL COMMENT '主键',
    `gmt_create` datetime NULL COMMENT '创建时间',
    `gmt_modified` datetime NULL COMMENT '修改时间',
    `value` text NULL COMMENT 'value'
  ) ENGINE = OLAP UNIQUE KEY(`id`) COMMENT '数据字典' DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES (
    "replication_allocation" = "tag.location.default: 3",
    "is_being_synced" = "false",
    "storage_format" = "V2",
    "enable_unique_key_merge_on_write" = "true",
    "light_schema_change" = "true",
    "disable_auto_compaction" = "false",
    "enable_single_replica_compaction" = "false"
  );
3 Answers

具体可以查阅官方文档函数章节:image.png
如果当前原生不支持,可以考虑通过自定义函数实现。

描述没有看的特别明白,如果是对于行内进行匹配的话,你的场景似乎可以考虑导入的时候预先拆分成Array,提升灵活性。或者通过正则来解决

目前是自己实现udf 做的 , udf split varchar没有索引。
性能目前压测,所以来问一下有没有更好的解决方案。