créer_processus

Utilisation

AU FORMAT :
Hiérarchie
create_process
Valeur par défaut
Aucun

Acceptation
Un ou plusieurs sous-paramètres sql_step

Définition

Si le dialecte de votre base de données utilise des commandes LDD (langage de définition de données) personnalisées, vous pouvez utiliser create_process pour créer des tableaux dérivés persistants. create_process définit une liste d'instructions SQL qui seront exécutées dans l'ordre indiqué. Chaque instruction SQL individuelle est spécifiée à l'aide du sous-paramètre sql_step. Chaque sous-paramètre sql_step peut inclure n'importe quelle requête SQL légale. Vous pouvez définir plusieurs sous-paramètres sql_step qui seront exécutés un par un, dans l'ordre dans lequel ils sont spécifiés. Looker émet les instructions dans les sous-paramètres sql_step tels quelles, sans la correction d'erreur habituelle de Looker.

Par exemple, certains dialectes de base de données n'acceptent pas le CREATE TABLE as SELECT émis en tant qu'instruction SQL unique. Ils nécessitent des instructions SQL distinctes. Par conséquent, il n'est pas possible de créer des tables dérivées persistantes basées sur SQL traditionnelles sur ces dialectes. Le paramètre create_process constitue un autre moyen de créer des PDT en créant une liste d'instructions SQL distinctes, émises dans l'ordre.

Vous pouvez également utiliser create_process pour les dialectes tels que les modèles de machine learning prédictifs BigQuery ML de Google.

Le paramètre create_process indique que vous écrivez les instructions CREATE complètes pour la table dérivée, y compris les index. Pour ajouter un index à une table dérivée à l'aide de create_process, utilisez un paramètre sql_step afin de spécifier le code SQL de l'index.

Pour les PDT définies à l'aide de create_process, vous ne pouvez pas utiliser les paramètres suivants:

  • indexes
  • cluster_keys
  • distribution
  • distribution_style
  • partition_keys
  • sortkeys
  • Exemple

    Créez une table dérivée persistante de ctasless_customer_order_facts sur une base de données MySQL en deux étapes. Commencez par émettre l'instruction SQL CREATE TABLE, définie par le premier sous-paramètre sql_step. Ensuite, émettez l'instruction SQL INSERT INTO avec une instruction SELECT, définie par le deuxième sous-paramètre sql_step:

    view: ctasless_customer_order_facts {
      derived_table: {
        datagroup_trigger: some_datagroup
        create_process: {
          sql_step: CREATE TABLE ${SQL_TABLE_NAME} (
                             customer_id int(11),
                             lifetime_orders int(11)
                           ) ;;
          sql_step: INSERT INTO ${SQL_TABLE_NAME}(customer_id, lifetime_orders)
                            SELECT customer_id, COUNT(*) AS lifetime_orders
                             FROM order
                             GROUP BY customer_id ;;
        }
      }
    }
    

    Éléments à prendre en compte

    Opérateur de substitution ${SQL_TABLE_NAME}

    Vous pouvez utiliser l'opérateur de substitution ${SQL_TABLE_NAME} pour remplacer le nom calculé du disque persistant en cours de création. Cela garantit que l'instruction SQL inclut correctement le nom PDT indiqué dans le paramètre view de LookML.

    create_process doit créer une table avec le nom indiqué par l'opérateur de substitution ${SQL_TABLE_NAME}, sinon elle sera entièrement recréée à chaque intervalle de vérification du déclencheur spécifié dans le paramètre PDT et planification de maintenance des groupes de données (la valeur par défaut est de cinq minutes). Cela peut entraîner un trafic de requête inattendu sur votre base de données ou votre entrepôt de données.

    Utilisez sql_create pour créer un PDT en une seule étape

    Si le dialecte de votre base de données nécessite des commandes LDD personnalisées et que vous souhaitez créer un PDT en une seule étape, vous pouvez utiliser sql_create pour définir une instruction SQL CREATE complète à exécuter et créer un PDT en une seule étape.

    Les tables définies avec create_process ne peuvent pas être utilisées pour les PDT incrémentiels

    Pour être utilisé comme PDT incrémentiel, une requête PDT basée sur SQL doit être définie à l'aide du paramètre sql. Les disques persistants basés sur SQL définis avec le paramètre sql_create ou le paramètre create_process ne peuvent pas être créés de manière incrémentielle.

    En effet, Looker utilise une commande INSERT ou MERGE pour créer les incréments d'un PDT incrémentiel. La table dérivée ne peut pas être définie à l'aide d'instructions LDD (langage de définition de données) personnalisées, car Looker ne peut pas déterminer quelles instructions LDD sont requises pour créer un incrément précis.