Архитектура набора данных в облачном хранилище данных
Qlik Talend Data Integration позволяет создавать, управлять и контролировать аналитический конвейер данных, доставляя данные конечным потребителям. При создании наборов данных в облачном хранилище данных с помощью Qlik Talend Data Integration генерируются таблицы хранения, таблицы изменений и представления.
Интуитивно понятный пользовательский интерфейс с подсказками помогает создавать, моделировать и выполнять конвейеры данных. Автоматически генерируйте схемы для хранилищ оперативных данных (ODS) и хранилищ исторических данных (HDS) без написания кода вручную.
Архитектура для конвейера данных Qlik Talend Data Integration с использованием Шлюз данных Qlik — движение данных и CDC
-
Промежуточное хранение
Задача промежуточного хранения в Qlik Talend Data Integration управляет непрерывным промежуточным хранением данных из источников данных в зону промежуточного хранения. Пример на диаграмме описывает использование Шлюз данных Qlik — движение данных для доступа к источникам данных с помощью CDC для поддержания данных в актуальном состоянии. Вы также можете использовать исходные подключения Qlik Cloud для выполнения полных загрузок, которые можно запланировать для периодической перезагрузки.
Для получения информации о том, когда необходимо использовать Шлюз движения данных, см. Когда требуется Шлюз движения данных?
Примечание к информацииТаблицы в зоне промежуточного хранения генерируются для внутреннего использования задачами данных хранения Qlik Talend Data Integration. Не используйте таблицы промежуточного хранения в любых других последующих процессах. -
Хранение
Задача хранения контролирует, когда данные применяются к таблицам хранения, а также создает таблицы и внешние представления и управляет ими.
-
Внешние представления
При потреблении данных рекомендуется использовать представления. Представления обеспечивают ряд преимуществ по сравнению с таблицами, включая улучшенный параллелизм данных.
Использование динамических представлений
Вы можете получить доступ как к текущим данным (ODS), так и к историческим данным (HDS) с помощью динамических представлений. Динамические представления включают данные из таблиц изменений, которые еще не применены к текущим или предыдущим таблицам. Это позволяет просматривать данные с меньшей задержкой без необходимости частого применения измененных данных. Возможность отложить слияние позволяет снизить затраты и требования к обработке на целевой платформе.
Еще одним преимуществом динамических представлений является то, что вычислительному уровню не нужно работать постоянно.
-
Промежуточное хранение может указывать на явное хранилище, которое может быть небольшим, поскольку оно просто выполняет операции INSERT для быстрого выполнения.
-
Процесс хранения, выполняющийся, например, один раз в день, может активировать большой вычислительный слой для обработки.
-
Задержка может быть улучшена, так как нам больше не нужно применять изменения в течение дня. Когда вставленные новые записи становятся доступными в таблице изменений, они сразу же доступны в динамических представлениях.
Схемы
Артефакты генерируются во внутренней схеме и схеме задачи данных.
-
Внутренняя схема содержит физические таблицы данных.
-
Схема задачи данных содержит представления, которые можно использовать для потребления данных.
Если схема связана более чем с одной задачей данных, каждая задача данных должна использовать уникальный префикс для таблиц и представлений. Вы можете задать префикс в настройках задачи данных.
Только внутренние схемы проверяются на наличие конфликтов имен. Для других схем необходимо убедиться в отсутствии конфликтов в именах таблиц. Рекомендуется называть внутреннюю схему тем же именем, что и схему задачи данных, с добавлением _internal. Это эффективно обеспечит уникальность каждой комбинации схемы и префикса.
Схемы, созданные Qlik Talend Data Integration, не будут удалены при удалении задач или проектов.
Таблицы
Следующие таблицы создаются во внутренней схеме.
-
Текущая таблица (ODS)
Эта таблица содержит реплику источника данных, обновленную изменениями в течение последнего интервала применения.
-
Предыдущая таблица (HDS)
Эта таблица содержит исторические данные типа 2. Она генерируется только в том случае, если в настройках задачи данных включена История.
При обновлении записи исходной таблицы каждый раз в предыдущую таблицу добавляется новая запись. Историческая запись является копией предыдущей текущей записи, которая также включает информацию о том, что было обновлено и когда она была действительна.
Используйте историческое представление или историческое динамическое представление для просмотра исторических данных. Для получения дополнительной информации см. Историческое представление и Историческое динамическое представление.
-
Таблица изменений
Эта таблица содержит все изменения, которые еще не применены к текущей таблице. Она генерируется только в том случае, если используется режим промежуточного хранения Полная загрузка и CDC.
При повторной вставке ранее удаленной записи, если записи имеют одинаковое значение первичного ключа, hdr__operation будет иметь значение U - обновлено.
Имена столбцов, начинающиеся с hdr__, зарезервированы для использования в столбцах заголовков Qlik Talend Data Integration. Для получения дополнительной информации см. Неоднозначные имена столбцов.
Текущая таблица
Именование: <INTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>_current
В структуру таблицы добавляются следующие столбцы заголовков.
| Поле | Тип | Описание |
|---|---|---|
| hdr__key_hash | varbinary(20) |
Хэш всех первичных ключей записи. Формат хэша — SHA1. Столбцы разделяются символом возврата на одну позицию (backspace). Этот столбец не генерируется в задачах данных Витрина данных. |
| hdr__key_id | int64 |
Последовательность, увеличивающаяся для каждой записи. Этот столбец генерируется только в задачах данных Витрина данных. |
| hdr__from_timestamp | timestamp |
Метка времени в UTC
|
| hdr__operation | string(1) |
Последняя операция этой записи.
|
| hdr__inserted_timestamp | timestamp | Метка времени UTC первого добавления ключа. При использовании полной загрузки — время начала полной загрузки. |
| hdr__modified_timestamp | timestamp | Метка времени UTC применения последнего обновления. |
Предыдущая таблица
Добавляются следующие поля заголовка.
Именование: <INTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>_prior
| Поле | Тип | Описание |
|---|---|---|
| hdr__key_hash | varbinary(20) |
Хэш всех первичных ключей записи. Этот столбец не генерируется в задачах данных Витрина данных. |
| hdr__key_id | int64 |
Последовательность, увеличивающаяся для каждой записи. Этот столбец генерируется только в задачах данных Витрина данных. |
| hdr__from_timestamp | timestamp |
Метка времени в UTC |
| hdr__to_timestamp | timestamp |
Метка времени в UTC |
| hdr__operation | string(1) |
Последняя операция этой записи.
|
| hdr__was_current_from_timestamp | timestamp |
Метка времени в UTC, когда запись впервые стала текущей. |
| hdr__was_current_to_timestamp | timestamp |
Метка времени в UTC, когда запись в последний раз была текущей. |
Таблица изменений
Именование: <INTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>_ct
В структуру таблицы добавляются следующие поля заголовка.
| Поле | Тип | Описание |
|---|---|---|
| hdr__change_identifier | varchar(50) |
Идентификатор изменения — это строка, состоящая из двух частей:
|
| hdr__operation | varchar(1) |
Последняя операция этой записи.
|
| hdr__timestamp | timestamp |
Метка времени в UTC. |
| hdr__key_hash | binary(20) |
Хэш всех первичных ключей записи. Этот столбец не генерируется в задачах данных Витрина данных. |
| hdr__key_id | int64 |
Последовательность, увеличивающаяся для каждой записи. Этот столбец генерируется только в задачах данных Витрина данных. |
Представления
Следующие представления создаются в целевой схеме задачи данных. Какие именно представления создаются, зависит от того, включены ли динамические представления и история, а также используется ли обработка изменений.
-
Стандартное представление
-
Динамическое представление
-
Представление изменений
-
Историческое представление
-
Историческое динамическое представление
Стандартное представление
Именование: <EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>
В структуру таблицы не добавляются столбцы заголовков.
Динамическое представление
Динамические представления показывают представление для каждой выбранной исходной таблицы, которое объединяет таблицу с изменениями из таблицы изменений. Это обеспечивает запросам динамическое представление данных без необходимости ждать следующего цикла применения. Изменения, объединенные из представления таблицы изменений, не являются транзакционно согласованными между таблицами.
Динамические представления создаются только в том случае, если в настройках задачи данных включены Динамические представления.
Именование: <EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>< Суффикс для динамических представлений>
| Поле | Тип | Описание |
|---|---|---|
| hdr__key_hash | varbinary(20) |
Хэш всех первичных ключей записи. Формат хэша — SHA1. Столбцы разделяются символом возврата на одну позицию (backspace). Этот столбец не генерируется в задачах данных Витрина данных. |
| hdr__key_id | int64 |
Последовательность, увеличивающаяся для каждой записи. Этот столбец генерируется только в задачах данных Витрина данных. |
| hdr__from_timestamp | timestamp |
Метка времени в UTC
|
| hdr__operation | string(1) |
Последняя операция этой записи.
|
| hdr__inserted_timestamp | timestamp | Метка времени UTC первого добавления ключа. При использовании полной загрузки — время начала полной загрузки. |
| hdr__modified_timestamp | timestamp | Метка времени UTC применения последнего обновления. |
| hdr__store | varchar(10) |
Указывает, где находится запись.
|
Представление изменений
Это представление таблицы изменений в схеме промежуточного хранения для каждой выбранной исходной таблицы.
Именование: <EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>_changes
В структуру таблицы добавляются следующие поля заголовка.
| Поле | Тип | Описание |
|---|---|---|
| hdr__change_identifier | string(50) |
Идентификатор изменения — это строка, состоящая из двух частей:
|
| hdr__from_timestamp | timestamp |
Метка времени в UTC
|
| hdr__to_timestamp | timestamp |
Метка времени в UTC
|
| hdr__operation | string(1) |
Последняя операция этой записи.
|
| hdr__timestamp | timestamp |
Метка времени в UTC. |
| hdr__key_hash | binary(20) |
Хэш всех первичных ключей записи. Этот столбец не генерируется в задачах данных Витрина данных. |
| hdr__key_id | int64 |
Последовательность, увеличивающаяся для каждой записи. Этот столбец генерируется только в задачах данных Витрина данных. |
Историческое представление
Историческое представление генерируется в схеме ресурсов данных для каждой выбранной исходной таблицы, если в настройках задачи данных включена История. Добавляются следующие поля заголовка.
Именование: <EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>< Суффикс для исторических представлений>
| Поле | Тип | Описание |
|---|---|---|
| hdr__key_hash | binary(20) |
Хэш всех первичных ключей записи. Этот столбец не генерируется в задачах данных Витрина данных. |
| hdr__key_id | int64 |
Последовательность, увеличивающаяся для каждой записи. Этот столбец генерируется только в задачах данных Витрина данных. |
| hdr__from_timestamp | timestamp |
Метка времени в UTC
|
| hdr__to_timestamp | timestamp |
Метка времени в UTC
|
| hdr__was_current_from_timestamp | timestamp |
Метка времени в UTC, когда запись впервые стала текущей. |
| hdr__was_current_to_timestamp | timestamp |
Метка времени в UTC, когда запись в последний раз была текущей. |
| hdr__store | varchar(7) |
Указывает, где находится запись.
|
| hdr__operation | string(1) |
Последняя операция этой записи.
|
| hdr__deleted | bit |
Указывает, является ли запись мягко удаленной, на основе того, равно ли hdr__operation D или d. |
Историческое динамическое представление
Историческое динамическое представление генерируется в схеме ресурсов данных для каждой выбранной исходной таблицы, объединенной с изменениями из таблицы изменений. Добавляются следующие поля заголовка.
Именование: <EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>< Суффикс для исторических динамических представлений>
| Поле | Тип | Описание |
|---|---|---|
| hdr__key_hash | binary(20) |
Хэш всех первичных ключей записи. Этот столбец не генерируется в задачах данных Витрина данных. |
| hdr__key_id | int64 |
Последовательность, увеличивающаяся для каждой записи. Этот столбец генерируется только в задачах данных Витрина данных. |
| hdr__store | varchar(10) |
Указывает, где находится запись.
|
| hdr__operation | string(1) |
Последняя операция этой записи.
|
| hdr__deleted | bit |
Указывает, является ли запись мягко удаленной, на основе того, равно ли hdr__operation D или d. |