Uso de tabelas internas para fluxos de trabalho com várias etapas¶
Visão geral¶
Muitos casos de uso de salas limpas envolvem a execução de uma única consulta SQL em uma ou mais tabelas de uma sala limpa e exibição dos resultados na resposta. No entanto, há casos de uso em que pode ser necessário criar uma tabela interna que possa ser usada em modelos subsequentes para oferecer suporte a um fluxo de trabalho de várias etapas. Por exemplo, um fluxo de machine learning, em que o modelo é treinado uma vez em um conjunto de dados e depois executado várias vezes com dados de entrada variados, individualmente ou em lotes.
Criação de tabelas internas¶
Você pode criar tabelas internas em uma sala limpa para armazenar resultados intermediários ou como armazenamento persistente para uso downstream (por exemplo, para salvar dados de treinamento usados em várias execuções). Consulte as propriedades e orientações das tabelas internas abaixo:
Você pode criar tabelas internas usando um modelo de sala limpa que executa CREATETABLE ou executando um UDF/UDTF que usa Python para criar uma tabela.
As tabelas internas podem ser criadas no esquema
cleanroom, que está disponível por padrão. Caso seja preferível um esquema personalizado, ele deverá ser criado antes da tabela.Por padrão, as tabelas internas só podem ser acessados por modelos aprovados na sala limpa. Se o acesso precisar ser fornecido fora dos modelos, então a função CLEANROOM_PUBLIC_ROLE de aplicativo da sala limpa precisa receber os privilégios correspondentes. Por exemplo, é possível fazer a seguinte concessão:
GRANT SELECT ON TABLE CLEANROOM.MY_TABLE TO APPLICATION ROLE CLEANROOM_PUBLIC_ROLE;Se você tiver acesso adequado, poderá listar as tabelas internas na colaboração. As tabelas internas podem ser encontradas em
SFDCR_collaboration_name.cleanroome listadas executando o seguinte código SQL:SHOW TABLES IN SCHEMA SFDCR_collaboration_name.CLEANROOM;.As tabelas internas são excluídas quando a colaboração é removida. No entanto, se uma tabela interna for criada para ter uma vida útil mais curta do que a colaboração, considere excluir a tabela quando ela não for mais necessária.
Aqui estão alguns exemplos de criação de uma tabela interna:
Um modelo JinjaSQL pode criar uma tabela interna, o que é feito em alguns tipos de ativação.
Este modelo de exemplo cria a tabela e retorna o nome correspondente, para que ele possa ser passado como um parâmetro para outros modelos.
A UDF pode criar uma tabela interna. Normalmente, isso é feito por meio da execução de SQL em Python.