Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве описывается, как использовать запись измененных данных (CDC) в задании копирования для эффективной репликации изменений данных из Snowflake в место назначения. Это гарантирует, что данные назначения остаются актуальными автоматически.
Предпосылки
Прежде чем начать, убедитесь, что у вас есть следующее:
Требования к Snowflake:
- Учетная запись Snowflake с доступом к базе данных и схеме, содержащей исходные таблицы.
- Привилегия OWNERSHIP в таблицах, в которых требуется включить отслеживание изменений. Кроме того, для включения отслеживания изменений можно использовать привилегию MODIFY.
- Привилегии USAGE в базе данных и схеме, содержащей таблицы.
- Привилегия SELECT в таблицах для чтения данных.
- Таблицы должны иметь период хранения данных (минимум 0 дней, максимум 90 дней). Срок хранения должен быть длиннее запланированного интервала задания копирования, чтобы предотвратить потерю измененных данных.
Дополнительные сведения о разрешениях Snowflake и отслеживании изменений см. в разделе "Права управления доступом " и "Введение в потоки".
Требования структуры:
- Рабочая область Fabric с необходимыми разрешениями для создания задания на копирование.
- Целевое хранилище данных, которое поддерживается заданием копирования для репликации CDC.
Подсказка
Используйте роли SECURITYADMIN или SYSADMIN в Snowflake, чтобы предоставить необходимые привилегии на объекты. Роль ACCOUNTADMIN может потребоваться для определенных конфигураций на уровне учетной записи.
Включение отслеживания изменений в Snowflake
Snowflake использует отслеживание изменений на уровне таблицы для отслеживания изменений данных. Отслеживание изменений должно быть включено в каждой таблице по отдельности. Выполните следующие действия, чтобы включить отслеживание изменений в таблицах Snowflake:
Подключитесь к учетной записи Snowflake с помощью веб-интерфейса Snowflake, SnowSQL или другого клиента SQL.
Включите отслеживание изменений для каждой таблицы, которую вы хотите отслеживать. Для каждой таблицы выполните следующую команду SQL:
ALTER TABLE <schema_name>.<table_name> SET CHANGE_TRACKING = TRUE;Замените
<schema_name>и<table_name>вашими именами схем и таблиц.Пример:
ALTER TABLE sales.customers SET CHANGE_TRACKING = TRUE; ALTER TABLE sales.orders SET CHANGE_TRACKING = TRUE;(Необязательно) Включите отслеживание изменений при создании новой таблицы:
CREATE TABLE <schema_name>.<table_name> ( column1 STRING, column2 NUMBER ) CHANGE_TRACKING = TRUE;Убедитесь, что отслеживание изменений включено. Выполните следующую команду, чтобы проверить состояние:
SHOW TABLES LIKE '<table_name>' IN SCHEMA <schema_name>;В выходных данных найдите столбец
change_trackingи подтвердите, что он отображаетON.В качестве альтернативы, выполните запрос
INFORMATION_SCHEMA:SELECT table_catalog, table_schema, table_name, change_tracking FROM <database_name>.INFORMATION_SCHEMA.TABLES WHERE table_schema = '<schema_name>' AND table_name = '<table_name>';
Замечание
- Отслеживание изменений — это свойство уровня таблицы в Snowflake, которое отслеживает операции INSERT, UPDATE и DELETE.
- Для включения отслеживания изменений необходимо иметь
OWNERSHIPпривилегию на таблицу илиMODIFYпривилегию. - Отслеживание изменений использует дополнительное хранилище для метаданных, но требуется для таких функций, как потоки и шаблоны CDC.
- Snowflake сохраняет данные отслеживания изменений в соответствии с периодом хранения данных таблицы (минимум 0 дней, максимум 90 дней). Убедитесь, что срок хранения превышает интервал запланированного задания копирования, чтобы избежать потери данных.
Дополнительные сведения об отслеживании изменений в Snowflake см. в официальной документации Snowflake — ALTER TABLE и Управление потоками.
Создайте задачу копирования с использованием Snowflake CDC
Замечание
- Следующие действия очень похожи на то, что вы сделали в задании "Использование копирования" для приема данных из базы данных SQL Azure через CDC в другую базу данных SQL Azure
Выполните следующие действия, чтобы создать новое задание для копирования данных из Snowflake через CDC в конечный пункт назначения.
Выберите +Создать элемент, щелкните значок "Копировать задание ", назовите задание копирования и нажмите кнопку "Создать".
Выберите хранилище данных для копирования данных. В этом примере выберите Snowflake.
Введите сведения о подключении и учетные данные для подключения к Snowflake. Вы можете безопасно копировать данные в среде виртуальной сети с помощью локального или виртуального шлюза.
Вы должны иметь четкое представление о том, для каких исходных таблиц включен механизм CDC. Выберите таблицы с включенным CDC для копирования.
Таблицы с включенной функцией CDC:
Таблицы без включения CDC:
Выберите целевое хранилище. Выберите точку назначения, которая поддерживает операции слияния (merge) или обновления (upsert) CDC для оптимальной репликации CDC.
Выберите инкрементное копирование, и вы увидите, что инкрементный столбец для каждой таблицы не требуется для отслеживания изменений. Метод update по умолчанию должен иметь значение Merge, и необходимые ключевые столбцы будут соответствовать первичному ключу, определенному в исходном хранилище по умолчанию.
Замечание
Задание копирования изначально выполняет полную загрузку данных, а затем выполняет инкрементные копии в последующих запусках через CDC.
Просмотрите сводку задания, установите параметр запуска на "по расписанию" и выберите "Сохранить и запустить".
Замечание
Убедитесь, что срок хранения отслеживания изменений Snowflake превышает интервал между запланированными запусками; В противном случае измененные данные могут быть потеряны, если они не обрабатываются в течение периода хранения.
Задание копирования запускается немедленно. Первый запуск копирует первоначальный полный снэпшот.
Обновите исходные таблицы в Snowflake, вставляя, обновляя или удаляя строки.
Снова запустите задание копирования, чтобы записать и реплицировать все изменения, включая вставку, обновление и удаление строк в место назначения.