Зеркалирование данных стало общедоступным (GA): репликация данных Postgres в Snowflake за секунды

Фото: Claudio Schwarz (Unsplash) — https://unsplash.com/photos/data-word-and-star-on-glass-fyeOxvYvIyY?utm_source=dev48&utm_medium=referral

Источник: Snowflake•

Зеркалирование данных стало общедоступным (GA): репликация данных Postgres в Snowflake за секунды

Зеркалирование данных из Postgres в аналитическую среду Snowflake теперь общедоступно. Автоматически реплицируйте операции вставки, обновления, удаления и изменения схемы — без конвейеров и дополнительной инфраструктуры.

Данные вашего приложения не должны требовать сложного конвейера, чтобы стать аналитическими данными. С сегодняшнего дня это не так: зеркалирование данных Postgres стало общедоступным.

Зеркалирование данных Postgres обеспечивает бесшовную репликацию таблиц Postgres в Snowflake для аналитики и ИИ. Вы можете настроить зеркало за считанные секунды, и каждая операция вставки, обновления или удаления будет передаваться напрямую в Snowflake. Изменения схемы применяются автоматически, а новые таблицы подхватываются без участия пользователя.

Самое приятное — нет никакой внешней инфраструктуры, которую нужно развертывать или обслуживать. Это просто Postgres, работающий в связке со Snowflake.

Рисунок 1: Обзор зеркалирования данных Postgres.

Зеркалирование данных устраняет «налог на конвейеры»

Спросите любую команду по работе с данными об их самой утомительной задаче, и вы услышите один и тот же ответ: перемещение данных между транзакционными и аналитическими системами. Команды вынуждены постоянно следить за CDC-коннекторами, пакетными заданиями, которые ломаются, и снимками данных, которые теряют актуальность. Эта проблема существует уже 30 лет, и мы стали слишком невосприимчивы к тому, что это считается нормой.

В эпоху ИИ своевременность имеет значение. Когда ваши данные готовы и находятся там, где вы можете использовать их в режиме реального времени, это повышает ценность бизнеса — как за счет устранения технического долга, так и за счет предоставления командам необходимых данных без задержек. Конвейеры, которые работают с отставанием и требуют постоянного присмотра, не просто отнимают время инженеров. Они оставляют ваши данные на часы или дни позади реальности. Модель обнаружения мошенничества не сможет остановить сегодняшнюю атаку с помощью вчерашней пакетной загрузки. Зеркалирование данных позволяет устранить этот разрыв.

Как это работает: зеркалирование данных Postgres

Зеркалирование данных непрерывно реплицирует ваши данные Postgres в Snowflake за считанные секунды. Как только вы создаете зеркало, Snowflake поддерживает целевые таблицы, которые отражают текущее состояние исходных таблиц, включая изменения схемы и новые таблицы, которые вы добавляете в зеркалируемые схемы.

Настройте это в несколько кликов в интерфейсе Snowsight или с помощью одной SQL-команды — или, что еще лучше, просто попросите Snowflake CoCo.

Благодаря зеркалированию данных вы получаете:

  • Никакой дополнительной инфраструктуры: зеркала работают внутри Snowflake, поэтому нет никаких дополнительных сервисов или поставщиков, с которыми нужно иметь дело.

Никакой дополнительной инфраструктуры: зеркала работают внутри Snowflake, поэтому нет никаких дополнительных сервисов или поставщиков, с которыми нужно иметь дело.

  • Свежие данные для чтения: каждая зеркалируемая таблица включает представление $live, объединяющее уже примененные данные с изменениями, находящимися в процессе обработки. Читатели видят зафиксированные изменения источника в течение нескольких секунд.

Свежие данные для чтения: каждая зеркалируемая таблица включает представление $live, объединяющее уже примененные данные с изменениями, находящимися в процессе обработки. Читатели видят зафиксированные изменения источника в течение нескольких секунд.

  • Транзакционная согласованность: изменения из одной исходной транзакции появляются в целевой системе вместе. Внешние ключи сохраняются, а соединения остаются точными.

Транзакционная согласованность: изменения из одной исходной транзакции появляются в целевой системе вместе. Внешние ключи сохраняются, а соединения остаются точными.

  • Встроенная история изменений: каждая таблица получает семидневную ленту изменений ($changes), отображающую вставки, обновления и удаления. Ее можно запрашивать как из Snowflake, так и из Postgres.

Встроенная история изменений: каждая таблица получает семидневную ленту изменений ($changes), отображающую вставки, обновления и удаления. Ее можно запрашивать как из Snowflake, так и из Postgres.

  • Высокая пропускная способность при масштабировании: оптимизированная стратегия применения пропускает полное сканирование таблиц, поэтому стоимость и производительность остаются стабильными по мере роста ваших данных.

Высокая пропускная способность при масштабировании: оптимизированная стратегия применения пропускает полное сканирование таблиц, поэтому стоимость и производительность остаются стабильными по мере роста ваших данных.

Кроме того, все это построено на открытом фундаменте. «Под капотом» зеркалирование использует pg_lake, расширение Postgres с открытым исходным кодом от Snowflake, для захвата изменений через стандартную логическую репликацию и записи их в таблицы Apache Iceberg™. Между вашей базой данных и данными нет проприетарного слоя. Вы можете зеркалировать данные в стандартные таблицы Snowflake для простоты или в таблицы Iceberg в собственном хранилище для полной переносимости.

Почему зеркалирование данных отличается: «push», а не «pull»

Большинство инструментов репликации встраивают отдельный сервис между вашей базой данных и Snowflake. Этот сервис «вытягивает» (pull) изменения по сети, не зная, что происходит внутри Postgres: когда изменилась схема, как снимок соотносится с изменениями в процессе обработки, или не работает ли база данных или просто сеть. Зеркалирование данных меняет эту модель.

Расширение Postgres захватывает изменения изнутри базы данных и «выталкивает» (push) их транзакционными пакетами в открытые журналы изменений Iceberg в объектном хранилище. Затем Snowflake применяет эти пакеты с помощью бессерверных вычислений, также транзакционно. Поскольку расширение видит все, что происходит в Postgres, оно координирует снимки, изменения схемы и восстановление на стороне источника, чтобы они не конфликтовали в целевой системе.

Транзакции с обеих сторон означают, что каждая зеркалируемая таблица обновляется согласованно, попадая точно на границу транзакции Postgres. Вставки добавляются (append), а не обновляются (upsert), поэтому самые большие и интенсивно пополняемые таблицы остаются быстрыми и экономичными по мере роста.

Результаты:

  • Никаких новых поставщиков, которых нужно оценивать, оплачивать и контролировать

Никаких новых поставщиков, которых нужно оценивать, оплачивать и контролировать

  • Никакой новой инфраструктуры для развертывания и мониторинга

Никакой новой инфраструктуры для развертывания и мониторинга

  • Никаких операций upsert, которые замедляются по мере роста ваших таблиц

Никаких операций upsert, которые замедляются по мере роста ваших таблиц

  • Никакой привязки к поставщику в отношении ваших данных об изменениях, так как они попадают в открытые таблицы Apache Iceberg, а зеркалирование построено на нашем расширении с открытым исходным кодом pg_lake

Никакой привязки к поставщику в отношении ваших данных об изменениях, так как они попадают в открытые таблицы Apache Iceberg, а зеркалирование построено на нашем расширении с открытым исходным кодом pg_lake

«Зеркалирование данных оптимизировало то, как мы управляем данными, позволив нам полностью отказаться от процесса копирования данных. Усилия по поддержке и затраты снизились, и наши клиенты теперь получают данные о кредитных спредах, необходимые для оценки облигаций, быстрее и надежнее».

Руководитель платформы аналитических данных, SimCorp

Что команды создают с помощью зеркалирования данных

Зеркалирование данных полезно везде, где ваши аналитические или ИИ-рабочие нагрузки зависят от свежих транзакционных данных. Вот что команды делают с этим сегодня:

  • На одного поставщика в счете меньше: команда платформы данных, использующая промежуточное ПО для передачи данных Postgres в Snowflake, может заменить целые конвейеры одним вызовом CREATE_MIRROR. Компания Ericsson сделала именно это, консолидировав четыре устаревшие базы данных, устранив конвейеры синхронизации и сократив время обработки данных на 99%.

На одного поставщика в счете меньше: команда платформы данных, использующая промежуточное ПО для передачи данных Postgres в Snowflake, может заменить целые конвейеры одним вызовом CREATE_MIRROR. Компания Ericsson сделала именно это, консолидировав четыре устаревшие базы данных, устранив конвейеры синхронизации и сократив время обработки данных на 99%.

  • Дашборды, показывающие, что происходит сейчас: команда электронной коммерции зеркалирует свою таблицу заказов в Snowflake. Каждая покупка, отмена и возврат отображаются за секунды. Их операционный дашборд отражает выручку в реальном времени, а не закрытие вчерашнего дня. Когда происходит всплеск продаж во время флеш-распродажи, они видят это немедленно, а не в завтрашнем отчете.

Панели мониторинга, показывающие, что происходит прямо сейчас: команда электронной коммерции зеркалирует свою таблицу заказов в Snowflake. Каждая покупка, отмена и возврат отображаются за считанные секунды. Их операционная панель отражает выручку в режиме реального времени, а не по итогам вчерашнего дня. Когда во время распродажи происходит всплеск активности, они видят это немедленно, а не в завтрашнем отчете.

  • AI-агенты, которые действительно знают, что происходит: служба поддержки зеркалирует учетные записи клиентов и историю заказов в Snowflake, где AI-агенты Snowflake Cortex объединяют эти данные с информацией о продуктах, статусе доставки и прошлых взаимодействиях. Когда клиент спрашивает: «Где мой заказ?», агент отвечает, основываясь на текущем состоянии бизнеса.

AI-агенты, которые действительно знают, что происходит: служба поддержки зеркалирует учетные записи клиентов и историю заказов в Snowflake, где AI-агенты Snowflake Cortex объединяют эти данные с информацией о продуктах, статусе доставки и прошлых взаимодействиях. Когда клиент спрашивает: «Где мой заказ?», агент отвечает, основываясь на текущем состоянии бизнеса.

  • Оценка мошенничества и рисков при проведении транзакций в реальном времени: компания, предоставляющая финансовые услуги, зеркалирует платежные события в Snowflake и запускает модели оценки в режиме реального времени. Подозрительные закономерности выявляются до того, как деньги будут списаны, а не на следующее утро, когда наконец выполнится пакетное задание.

Оценка мошенничества и рисков при проведении транзакций в реальном времени: компания, предоставляющая финансовые услуги, зеркалирует платежные события в Snowflake и запускает модели оценки в режиме реального времени. Подозрительные закономерности выявляются до того, как деньги будут списаны, а не на следующее утро, когда наконец выполнится пакетное задание.

  • Аудиторские журналы, которые не нужно создавать вручную: команда по обеспечению соответствия требованиям использует ленту $changes, чтобы отвечать на вопросы «Что изменилось и когда?» без необходимости поддерживать пользовательские таблицы истории. Каждая операция вставки, обновления и удаления в зеркалируемых таблицах доступна для запросов в течение семи дней.

Аудиторские журналы, которые не нужно создавать вручную: команда по обеспечению соответствия требованиям использует ленту $changes, чтобы отвечать на вопросы «Что изменилось и когда?» без необходимости поддерживать пользовательские таблицы истории. Каждая операция вставки, обновления и удаления в зеркалируемых таблицах доступна для запросов в течение семи дней.

«Раньше наши прикладные данные и аналитические данные находились в двух разных местах. Теперь все они в Snowflake. Транзакционные данные автоматически зеркалируются в Snowflake, поэтому наши клиенты могут использовать ИИ для работы с ними без дополнительных усилий».

Технический директор, Simfoni

Начните работу с зеркалированием данных за считанные минуты

Зеркалирование данных доступно уже сегодня на AWS и Microsoft Azure во всех регионах, где работает Snowflake Postgres. Вы можете начать использовать зеркалирование данных Postgres за три шага:

  • Запустите Snowflake Postgres или используйте уже имеющийся экземпляр.

Запустите Snowflake Postgres или используйте уже имеющийся экземпляр.

  • Создайте зеркало в несколько кликов в Snowsight, с помощью одной SQL-команды или обратившись к CoCo. Выберите конкретные таблицы, полную схему или базу данных.

Создайте зеркало в несколько кликов в Snowsight, с помощью одной SQL-команды или обратившись к CoCo. Выберите конкретные таблицы, полную схему или базу данных.

  • Запрашивайте свои данные в Snowflake, используя целевые таблицы.

Запрашивайте свои данные в Snowflake, используя целевые таблицы.

О чём эта статья

Ещё в разделе «Данные и аналитика»

Все →

Ещё от Snowflake