Как изменить меру на иерархию в atoti?

#hierarchy #olap #measure #atoti

#иерархия #olap #мера #atoti

Вопрос:

У меня есть категориальные данные (код региона) с высоким порядковым значением.

введите описание изображения здесь

Когда я загружаю этот фрейм данных в хранилище данных atoti, он считывается как мера, но тип данных является объектом. введите описание изображения здесь

Следовательно, в идеале это должна быть иерархия.

Как я могу изменить меру на иерархию в atoti?

Ответ №1:

Отказ от ответственности: я разработчик в atoti


Когда я загружаю этот фрейм данных в хранилище данных atoti, он считывается как мера

Загрузка данных в хранилище данных не создает никакой меры. Именно куб, который вы создаете в этом хранилище, автоматически создает меры и иерархии на основе типов (поскольку по умолчанию вы находитесь в автоматическом режиме).

в идеале это должна быть иерархия.

Ничто не мешает вам создавать дополнительные иерархии и меры. Например, вы можете создать новую иерархию в любом столбце хранилища, подобном этому:

 cube.hierarchies["Region Code"] =  [ store["Region_Code"] ]
 

Вы также можете выбрать при создании хранилища, какие столбцы должны использоваться в качестве иерархии, указав hierarchized_columns аргументы.

 store = session.read_pandas(... hierarchized_columns=["Gender", "Age", "Region_Code"])
 

Вы можете прочитать больше об этом параметре, например, в документации read_pandas.

Также обратите внимание, что вам не нужно «выбирать» между тем, чтобы сделать столбец иерархией или мерой, один и тот же столбец может использоваться для обоих.

Ответ №2:

Отказ от ответственности: я работаю в atoti.

В качестве одного из обходных путей я решил загрузить переменную в виде строки, и она будет обрабатываться как иерархия.

    customer_store = session.read_pandas(
        master_data2,
        store_name="customer_store",types = {'Region_Code' : tt.types.STRING}
    )
    customer_store.head()