diff --git a/dashed/models.py b/dashed/models.py index 878b5f99f3b93..811c70a71e4bb 100644 --- a/dashed/models.py +++ b/dashed/models.py @@ -840,8 +840,12 @@ def latest_metadata(self): 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) @@ -1092,7 +1096,9 @@ class DruidMetric(Model): 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) @@ -1114,7 +1120,9 @@ class DruidColumn(Model): 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))