Utilizzo
view: my_view { derived_table: { distribution: "customer_id" ... } }
|
Gerarchia
distribution- o - distribution |
Valore predefinito
Nessuno
Accetta
Il nome di una colonna in una tabella derivata o aggregata
Regole speciali
distribution è supportato solo per i database Redshift e Aster.
|
Definizione
Il parametro distribution ti consente di specificare la colonna di una tabella derivata permanente (PDT) o di una tabella aggregata a cui applicare una chiave di distribuzione. La chiave di distribuzione distribuisce i dati in un cluster. Quando due tabelle vengono unite dalla colonna specificata nel parametro distribution, il database può trovare i dati uniti nello stesso nodo per ridurre al minimo l'I/O tra i nodi. Il parametro distribution funziona solo con i database Redshift e Aster. Per altri dialetti SQL (come MySQL e PostgreSQL), utilizza invece indexes.
Il parametro
distributionfunziona solo con le tabelle persistenti, come le PDT e le tabelle aggregate.distributionnon è supportato per le tabelle derivate senza una strategia di persistenza.Inoltre, il parametro
distributionnon è supportato per le tabelle derivate definite utilizzandocreate_processosql_create.
In generale, una chiave di distribuzione deve essere applicata alla colonna che fungerà da chiave esterna (la colonna che utilizzi per unire la tabella ad altre). Per le best practice, consulta la documentazione relativa al dialetto.
Esempi
Crea una tabella derivata permanente customer_order_facts con una chiave di distribuzione su 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 su 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"
}
}