#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()