Introdução à replicação e failover em várias contas

Esse recurso permite a replicação de objetos de uma conta de origem para uma ou mais contas de destino na mesma organização. Os objetos replicados em cada conta de destino são referidos como objetos secundários e são réplicas dos objetos primários na conta de origem. Há suporte para a replicação em várias regiões e plataformas de nuvem.

Neste tópico:

Suporte regional para replicação e failover/failback

Todas as regiões do Snowflake nos Amazon Web Services, Google Cloud Platform e Microsoft Azure oferecem suporte à replicação.

Os clientes podem replicar em todas as regiões dentro de um grupo de regiões. Para replicar entre regiões em diferentes grupos de regiões, (isto é, de uma região comercial do Snowflake para uma região governamental do Snowflake ou uma região Virtual Private Snowflake), entre em contato com o suporte Snowflake.

Grupos de replicação e grupos de failover

Um grupo de replicação é uma coleção definida de objetos em uma conta de origem que são replicados como uma unidade para uma ou mais contas de destino. Grupos de replicação fornecem acesso somente leitura para os objetos replicados.

Um grupo de failover é um grupo de replicação que também pode executar failover. Um grupo secundário de failover em uma conta de destino fornece acesso somente leitura para os objetos replicados. Quando um grupo secundário de failover é promovido para se tornar o grupo primário de failover, o acesso leitura-gravação fica disponível. Qualquer conta de destino especificada na lista de contas permitidas em um grupo de failover pode ser promovida para servir como grupo primário de failover.

A replicação e os grupos de failover fornecem consistência pontual para os objetos na conta de destino. Os objetos que podem ser incluídos em um grupo de replicação ou failover estão listados abaixo em Objetos replicados.

Replicação da matriz de recursos/edições

Observe que alguns recursos de replicação só estão disponíveis apenas para Business Critical Edition (ou superior). A tabela a seguir lista a disponibilidade de recursos de replicação para cada edição do Snowflake:

Recurso

Padrão

Enterprise

Business Critical

VPS

Replicação de banco de dados

Replicação de compartilhamentos

Grupo de replicação

Replicação de objetos de conta (que não sejam banco de dados e compartilhamento)

Grupo de failover

Dados protegidos com Tri-Secret Secure

Objetos replicados

Esse recurso oferece suporte à replicação dos objetos listados abaixo. A replicação de banco de dados e a replicação de compartilhamento estão disponíveis em todas as edições. A replicação de todos os outros objetos só está disponível para Business Critical Edition (ou superior). Para obter mais detalhes sobre a disponibilidade de recursos, consulte Replicação da matriz de recursos/edições.

Objeto

Tipo ou recurso

Replicado

Notas

Bancos de dados

A replicação de alguns bancos de dados não é suportada ou pode falhar na operação de atualização. Para obter mais informações, consulte Limitações atuais da replicação.

Integrações

Segurança, API, notificação, armazenamento [1], acesso externo [2]

Para obter mais avisos e detalhes sobre os tipos suportados, consulte Replicação de integrações.

Políticas de rede

Parâmetros (nível de conta)

Monitores de recursos

As notificações do monitor de recursos para usuários não administradores serão replicadas se você incluir users no grupo, mas as configurações de notificação do administrador da conta não serão replicadas. Para obter mais informações, consulte Replicação das configurações de notificação por e-mail do monitor de recursos.

Funções

  • Inclui funções de conta e banco de dados.

  • Inclui privilégios concedidos a funções, assim como funções concedidas a funções (isto é, hierarquias de funções).

  • Se usuários e funções forem replicados, as funções concedidas aos usuários também serão replicadas.

  • Os privilégios REPLICATE e FAILOVER não são replicados.

Compartilhamentos

A replicação de compartilhamentos de entrada (compartilhamentos de provedores) não é suportada.

Usuários

Warehouses

Replicação de banco de dados

Esse recurso oferece suporte à replicação de bancos de dados. Um instantâneo inclui alterações nos objetos e dados. Se roles forem replicados (no mesmo grupo de replicação ou failover ou em um grupo diferente), a atualização do banco de dados também sincroniza as concessões de privilégios sobre o banco de dados secundário e sobre os objetos no banco de dados (esquemas, tabelas, exibições etc.) com as funções na conta. Consulte Concessões para objetos de banco de dados para obter mais detalhes.

A replicação de alguns bancos de dados não é suportada ou pode falhar na operação de atualização. Para obter mais informações, consulte Limitações atuais da replicação.

Objetos de banco de dados replicados

Quando um banco de dados primário é replicado, um instantâneo de seus objetos e dados é transferido para o banco de dados secundário. No entanto, alguns objetos de banco de dados não são replicados. A tabela a seguir indica quais objetos de banco de dados são replicados para um banco de dados secundário.

Para obter mais informações específicas sobre o uso desses objetos, consulte Considerações sobre a replicação.

Objeto

Tipo ou recurso

Replicado

Notas

Tabelas

Tabelas permanentes

Tabelas transitórias

Tabelas temporárias

Clustering automático de tabelas clusterizadas

Tabelas externas

A criação ou atualização de um banco de dados secundário será bloqueada se existir uma tabela externa no banco de dados primário. . Planejado para um futuro lançamento.

Tabelas dinâmicas

Para obter mais informações, consulte Replicação e tabelas dinâmicas.

Restrições de tabela

Exceto se uma chave estrangeira no banco de dados fizer referência a uma chave primária/única em outro banco de dados. .

Tabelas de eventos

A atualização de um banco de dados secundário será bloqueada se existir uma tabela de eventos no banco de dados primário.

Sequências

Exibições

Exibições

Se uma exibição fizer referência a qualquer objeto em outro banco de dados (por exemplo, colunas de tabelas, outras exibições, UDFs ou estágios), . ambos os bancos de dados precisarão ser replicados.

Exibições materializadas

Exibições seguras

Formatos de arquivo

Estágios

Estágios

Suportado apenas para grupos de replicação e failover. Não há suporte para replicação de banco de dados. . Para obter mais informações, consulte Replicação de histórico de carregamento, canal e estágio.

Estágios temporários

Canais

Suportado apenas para grupos de replicação e failover. Não há suporte para replicação de banco de dados. . Para obter mais informações, consulte Replicação de histórico de carregamento, canal e estágio.

Procedimentos armazenados

Para obter mais informações, consulte Replicação de procedimentos armazenados e funções definidas pelo usuário (UDFs).

Fluxos

Para obter mais informações, consulte Replicação e fluxos.

Tarefas

Para obter mais informações, consulte Replicação e tarefas.

UDFs

Para obter mais informações, consulte Replicação de procedimentos armazenados e funções definidas pelo usuário (UDFs).

Políticas

Segurança em nível de coluna (mascaramento)

Para as políticas de mascaramento, de acesso a linhas e mascaramento baseado em tags, consulte considerações sobre a replicação de política.

Políticas de acesso a linhas

Políticas de mascaramento baseadas em tags

Políticas de sessão

Para políticas de sessão, senha e autenticação, consulte políticas de replicação e segurança.

Políticas de senhas

Políticas de autenticação

Tags

Marcação de objetos

Para tags, consulte Replicação e tags.

Alertas

Segredos

Segredos para autenticação de API externa

Você pode replicar segredos usando um grupo de replicação e um grupo de failover. Para detalhes adicionais, consulte Replicação e segredos.

Regras de rede

Para replicação de políticas de rede que usam regras de rede, consulte Replicação de políticas de redes.

Instâncias de classe

Instâncias de classes do Snowflake (por exemplo, uma instância da classe ANOMALY_DETECTION ou da classe BUDGET) não são replicadas. Para obter a lista completa de classes do Snowflake, consulte Classes disponíveis.

Políticas de pacotes

UDF Python, UDTF, procedimentos armazenados

Se houver uma política de pacotes definida na conta de origem, para replicar objetos de conta com êxito, o banco de dados que contém a política de pacotes deve ser replicado para a conta de destino no mesmo grupo de replicação ou de failover ou em outro grupo de replicação. Caso contrário, a operação de atualização falhará com um erro de referências pendentes.

Replicação de banco de dados e criptografia

Snowflake protege metadados e conjuntos de dados em repouso e em trânsito entre a conta de origem e a conta de destino. A conta chave principal (AMK) criptografa a hierarquia de chaves dentro da conta, como mostrado no modelo de chave hierárquica. Snowflake criptografa dados replicados na conta de destino usando a chave principal da conta e a hierarquia de chaves na conta de destino, independentemente de você ativar o Tri-Secret Secure ou não na conta de destino.

Ao ativar o Tri-Secret Secure na conta de destino, Snowflake usa a chave principal composta e a hierarquia de chaves correspondente na conta de destino para criptografar os dados. Observe que as contas de destino não têm Tri-Secret Secure habilitado por padrão; você deve habilitar este recurso.

Para obter mais informações sobre a criptografia de dados no Snowflake, consulte Explicação da criptografia de ponta a ponta no Snowflake.

Replicação de integrações

A replicação da conta oferece suporte à replicação das integrações para os seguintes recursos:

Replicação de políticas de redes

O recurso oferece suporte à replicação de políticas de rede.

Para obter mais informações, consulte Replicação de integrações de segurança e políticas de redes em múltiplas contas.

Replicação de parâmetros

Esse recurso oferece suporte à replicação de parâmetros em nível de conta e parâmetros de objetos. Os parâmetros de objeto são replicados quando o objeto está incluído no grupo de replicação. Por exemplo, se WAREHOUSES são replicados, os parâmetros específicos do warehouse (por exemplo, STATEMENT_TIMEOUT_IN_SECONDS) são replicados. Para obter uma lista completa, consulte Parâmetros de objeto.

A replicação de parâmetros em nível de conta inclui todos os Parâmetros de conta e parâmetros definidos na conta. Os parâmetros em nível de conta (por exemplo, DATA_RETENTION_TIME_IN_DAYS) são replicados quando ACCOUNT PARAMETERS está incluído na lista de tipos de objetos para um grupo de replicação.

Replicação de monitores de recursos

Esse recurso oferece suporte à replicação de monitores de recursos e privilégios concedidos em monitores de recursos para funções. Um monitor de recursos secundário segue o mesmo cronograma de redefinição de cotas que seu primário. Por exemplo, se a cota no monitor de recursos primário for redefinida no primeiro dia do mês, e o secundário for replicado pela primeira vez no 15º dia do mês, a cota será redefinida no primeiro dia do mês seguinte junto com o primário.

Replicação das configurações de notificação por e-mail do monitor de recursos

As configurações de notificação por e-mail para monitores de recursos não estão incluídas na replicação do monitor de recursos. Notificações por e-mail para usuários não administradores podem ser replicadas com monitores de recursos. No entanto, as configurações de notificação do administrador da conta não são replicadas atualmente:

  • Se users e resource monitors estiverem incluídos na lista object_types do grupo de replicação ou failover, as configurações de notificação para usuários não administradores serão replicadas:

  • Se resource monitors estiver incluído na lista object_types do grupo de replicação ou failover, mas users não estiver incluído, a lista notify_users de um monitor de recursos secundário no nível do warehouse estará vazia.

  • As configurações de notificação do administrador da conta não são replicadas:

    • Um administrador de conta deve ativar notificações por e-mail em cada conta usando a interface da web.

    • As notificações do monitor de recursos serão enviadas aos administradores da conta se eles tiverem habilitado notificações por e-mail nas contas de origem e/ou de destino.

Replicação de funções

Esse recurso oferece suporte à replicação de funções, incluindo hierarquias de funções. Os objetos de função devem ser replicados para replicar os privilégios de acesso. Os privilégios de acesso replicados estão listados em Replicação de funções e concessões abaixo.

Nota

Todas as funções são replicadas, incluindo a função ORGADMIN.

Replicação de compartilhamentos

Esse recurso oferece suporte à replicação de objetos de compartilhamento, bem como privilégios de acesso concedidos a compartilhamentos sobre objetos de banco de dados.

A replicação de compartilhamentos de entrada (compartilhamentos de provedores) não é suportada.

Replicação de usuários

Esse recurso oferece suporte à replicação de usuários e suas propriedades para contas de destino, além dos seguintes métodos de autenticação de usuários e provisionamento de usuários e grupos com SCIM:

Método de autenticação

Funciona em contas de destino

Notas

Senha

Senha com MFA (autenticação multifator)

Os usuários que estão registrados na MFA na conta de origem devem se registrar separadamente na MFA quando fazem login em cada conta de destino.

Autenticação multifator (MFA)

Os usuários que estão registrados na MFA na conta de origem devem se registrar separadamente na MFA quando fazem login em cada conta de destino.

Autenticação de pares de chaves

Autenticação federada

Consulte Replicação de integrações de segurança e políticas de redes em múltiplas contas para obter mais detalhes sobre a replicação de integrações de segurança SSO federadas (isto é, SAML2).

OAuth Snowflake

Consulte Replicação de integrações de segurança e políticas de redes em múltiplas contas para obter mais detalhes sobre a replicação de integrações de segurança OAuth.

OAuth externo

Consulte Replicação de integrações de segurança e políticas de redes em múltiplas contas para obter mais detalhes sobre a replicação de integrações de segurança OAuth.

SCIM

Consulte Replicação de integrações de segurança e políticas de redes em múltiplas contas para obter mais detalhes sobre a replicação de integrações de segurança SCIM.

Nota

Se objetos USERS e ROLES forem replicados para uma conta de destino, esses tipos de objetos são apenas leitura na conta de destino e não podem ser modificados. Os usuários e funções devem ser criados na conta de origem e depois replicados para cada conta de destino. Consulte Replicação e objetos secundários somente leitura.

Replicação de warehouses

Esse recurso oferece suporte à replicação de warehouses e privilégios concedidos em warehouses para funções (se roles forem replicadas). O estado do warehouse primário não é replicado. Os warehouses são replicados no estado suspenso para cada conta de destino e podem ser retomados na conta de destino.

Replicação de funções e concessões

A fim de replicar concessões sobre objetos para funções, as funções devem ser replicadas a partir da conta de origem para a conta de destino. Para replicar funções em um grupo de replicação ou failover, você deve incluir roles na lista object_types. As funções podem estar em um grupo de replicação ou de failover separado dos objetos de dados para os quais os privilégios são concedidos.

Quando roles são replicadas, as concessões sobre objetos apenas são replicadas para uma conta de destino se:

  • O privilégio foi concedido pelo proprietário do objeto ou indiretamente por um função que recebeu o privilégio com o parâmetro WITH GRANT OPTION por parte do proprietário do objeto.

  • A função que recebe e a função que concede um privilégio estão localizadas na conta de destino.

  • O objeto é replicado (ou seja, o tipo de objeto está incluído na lista object_types).

Caso contrário, a concessão sobre o objeto não é replicada.

Nota

  • Se uma função com o privilégio OWNERSHIP em um canal ativo na conta de destino for abandonada, a operação de atualização apresenta falha.

  • Os privilégios em grupos de replicação e grupos de failover não são replicados. Se o privilégio REPLICATE ou FAILOVER foi concedido para grupos de replicação ou failover, esses privilégios precisam ser concedidos na conta de origem e na conta de destino. Consulte Privilégios de replicação para obter detalhes sobre esses privilégios.

Concessões para objetos de banco de dados

Se roles e databases forem replicados para uma conta de destino (no mesmo grupo de replicação ou failover ou em um grupo diferente), a atualização do banco de dados secundário sincroniza as concessões de privilégios sobre o banco de dados e sobre os objetos no banco de dados (esquemas, tabelas, exibições etc.) com as funções existentes na conta de destino (ou seja, funções que foram replicadas para a conta de destino). Observe que somente as concessões de privilégios sobre objetos compatíveis com a replicação de banco de dados são sincronizadas. Para obter a lista de objetos compatíveis, consulte Objetos de banco de dados replicados.

Atualmente, as tabelas externas não são suportadas para replicação. Como resultado, as concessões de privilégios em tabelas externas também não serão replicadas.

Concessões futuras para objetos

Se as funções forem replicadas para a conta de destino, futuras concessões que são concedidas em nível de banco de dados ou esquema são replicadas para a conta de destino. Isso também inclui futuras concessões sobre objetos não compatíveis com replicações. Por exemplo, a replicação de tabelas externas ainda não é suportada; no entanto, as concessões futuras em tabelas externas serão replicadas. Quando você cria uma tabela externa em uma conta de destino, os privilégios concedidos em tabelas externas futuras se materializam conforme o esperado.

Criação e propriedade de objetos

Se novos objetos forem criados em uma conta de destino durante uma atualização a partir da conta de origem e as funções não forem replicadas para a conta de destino, o privilégio OWNERSHIP para os novos objetos é concedido à função ACCOUNTADMIN.

Se as funções forem replicadas na conta de destino, o privilégio OWNERSHIP é concedido à mesma função na conta de destino que a função com o privilégio OWNERSHIP na conta de origem quando as funções forem replicadas em seguida. As funções podem ser replicadas ao mesmo tempo em que os novos objetos são criados na conta de destino se os objetos e funções estiverem no mesmo grupo de replicação (ou failover).

Concessões para compartilhamentos

A fim de habilitar o Secure Data Sharing, as concessões sobre objetos para compartilhamentos são replicadas mesmo que roles não sejam replicadas para contas de destino. Esta seção fornece informações sobre como são replicadas as concessões sobre objetos para compartilhamentos.

Se roles forem replicadas da conta de origem para a conta de destino, as concessões a objetos sobre compartilhamentos serão replicadas se:

  • A função que dá a concessão existe na conta de destino ou

  • A função que dá a concessão na conta de origem tem o privilégio OWNERSHIP sobre o objeto primário.

Se roles não forem replicadas da conta de origem para a conta de destino, então:

  • As concessões sobre objetos para compartilhamentos são replicadas.

  • A função que dá concessões sobre objetos replicados para compartilhamentos é a função com o privilégio OWNERSHIP sobre o objeto.

Usuário que atualiza objetos em uma conta de destino

Um usuário que executa o comando ALTER FAILOVER GROUP … REFRESH para atualizar objetos em uma conta de destino a partir da conta de origem deve usar uma função com o privilégio REPLICATE no grupo de failover. O Snowflake protege esse usuário na conta de destino, apresentando falha nos seguintes cenários:

  • Se o usuário não existir na conta de origem, a operação de atualização falha.

  • Se o usuário existir na conta de origem, mas uma função com o privilégio REPLICATE não foi concedida ao usuário, a operação de atualização falha.

Cronograma de replicação

Como prática recomendada, o Snowflake indica a programação de atualizações automáticas usando o parâmetro REPLICATION_SCHEDULE. O cronograma pode ser definido ao criar um novo grupo de replicação ou failover com <object> CREATE ou posteriormente (usando <object> ALTER).

Quando um grupo secundário de replicação ou failover é criado, uma atualização inicial é executada automaticamente. A próxima atualização é programada com base no início da atualização anterior e no intervalo de programação, ou a próxima vez válida com base na expressão cron. Por exemplo, se o intervalo de atualização é de 10 minutos e a operação anterior de atualização (seja uma atualização programada ou manualmente acionada) começa em 12:01, a próxima atualização é programada para 12:11.

O Snowflake garante que apenas uma atualização seja executada em um determinado momento. Se uma atualização ainda estiver sendo executada quando a próxima atualização estiver programada, a próxima atualização será adiada para começar quando a atualização atualmente em execução estiver concluída. Por exemplo, se uma atualização estiver programada para executar 15 minutos após a hora, a cada hora, e a atualização anterior for concluída em 12:16, a próxima atualização será programada para ser executada quando a atualização executada anteriormente for concluída.

Suspensão e retomada da replicação programada

Um grupo secundário de failover não pode ser promovido a grupo primário enquanto uma atualização estiver sendo executada. Para um failover suave, suspenda a replicação programada na conta de destino. Após a conclusão do failover, retome a replicação programada. Para sintaxe, consulte ALTER FAILOVER GROUP.

Nota

Suspender a replicação programada não suspende uma operação de atualização que está atualmente em andamento. Isso suspende o cronograma para que nenhuma atualização adicional seja programada depois que a atual for concluída.

Replicação para contas de edições anteriores

Se uma das seguintes condições for verdadeira, o Snowflake exibe uma mensagem de erro:

  • Um grupo de replicação primário com apenas objetos de compartilhamento e/ou banco de dados está em uma conta Business Critical (ou superior), mas uma ou mais contas aprovadas para replicação estão em edições inferiores. O Business Critical Edition é destinado a contas Snowflake com dados extremamente confidenciais.

  • Um grupo de replicação ou failover primário com quaisquer tipos de objeto está em uma conta Business Critical (ou superior) e um acordo assinado de associado comercial está em vigor para armazenar dados PHI na conta por regulamentos HIPAA e HITRUST CSF. No entanto, nenhum contrato desse tipo está em vigor para uma ou mais contas habilitadas para replicação, independentemente de serem contas Business Critical (ou superiores).

Esse comportamento é implementado em um esforço para ajudar a evitar que os administradores de contas Business Critical (ou superiores) repliquem inadvertidamente dados confidenciais para contas em edições anteriores.

Um administrador de conta (um usuário com a função ACCOUNTADMIN) ou um usuário com a função CREATE REPLICATION GROUP/CREATE FAILOVER GROUP ou privilégio OWNERSHIP pode substituir esse comportamento padrão, incluindo a cláusula IGNORE EDITION CHECK ao executar a instrução CREATE <objeto> ou ALTER <objeto>. Se IGNORE EDITION CHECK estiver definido, o grupo primário de replicação ou failover poderá ser replicado para as contas especificadas em edições anteriores do Snowflake nestes cenários específicos.

Nota

Os grupos de failover só podem ser criados em uma conta Business Critical Edition (ou superior). Portanto, grupos de failover somente podem ser replicados para uma conta que seja uma conta Business Critical Edition (ou superior).

Limitações atuais da replicação

  • Não é possível replicar os bancos de dados criados a partir de compartilhamentos.

  • A operação de atualização falhará se um banco de dados primário contiver qualquer um dos seguintes itens:

    • Tabela de eventos

    • Tabela externa [3]

    • Tabela Iceberg [4]

    • Tabela híbrida

Uma operação de atualização ou replicação de banco de dados falha se o banco de dados primário incluir um fluxo com um objeto de origem incompatível. A operação também falha se o objeto de origem para qualquer fluxo tiver sido descartado.

Os fluxos somente de anexação não são suportados em objetos de origem replicados.