Таблицы изменений
Можно использовать инструменты, чтобы целевая конечная точка получала информацию с использованием метаданных в таблицах изменений. Эти данные определяются столбцами заголовка, добавленным в схему таблицы изменений. Эти заголовки описаны в приведенной ниже таблице.
Для каждой целевой таблицы в задаче репликации ведется таблица изменений с соответствующим именем в базе данных с целевыми таблицами. Для получения дополнительной информации см. раздел Работа с таблицами изменений. Таблица изменений содержит столбцы из исходной таблицы и столбцы заголовков. Имена столбцов заголовков содержат префикс, благодаря чему не возникает конфликта с именами столбцов исходной таблицы. По умолчанию используется префикс header__
. Для получения инструкций по изменению этого префикса см. пункт Таблицы изменений в разделе «Метаданные в параметрах задачи». В следующей таблице перечислены столбцы заголовков таблицы изменений по умолчанию.
Имя столбца | Тип | Описание |
---|---|---|
varchar (35) |
Генератор изменений с монотонным увеличением, используемый совместно всеми таблицами изменений в задаче. Последовательность изменений имеет следующий формат: YYYYMMDDHHmmSShhxxxxxxxxxxxxxxxxxxx Где:
Время обычно указывает момент фиксации транзакции, которая включает запись изменения. Qlik Talend Data Integration содержит логику, которая соблюдает монотонность порядковых номеров, поэтому изменение или коррекция времени конечной точки может привести к тому, что множественные изменения будут относиться к одной метке времени, но с увеличивающимся номером изменения. Фрагмент xxx...xxx обычно представляет внутренний номер изменения из записи данных, с тем исключением, что для записей BEFORE-IMAGE он совпадает с номером изменения в соответствующей записи UPDATE (например, если номер изменения записи BEFORE-IMAGE 1000, а номер записи UPDATE — 1001, то обеим записям присваивается номер 1001). Это упрощает левое внешнее соединение между таблицей и собой, где слева сканирование возможно до определенной точки времени, но отфильтровывается |
|
|
varchar (1) |
Тип операции. Может быть один из следующих вариантов:
|
|
varbinary (128) |
Маска изменений показывает, какие столбцы данных в таблице изменений связаны со столбцами, измененными в исходной таблице. Позиция бита в маске изменений основана на порядковом номере столбца в таблице изменений. Это означает, что если имеется 5 столбцов заголовков, они занимают биты 0—4, а первый столбец данных занимает бит 5 в маске изменений. Маска изменений представляет собой двоичный столбец (массив байтов), отображающий маску изменений как прямой порядок байтов: Байт 0 бит7 бит6 бит5бит4 бит3 бит2 бит1 бит0 Байт 1 бит15 бит14 бит13 бит12 бит11 бит10 бит9 бит8 В этом примере Ниже приводится описание семантики битов:
В целях производительности пространства и обработки из фактического количества байтов, которые хранятся в маске изменений, можно отбросить нули. Это значит, что конечные нули не требуется сохранять. Это должно учитываться в логике обработки. |
|
varchar (128) |
Исходная позиция потока CDC. |
|
varchar (12) |
Операция, связанная с записью изменения. Это может быть одна из следующих операций:
|
|
varchar (32) |
Идентификатор транзакции, к которой относится запись изменения. Значение представляет собой шестнадцатеричную строку 128-битного идентификатора транзакции. |
|
метка времени |
Первоначальная метка времени изменения в формате UTC (значение может быть приблизительным). Примечание к информации При использовании источника PostgreSQL метка времени становится известной только после фиксации в базе данных. Поэтому до фиксации изменений в исходных таблицах отображается дата по умолчанию (например, 1970-01-01).
|
[header__] |
строка |
Имя раздела, созданного в цели, когда включена функция создания разделов данных изменений. Имя раздела содержит время начала и окончания раздела. Пример: 20170313T123000_20170313T170000 |