让决策更智能
新一代智能数据分析平台

高性能数据集&ClickHouse语法注意事项

观小数发表于:2021年08月18日 17:56:14更新于:2021年08月21日 16:10:54

背景介绍 :

高性能数据集的语法是引用ClickHouse语法的,所以如果是从普通数据集切换成高性能数据集后,某些卡片容易报错,本文档将针对spark语法和ClickHouse语法的不同点,持续更新实际使用过程中遇到的“坑”。

1、to_date 函数和 toDate()函数

to_date 函数是spark的语法,具体的写法及注意事项参考:to_date() 的正确使用方法to_date()函数使用时需注意大小写

toDate()函数是ClickHouse的语法,且这个函数对大小写敏感,比如写成todate()就会报错,写法参考:

toDate([日期],'yyyy-MM-dd')


2、注意单引号和双引号的使用

spark里习惯使用英文双引号来引用字符串,单引号也是兼容的,但是ClickHouse里需要严格使用英文状态下的单引号(''),不然会报错。


3、高性能数据集&ClickHouse行权限的设置,语法如下:

has(cast(splitByChar(',',[CURRENT_USER.所在地区1]), 'Array(Nullable(String))') ,[省份])>0

具体语法可参考:高性能数据集行权限设置


4、dateDiff函数的使用:

datediff函数在spark里只需要两个参数------终止日期字段和起始日期字段,如datediff([离职日期], [入职日期]),返回同一行中"离职日期"至"入职日期"的间隔天数;

dateDiff函数在ClickHhouse里需要3个或者4个参数:

dateDiff('unit', startdate, enddate, [timezone])

支持的时间单位: second, minute, hour, day, week, month, quarter, year.

[timezone]这个参数是可选参数,可根据实际场景填写。

举个例子:dateDiff( 'day',[开始日期],[结束日期])-----计算两个日期之间天数的差


5、date_sub函数和subtractDays函数:

date_sub函数是spark的语法,date_sub([销售日期],1)-----返回销售日期前一天的日期;

subtractDays函数是ClickHouse的语法,写法是一样的:subtractDays([销售日期],1)-----返回销售日期前一天的日期



PS:其他相关文档参考:

1、直连ClickHouse & 高性能查询表的注意事项

2、如何自定义周(clickhouse版本)

3、ClickHouse官方语法介绍


                                                        (更多语法将持续更新...

    您需要登录后才可以回复