Руководство по системному администрированию#
Термины и определения#
Термин или сокращение |
Описание или расшифровка |
|---|---|
Base64 |
Стандартное кодирование, которое используется для преобразования двоичных данных в текстовый формат, состоящий только из символов ASCII |
BI |
(Business Intelligence) Процесс сбора, анализа и представления данных для принятия бизнес-решений. BI включает в себя использование различных инструментов и технологий для извлечения, трансформации и загрузки данных, их анализа и визуализации |
CA |
(Certificate Authority) Центр сертификации |
DB |
(Database) Организованная коллекция данных, которая хранится и обрабатывается с помощью компьютерных систем |
GMT |
(Greenwich Mean Time) Среднее время на нулевом меридиане, проходящем через Гринвич, Лондон. GMT используется в качестве стандартного времени для синхронизации международных временных зон |
HTTPS |
(Hypertext Transfer Protocol Secure) Защищенная версия протокола передачи гипертекста (HTTP), который используется для обмена данными между веб-сервером и клиентом. HTTPS обеспечивает шифрование данных и аутентификацию сервера, что делает передачу данных более безопасной. |
ID |
(Identifier) Уникальный идентификатор, который используется для идентификации объектов или сущностей в системе |
IP |
(Internet Protocol) Протокол сетевого уровня, который определяет адресацию и маршрутизацию пакетов данных в сети. |
JDBC |
(Java Database Connectivity) API (Application Programming Interface) для взаимодействия с базами данных с использованием языка программирования Java. |
JSON |
(JavaScript Object Notation) Формат обмена данными, основанный на синтаксисе объектов JavaScript. JSON используется для передачи структурированных данных между клиентом и сервером в веб-приложениях. |
JVM |
(Java Virtual Machine) Виртуальная машина, которая выполняет байт-код, созданный компилятором Java |
KB |
(Kilobyte) Единица измерения объема информации, которая равна 1024 байтам. KB используется для измерения размера файлов, объема памяти и других данных |
LCID |
(Locale Identifier) Числовой идентификатор, который определяет локальные настройки и язык в операционной системе Windows. LCID используется для определения формата даты, времени, чисел и других локализованных параметров. |
MDX |
(Multidimensional Expressions) Язык запросов и выражений, который используется для анализа данных в многомерных базах данных, таких как OLAP (Online Analytical Processing). MDX позволяет выполнять сложные аналитические запросы и получать сводные данные из многомерных кубов |
MDXK |
Компонент MDX for OLAP (MDXK) продукта Platform V OLAP Analytics (OLP) |
mTLS |
(Mutual Transport Layer Security) Протокол безопасности на транспортном уровне, который обеспечивает взаимную аутентификацию и шифрование данных между клиентом и сервером. mTLS использует сертификаты для проверки подлинности обеих сторон и обеспечивает защищенную связь в сети |
OLAP |
Компонент OLAP (OLAP) продукта Platform V OLAP Analytics (OLP) |
OLAP |
(Online Analytical Processing) Метод анализа данных, который позволяет выполнять сложные запросы и агрегировать данные из многомерных баз данных. OLAP используется для анализа бизнес-данных и создания сводных отчетов и аналитических моделей. |
QTD |
(Quarter to Date) Период времени, который охватывает текущий квартал до настоящего момента. QTD используется для анализа финансовых данных и производительности бизнеса за определенный квартал. |
SQL |
Structured Query Language) Язык программирования, который используется для управления и обработки данных в реляционных базах данных |
SPI |
(Service Provider Interface) Интерфейс программирования приложений, который определяет способ взаимодействия между компонентами программного обеспечения |
SSL |
(Secure Sockets Layer) Протокол безопасности на транспортном уровне, который обеспечивает шифрование данных и аутентификацию сервера во время передачи данных между клиентом и сервером |
TLS |
(Transport Layer Security) Протокол безопасности на транспортном уровне, который обеспечивает шифрование данных и аутентификацию сервера во время передачи данных между клиент |
URI |
(Uniform Resource Identifier) Строка символов, которая идентифицирует уникальный ресурс в сети, такой как веб-страница, изображение или файл |
UDF |
(User-Defined Function) Функция, которая создается пользователем в программировании или базах данных |
XML/A Schema |
Схема, используемая в XML/A (XML for Analysis), который является стандартом для доступа к аналитическим данным в формате XML. XML/A Schema определяет структуру и формат данных, которые могут быть использованы для анализа и обработки данных в XML/A. |
YTD |
(Year-to-Date) Период времени, начиная с начала текущего года и до текущей даты |
БД |
(База данных) Организованная коллекция данных, которая хранится и обрабатывается с помощью компьютерных систем |
БНФ |
(Бэкуса-Наура Форма) Формальная нотация для описания синтаксиса языков программирования и других формальных языков. БНФ состоит из правил, которые определяют, какие комбинации символов являются допустимыми в языке. Она широко используется в компьютерных науках и языках разметки, таких как HTML и XML. |
КБ |
(Килобайт) Единица измерения информации, которая равна 1024 байта |
Сценарии администрирования#
Диагностика#
Конфигурация системы#
MDXK требует правильной конфигурации каждого узла во время установки. Подробнее смотрите «Руководство по установке».
Конфигурационные файлы#
В таблице ниже представлены конфигурационные файлы для MDXK.
Файл |
Описание |
|---|---|
|
Конфигурационный файл с основными настройками компонента |
|
Конфигурационный файл |
|
Конфигурационный файл JVM для MDXK |
Основные настройки#
Основные настройки задаются в файле insight.properties.
Общие настройки#
Настройка |
Описание |
Значение по умолчанию |
|---|---|---|
|
Указывает IP-адрес или имя хоста подключаемого сервера OLAP, например, 127.0.0.1. |
localhost |
|
Указывает порт сервера OLAP, к которому необходимо подключиться |
7070 |
|
Включает использование протокола HTTPS для обращений к компоненту OLAP |
false |
|
Тип БД для хранения метаданных |
|
|
IP-адрес или имя хоста БД для хранения метаинформации, к которой должен подключиться MDXK |
localhost |
|
Порт MDXK БД для хранения метаинформации, к которому должен подключиться MDXK |
3306 |
|
Имя БД для хранения метаинформации |
insight |
|
Имя пользователя БД для хранения метаинформации |
root |
|
Пароль БД для хранения метаинформации |
нет |
Конфигурация модуля Semantic Service#
Настройка |
Описание |
Значение по умолчанию |
|---|---|---|
|
Указывает порт семантического сервиса в MDXK |
7080 |
|
Указывает максимальное количество проектов, которое может быть получено при синхронизации проектов из компонента OLAP в MDXK. Важно,что значение параметра должно быть больше, чем количество проектов в компоненте OLAP |
1000 |
|
Определяет, через какое количество попыток синхронизации метаданных будет выполнена проверка метаданных. Например, синхронизация метаданных выполняется 1 раз в 20 секунд (смотрите значение параметра |
15 |
|
Период синхронизации метаданных из OLAP в MDXK |
30 |
|
Определяет, включает ли компонент MDXK проверку наборов данных во время синхронизации метаданных |
true |
|
Определяет, включает ли компонент MDXK проверку версии модели метаданных |
false |
|
Определяет, запускает ли MDXK задачу синхронизации метаданных из OLAP во время запуска компонента |
true |
|
Определяет, включена ли синхронизации метаданных о сегментах, а также включена ли очистка кеша MDXK при наличии изменений в сегментах |
true |
|
Указывает максимальное количество пользователей, информация о которых может быть получена при синхронизации метаданных из компонента OLAP в MDXK. Важно, что значение параметра должно быть больше, чем количество пользователей в компоненте OLAP |
100000 |
|
Задает время жизни пользовательских cookie при обращении к WEB-интерфейсу семантического сервиса в MDXK |
86400, which is 86400 seconds100000 |
|
Определяет, нужно ли проверять соединение при сохранении набора данных MDXK |
true |
|
Тайм-аут соединения MDXK с OLAP, единица измерения — миллисекунды |
5000 |
|
Тайм-аут ожидания данных от компонента OLAP (максимальный период бездействия между двумя последовательными пакетами данных) |
10000 |
|
Время ожидания запроса на соединение MDXK с OLAP, единица измерения — миллисекунды |
8000 |
|
Максимальная длина заголовков HTTP-запроса при обращении к MDXK, единица измерения — КБ |
8192 |
|
Максимальное количество записей истории MDX-запросов в системе |
1000000 |
|
Определяет, разрешено ли регистрировать информацию о сервере в ZooKeeper |
false |
|
Адрес ZooKeeper |
localhost:2181 |
|
Путь к узлу в ZooKeeper |
/mdx |
|
Тайм-аут сессии с ZooKeeper |
30000 |
|
Используется для указания того, нужно ли включать стратегию перехвата. После включения этого параметра запрос, удовлетворяющий стратегии перехвата, будет отклонен |
false |
Конфигурация модуля MDX#
Настройка |
Описание |
Значение по умолчанию |
|---|---|---|
insight.mdx.optimize-enabled |
Указывает, следует ли включать оптимизацию операторов для MDX-запросов в MDXK |
true |
insight.mdx.calculate-total-need |
Определяет, вычисляет ли MDX-запрос в MDXK глобальные итоговые и промежуточные итоги |
true |
insight.mdx.schema.create-from-dataset |
Указывает, будет ли MDX-запрос в MDXK создавать схему из набора данных |
true |
insight.mdx.schema.refresh.disable |
Указывает, следует ли отключать обновление для MDX-запроса в MDXK |
false |
insight.mdx.sql.orderby.enable |
Указывает, следует ли включать SQL orderby в MDXK |
true |
insight.mdx.sql.calcite-engine-hint.enable |
Определяет, должен ли OLAP принудительно использовать фреймворк Calcite при подключении BI-инструментов к MDXK и выполнении запросов, содержащих подобные представленным |
false |
insight.mdx.skip-axis-nonempty-check |
Указывает, следует ли пропускать проверку на нулевое значение при вычислении оси в MDXK |
true |
insight.mdx.mondrian.olap.case.sensitive |
Определяет, является ли оператор MDX-запроса в MDXK чувствительным к регистру |
true |
insight.mdx.mondrian.rolap.maxQueryThreads |
Задает максимальное количество потоков запросов в MDXK |
50 |
insight.mdx.mondrian.query.sql.page.size |
Задает максимальное количество записей, получаемых на одной странице при выполнении MDX-запроса с пагинацией |
10000 |
insight.mdx.mondrian.rolap.generate.formatted.sql |
Определяет, должен ли MDX-запрос в MDXK форматировать выходной SQL-оператор |
false |
insight.mdx.mondrian.rolap.star.disableCaching |
Указывает, следует ли отключать кеширование для MDX-запроса в MDXK |
false |
insight.mdx.mondrian.rolap.ignoreInvalidMembers |
Определяет, игнорирует ли MDX-запрос в MDXK недействительные члены |
true |
insight.mdx.mondrian.rolap.ignoreInvalidMembersDuringQuery |
Указывает, игнорирует ли MDX-запрос в MDXK недействительные члены в запросах |
true |
insight.mdx.mondrian.cache.expire-minute |
Указывает, что время истечения срока действия кеша MDX-запроса в MDXK составляет несколько минут |
720 |
insight.mdx.mondrian.olap.pure-axes-calculate.source.type |
Указывает тип источника размерных данных при вычислении оси MDX-запроса в MDXK. Необязательными параметрами являются: SNAPSHOT, PARTIAL_CUBE, ALL_CUBE |
PARTIAL_CUBE |
insight.mdx.mondrian.olap.pure-axes-calculate.cardinality-gap |
Задает максимальную кардинальность (эксклюзивность) таблицы размерностей, которую любой SQL на одной таблице размерностей в MDXK вынужден соблюдать, например, |
-1 |
insight.mdx.mondrian.olap.pure-axes-calculate.total-cardinality-gap |
Задает максимальную кардинальность (эксклюзивную) любого результата total-axis SQL, который вынужден вести себя как |
0 |
insight.mdx.mondrian.olap.support-non-default-all-member |
Определяет, поддерживает ли MDX-запрос в MDXK все члены не по умолчанию |
false |
insight.mdx.mondrian.olap.cell.calc.join-dims |
Определяет, присоединяется ли MDX-запрос в MDXK к другим таблицам размерностей при вычислении ячейки |
true |
insight.mdx.mondrian.rolap.return-null-when-divide-zero |
Определяет, возвращает ли MDX-запрос в MDXK 0, если делитель равен 0 |
true |
insight.mdx.mondrian.rolap.optimize-tuple-size-in-aggregate.enable |
Указывает, следует ли включать оптимизацию размера кортежей при агрегации MDX-запроса в MDXK |
false |
insight.mdx.mondrian.rolap.calculate-cell-when-non-measure |
Указывает, следует ли агрегировать данные ячеек, когда MDX-запрос в MDXK не имеет измерений |
false |
insight.mdx.mondrian.sql.fetch-dim-from-snapshot |
Определяет, предпочитает ли MDX-запрос в MDXK извлекать данные об измерениях из моментальных снимков |
true |
insight.mdx.mondrian.sql.enableOrderBy |
Указывает, добавлять ли collation при запросе SQL в MDXK |
true |
insight.mdx.mondrian.jdbc.timezone |
Задает часовой пояс службы запросов JDBC в MDXK |
GMT+8:00 |
insight.mdx.mondrian.schema.init-level-group-order-by-key |
Определяет, должен ли MDX-запрос в MDXK инициализировать уровень по значению ключа |
true |
insight.mdx.mondrian.query.filter-pushdown.enable |
Указывает, включен ли в MDXK режим MDX-запросов для фильтрации pushdown |
true |
insight.mdx.mondrian.query.filter-pushdown.in-clause-max-size |
Задает максимальное количество фильтрующих клаузул MDX-запросов в MDXK |
20 |
insight.mdx.mondrian.query.sql.customize.enable |
Указывает, следует ли включать настройку MDX-запросов в MDXK SQL |
true |
insight.mdx.mondrian.query.sql.customize.class |
Определяет класс реализации MDX-запроса CustomizeSqlQuery в MDXK |
|
insight.mdx.mondrian.query.sql.max.size |
Задает максимальное количество строк запроса для SQL-запроса в MDXK |
50000 |
insight.mdx.mondrian.rolap.star.disableLocalSegmentCache |
Указывает, включать ли локальный кеш для сегментов, запрашиваемых в MDX-запросе в MDXK, генерировать специфический кеш и находить блочный кеш SPI |
false |
insight.mdx.mondrian.olap.triggers.enable |
Указывает, уведомлять ли Mondrian при изменении конфигурационных свойств MDX-запроса в MDXK |
true |
insight.mdx.mondrian.rolap.nonempty |
Указывает, нужно ли в MDXK задавать непустое значение для каждой оси запроса |
false |
insight.mdx.mondrian.rolap.compareSiblingsByOrderKey |
Указывает, проверяет ли MDX-запрос в MDXK сиблинговые члены и извлекает ли члены из исходного выражения для проверки |
false |
insight.mdx.mondrian.rolap.maxSqlThreads |
Задает максимальное количество экземпляров Mondrian, которые поддерживают SQL в MDXK |
100 |
insight.mdx.mondrian.rolap.maxCacheThreads |
Задает максимальное количество потоков на один экземпляр Mondrian, когда MDX-запрос в MDXK поддерживает кеширование |
100 |
insight.mdx.mondrian.rolap.queryTimeout |
Установка времени тайм-аута MDX-запроса, в секундах |
|
insight.mdx.mondrian.olap.NullMemberRepresentatio |
Определяет, как отображать MDX-запрос в MDXK, когда результат пуст |
null |
insight.mdx.mondrian.visualtotal.solve.order |
Определяет общий порядок настройки MDX-запроса в MDXK |
|
insight.mdx.mondrian.cross-join.native.enable |
Определяет, использовать ли нативный Cross JOIN при отправке запросов в MDXK |
true |
insight.mdx.mondrian.filter.row.limit |
Указывает, добавлять ли условие Limit при подключении BI-инструментов к MDXK и выполнении операции Filter. По умолчанию установлено значение 0, что означает, что условие Limit не добавляется. Если значение равно 10, то в запрос будет добавлено SQL-условие limit 10. Примечание: Параметры здесь должны быть записаны в целых положительных числах, иначе при выполнении MDX-запроса будет выдана ошибка. Примечание: После установки этого параметра может произойти обратная операция выбора из выпадающего списка в инструментах анализа данных |
0 |
insight.mdx.mondrian.result.limit |
Указывает количество строк, возвращаемых проверкой SQL, и количество ячеек. Если предел превышен, то будет возвращена непосредственно ошибка |
100000 |
insight.mdx.mondrian.mdprop.mdx.subqueries |
Указывает уровень поддержки подзапросов в MDX-запросе. По умолчанию параметр принимает значение 2 и не поддерживает подзапросы |
|
insight.mdx.mondrian.query.sql.model-priority-hint.enable |
Если эта опция включена, то модель, на которую ссылается набор данных, будет указываться в SQL-операторах как модель с высоким приоритетом |
|
insight.mdx.xmla.support-rowset-visibilities |
Определяет, следует ли включить поддержку ограничений HIERARCHY_VISIBILITY и MEASURE_VISIBILITY, предусмотренных XML/A Schema |
|
insight.mdx.mondrian.query.limit |
Максимальное количество одновременных запросов, которое допускает система |
1000 |
Формирование диагностического пакета на веб-странице#
Системный диагностический пакет содержит диагностическую информацию для всего экземпляра MDXK. Для генерации пакета диагностики системы необходимо выполнить следующие действия
Войдите в MDXK с учетной записью с ролью системного администратора.
Нажмите кнопку Enter Management в правом верхнем углу.
Выберите временной диапазон: сегодня, последние 3 дня, последние 7 дней, последний 1 месяц или пользовательский временной диапазон.
Выберите сервер.
Загрузите диагностический пакет.
Генерация диагностического пакета из оболочки#
Также можно сгенерировать диагностический пакет, выполнив скрипт со следующими операциями.
Войдите в каталог $MDX_HOME/semantic-mdx/scripts/ и выполните команду:
./diagnose_package_offline.sh <Start time> <End time> <MDX ip> <MDX port> <whether dump mysql database> <Diagnostic package output path>
Start time: 13-битная временная метка;
End time: 13-битная временная метка;
MDX IP: MDX IP;
MDX port: MDX port;
Whether dump mysql database — нужно ли выполнять дамп базы данных mysql: введите y, чтобы указать, что необходимо выполнить дамп базы метаданных mysql, введите n, чтобы указать, что это не нужно;
Diagnostic package output path: путь вывода диагностического пакета.
Содержание диагностического пакета#
Диагностический пакет системы содержит следующее содержимое:
Каталог
conf_{timestamp}
indicators.json: Файл шаблона вычисляемых мер MDX, в котором записаны шаблонные определения вычисляемых мер;insight.properties: Файл конфигурации MDX;set-jvm.sh: Файл конфигурации параметров MDX JVM (которые также могут быть изменены в файлеinsight.properties);startup.sh: Загрузочный скрипт MDX.
Каталог
logs_{timestamp}
gc-{timestamp}.log: Журнал активности MDX JVM GC;mdx.log: Файл журнала MDX-запросов, объединяющий содержимое нескольких файлов журнала MDX-запросов за указанный период времени (содержимое сортируется по времени последнего изменения исходного файла журнала, разделяется «Содержимое выше из файла»);semantic.log: Файл журнала вызовов MDX API, объединяющий содержимое нескольких файлов журнала вызовов MDX API за указанный период времени (Например, синхронизация информации из OLAP, доступ к набору данных из веб-интерфейса);Project-{project}_Dataset-{dataset}.json: Несколько файлов, JSON-файлов наборов данных, которые могут быть использованы для импорта наборов данных из WEB-интерфейса (Требуется подключение MDX к соответствующему OLAP);jstack.log: ID процесса MDX, основной файл, информация о стеке Java службы удаленной отладки;jmap.log: Информация об отображении памяти процесса MDX и распределении пространства;top.log: Состояние использования ресурсов каждым процессом в системе;mos_scripts.out: Информация из журналов запуска распределенного MDX о процессе копирования конфигурационных файлов сервера, связанных с Hadoop, и замене соответствующих конфликтующих jar-пакетов;
mdx_env:Файл информации о среде выполнения MDX, включающий подробную информацию от версий MDX, JDK до System.sync_info:Файл информации о задаче синхронизации MDX, включая текущего пользователя соединения и текущий статус задачи синхронизации.Каталог
schema_{timestamp}.
{user}_{project}.xml: Несколько файлов, информация о схемах наборов данных (один набор данных может выглядеть несовместимым для разных пользователей из-за настроек видимости)
Каталог
dataset_{timestamp}.
Project-{project}_Dataset-{dataset}.json: Несколько файлов, JSON-файлы наборов данных, которые могут быть импортированы из внешнего интерфейса (требуется подключение к соответствующему OLAP)
Каталог
spark_logs_{timestamp}.Каталог
app-{applicationId}.
events_{number}_app-{applicationId}_{startTime}_{endTime}: Несколько файлов, журналы, связанные со Spark.
Код ошибки#
Правила именования ошибок#
Для того чтобы сделать сообщение об ошибке более кратким, понятным и прослеживаемым, коды ошибок разделены в соответствии с сервисным модулем и бизнес-категорией, и имеют следующий формат: MDX-AABBCCCC, где:
AA: сервисные модули, такие как System Service, Semantic Service, MDX Service и другие.
BB: бизнес-категории в рамках сервисного модуля.
CCCC: конкретная причина ошибки, например, превышение длины строки, слишком длинный результат запроса и другие.
Ниже приведен список конкретных сервисных модулей и бизнес-категорий.
Service Module |
Business Category |
|---|---|
01 System Service |
0102 System Config User |
01 System Service |
0104 Diagnose Package |
01 System Service |
0105 Sync Task |
01 System Service |
0106 User / Group / Role |
01 System Service |
0107 DB |
01 System Service |
0108 System Tool |
02 Semantic Service |
0201 Kylin API CALL |
02 Semantic Service |
0202 Dataset |
03 MDX Service |
0301 Schema |
03 MDX Service |
0302 XMLA |
03 MDX Service |
0303 Query |
03 MDX Service |
0304 Rewrite / Reject |
04 Authority |
0401 Authentication |
04 Authority |
0402 Authorization |
04 Authority |
0403 User Delegation |
Перечень кодов ошибок#
Error Code |
Error Message |
|---|---|
MDX-00000001 |
Internal error |
MDX-01020001 |
Sync user not configured |
MDX-01020002 |
Property parsing error |
MDX-01040001 |
Not generating diagnostic package on current node |
MDX-01040002 |
Dataset not found in diagnostic package generation |
MDX-01040003 |
Diagnostic package generation node error |
MDX-01040004 |
Dataset serializing error in diagnostic package generation |
MDX-01040005 |
Diagnostic package file not found |
MDX-01040006 |
Diagnostic package downloading error |
MDX-01050001 |
Invalid sync user information |
MDX-01050002 |
Illegal sync user information updating request |
MDX-01060001 |
Invalid role name |
MDX-01060002 |
Duplicate role name |
MDX-01060003 |
User error |
MDX-01060004 |
Role not exists |
MDX-01060005 |
User not exists |
MDX-01060006 |
Deleting role with users assigned |
MDX-01060007 |
Invalid role |
MDX-01060008 |
Cannot delete the ADMIN role |
MDX-01060009 |
Role ID and name not match |
MDX-01060010 |
Adding / Deleting more than 1 user to / from a role |
MDX-01070001 |
Dataset record insertion error |
MDX-01070002 |
MDX_QUERY record insertion error |
MDX-01070003 |
SQL_QUERY record insertion error |
MDX-01070004 |
Role record insertion error |
MDX-01070005 |
Role record deleting error |
MDX-01080001 |
User password encryption error |
MDX-01080002 |
User password decryption error |
MDX-01080005 |
set-jvm script reading error |
MDX-01080006 |
set-jvm script writing error |
MDX-01080007 |
MDX properties file reading error |
MDX-01080008 |
MDX properties file writing error |
MDX-01080009 |
MDX version format error |
MDX-02010002 |
Fetching Kylin tables description error |
MDX-02010003 |
Fetching Kylin models description error |
MDX-02010004 |
Fetching Kylin project list error |
MDX-02010005 |
Fetching Kylin user list error |
MDX-02010006 |
Fetching Kylin users by project error |
MDX-02010007 |
Fetching Kylin users by group error |
MDX-02010008 |
Fetching Kylin user authorities error |
MDX-02010009 |
Fetching Kylin project access information error |
MDX-02010010 |
HTTP request with empty URI |
MDX-02010011 |
Building URI instance error |
MDX-02010012 |
Kylin host / port not configured |
MDX-02010013 |
Kylin connection error |
MDX-02010014 |
Kylin HTTP request failed |
MDX-02010015 |
Reading Kylin HTTP response error |
MDX-02020002 |
Fetching dataset by project error |
MDX-02020003 |
Fetching dataset by ID error |
MDX-02020004 |
Duplicate dataset name in project |
MDX-02020006 |
Duplicate dimension table name |
MDX-02020007 |
Duplicate dimension table alias |
MDX-02020008 |
Duplicate measure alias |
MDX-02020009 |
Duplicate calculated measure name |
MDX-02020010 |
Duplicate namedset name |
MDX-02020011 |
Folder name format error |
MDX-02020012 |
Calculate measure validation error |
MDX-02020014 |
Illegal default member validation request |
MDX-02020015 |
Unsupported dataset type |
MDX-02020016 |
MDX server connection error |
MDX-02020017 |
Dataset connection error |
MDX-02020018 |
Invalid dimension usage |
MDX-02020019 |
Hierarchy contains column from another table |
MDX-02020020 |
Fetching dimension table by model error |
MDX-02020021 |
Fetching dimension by dimension table and model error |
MDX-02020022 |
Fetching measure by model error |
MDX-02020023 |
Fetching calculated measure error |
MDX-02020024 |
Fetching namedset error |
MDX-02020025 |
Invalid dataset found |
MDX-02020026 |
Kylin project error |
MDX-02020027 |
Invalid dataset list fetching request |
MDX-02020028 |
Invalid or expired dataset export token |
MDX-02020029 |
Dataset export compression error |
MDX-02020030 |
Invalid dataset import request |
MDX-02020031 |
Dataset import decompression error |
MDX-02020032 |
Invalid dataset Zip file |
MDX-02020033 |
No valid dataset in uploaded file |
MDX-03010003 |
Datasource file not found |
MDX-03010004 |
Creating datasource file error |
MDX-03010005 |
Creating schema directory error |
MDX-03010006 |
Creating schema file error |
MDX-03010007 |
Serializing schema file error |
MDX-03020002 |
Drillthrough only supports tabular data format |
MDX-03020003 |
Drillthrough error |
MDX-03020005 |
URL format of XML/A request error |
MDX-03030001 |
MDX dataset not found |
MDX-03030002 |
MDX object not found |
MDX-03030003 |
MDX member resolving error |
MDX-03030004 |
MDX statement parsing error |
MDX-03030014 |
Hierarchy in calculated member not found |
MDX-03030015 |
Wrong return type of axis expression |
MDX-03030016 |
Wrong return type of member expression |
MDX-03030017 |
Wrong return type of set expression |
MDX-03030018 |
Missing function argument |
MDX-03030019 |
Wrong function argument |
MDX-03030020 |
Unknown MDX argument |
MDX-03030021 |
MDX member not found |
MDX-03030022 |
Wrong return type of default member expression |
MDX-03030023 |
Invalid member encountered |
MDX-03030024 |
No signature matching function found |
MDX-03030025 |
More than one signature matching function found |
MDX-03030031 |
Hierarchy appears on multiple axes |
MDX-03030032 |
Function arguments do not belong to the same hierarchy |
MDX-03030033 |
Function arguments do not belong to a time dimension table |
MDX-03030034 |
Invalid axis number |
MDX-03030035 |
Duplicate axis name |
MDX-03030037 |
Tuple contains members of the same hierarchy |
MDX-03030038 |
Argument type error of VisualTotals function |
MDX-03030042 |
Invalid data type cast target |
MDX-03030043 |
Function does not support NULL member argument |
MDX-03030045 |
Cannot use this function because no time dimension has been defined |
MDX-03030046 |
Did not explicitly specify the target hierarchy |
MDX-03030047 |
No accessible element in the hierarchy |
MDX-03030050 |
Drillthrough disabled |
MDX-03030051 |
Performing drillthrough over an unknown member |
MDX-03030054 |
Properties missing in connection string |
MDX-03030055 |
Hierarchy belong to a time dimension table not defined as time type |
MDX-03030056 |
Hierarchy not belong to a time dimension table defined as time type |
MDX-03030064 |
Calculated member belongs to an invalid dimension |
MDX-03030068 |
Duplicate calculated member name |
MDX-03030076 |
UDF class not found |
MDX-03030077 |
Illegal UDF class definition |
MDX-03030079 |
Duplicate UDF name |
MDX-03030080 |
Duplicate namedset name |
MDX-03030081 |
Invalid calculated measure or namedset expression in dataset |
MDX-03030087 |
Invalid aggregator |
MDX-03030090 |
Descendants function argument type error |
MDX-03030092 |
Cannot infer type of set elements |
MDX-03030094 |
Hierarchy definition contains no level |
MDX-03030095 |
Hierarchy definition contains levels with duplicate name |
MDX-03030103 |
Crossjoin result size exceeds limit |
MDX-03030104 |
Query result size exceeds limit |
MDX-03030105 |
Number of members to be read exceeds limit |
MDX-03030106 |
Number of measure values to be read exceeds limit |
MDX-03030107 |
Query canceled |
MDX-03030108 |
Query timeout |
MDX-03030109 |
Number of calculation iterations exceeds limit |
MDX-03030110 |
Hierarchy contains no member |
MDX-03030157 |
Native optimization cannot be applied to function |
MDX-03030158 |
Query resources recycling error |
MDX-03030159 |
Number of concurrent MDX queries exceeds limit |
MDX-03030160 |
Number of concurrent SQL queries from Mondrian engine exceeds limit |
MDX-03030162 |
Number of concurrent SQL queries from Sniper engine exceeds limit |
MDX-03030163 |
RolapSchema instance recycling error |
MDX-03030164 |
MondrianServer instance recycling error |
MDX-03030165 |
RolapConnection instance recycling error |
MDX-03030166 |
Aggregation query execution cancelled due to time out |
MDX-03030167 |
Aggregation query execution cancelled |
MDX-03030168 |
SniperResult construction cancelled |
MDX-03040003 |
MDX cluster nodes not configured |
MDX-03040004 |
Cannot rewrite expression |
MDX-03040005 |
Expression is not a function expression |
MDX-03040006 |
Expression is not a specified function expression |
MDX-03040007 |
Expression is not an identifier |
MDX-03040008 |
Invalid namedset Union function expression |
MDX-03040009 |
Invalid namedset Except function expression |
MDX-04010001 |
User login authentication error |
MDX-04010002 |
Invalid basic authentication information |
MDX-04010003 |
Invalid cookie authentication information |
MDX-04010004 |
Invalid gateway authentication information |
MDX-04010005 |
Authentication information missing |
MDX-04010006 |
User name / password error |
MDX-04010007 |
User locked |
MDX-04010008 |
Kylin authentication failed |
MDX-04010009 |
User disabled |
MDX-04020001 |
Not an ADMIN user |
MDX-04020002 |
Not an ADMIN user or project admin user |
MDX-04020003 |
User has no project access |
MDX-04020004 |
No dataset available |
MDX-04020005 |
All datasets in project are broken |
MDX-04020006 |
User has no access to any dataset in project |
MDX-04030001 |
User delegation feature not enabled |
MDX-04030002 |
Empty delegation user parameter |
MDX-04030003 |
Delegation user parameter too long |
MDX-04030004 |
Invalid delegation user parameter |
MDX-04030005 |
Delegation user permissions inadequate |
Синхронизация метаданных#
Принцип синхронизации метаданных#
Синхронизация метаданных заключается в получении соответствующей информации из OLAP посредством HTTP-вызова и сравнении ее с существующей информацией о метаданных в MDXK. При наличии изменений метаданные в MDXK будут исправлены в соответствии с изменениями в OLAP.
Типы синхронизации метаданных#
Информация о синхронизации метаданных включает следующие типы:
синхронизация списка пользователей;
синхронизация списка групп пользователей;
синхронизация списка моделей;
синхронизация списка проектов;
синхронизация списка сегментов;
синхронизация списка метаданных моделей.
Частота синхронизации метаданных#
Период синхронизации задается параметром insight.semantic.meta-sync.interval.
Синхронизация списков пользователей, групп пользователей, моделей и проектов выполняется каждые 30 секунд.
Синхронизация списка сегментов и метаданных моделей выполняется каждые 450 секунд (insight.semantic.meta-sync.interval * insight.dataset.verify.interval.count)
Примечание:при большом объеме данных задача синхронизации может занять больше времени, чем задано в конфигурации.
Механизм восстановления задачи синхронизации после сбоев#
Задача синхронизации метаданных может остановиться из-за изменения информации (имени или пароля) о пользователе, с использованием которого выполняется синхронизация, в компоненте OLAP. В этом случае задача синхронизации метаданных завершается ошибкой и повторяет попытку с заданной периодичностью. После актуализации информации о пользователе в MDXK или в OLAP задача синхронизации возвращается в нормальное состояние.
Настройка задачи синхронизации#
MDXK периодически синхронизирует данные с подключенного к нему OLAP. Для просмотра состояния задачи можно использовать учетную запись с ролью системного администратора, чтобы войти на страницу администратора.
Войдя на страницу с параметрами, можно посмотреть статус выполнения задачи и время ее последнего выполнения. Если задача остановлена в силу непредвиденных обстоятельств, например, из-за сбоя в работе OLAP, можно нажать кнопку Restart Sync Task для перезапуска задачи синхронизации.
Если вы изменили имя пользователя или пароль системного администратора в OLAP, который также выполняет задачи синхронизации, нажмите кнопку Edit User Information для изменения имени и пароля пользователя.
Настройка прав доступа к объектам#
Пользователи могут настраивать контроль доступа к следующим объектам: измерение, мера, вычисляемая мера и именованный набор. Для этого необходимо выполнить следующие действия:
В списке наборов данных кликните на значок доступа с правой стороны и войдите на страницу настройки управления доступом.
Выберите одну из страниц вкладок для измерения, меры, вычисляемой меры или именованного набора и нажмите кнопку + Grant.
Появится всплывающее окно. Выберите пользователя, группу или роль для редактирования списка доступа в верхней части всплывающего окна.
Переключайтесь между моделью и таблицей на панели навигации в левой части всплывающего окна. В правой части находятся измерения/меры/вычисляемые меры/именованный набор в модели.
Кликните на измерении/мере/вычисляемой мере, а затем наведите курсор на значок «глаз». Если на значке стоит косая черта, соответствующее измерение/мера/вычисляемая мера/именованный набор будут недоступны для пользователя, группы или роли.
Кликните на значок еще раз, чтобы снять ограничение.
Нажмите кнопку Submit.
Сохраненный список доступа появится в таблице ниже. Пользователи могут нажать кнопку Delete в правой части таблицы, чтобы удалить ограничение видимости, или нажать кнопку Edit, чтобы снова отредактировать список доступа.
События системного журнала#
Системный журнал#
После успешного запуска MDXK создает каталог с именем logs/. По умолчанию все журналы, генерируемые во время работы MDXK,
будут храниться в этом каталоге.
Лог-файлы#
Ниже приведены файлы журналов, генерируемые MDXK.
Файл |
Описание |
Уровень логирования по умолчанию |
|---|---|---|
mdx.log |
Файл представляет собой журнал доступа к MDX, генерируемый сервером Semantic |
INFO |
semantic.log |
Основной лог-файл Semantic |
INFO |
semantic.out |
Стандартный вывод Semantic будет перенаправлен в этот файл |
|
gateway.log |
Основной файл журнала шлюза |
INFO |
Примечание: Использование уровней журналирования trace и debug не рекомендуется в промышленных инсталляциях.
Конфигурация журнала#
MDXK использует log4j для настройки журналирования. Администраторы могут редактировать файл log4j.properties в каталоге
$MDX_HOME/conf/ для настройки поведения журналирования, например, правила разбиения и ограничения размера одного файла.
Например:
По умолчанию для файлов semantic.log и mdx.log используется appender org.apache.log4j.RollingFileAppender,
что означает создание нового файла каждый раз, когда старый файл достигает заданного размера.
Чтобы вместо этого создавать новый файл каждый день, можно установить для log4j.appender.file и/или log4j.appender.mdx
значение org.apache.log4j.DailyRollingFileAppender.
Параметры log4j.appender.file.MaxFileSize и log4j.appender.mdx.MaxFileSize определяют указанное выше ограничение
на размер любого semantic.log-файла или mdx.log-файла соответственно, по умолчанию 268435456 (256 МБ).
Параметры log4j.appender.file.MaxBackupIndex и log4j.appender.mdx.MaxBackupIndex определяют максимальное количество
резервируемых файлов semantic.log и mdx.log соответственно, по умолчанию 10.
После внесения изменений в файл log4j.properties необходимо перезапустить MDXK для применения изменений.
Отладка журнала#
События журналирования содержат информацию об ID запроса и API, которая может быть использована для повышения эффективности отладки. Для MDX запросов, полученных из инструментов анализа данных, генерируется идентификатор запроса, по которому можно отследить необходимую информацию. Информация о вызывающей стороне API может быть использована для определения местонахождения пользователя.
События мониторинга#
Функциональность отслеживания событий мониторинга компоненте MDXK в настоящий момент находится в процессе разработки. Когда функциональность будет полностью разработана и внедрена, пользователи смогут использовать отслеживание событий мониторинга компонента MDXK для получения информации о различных событиях и состоянии компонента.
Часто встречающиеся проблемы и пути их устранения#
Если версии нескольких узлов MDXK не совпадают, могут возникнуть проблемы с чтением js- и css-файлов после переадресации балансировщика, поэтому необходимо убедиться, что версия MDXK на каждом узле совпадает.
Поскольку при запросе диагностического пакета используется информация об IP и порте, указанная в конфигурационном файле, не используйте localhost, так как это может привести к сбою переадресации балансировщика и отказу запроса.
При каждой новой генерации диагностического пакета будет очищаться диагностический пакет, созданный 7 дней назад.
Известные проблемы#
Поддержка SSL для PostgreSQL не осуществляется в настоящее время.
Параметр insight.database.useSSL («Использует ли MDXK БД для хранения метаинформации SSL-соединение») в данный момент не актуален.