Зеркальное отображение данных в облачное хранилище данных
Задачи зеркалирования позволяют делать запросы к данным, хранящимся в Открытое озеро данных Qlik, из Snowflake. Данные отражаются в Snowflake без дубликата.Зеркальные таблицы позволяют минимизировать затраты на хранение и разработку, а также обеспечивают наличие единого источника достоверных данных.
Данные, подключенные к Открытое озеро данных Qlik, можно зеркалировать в Snowflake с помощью зеркальных таблиц. Данные в Iceberg можно запрашивать с помощью механизма запросов, который поддерживает Iceberg напрямую, например Amazon Athena. Однако зеркальные таблицы оптимальным образом подходят для случаев, когда требуется внедрить открытую архитектуру озер-хранилищ на базе таблиц Iceberg, но для запросов используется Snowflake. Задача «Зеркальные данные» автоматически делает таблицы Iceberg доступными в Snowflake, декларируя их как внешние таблицы. Snowflake ссылается на таблицу Iceberg как на внешнюю, так как он не управляет этой таблицей, а только читает из нее. Внешние таблицы позволяют запрашивать из Snowflake данные Iceberg без переноса данных или каких-либо действий по управлению таблицами в Snowflake.
Чтобы зеркалировать данные, создайте в Snowflake внешний том с указателем на блок S3, в котором расположены и обновляются задачей хранения таблицы Iceberg. Затем создайте интеграцию каталога Snowflake, указывающую на каталог данных, используемый в проекте Открытое озеро данных Qlik, например, AWS Glue Data Catalog.
Задача зеркалирования создает внешние таблицы в Snowflake, выполняя необходимые DDL-запросы. Таблица (схема) отображается в Snowflake вместе с таблицами изменений и историческими таблицами, однако, согласно определению таблицы, она отображается в виде представления, созданного поверх внешней таблицы. Пользователи Snowflake могут запрашивать представления так же, как если бы данные хранились в среде Snowflake. Зеркальные данные обеспечивают высокую производительность, поскольку управление и оптимизация данных производится в Qlik.
Механизм обновления
Snowflake указывает на метаданные, в которых отражен последний снимок доступных данных в Iceberg. Есть два способа обновить метаданные:
-
Под управлением Qlik: эта опция может применяться при наличии активного хранилища Snowflake. Этот способ также позволяет контролировать и просматривать данные.Выберите эту опцию, если над данными потом будут производиться трансформации, а также если нужен мониторинг и выполнение задачи по расписанию. Qlik владеет операцией обновления метаданных, поэтому ее можно настроить вручную, — например, чтобы она выполнялась каждые 30 минут. Эта опция особенно эффективна в случае, когда в трансформациях участвуют несколько таблиц, так как обновление метаданных происходит сразу для всех таблиц. Несмотря на то, что этот механизм несколько проигрывает в скорости по сравнению с обновлением, выполняемым под управлением Snowflake, он позволяет сохранить согласованность между таблицами. Для преобразований с несколькими таблицами обновление может запускаться так часто, как это необходимо. Qlik рекомендует установить после задачи зеркалирования, выполняемой по расписанию, триггер для задач преобразований (трансформаций), запускаемый по событию.
-
Под управлением Snowflake: операция, которая не требует сервера. В этом случае используется инфраструктура Snowpipe, поэтому хранилище вычислений не требуется или не активируется. Эта опция рекомендуется, если последующая трансформация данных не производится. Интервал обновления настраивается при создании интеграции каталога Snowflake. Для отслеживания статуса автоматического обновления используйте запрос SYSTEM$AUTO_REFRESH_STATUS в Snowflake. Qlik в этом случае перестает быть владельцем процесса и не может контролировать задания такого типа.
Каждая задача зеркалирования в проекте может использовать свой механизм обновления данных. Например, если созданы две задачи зеркалирования, то одна из них может использовать обновление под управлением Qlik, а другая — под управлением Snowflake.
Эволюция схемы
Если столбцы или таблицы добавляются в задачу хранения или удаляются из нее вручную или же удаляются из задачи промежуточного хранения непрямым способом, соответствующие изменения автоматически отражаются в структуре задачи зеркалирования. Для того чтобы применить изменения в зеркальную таблицу, необходимо подготовить задачу. Если эволюция схемы включена в настройках зеркала и задач хранения, все изменения схемы, которые автоматически обнаруживаются в задаче хранения, будут применяться к зеркальным таблицам.
Необходимые условия
Задача зеркалирования данных может быть добавлена только после создания задачи хранения в проекте Открытое озеро данных Qlik. Задача хранения может иметь несколько задач зеркалирования данных. Задача зеркалирования данных может быть связана только с одной задачей хранения.
Чтобы зеркалировать данные в Snowflake, необходимо:
-
Подключение к базе данных Snowflake, в которую будут зеркально отражаться данные. По желанию, новое подключение можно создать во время создания задачи зеркалирования. Необходимые условия перечислены в инструкциях по подключению к Snowflake.
-
Внешний том Snowflake. Это дает Snowflake ограниченный доступ к местоположению S3. Информация о настройке тома приводится в разделе Настройка внешнего тома для Amazon S3.
-
Интеграция с каталогом данных AWS Glue. Интеграция позволяет Snowflake подключаться к данным, хранящимся в формате открытой таблицы Iceberg в хранилище объектов. Информация об интеграции каталога приводится в разделе Настройка интеграции каталога для AWS Glue.
Создание задачи зеркалирования данных
Чтобы создать зеркало данных в Snowflake:
-
Откройте проект, содержащий задачу хранения для данных, зеркало которых планируется использовать, .
-
Нажмите
Дополнительные действия на задаче хранения. Выберите и настройте Зеркальные данные:
-
Имя: введите название для задачи зеркалирования.
-
Описание: если нужно, опишите цель задачи.
-
Подключение:
-
Чтобы использовать существующее подключение, нажмите Выбрать. Откроется окно Безопасное подключение к источнику. Выберите Пространство, в котором находится подключение, и выберите подключение. Нажмите Редактировать, чтобы изменить свойства подключения.
-
Чтобы создать новое подключение, нажмите Создать подключение. Откроется диалоговое окно Создать подключение. Создайте подключение, следуя инструкциям в этом окне.
-
-
База данных: введите имя базы данных, которая будет содержать зеркало данных.
-
Внешний том Snowflake: введите имя внешнего тома, созданного в Snowflake.
-
Интеграция каталога Snowflake: введите имя интеграции, созданной в Snowflake.
-
Выберите механизм обновления данных в Snowflake:
-
Под управлением Qlik: выберите эту опцию, если потом над данными нужно будет производить преобразования.В этом случае необходимо активное хранилище Snowflake, процесс контролируется Qlik.
-
Под управлением Snowflake: выберите эту опцию, если преобразования над данными не производятся.Хранилище Snowflake не требуется, поэтому процесс не контролируется Qlik. Администрирование и контроль осуществляется в Snowflake.
-
Создайте задачу зеркалирования и добавьте ее к задаче хранения в конвейере.
-
Нажмите кнопку
Другие действия на задаче зеркалирования и выберите Открыть. Убедитесь, что открыто окно Дизайн.
-
Чтобы выбрать нужные наборы данных из всех доступных, нажмите Выбрать исходные данные и удалите из списка все ненужные наборы данных.
-
Нажмите Подготовить, чтобы создать внешнюю таблицу в Snowflake и зеркально отобразить данные.
Выполнение трансформаций
Для преобразования данных можно создать проект Snowflake и использовать в проекте Открытое озеро данных Qlik задачу зеркалирования в качестве источника данных. Чтобы создать задачу трансформации данных, используя данные из существующего проекта, см. раздел Построение межпроектных конвейеров.
Удаление задачи зеркалирования данных
После удаления задачи зеркалирования данных внешние таблицы и представления удаляются из Snowflake и больше не доступны для запросов. Нельзя удалить задачу хранения до тех пор, пока есть задачи зеркалирования, считывающие данные из задачи хранения.
Чтобы удалить задачу зеркалирования данных, выполните следующее:
-
На задаче зеркалирования данных откройте меню
Другие действия и нажмите Удалить. -
В диалоговом окне подтвердите действие, нажав Удалить.