sql_create

Utilisation

derived_table: customer_order_facts {
  sql_create: {
      SQL statement ;;
  }
}
Hiérarchie
sql_create
Valeur par défaut
Aucun

Acceptation
Une instruction SQL

Définition

sql_create permet d'utiliser des commandes LDD (langage de définition de données) personnalisées pour créer des tables dérivées persistantes (PDT). sql_create émettra une instruction telle quelle, sans la vérification des erreurs habituelle de Looker. La seule exigence est que l'instruction entraîne la création et l'exécution d'une PDT. Cela vous permet, par exemple, de créer des PDT compatibles avec les modèles de machine learning BigQuery ML de Google.

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

  • indexes
  • cluster_keys
  • distribution
  • distribution_style
  • partition_keys
  • sortkeys
  • Exemples

    Créez un PDT pour les requêtes BigQuery ML qui prédisent la probabilité d'achats futurs :

    view: future_purchase_model {
      derived_table: {
        datagroup_trigger: bqml_datagroup
        sql_create:
          CREATE OR REPLACE MODEL ${SQL_TABLE_NAME}
          OPTIONS(model_type='logistic_reg'
            , labels=['will_purchase_in_future']
            , min_rel_progress = 0.005
            , max_iterations = 40
            ) AS
          SELECT
             * EXCEPT(fullVisitorId, visitId)
          FROM ${training_input.SQL_TABLE_NAME};;
      }
    }
    

    É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é de la PDT en cours de création. Cela garantit que l'instruction SQL inclura correctement le nom de la PDT indiqué dans le paramètre LookML view.

    sql_create doit créer une table portant 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 Programme de maintenance des PDT et des groupes de données d'une connexion (la valeur par défaut est de cinq minutes). Cela peut entraîner un trafic de requêtes inattendu sur votre base de données ou votre entrepôt de données.

    Utiliser create_process pour créer une PDT en plusieurs étapes

    Si votre dialecte de base de données nécessite des commandes LDD personnalisées et que vous souhaitez émettre plusieurs commandes pour créer une PDT, vous pouvez utiliser create_process pour émettre plusieurs commandes LDD personnalisées dans un ordre spécifique.

    Les tables définies avec sql_create ne peuvent pas être utilisées pour les PDT incrémentielles.

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

    En effet, Looker utilise une commande INSERT ou MERGE pour créer les incréments d'une augmentation de tables PDT. La table dérivée ne peut pas être définie au moyen d'instructions personnalisées LDD (Data Definition Language) car Looker ne pourrait déterminer quelles instructions LDD sont nécessaires pour créer un incrément précis.