Оформление
Обзор инкрементных обновлений
1. Обзор
1.1 Сценарии применения
Если в базе данных есть таблица, новые данные будут добавляться каждый день. В этом случае вы можете использовать "Инкрементное обновление" для обновления только новых данных, добавляемых каждый день в FineBI. Это экономит время и ресурсы, избавляя вас от необходимости обновлять всю таблицу.
1.2 Функциональный профиль
Таблицы данных, отвечающие следующим условиям, лучше всего подходят для использования инкрементных обновлений
- В таблице есть поле "временная метка", которое можно использовать для сравнения с "временем обновления", чтобы добиться инкрементных обновлений.
- Исторические данные не меняются
Таблицы с инкрементным обновлением часто используются для таблиц, которые часто обновляются и содержат относительно большой объем данных. Если одна таблица имеет небольшой объем данных или обновляется только раз в месяц, то вполне можно использовать полное обновление.
1.3 Примечания
- Таблицы, не поддерживающие инкрементные обновления: серверные наборы данных, базовые таблицы с преобразованием строк/столбцов или самовосстанавливающимися столбцами, наборы данных Excel, наборы данных Self-service. (Наборы данных Excel нельзя обновлять инкрементально, их можно только загружать инкрементально, подробнее см. в разделеЗагрузка инкрементально ).
- Перед выполнением инкрементного обновления необходимо выполнить полное обновление, а инкрементное утверждение не может быть нулевым.
- Полное обновление перезаписывает все данные в базе данных в таблицу данных BI, в то время как инкрементное обновление обновляет данные в зависимости от оператора SQL.
2. Операционный профиль
Выберите таблицу, которую нужно постепенно обновить, и найдите пункт "Обновление одной таблицы" в разделе "Информация об обновлении", как показано ниже:

Перейдите на экран настроек обновления единой таблицы, как показано ниже:

Вы видите, что существует два типа инкрементных обновлений: инкрементные добавления и инкрементные удаления.
2.1 Инкрементное увеличение
Напишите SQL-оператор ниже, чтобы получить число, "Incremental Increase" добавит данные, взятые из базы данных, в движок FineBI, как показано ниже:
Обычно используется при необходимости добавления новых данных через регулярные промежутки времени. Дополнительные сведения см. в разделе: Пример инкрементального добавления

2.2 Инкрементное удаление
Напишите SQL-запрос ниже, и система заберет эту часть данных из механизма FineBI для удаления, как показано на следующем рисунке:
Инкрементное удаление позволяет удалять ненужные данные из движка FineBI. Однако инкрементное удаление редко используется само по себе, обычно оно применяется для модификации данных, см. раздел 2.3 этого документа.

2.3 Инкрементные модификации
Используйте "Инкрементное добавление" и "Инкрементное удаление" вместе, например, сначала удалите часть данных в FineBI, а затем добавьте данные из базы данных в движок FineBI.
Более подробную информацию см. в разделе: Пример инкрементной модификации
2.4 Настройка инкрементных обновлений по таймеру
FineBI поддерживает инкрементное обновление по таймеру, подробнее см. в разделе 2.3 " Пример инкрементного добавления ".
3. условия
3.1 Многократное выполнение инкрементных обновлений приводит к дублированию данных
Что делать, если пользователь случайно продублирует обновление во время инкрементного обновления, что приведет к дублированию данных в FineBI?
В этот момент достаточно выполнить полное обновление, и данные в базе данных перезапишут данные в движке FineBI, обеспечив тем самым согласованность данных в движке FineBI и базе данных.

3.2 Отсутствие изменений в дисковом пространстве после инкрементного удаления
Пользователь выполняет инкрементное удаление и обнаруживает, что дисковое пространство не уменьшилось.
Это связано с тем, что FineBI не освобождает дисковое пространство сразу после выполнения инкрементного удаления; вместо этого он сначала помечает данные для удаления.
Когда количество данных, помеченных для удаления, достигает определенного числа (10 миллионов), они удаляются вместе, чтобы освободить место на диске.
Если вы хотите реалистично удалять данные каждый раз , вы можете изменить параметр "spider_section_merge_policy " в "finedb " и установить значение "value " на "simple ", чтобы дисковое пространство, занимаемое после каждого инкремента, было точным.
3.3 Несогласованное системное время между базой данных и BI-сервером
Если системное время сервера FineBI не совпадает со временем базы данных, легко продублировать обновления.
Рекомендуется установить оператор инкрементного обновления на "where time > last update time and time <= current update time".