create_process

Uso

Tabla de deriva: {
create_process: {
sql_step:
Jerarquía
create_process
Valor predeterminado
Ninguna

Acepta
Uno o más sql_step subparámetros

Definición

Si el dialecto de tu base de datos usa comandos personalizados del lenguaje de definición de datos (DDL), puedes usar create_process para crear tablas derivadas persistentes (PDT). create_process define una lista de instrucciones de SQL que se ejecutarán en el orden indicado. Cada instrucción de SQL individual se especifica con el subparámetro sql_step. Cada subparámetro sql_step puede incluir cualquier consulta de SQL legal. Puedes definir varios subparámetros de sql_step y estos se ejecutarán de a uno, en el orden que se especifiquen. Looker emite las declaraciones de los subparámetros sql_step tal como están, sin la corrección de errores habitual de Looker.

Por ejemplo, algunos dialectos de base de datos no admiten CREATE TABLE as SELECT emitidos como una sola instrucción de SQL; requieren instrucciones de SQL independientes. Como resultado, las tablas derivadas persistentes basadas en SQL no se pueden crear en estos dialectos. El parámetro create_process proporciona una forma alternativa de crear PDT mediante la creación de una lista de instrucciones de SQL separadas que se emiten en secuencia.

También puedes usar create_process para admitir dialectos, como los modelos de aprendizaje automático predictivo de BigQuery ML de Google.

El parámetro create_process indica que escribes las sentencias CREATE completas para la tabla derivada, incluidos los índices. Si deseas agregar un índice para una tabla derivada con create_process, usa un parámetro sql_step a fin de especificar el SQL del índice.

Para los PDT definidos con create_process, no puedes usar ninguno de los siguientes parámetros:

  • indexes
  • cluster_keys
  • distribution
  • distribution_style
  • partition_keys
  • sortkeys
  • Ejemplo

    Crea una tabla derivada persistente ctasless_customer_order_facts en una base de datos MySQL en dos pasos. Primero, emite la instrucción de SQL CREATE TABLE, definida por el primer subparámetro sql_step. En segundo lugar, emite la instrucción de SQL INSERT INTO con una instrucción SELECT, definida por el segundo subparámetro 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 ;;
        }
      }
    }
    

    Aspectos para tener en cuenta

    Operador de sustitución de ${SQL_TABLE_NAME}

    Puedes usar el operador de sustitución ${SQL_TABLE_NAME} para reemplazar el nombre calculado del PDT que se crea. Esto garantiza que la instrucción de SQL incluya correctamente el nombre PDT proporcionado en el parámetro view de LookML.

    create_process debe crear una tabla con el nombre que indica el operador de sustitución ${SQL_TABLE_NAME}, o se volverá a compilar desde cero en cada intervalo de verificación que se especifique en la configuración de PDT y Programa de mantenimiento de grupos de datos de la conexión (el valor predeterminado es de cinco minutos). Esto puede generar tráfico de consultas inesperado en tu base de datos o almacén de datos.

    Usa sql_create para crear un PDT en un solo paso.

    Si el dialecto de tu base de datos requiere comandos de DDL personalizados y deseas crear un PDT en un solo paso, puedes usar sql_create para definir una declaración SQL CREATE completa a fin de ejecutar y crear un PDT en un solo paso.

    Las tablas definidas con create_process no se pueden usar para los PDT incrementales.

    Para usarse como un PDT incremental, un PDT basado en SQL debe tener una consulta definida con el parámetro sql. Los PDT basados en SQL que se definen con los parámetros sql_create o create_process no se pueden compilar de forma incremental.

    Esto se debe a que Looker usa un comando INSERT o MERGE para crear los incrementos de un PDT incremental. La tabla derivada no se puede definir mediante declaraciones personalizadas del lenguaje de definición de datos (DDL), ya que Looker no podría determinar qué declaraciones DDL se requerirían para crear un incremento preciso.