Utilizzo
derived_table: {
distribution: "customer_id"
...
}
}
Gerarchia
distribution - oppure - distribution |
Valore predefinito
NessunaAccetta
Il nome di una colonna in una tabella derivata o in una tabella aggregataRegole speciali
distribution è supportato solo per database Redshift e Aster.
|
Definizione
distribution
consente di specificare la colonna di una tabella derivata permanente (PDT) o di una tabella aggregata a cui applicare una chiave di distribuzione per distribuire i dati su un cluster. Quando due tabelle vengono unite dalla colonna specificata nel parametro distribution
, il database può trovare i dati uniti sullo stesso nodo per ridurre al minimo l'I/O internode. Attualmente, distribution
funziona solo con i database Redshift e Aster. Per altri dialetti SQL (come MySQL e Postgres), utilizza indexes
.
Il parametro
distribution
funziona solo con tabelle persistenti, come le PDT e le tabelle aggregate.distribution
non è supportato per le tabelle derivate senza una strategia di persistenza.Inoltre, il parametro
distribution
non è supportato per le tabelle derivate definite concreate_process
osql_create
.
In generale, una colonna di distribuzione dovrebbe essere applicata alla colonna che funge da chiave esterna (la colonna che utilizzi per unire la tabella ad altre persone). Fai riferimento alla documentazione del tuo dialetto per le best practice.
Esempi
Crea una tabella derivata permanente customer_order_facts
con una chiave di distribuzione in 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 tabella derivata customer_order_facts
basata su una query SQL con una chiave di distribuzione in 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"
}
}