def olapDrill(user=None, device=None, timeRange=None, metric=None, timeMode=0, zoneMode=0, hashname=None): totalData, deviceList, metricList = Tool.olapData(timeRange) dataDrill = Drill(totalData, deviceList, metricList, user, device, timeRange, metric, timeMode, zoneMode) print("drill") resultJson = getRe(dataDrill) sql = "insert into olapresult (hashname,json)values ('%s','%s')" % ( hashname, resultJson) Tool.excuteSQL(sql) # dataDrill.to_csv(os.path.join(os.path.dirname(os.path.abspath(__file__)), hashname+".csv")) return hashname
def olapSlice(user=None, device=None, timeRange=None, metric=None, groups: list = None, agg=None, rotate=None, parameterHash=None): totalData, deviceList, metricList = Tool.olapData(timeRange) dataSlice = pd.DataFrame() if timeRange == None and metric == None and groups == None: # 1.选定[用户+设备]切片 dataSlice = Slice(totalData, deviceList, metricList, user, device) elif timeRange != None and metric == None and groups == None: # 2.选定[用户+设备+时间段]切块 dataSlice = Slice(totalData, deviceList, metricList, user, device, timeRange) elif timeRange != None and metric != None and groups == None: # 3.选定[用户+设备+时间段+属性]切块 dataSlice = Slice(totalData, deviceList, metricList, user, device, timeRange, metric) elif timeRange != None and metric != None and groups != None: dataSlice = Slice(totalData, deviceList, metricList, user, device, timeRange, metric, groups, agg) print("slice") if rotate == None: resultJson = getRe(dataSlice) sql = "insert into olapresult (hashname,json)values ('%s','%s')" % ( parameterHash, resultJson) Tool.excuteSQL(sql) return parameterHash # dataSlice.to_csv(os.path.join(os.path.dirname(os.path.abspath(__file__)), parameterHash + '.csv')) return dataSlice
if __name__ == "__main__": dataDir = 'data\\常州天和印染有限公司\\' # 将整个建筑的信息放进一张大表。行为(时间+设备+用户),列为属性 # totalData, deviceList, metricList = readData(dataDir) # pd.set_option('display.max_columns', None) # # totalData.to_csv('total.csv') # # 选项字段 # user = ["常州天和印染有限公司"] # device = deviceList[2:5] # timeRange = ['2019-3-15', '2019-4-14'] # metric = ['A相电压', '三相总有功功率'] totalData, deviceList, metricList = Tool.olapData() user = [11] device = ['100001','100002'] timeRange = ['2019-02-01', '2019-03-02'] metric = ['BV','AA'] '''切片和切块''' # 1.选定[用户+设备]切片 # dataSlice7 = Slice(totalData, deviceList, metricList, user, device) # # 2.选定[用户+设备+时间段]切块 # dataSlice2 = Slice(totalData, deviceList, metricList, user, device, timeRange) # # 3.选定[用户+设备+时间段+属性]切块 # dataSlice7 = Slice(totalData, deviceList, metricList, user, device, timeRange, metric) # # 4.选定[用户+设备+时间段+属性]切块+按用户聚合[求和/求平均] # dataSlice4 = Slice(totalData, deviceList, metricList, user, device, timeRange, metric, ['date'], 'sum') # # 5.选定[用户+设备+时间段+属性]切块+按天聚合[求和/求平均] # dataSlice5 = Slice(totalData, deviceList, metricList, user, device, timeRange, metric, ['date'], 'sum')