Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt

Use this file to discover all available pages before exploring further.

property Hierarchy.virtual : bool | None

Whether the hierarchy is virtual or not. A virtual hierarchy does not store in memory the list of its members. Hierarchies with large cardinality are good candidates for being virtual. By default, a given hierarchy is automatically set as virtual if and only if it comes from an ExternalTable and one of the following conditions is met:
  • The hierarchy has a cardinality of 10000 or more;
  • The activeviam.experimental.forceVirtualHierarchies property is set to true.
As its name suggests, activeviam.experimental.forceVirtualHierarchies is an experimental/temporary property which may change in future bugfix releases.

Example

>>> from atoti_directquery_clickhouse import ConnectionConfig, TableConfig
>>> connection_config = ConnectionConfig(
...     url=f"clickhouse:http://localhost:{clickhouse_server_port}/{schema_name}",
... )
>>> table_config = TableConfig(keys={"id"})
  • Without activeviam.experimental.forceVirtualHierarchies:
    >>> session = tt.Session.start()
    >>> external_database = session.connect_to_external_database(
    ...     connection_config
    ... )
    >>> sales_table = session.add_external_table(
    ...     external_database.tables["sales"], config=table_config
    ... )
    >>> cube = session.create_cube(sales_table)
    >>> cube.hierarchies["product"].virtual
    False
    
  • With activeviam.experimental.forceVirtualHierarchies:
    >>> session_config = tt.SessionConfig(
    ...     java_options=["-Dactiveviam.experimental.forceVirtualHierarchies=true"]
    ... )
    >>> session = tt.Session.start(session_config)
    >>> external_database = session.connect_to_external_database(
    ...     connection_config
    ... )
    >>> sales_table = session.add_external_table(
    ...     external_database.tables["sales"], config=table_config
    ... )
    >>> cube = session.create_cube(sales_table)
    >>> cube.hierarchies["product"].virtual
    True