Skip to content

Решение для обновления данных - Справка FineReport | Разработка отчетов | Использование отчетов | Учебные пособия

Программа обновления данных

1. Обзор

Разобравшись со структурой хранения данных в BI, вы можете обращаться к данным в базе данных в BI (добавлять таблицы базы данных, добавлять данные SQL ) и хранить их в соответствующем месте.

Если вы используете извлеченные версии, вам также нужно будет обновлять данные, чтобы они оставались актуальными и доступными.

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

Поэтому администратору очень важно разработать программу обновлений для вашей BI-системы.

2. обновление объема данных

Чем больше объем данных в одной таблице, тем медленнее происходит обновление; в то же время обновление слишком большого объема данных может привести к сбою в работе системы из-за нехватки диска или памяти.

2.1 Ограничения на обновление

  • Одну таблицу, содержащую более 100 миллионов строк данных базовой таблицы, рекомендуется разбить на несколько подтаблиц для использования; количество столбцов в одной таблице не должно превышать 100 столбцов.
  • Используйте параметр SystemOptimizationConfig.tableLoadDataLimit, чтобы ограничить количество наборов данных, которые будут извлечены, по умолчанию оно неограниченно, см. раздел: Ограничение количества наборов данных, которые будут извлечены
  • При обновлении новой таблицы сначала проверьте объем данных, если объем данных значительно превышает объем данных в существующей базовой таблице, рекомендуется заранее проверить, достаточно ли оставшегося дискового пространства, объем данных соответствует размеру файла, сгенерированного в данной работе, см. раздел "4. Критерии производительности > 4.3 Данные, соответствующие размеру сгенерированного файла".
  • При ручном запуске обновлений для таблиц с большим объемом данных сначала подтвердите занятое пространство таблицы в информации об обновлении или другими способами; объем обновлений по таймеру обычно относительно фиксирован, что вряд ли приведет к аномальному увеличению объема занимаемого диска, и достаточно ежедневно контролировать инкрементный объем.
  • Ограничение выдачи разрешений на обновление. Чтобы пользователи не могли произвольно запускать и устанавливать обновления, необходимо контролировать пользователей, обладающих правами администратора данных, и разумно распределять административные права публичных бизнес-пакетов и наборов данных. Назначение прав на данные можно посмотреть в документе: Права управления папками Public Data

2.2 Раннее предупреждение

  • Администратор регулярно проверяет объем оставшегося дискового пространства, и свободное место на диске не должно быть меньше общего размера базы данных, по крайней мере.
  • Включите предупреждения BI о мониторинге дисков и регулярно очищайте ненужные таблицы с помощью функции "Управление Public Data ".

  • Изоляция каталога извлечения. Установите каталог проекта и каталог извлечения в два разных дисковых каталога (локальный диск, а не внешний), чтобы даже если каталог извлечения будет переполнен, проект не так просто было закрыть. Чтобы изменить путь хранения данных, обратитесь к документу: Пути хранения данных

3. Обновление настроек

3.1 Полное/инкрементное обновление

  • Полное обновление исходной таблицы тем больше, чем больше сгенерированный файл, тем больше времени; инкрементное обновление по той же причине, и инкрементное увеличение общего количества ячеек, инкрементное удаление по длине обновления медленнее, чем инкрементное увеличение длины обновления медленнее.
  • Инкрементные обновления обычно используются для часто обновляемых таблиц с относительно большим объемом данных, при этом инкрементные обновления позволяют сократить время обновления базовой таблицы. Если объем данных в одной таблице относительно невелик (не более 1 кВт строк), или частота обновлений невелика (не более 1 раза в день), то вполне можно использовать полное обновление.
  • Подробные данные о критериях эффективности для полных обновлений и приращений приведены в разделе "4.2 Критерии эффективности обновлений" данного документа.

3.2 Частота обновлений

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

  • Глобальные обновления: рекомендуется не чаще одного раза в день.
  • Обновление одной таблицы/папки: рекомендуемый интервал - не менее 2 часов, не более 10 раз в день.
  • Если требования к реальному времени относительно высоки, можно установить частоту синхронизации в соответствии со временем, затрачиваемым группой, в которой обычно обновляется таблица, и интервал обновления более чем в два раза превышает время, необходимое группе для завершения обновления; если требования к реальному времени очень высоки, можно добавить таблицу в качестве данных реального времени, и тогда не нужно будет выполнять обновление.

3.3 Обновление времени реализации

Разумно установите время выполнения для обновлений по таймеру и время срабатывания для ручных обновлений:

  • Обновление по таймеру/глобальное обновление рекомендуется устанавливать в период меньшего использования, например, с 22:00 вечера до 06:00 утра, чтобы оставалось достаточно времени для обновления.
  • Не рекомендуется вручную запускать обновление большой таблицы в рабочие часы с высокой интенсивностью использования, и можно проанализировать среднюю нагрузку системы, чтобы запретить ручное обновление большой таблицы в определенный период времени; если объем данных небольшой или обновление не подтягивает много связанных таблиц, ручное обновление может быть запущено в соответствии с текущим состоянием нагрузки.
  • Для задач обновления с большой степенью корреляции, например, таблицы в папке A и папке B имеют кровное родство или корреляционную связь, попробуйте установить задачи на выполнение в одно и то же время. Например, если задачи A и B настроены на обновление раз в день, и время начала A - 20xx-xx-xx 02:00, а время начала B - 20xx-xx-xx 04:00, то таблицы в A и B могут быть обновлены дважды, поэтому вы можете установить время 02:00.
  • Для обновлений по времени, отличных от глобальных, не рекомендуется устанавливать их выполнение в один момент времени. Вы можете распределить несвязанные задачи в пределах допустимого времени обновления, чтобы предотвратить одновременное обновление нескольких больших таблиц.

3.4 Обновление папки/одной таблицы

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

  • Предлагаемые сценарии использования обновлений папок: Public Data классифицируются по бизнес-модулям, а все таблицы в папке связаны между собой кровными узами или ассоциациями.
  • Предполагаемые сценарии для обновления одной таблицы: количество таблиц в папке превышает 50, таблицы в папке практически не связаны между собой; кровные связи одной таблицы неглубоки, количество дочерних таблиц и количество связанных таблиц не превышает 20.
  • Если избежать сценария пересечения задач при реальном использовании не удается, попробуйте настроить одновременное выполнение задач, установленных для папок и отдельных таблиц.
  • В версии BI 6.0, чтобы избежать неосознанной настройки обновления по таймеру для отдельных таблиц и папок, была добавлена подсказка о настройке обновления. Если набор данных уже имеет незавершенную задачу обновления по времени, то установка обновления по времени для папки, к которой он принадлежит, приведет к появлению подсказки, показанной ниже; и наоборот, по той же причине.

download_image (3).png

3.5 Самостоятельное обновление наборов данных

1) Влияющие факторы

  • На продолжительность обновления наборов данных Self-service влияют время вычисления и размер набора результатов. На время вычисления влияют количество строк исходной таблицы, количество строк таблицы результатов (суммарное количество групп соответствует количеству групп), количество столбцов таблицы результатов и производительность процессора.
  • Чем сложнее и многочисленнее этапы, тем больше времени занимает вычисление при одной и той же исходной таблице.
  • Обновление сценариев с низкой производительностью: фильтрация - формулы/функции, новые столбцы - все значения для средних, ранговых, кумулятивных значений, новые столбцы - суммарные значения - отмена подсчета числовых полей, новые столбцы - формулы/функции (особенно вложенные сценарии, например, предыдущее поле нового столбца используется в следующем новом столбце, или вложение по умолчанию), преобразования строк/столбцов с несколькими полями (более 10), многотабличное (более 5) выделение полей слева/справа объединение и группировка сводок.
  • Более подробные данные о стандартах производительности приведены в документе "4.2 Обновление стандартов производительности".

2) Обновление настроек

  • Обычно устанавливается следование за обновлением родительской таблицы (конфигурация по умолчанию не нуждается в изменении), если вы не устанавливаете обновление вместе с родительской таблицей, то помимо ручного запуска можно настроить обновление по таймеру, но использование этой функции менее распространено в сценариях.
  • Время и частота обновления по таймеру/ручного обновления соответствуют разделам 3.2 и 3.3 в разделе "3. Настройки обновления" данного документа.

3.6 Ассоциативные обновления

1) Влияющие факторы

  • Длительность ассоциации зависит от количества строк полей на обоих концах конфигурации ассоциации и длины всей связи ассоциации. Чем больше строк в исходной таблице и чем длиннее ассоциативная связь, тем больше время обновления. Для обеспечения производительности рекомендуется установить, чтобы все связанные базовые таблицы обновлялись одновременно, а не слишком разрозненно.
  • Подробные данные о критериях эффективности приведены в документе "4.2 Обновление критериев эффективности".

2) Оптимизация корреляции

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

Поэтому для старых ассоциаций вы можете найти ассоциации, которые требуют много времени для обновления, путем обновления Task Management - Historical Running Situation, и внести соответствующие коррективы в соответствии с фактической ситуацией. download_image (4).png

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

3.7 Обновление набора данных сервера

Серверные наборы данных имеют низкую производительность обновления, и серверные наборы данных с более чем 100w и 100 столбцами не рекомендуются.

Не рекомендуется добавлять серверные наборы данных большого объема, добавленные в Public Data для использования. Можно уменьшить объем данных или заменить выборку другой функциональностью, например, добавлением SQL-таблиц напрямую.

4. Стандарты деятельности

Текущий продукт гарантирует необходимые условия производительности:

  • Скорость записи на диск >100 МБ/с
  • Скорость сети между BI и источником данных >500Mbps/s

Рекомендуемая конфигурация сервера:

  • CPU: лучше 8 ядер 16 потоков 2.5GHZ
  • Память JVM: более 16 ГБ

4.1 Факторы, на которые влияет сценарий листа обновлений

Тип таблицыБизнес-шагиПроизводительность библиотеки источника данныхСкорость работы BI и сети источника данныхСкорость записи на дискПРОЦЕССОРПамять
Таблицы БД--Большой>500 Мбит/с>100MB/sМалыйМалый
Таблица SQLпроизводительность выполнения sqlБольшойМаленькийМалый
Набор данных для Self-serviceбольшой----большойБольшой

На полное и инкрементное обновление таблиц DB в основном влияют производительность базы данных источника данных, BI и скорость интернета источника данных.* Полные и инкрементные обновления таблиц SQL в основном зависят от сложности SQL и производительности базы данных источника данных.

Повышение общей скорости обновления: увеличьте значение выделения jvm и используйте SSD.

4.2 Критерии производительности обновлений

1) Критерии производительности при отсутствии одновременных обновлений

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

Тип обновленияКритерии производительности
Базовая таблицаПолнообъемное обновлениеВ пределах 1 миллиарда ячеек обновление завершается в течение 20 минут В пределах 10 миллиардов ячеек обновление завершается в течение 1,5 часов.
Инкрементное обновлениеВ пределах 40 миллионов ячеек инкрементные добавления обновляются в течение 1 минуты. 100 000 000 ячеек, инкрементное удаление обновляется в течение 1 минуты 100 миллионов ячеек, инкрементное удаление обновляется в течение 5 минут 400 миллионов ячеек, инкрементное удаление обновляется в течение 20 минут.
Обновление связейДлина связанных связей не превышает 3, а максимальный объем данных в 1 таблице достигает 10 млн строк, продолжительность связанного обновления составляет 1 минуту Длина связанных связей не превышает 9, а максимальный объем данных в 2 таблицах достигает 100 млн строк, продолжительность связанного обновления составляет 10 минут.
Самостоятельное обновление набора данныхНа это влияет количество строк исходной таблицы, количество строк таблицы результатов (сводка групп соответствует количеству групп), количество столбцов таблицы результатов, производительность процессора и т. д., единого стандарта не существует, сценарий слабой производительности показан в таблице в (3) этого раздела.
Глобальное обновлениеВсе базовые таблицы находятся на миллионном уровне, а количество базовых таблиц + всех наборов данных Self-service не превышает 500, глобальное обновление занимает менее 3 часов. 90 % базовых таблиц не превышают 10 миллионов, а количество базовых таблиц + всех наборов данных Self-service не превышает 1000, глобальное обновление занимает менее 6 часов 90 % базовых таблиц не превышает 10 миллионов, а количество базовых таблиц + всех наборов данных Self-service не превышает 10 000, в течение 10 часов после глобального обновления.
Остановка обновленияОдиночная таблица останавливается в течение 5 секунд; остановка нескольких таблиц (включая подтаблицы) занимает время, равное количеству таблиц/секунду; глобальное обновление останавливается в течение 5 минут

2) Сценарии, соответствующие стандартам производительности

Функциональные сценарииФункциональные деталиПродолжительность обновленияКоличествоСоответствует ли стандарт производительности
Обновление базовой таблицыПолное обновление2,3 мин1 кВт строк и 20 столбцовМаксимальное количество времени для выполнения критерия эффективности в течение 20 мин. Уровень, указывающий на то, что критерий эффективности выполняется для всех уровней, меньших этого.
56,92 мин1www строк и 100 столбцовМаксимальное количество часов для выполнения критерия эффективности в течение 90 мин после обновления уровень, что указывает на то, что критерий эффективности выполняется для всех количеств, меньших этого уровня.
Обновление по нарастающей0.43мин200 строк и 20 столбцовМаксимальное количество времени, необходимое для выполнения критериев эффективности в течение 1 мин, таким образом, указывая, что любое количество, меньшее этого, соответствует критерию эффективности.
Инкрементное обновление с удалением1.3мин200 строк и 20 столбцовМаксимальное количество строк и столбцов, которое соответствует критериям производительности по времени, необходимому для завершения обновления в течение 20 мин. Максимальное количество строк и столбцов, которое соответствует критерию производительности в течение 20 минут, таким образом, указывая, что любое количество, меньшее этого, соответствует критерию производительности.
Ассоциативные обновленияОбновление корреляции 1:N-1:N9,6 мин1www строк и 20 столбцовМаксимальное время выполнения критерия эффективности для завершения обновления в течение 15 мин. уровень, указывая тем самым, что все, что меньше этого уровня, соответствует критериям производительности.
Обновление набора данных в режиме Self-service2 формулы с новыми столбцами шаг4,2 мин1 кВт строк и 20 столбцовМаксимальный порядок величины, удовлетворяющий критерию производительности по времени, необходимому для завершения обновления за 10 мин, что указывает на то, что любой порядок величины, меньший этого, удовлетворяет критерию производительности
Глобальное обновление276 базовых таблиц + 705 наборов данных Self-service + 88 ассоциаций5.08h88% базовых таблиц не превышают кВт, 12% базовых таблиц превышают 1 кВт, общее количество таблиц 981Максимальное значение продолжительности времени для выполнения стандарта производительности - завершение обновления в течение 6 ч, таким образом, указывая, что любое значение, меньшее этого, соответствует стандарту производительности

3) Сценарии со слабой производительностью наборов данных Self-service

Время обновления для одного сценарияБазовый объем данныхТестовый сценарий
5мин~10мин1 кВт строкОт столбца к строке - 10 полей
1ww строкаСлияние слева и справа - слияние справа, слияние групп, добавление новых столбцов - формула, назначение групп, разница во времени, ранжирование всех значений в группе, усреднение всех значений в группе, кумулятивные значения в группе, получение времени, сортировка, фильтрация - непустые
10мин~30мин1квт строкНастройка 10 таблиц с несколькими полями, 30 вложенных новых столбцов, от строки к столбцу - 10 полей
1ww строкиДобавление новых столбцов - среднее, ранг, накопление значений для всех значений
30мин~1ч1kw строка10 таблиц многотабличного выбора полей-групповая сводка, 10 таблиц многотабличного выбора полей-объединение слева и справа
Более 2 часов1 кВт строк10 таблиц и несколько таблиц с выбором полей - 10 полей от строки к столбцу

4.3 Объем данных, соответствующий размеру создаваемого файла (справочно)Примечание: случай, когда числовые поля в таблице составляют более 70% от общего объема.

Количество строкКоличество столбцов таблицыРазмер сгенерированного файла (G)
100w210.58
200w211.14
500w212.67
1 кВт273.25
1076.86
1ww2726.63
10762.14
500w2007.43
41122.09