{'fraction_non_alphanumeric': 0.022941970310391364, 'fraction_numerical': 0.0, 'mean_word_length': 5.179166666666666, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
CAL: A Generic Query and Analysis Language for Data Warehouses

Data warehouses (DWs) and OLAP systems are essential tools in organizational decision making. However, users of these systems are often provided with complex data models and system-specific GUIs and dashboards to analyze the data and generate reports. Available DW query languages like MDX and Oracle OLAP support only numeric data and moreover require skilled DW developers to design queries. This can strain the analyst and restrict effective data analysis. In this paper, we provide a solution to this problem by introducing a powerful textual query language based entirely on the abstract datacube metaphor for multidimensional analysis. This language called the Cube Analysis Language (CAL) captures the full dimensionality of the data while providing an extensible query interface for the analyst. CAL includes three basic components: the Cube Definition Language (CDL), to design and develop the cube, the Cube Manipulation Language (CML), to manipulate and alter the cube, and the Cube Query and Analysis Language (CQAL), to navigate through cubes and aggregate data in the DW for analysis. CDL, CML and CQAL are designed to be explicit user-level concepts that work easily with existing OLAP languages and logical DW designs. To demonstrate its functionality we have implemented the CAL query processor for Mondrian (an open-source OLAP tool) and tested it using an example business sales dataset on Postgres.