Snowpark Container Services: Diretrizes e limitações

  • Limitações gerais: Se você encontrar algum problema com essas limitações, entre em contato com seu representante de conta.

    • É possível criar até 200 serviços em sua conta Snowflake.

    • Cada serviço pode ter até 100 pontos de extremidade (consulte spec.endpoints).

    • Cada serviço pode ter até 20 contêineres (consulte spec.containers).

    • Cada serviço pode ter até 50 segredos (consulte containers.secrets).

    • Cada serviço pode ter até 20 volumes (consulte spec.volumes).

    • As seguintes limitações se aplicam quando você habilita o acesso à Internet (consulte Configuração da saída da rede) usando integrações de acesso externo (EAIs).

      • Cada serviço pode oferecer suporte para até 10 EAIs (consulte CREATE SERVICE e ALTER SERVICE).

      • Cada EAI pode ter até 100 nomes de host.

    • Ao acessar o ponto de extremidade público pela Internet, você pode descobrir que a autenticação por nome de usuário/senha funciona, mas SSO resulta em uma página em branco ou no erro: «A integração do clienteOAuth com o ID do cliente fornecido não foi encontrada.» Para obter informações sobre como resolver esse problema, consulte Considerações sobre ingresso e SSO.

  • Requisitos de plataforma de imagem: atualmente, o Snowpark Container Services requer imagens de plataforma linux/amd64.

  • Contêineres de serviço não são privilegiados: os contêineres de serviço não são executados como privilegiados e, portanto, não podem alterar a configuração do hardware no host e podem alterar apenas configurações de OS limitadas. Os contêineres de serviço só podem executar configurações do sistema operacional que um usuário normal (ou seja, um usuário que não requer root) pode fazer.

  • Como renomear o banco de dados e o esquema:

    • Não renomeie bancos de dados e esquemas onde você já criou um serviço. Renomear é efetivamente mover um serviço para outro banco de dados e esquema, que não é compatível. Por exemplo:

      • As informações de banco de dados e esquema que o Snowflake forneceu aos contêineres de serviço em execução continuarão a se referir aos nomes antigos.

      • Os novos logs que os serviços ingerem na tabela de eventos continuarão a fazer referência ao banco de dados antigo e aos nomes de esquema.

      • A função de serviço continuará a fazer referência ao serviço no banco de dados e esquema antigos e, quando você invocar a função de serviço, ela falhará.

    • Uma especificação de serviço pode fazer referência a objetos como estágios Snowflake e repositórios de imagens. Se você renomear os nomes do banco de dados ou do esquema onde esses objetos residem, será necessário atualizar manualmente os nomes do banco de dados e do esquema dos objetos referenciados na especificação de serviço.

  • Transferência de propriedade do esquema ou banco de dados pai:

    A propriedade do banco de dados/esquema pai pode ser transferida para uma função diferente. No entanto, a propriedade dos serviços dentro do banco de dados/esquema não é transferida para a nova função porque os serviços são executados como funções de proprietário do serviço, e isso não muda. Como resultado, os serviços podem perder permissões em objetos dentro do esquema, como repositórios de imagens e áreas de preparação do Snowflake no mesmo esquema.

    Se a transferência de propriedade do esquema/banco de dados pai for necessária, considere recriar os serviços.

  • Descarte e cancelamento de um banco de dados e esquema:

    • Quando você descarta o banco de dados ou esquema pai, os serviços são excluídos de forma assíncrona. Isso significa que um serviço pode continuar em execução por algum tempo antes que os processos internos o removam.

    • Se você tentar cancelar um banco de dados ou esquema excluído anteriormente, não há garantia de que os serviços serão restaurados.

  • Transferência de propriedade de serviços: Transferência de propriedade ou transferência de propriedade futura de serviços, incluindo serviços de trabalho, não é suportada.

  • Transferência de propriedade das funções de serviço:

    A propriedade de uma função de serviço pode ser transferida para outra função. Se a nova função de proprietário não tiver o privilégio USAGE no serviço, as invocações da função falharão. Você precisa conceder o privilégio USAGE à nova função de proprietário da função.

  • Replicação: ao lidar com replicação no Snowflake, observe o seguinte:

    • Os objetos do Snowpark Container Services, como serviços, pools de computação e repositórios, não podem ser replicados.

    • Se você criar um repositório em um banco de dados, o banco de dados inteiro não poderá ser replicado. Nos casos em que o banco de dados contém outros recursos, como serviços ou pools de computação, o processo de replicação do banco de dados será bem-sucedido, mas esses objetos individuais no banco de dados não serão replicados.

  • Tempo limite dos serviços de trabalho: os serviços de trabalho do Snowpark Container Services são executados de forma síncrona por padrão. Se uma instrução expirar, o serviço de trabalho será cancelado. O tempo limite padrão da instrução é de dois dias. Os clientes podem alterar o tempo limite definindo o parâmetro STATEMENT_TIMEOUT_IN_SECONDS usando ALTER SESSION.

    ALTER SESSION SET statement_timeout_in_seconds=<time>
    
    Copy

    Configure-o antes de executar o comando EXECUTE JOB SERVICE. É possível executar serviços de trabalho de forma assíncrona, especificando ASYNC=true, para evitar que os serviços de trabalho sejam interrompidos pelo tempo limite de uma instrução.

  • Suporte aos comandos de preparação de arquivos no Google Cloud: para usar o comando PUT, GET, LIST ou REMOVE com as bibliotecas de cliente Snowflake no Google Cloud, atualiza seus clientes para, no mínimo, as versões abaixo.

    Cliente

    Versão

    Driver Go Snowflake

    1.14.1

    Conector Snowflake para Python

    3.16.0

    Driver .NET

    4.6.0

    Driver Node.js

    2.1.3

    Driver JDBC

    3.25.1

    Driver ODBC

    3.10.0