Example #1
0
def make_views():
    for cube in get_cubes():
        slug = slugify(cube.get('statistic_title_de'))
        slug = slug.replace('-', '_')
        slug = slug + '_' + cube.get('cube_name')
        q = 'DROP VIEW IF EXISTS ' + slug
        engine.query(q)
        q, params = query_cube(cube.get('cube_name'), readable=False)
        q = 'CREATE VIEW ' + slug + ' AS ' + str(q)
        engine.query(q, **params)
        print([slug, q])
Example #2
0
def make_views():
    for cube in get_cubes():
        slug = slugify(cube.get('statistic_title_de'))
        slug = slug.replace('-', '_')
        slug = slug + '_' + cube.get('cube_name')
        q = 'DROP VIEW IF EXISTS ' + slug
        engine.query(q)
        q, params = query_cube(cube.get('cube_name'), readable=False)
        q = 'CREATE VIEW ' + slug + ' AS ' + unicode(q)
        engine.query(q, **params)
        print [slug, q]
Example #3
0
def find_denormalized():
    res = {}
    for cube in get_cubes():
        statistic = cube.get('statistic_name')
        if not statistic in res:
            res[statistic] = {}
        cube_name = cube.get('cube_name')
        dimensions = get_dimensions(cube_name)
        #pprint(dimensions)
        dimensions = [d for d in dimensions if not d['dim_measure_type'].startswith('K-REG-MM')]
        #dims = [(d['dim_name'], d['ref_type']) for d in dimensions]
        dims = [d['dim_name'] for d in dimensions]
        res[statistic][cube_name] = dims
    pprint(res)
Example #4
0
def freeze_data():
    print "Freezing dimension values..."
    prefix = os.path.join(get_output_dir(), 'data', 'dimensions')
    freeze(value_table.all(), prefix=prefix, filename='{{dimension_name}}.csv', format='csv')
    freeze(value_table.all(), prefix=prefix, filename='{{dimension_name}}.json', format='json')

    print "Freezing cubes..."
    for cube in get_cubes():
        prefix = os.path.join(get_output_dir(), 'data',
                              cube['statistic_name'],
                              cube['cube_name'])
        slug = slugify(cube['statistic_title_de'])
        for (text, rb) in [('labeled', True), ('raw', False)]:
            q, ps = query_cube(cube['cube_name'], readable=rb)
            fn = '%s-%s-%s.csv' % (slug, cube['cube_name'], text)
            print [fn]
            freeze(engine.query(q), prefix=prefix, filename=fn)
Example #5
0
def find_denormalized():
    res = {}
    for cube in get_cubes():
        statistic = cube.get('statistic_name')
        if not statistic in res:
            res[statistic] = {}
        cube_name = cube.get('cube_name')
        dimensions = get_dimensions(cube_name)
        #pprint(dimensions)
        dimensions = [
            d for d in dimensions
            if not d['dim_measure_type'].startswith('K-REG-MM')
        ]
        #dims = [(d['dim_name'], d['ref_type']) for d in dimensions]
        dims = [d['dim_name'] for d in dimensions]
        res[statistic][cube_name] = dims
    pprint(res)
Example #6
0
def generate_cubes():
    cubes = []
    for cube in get_cubes():
        dimensions = []
        measures = []
        joins = []
        mappings = {}
        cube_name = cube.get('cube_name')
        for dim in get_dimensions(cube_name):
            dn = dim.get('dim_name')
            if dim.get('dim_measure_type').startswith('W-'):
                measures.append(dn)
                continue
            
            dimensions.append(dn)
            if dim.get('dim_measure_type').startswith('ZI-'):
                mappings[dn + '.text'] = 'fact_%s.%s' % (cube_name, dn)
                mappings[dn + '.from'] = 'fact_%s.%s_from' % (cube_name, dn)
                mappings[dn + '.until'] = 'fact_%s.%s_until' % (cube_name, dn)
            else:
                tn = 'tbl_' + dn
                joins.append({
                    'master': dn,
                    'detail': 'value.value_id',
                    'alias': tn
                    })
                mappings[dn + '.name'] = tn + '.name'
                mappings[dn + '.label'] = tn + '.title_de'

            
        cubes.append({
            'dimensions': dimensions,
            'measures': measures,
            'mappings': mappings,
            'joins': joins,
            'fact': 'fact_%s' % cube_name,
            'name': cube.get('cube_name'),
            'label': cube.get('statistic_title_de'),
            'description': cube.get('statistic_description_de'),
            })
    return cubes
Example #7
0
def generate_cubes():
    cubes = []
    for cube in get_cubes():
        dimensions = []
        measures = []
        joins = []
        mappings = {}
        cube_name = cube.get('cube_name')
        for dim in get_dimensions(cube_name):
            dn = dim.get('dim_name')
            if dim.get('dim_measure_type').startswith('W-'):
                measures.append(dn)
                continue

            dimensions.append(dn)
            if dim.get('dim_measure_type').startswith('ZI-'):
                mappings[dn + '.text'] = 'fact_%s.%s' % (cube_name, dn)
                mappings[dn + '.from'] = 'fact_%s.%s_from' % (cube_name, dn)
                mappings[dn + '.until'] = 'fact_%s.%s_until' % (cube_name, dn)
            else:
                tn = 'tbl_' + dn
                joins.append({
                    'master': dn,
                    'detail': 'value.value_id',
                    'alias': tn
                })
                mappings[dn + '.name'] = tn + '.name'
                mappings[dn + '.label'] = tn + '.title_de'

        cubes.append({
            'dimensions': dimensions,
            'measures': measures,
            'mappings': mappings,
            'joins': joins,
            'fact': 'fact_%s' % cube_name,
            'name': cube.get('cube_name'),
            'label': cube.get('statistic_title_de'),
            'description': cube.get('statistic_description_de'),
        })
    return cubes