Оформление
Решение для обновления данных - Справка 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, чтобы избежать неосознанной настройки обновления по таймеру для отдельных таблиц и папок, была добавлена подсказка о настройке обновления. Если набор данных уже имеет незавершенную задачу обновления по времени, то установка обновления по времени для папки, к которой он принадлежит, приведет к появлению подсказки, показанной ниже; и наоборот, по той же причине.

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, и внести соответствующие коррективы в соответствии с фактической ситуацией. 
Новые ассоциации, добавляемые для выполнения многотабличного объединенного анализа, могут быть сделаны в теме анализа; в несущественных случаях создание ассоциаций должно быть сокращено, а сами ассоциации должны быть загружены в счетный бункер для выполнения.
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:N | 9,6 мин | 1www строк и 20 столбцов | Максимальное время выполнения критерия эффективности для завершения обновления в течение 15 мин. уровень, указывая тем самым, что все, что меньше этого уровня, соответствует критериям производительности. |
| Обновление набора данных в режиме Self-service | 2 формулы с новыми столбцами шаг | 4,2 мин | 1 кВт строк и 20 столбцов | Максимальный порядок величины, удовлетворяющий критерию производительности по времени, необходимому для завершения обновления за 10 мин, что указывает на то, что любой порядок величины, меньший этого, удовлетворяет критерию производительности |
| Глобальное обновление | 276 базовых таблиц + 705 наборов данных Self-service + 88 ассоциаций | 5.08h | 88% базовых таблиц не превышают кВт, 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) |
|---|---|---|
| 100w | 21 | 0.58 |
| 200w | 21 | 1.14 |
| 500w | 21 | 2.67 |
| 1 кВт | 27 | 3.25 |
| 107 | 6.86 | |
| 1ww | 27 | 26.63 |
| 107 | 62.14 | |
| 500w | 200 | 7.43 |
| 411 | 22.09 |