Настройка таблицы фактов и определение измерения сводной таблицы

В таблице фактов в Autonomous Data Warehouse хранятся данные куба Essbase, имеющего федерированный раздел. Если у вас нет таблицы фактов, соответствующей требованиям для федерированных разделов, нужно ее создать. Кроме того, нужно понять, что такое измерение сводной таблицы, и выбрать его в кубеEssbase.

Перед началом работы с этим разделом создайте приложение и куб Essbase, если у вас их еще нет.

Создание таблицы фактов

Для федерированных разделов в таблице фактов хранятся значения данных из куба Essbase. Если нужной таблицы фактов в Autonomous Data Warehouse нет, ее необходимо создать.

Прежде чем начать, убедитесь, что в таблице фактов создана пустая схема. См. раздел "Создание схемы для федерированных разделов".

Таблица фактов должна иметь формат, совместимый с Essbase, то есть соответствовать следующим требованиям к содержимому и форме:

  • Каждое из измерений куба (без атрибутов) должно быть представлено как один заголовок столбца, за исключением одного измерения (обычно того, которое содержит показатели/учетные записи), которое делится на два или более столбцов.

    Примечание.:

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

  • Таблица фактов должна включать в себя уникальные записи (без дубликатов), по одной строка на последовательность пересечений ячеек Essbase.

Если вы знакомы с экспортом данных в Essbase, то заметите, что форма таблицы фактов в точности соответствует формату экспорта столбцов Essbase.

Как и файл экспорта столбцов, таблица фактов должна содержать:

  • один столбец для каждого измерения без атрибутов (кроме измерения сводной таблицы);

  • один столбец для каждого сохраненного элемента измерения поворота.

Ниже приведен пример таблицы фактов, в которой измерение показателей является измерением сводной таблицы. Измерение сводной таблицы влияет на форму таблицы фактов, поскольку элементы этого измерения становятся заголовками столбцов: SALES, COGS, MARKETING, PAYROLL, MISC, INTITIAL_INVENTORY и ADDITIONS.


Таблица фактов с денормализованными данными и метаданными

Таблицу фактов можно создать с помощью SQL или данных, экспортированных из Essbase. Данные в таблицу фактов можно загрузить с помощью инструментов Autonomous Data Warehouse или с помощью функции загрузки данных в Essbase.

Дополнительные рекомендации по построению таблицы фактов:

  • в таблице фактов должно быть менее 1000 столбцов;

  • Не включайте столбцы, сопоставленные с измерениями Essbase, содержащими атрибуты.

  • Точность таблицы фактов должна быть не ниже IEEE binary64 (двойная).

  • Таблица факта должна иметь интернационализированные строки для элементов измерений, использующие тип NVARCHAR2 и имеющие длину символов 1024 бита.

Пример создания таблицы фактов

Для создания таблицы фактов в Autonomous Data Warehouse можно использовать SQL.

  1. С помощью SQL Developer или другого удобного вам инструмента войдите в Autonomous Data Warehouse как владелец схемы (см. шаг "Создание схемы для федерированных разделов").

  2. Если таблица фактов еще не существует, создайте ее с помощью SQL.

    Например, следующий запрос SQL создает таблицу фактов из данных, экспортированных из куба Essbase Sample Basic.

    CREATE TABLE "SAMP_FACT"
    ( "PRODUCT" NVARCHAR2(1024),
    "MARKET" NVARCHAR2(1024),
    "YEAR" NVARCHAR2(1024),
    "SCENARIO" NVARCHAR2(1024),
    "SALES" NUMBER(38,0),
    "COGS" NUMBER(38,0),
    "MARKETING" NUMBER(38,0),
    "PAYROLL" NUMBER(38,0),
    "MISC" NUMBER(38,0),
    "INITIAL_INVENTORY" NUMBER(38,0),
    "ADDITIONS" NUMBER(38,0)
    ) NOCOMPRESS LOGGING PARALLEL 4;

Примечания

  • В приведенном выше примере имя таблицы SAMP_FACT, она создана на основе Sample Basic.

  • Для повышения производительности все нечисловые столбцы в таблице фактов должны иметь тип NVARCHAR2(1024), а все числовые столбцы — NUMBER.

  • Oracle рекомендует активировать параллельное создание индекса в Autonomous Data Warehouse, добавив PARALLEL 4.

  • В столбцах метаданных должны быть запрещены значения NULL.

  • Oracle рекомендует использовать параметр NOCOMPRESS, если использование куба включает процессы генерации данных, например инкрементную загрузку данных или пакетное обновление сценариев. Если куб используется в основном для операций чтения, используйте COMPRESS, чтобы оптимизировать таблицу фактов для создания отчетов.

  • Если происходит указанная ниже ошибка проверки при создании таблицы фактов, удалите пустые строки.

    ORA-18265: fact table key column ("<DIM_NAME>") with value ('') not in
          dimension("<Name_of_Column") star table key column
  • Для повышения производительности не добавляйте особые ограничения для таблицы только в случае крайней необходимости.

  • В приведенном выше примере имя таблицы фактов создано на основе куба Sample Basic, доступного в разделе "галерея" в каталоге файлов Essbase. Можно экспортировать данные из этого или любого другого куба Essbase и загрузить их, чтобы построить таблицу фактов. Предварительно нужно настроить учетные данные для загрузки данных в приложение федерированного раздела. О том, как настроить учетные данные и экспортировать данные в формат DBMS с помощью команды DATAEXPORT, см. раздел "Загрузка данных федерированных разделов".

Определение измерения сводной таблицы

В рамках проектирования федерированного раздела нужно выбрать измерение сводной таблицы. Измерение сводной таблицы — это измерение, которое вы назначаете в структуре куба Essbase для представления значений числовых данных.

  • Измерение поворота не обязательно должно быть Measures/Accounts, но может ими быть.

  • Все сохраненные элементы измерения поворота должны сопоставляться со столбцами таблицы фактов, которые представляют числовые значения данных в Autonomous Data Warehouse.

  • Если нужно запустить сценарии расчета блочного хранилища (BSO) Essbase, выберите плотное измерение в качестве измерения сводной таблицы. Сценарии расчета не поддерживаются для федерированных разделов с разреженным измерением сводной таблицы.

  • Измерение сводной таблицы должно содержать статические имена элементов и не очень большое количество элементов. Причина: измерение сводной таблицы в структуре куба Essbase (например путем добавления или переименования сохраненных элементов) требует соответствующего ручного обновления таблицы фактов в Autonomous Data Warehouse и пересоздания федерированного раздела.

  • Измерения Essbase, которые включают элементы, требующие сложных динамических формул (таких как "Начальные запасы" и "Конечные запасы" на примере Sample Basic), не следует выбирать в качестве измерения поворота.

  • Выбранное измерение поворота указывается во время создания федерированного раздела.

  • База данных Oracle может содержать не более 1000 столбцов, и измерение сводной таблицы наследует это ограничение. Определите количество применимых элементов столбцов в измерении сводной таблицы, чтобы убедиться, что вы укладываетесь в ограничение. Сумма количества потенциально сохраняемых сочетаний элементов в измерении сводной таблицы и количества измерений в кубе не должна превышать 1000.

  • Для кубов агрегированного хранения запрещается выбирать в качестве сводного какие-либо измерения, содержащие многоуровневые иерархии элементов. Выберите сводное измерение с динамическими иерархиями или сохраняемую плоскую (одноуровневую) иерархию, где все элементы — это сохраняемые элементы уровня 0.