def store_raw(self, datasource, gp, timestamp, trend_names, raw_data_rows): if len(raw_data_rows) > 0: granularity = ensure_granularity(gp) raw_datapackage = RawDataPackage(granularity, timestamp, trend_names, raw_data_rows) transaction = store_raw(datasource, raw_datapackage) transaction.run(self.conn)
def refine_datapackage(cursor, raw_datapackage): dns, value_rows = zip(*raw_datapackage.rows) entity_ids = dns_to_entity_ids(cursor, list(dns)) refined_value_rows = map(refine_values, value_rows) refined_rows = zip(entity_ids, refined_value_rows) timestamp = pytz.UTC.localize(datetime.strptime(raw_datapackage.timestamp, "%Y-%m-%dT%H:%M:%S")) granularity = ensure_granularity(raw_datapackage.granularity) return DataPackage(granularity, timestamp, raw_datapackage.trend_names, refined_rows)
def store(self, datasource, entitytype, gp, ts, trend_names, data_rows, sub_query=None): if len(data_rows) == 0: return granularity = ensure_granularity(gp) with closing(self.conn.cursor()) as cursor: trendstore = get_or_create_trendstore(cursor, datasource, entitytype, granularity) self.conn.commit() datapackage = DataPackage(granularity, ts, trend_names, data_rows) transaction = trendstore.store(datapackage) transaction.run(self.conn)