示例#1
0
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
示例#2
0
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
示例#3
0

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')