Executando um trabalho do Snowpark Container Services como uma tarefa do Snowflake

Você pode executar um serviço de trabalho do Snowpark Container Services como uma tarefa do Snowflake. Ao executar um serviço de trabalho como uma tarefa do Snowflake, a integração permite cenários que aproveitam a conteinerização e a escalabilidade robustas do Snowpark Container Services. Esse processo ocorre diretamente em seus pipelines de dados agendados ou acionados por eventos, gerenciados pelo Snowflake Tasks.

Por exemplo, o seguinte comando CREATE TASK cria uma tarefa para executar um serviço de trabalho a cada hora. O comando fornece os detalhes do trabalho usando o comando EXECUTE JOB SERVICE SQL:

CREATE TASK job_task
SCHEDULE = '60 MINUTE'
AS
  EXECUTE JOB SERVICE
    IN COMPUTE POOL my_compute_pool
    FROM SPECIFICATION $$
    spec:
      containers:
      - name: main
        image: /my_db/my_schema/my_repository/my_job_image:latest
        args:
          - "--process_data"
    $$;
Copy

Nota

  • As tarefas de trabalho do Snowflake são compatíveis com o modelo sem servidor; portanto, você não precisa especificar um warehouse na instrução CREATE TASK.

  • Ao executar um serviço de trabalho como uma tarefa, você deve executá-lo de forma síncrona; caso contrário, a tarefa relatará a conclusão antes que o serviço de trabalho seja concluído.

Passando dados para dentro e para fora de trabalhos executados como tarefas

Os gráficos de tarefas permitem que você crie e gerencie pipelines de dados complexos e de várias etapas que integram perfeitamente serviços de trabalho executados como tarefas. Você pode usar as funções de sistema compatíveis em seu código de serviço de trabalho para acessar o contexto da tarefa e usá-lo para obter a configuração do gráfico de tarefas e informações de tempo de execução da tarefa em execução.

Ao executar serviços de trabalho como tarefas, você pode usar as seguintes opções de compartilhamento de dados entre tarefas em um gráfico de tarefas:

  • Mecanismo de valor de retorno do predecessor: em um gráfico de tarefas, você pode passar a saída de uma tarefa como entrada para uma tarefa subsequente e dependente. O Snowflake recomenda essa opção ao passar metadados pequenos, como um caminho de arquivo, uma cadeia de caracteres de status ou algum outro valor de ID. Para obter mais informações, consulte Passar valores de retorno entre tarefas.

    Assim como em uma tarefa SQL, um trabalho executado como uma tarefa pode recuperar o valor de retorno de uma tarefa precedente. Da mesma forma, um trabalho também pode fornecer um valor de retorno para uma tarefa subsequente.

  • Mecanismo de armazenamento persistente comum: ao transferir grandes conjuntos de dados, como arquivos, a Snowflake recomenda que você persista os dados em um armazenamento persistente, como uma área de preparação ou tabela do Snowflake, e garanta que as tarefas em seu gráfico de tarefas possam acessar o armazenamento.

Nota

As sessões não são compartilhadas entre os serviços de trabalho. Portanto, você não pode usar tabelas temporárias ou variáveis ​​de sessão como forma de compartilhar dados, pois esses são objetos com escopo de sessão.

Exemplo

Para obter um exemplo, consulte Tutorial: executar um trabalho do Snowflake Container Services como tarefa do Snowflake.