mirror of
https://github.com/apache/superset.git
synced 2026-04-19 08:04:53 +00:00
Add basic Impala engine spec (#3225)
From: https://www.cloudera.com/documentation/enterprise/5-8-x/topics/impala_datetime_functions.html
This commit is contained in:
committed by
GitHub
parent
7190cf8e77
commit
166c576c94
@@ -978,6 +978,31 @@ class BQEngineSpec(BaseEngineSpec):
|
||||
return "'{}'".format(dttm.strftime('%Y-%m-%d %H:%M:%S'))
|
||||
|
||||
|
||||
class ImpalaEngineSpec(BaseEngineSpec):
|
||||
"""Engine spec for Cloudera's Impala"""
|
||||
|
||||
engine = 'impala'
|
||||
|
||||
time_grains = (
|
||||
Grain("Time Column", _('Time Column'), "{col}"),
|
||||
Grain("minute", _('minute'), "TRUNC({col}, 'MI')"),
|
||||
Grain("hour", _('hour'), "TRUNC({col}, 'HH')"),
|
||||
Grain("day", _('day'), "TRUNC({col}, 'DD')"),
|
||||
Grain("week", _('week'), "TRUNC({col}, 'WW')"),
|
||||
Grain("month", _('month'), "TRUNC({col}, 'MONTH')"),
|
||||
Grain("quarter", _('quarter'), "TRUNC({col}, 'Q')"),
|
||||
Grain("year", _('year'), "TRUNC({col}, 'YYYY')"),
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def convert_dttm(cls, target_type, dttm):
|
||||
tt = target_type.upper()
|
||||
if tt == 'DATE':
|
||||
return "'{}'".format(dttm.strftime('%Y-%m-%d'))
|
||||
else:
|
||||
return "'{}'".format(dttm.strftime('%Y-%m-%d %H:%M:%S'))
|
||||
|
||||
|
||||
engines = {
|
||||
o.engine: o for o in globals().values()
|
||||
if inspect.isclass(o) and issubclass(o, BaseEngineSpec)}
|
||||
|
||||
Reference in New Issue
Block a user