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