Utilisation de tables internes pour les workflows à plusieurs étapes¶
Vue d’ensemble¶
De nombreux cas d’utilisation de salles blanches impliquent l’exécution d’une seule requête SQL sur une ou plusieurs tables d’une salle blanche et affichage les résultats dans la réponse. Toutefois, il existe des cas d’utilisation dans lesquels vous pouvez avoir besoin de créer une table interne pouvant être utilisée dans des modèles ultérieurs pour prendre en charge un workflow à plusieurs étapes. Par exemple, un flux de machine learning, dans lequel le modèle est entraîné une fois sur un ensemble de données, puis exécuté plusieurs fois sur des données d’entrée variables, soit de manière individuelle, soit par lots.
Création de tables internes¶
Vous pouvez créer des tables internes dans une salle blanche pour stocker des résultats intermédiaires, ou en tant que stockage persistant pour une utilisation en aval (par exemple, pour enregistrer des données d’entraînement utilisées pour plusieurs exécutions). Consultez les propriétés et l’orientation des tables internes ci-dessous :
Vous pouvez créer des tables internes en utilisant un modèle de salle blanche qui exécute CREATE TABLE, ou en exécutant une UDF/UDTF qui utilise Python pour créer une table.
Des tables internes peuvent être créées dans le schéma
cleanroom, qui est disponible par défaut. Si un schéma personnalisé est préféré, le schéma doit d’abord être créé avant la création de la table.Par défaut, les tables internes ne sont accessibles qu’aux modèles approuvés dans la salle blanche. Si l’accès doit être fourni en dehors des modèles, alors le rôle d’application CLEANROOM_PUBLIC_ROLE de la salle blanche doit se voir accorder des privilèges correspondants. Par exemple, l’octroi suivant peut être accordé :
GRANT SELECT ON TABLE CLEANROOM.MY_TABLE TO APPLICATION ROLE CLEANROOM_PUBLIC_ROLE;.Si vous disposez d’un accès approprié, vous pouvez répertorier les tables internes de votre collaboration. Les tables internes sont disponibles dans
SFDCR_collaboration_name.cleanroom, et peuvent être répertoriées en exécutant le code SQL suivant :SHOW TABLES IN SCHEMA SFDCR_collaboration_name.CLEANROOM;.Les tables internes sont supprimées lorsque la collaboration est supprimée. Toutefois, si une table interne est conçue pour avoir une durée de vie plus courte que celle de la collaboration, envisagez de supprimer la table lorsqu’elle n’est plus nécessaire.
Voici quelques exemples de création d’une table interne :
Un modèle JinjaSQL peut créer une table interne, comme c’est le cas dans certains types d’activation.
Cet exemple de modèle crée la table et renvoie le nom de la table, afin que le nom puisse être transmis en tant que paramètre à d’autres modèles.
Un UDF peut créer une table interne. Cela se fait généralement par l’exécution de SQL en Python.