diff --git a/dashed/models.py b/dashed/models.py index 03a9e186299..0505402864f 100644 --- a/dashed/models.py +++ b/dashed/models.py @@ -864,8 +864,12 @@ class DruidDatasource(Model, AuditMixinNullable, Queryable): return max_time = results[0]['result']['maxTime'] max_time = parse(max_time) - intervals = (max_time - timedelta(seconds=1)).isoformat() + '/' - intervals += (max_time + timedelta(seconds=1)).isoformat() + # Query segmentMetadata for 7 days back. However, due to a bug, + # we need to set this interval to more than 1 day ago to exclude + # realtime segments, which trigged a bug (fixed in druid 0.8.2). + # https://groups.google.com/forum/#!topic/druid-user/gVCqqspHqOQ + intervals = (max_time - timedelta(days=7)).isoformat() + '/' + intervals += (max_time - timedelta(days=1)).isoformat() segment_metadata = client.segment_metadata( datasource=self.datasource_name, intervals=intervals) @@ -1117,7 +1121,9 @@ class DruidMetric(Model, AuditMixinNullable): datasource_name = Column( String(250), ForeignKey('datasources.datasource_name')) - datasource = relationship('DruidDatasource', backref='metrics') + # Setting enable_typechecks=False disables polymorphic inheritance. + datasource = relationship('DruidDatasource', backref='metrics', + enable_typechecks=False) json = Column(Text) description = Column(Text) @@ -1139,7 +1145,9 @@ class DruidColumn(Model, AuditMixinNullable): datasource_name = Column( String(250), ForeignKey('datasources.datasource_name')) - datasource = relationship('DruidDatasource', backref='columns') + # Setting enable_typechecks=False disables polymorphic inheritance. + datasource = relationship('DruidDatasource', backref='columns', + enable_typechecks=False) column_name = Column(String(256)) is_active = Column(Boolean, default=True) type = Column(String(32))