Uso
derived_table: {
distribution: "customer_id"
...
}
}
Jerarquía
distribution - o - distribution |
Valor predeterminado
NingunaAcepta
El nombre de una columna en una tabla derivada o en una tabla agregadaReglas especiales
distribution solo es compatible con las bases de datos de Redshift y Aster.
|
Definición
distribution
te permite especificar la columna de una tabla derivada persistente (PDT) o una tabla agregada en la que se aplica una clave de distribución para distribuir los datos en un clúster. Cuando dos columnas están unidas por la columna especificada en el parámetro distribution
, la base de datos puede encontrar los datos unidos en el mismo nodo para minimizar la E/S de entrenamiento. Actualmente, distribution
solo funciona con las bases de datos de Redshift y Aster. Para otros dialectos de SQL (como MySQL y Postgres), usa indexes
en su lugar.
El parámetro
distribution
solo funciona con tablas que son persistentes, como PDT y tablas agregadas.distribution
no es compatible con las tablas derivadas sin una estrategia de persistencia.Además, el parámetro
distribution
no es compatible con tablas derivadas que se definen mediantecreate_process
osql_create
.
En términos generales, se debe aplicar una clave de distribución a la columna que actuará como clave externa (la columna que utiliza para unir su tabla con otras). Consulta la documentación de tu dialecto para conocer las prácticas recomendadas.
Ejemplos
Crea una tabla derivada persistente customer_order_facts
con una clave de distribución en customer_id
:
view: customer_order_facts {
derived_table: {
explore_source: order {
column: customer_id { field: order.customer_id }
column: lifetime_orders { field: order.lifetime_orders }
}
datagroup_trigger: order_datagroup
distribution: "customer_id"
}
}
Crea una tabla derivada customer_order_facts
basada en una consulta de SQL con una clave de distribución en customer_id
:
view: customer_order_facts {
derived_table: {
sql:
SELECT
customer_id,
COUNT(*) AS lifetime_orders
FROM
order ;;
persist_for: "24 hours"
distribution: "customer_id"
}
}