Архитектура набора данных в облачном хранилище данных
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. |