Utilisation
Hiérarchie
create_process |
Valeur par défaut
AucunAcceptation
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.