Uso
view: my_view { derived_table: { distribution: "customer_id" ... } }
|
Hierarquia
distribution- ou - distribution |
Valor padrão
Nenhum
Aceita
O nome de uma coluna em uma tabela derivada ou de agregação
Regras especiais
O distribution só é compatível com bancos de dados Redshift e Aster.
|
Definição
O parâmetro distribution permite especificar a coluna de uma tabela derivada persistente (PDT) ou uma tabela agregada em que uma chave de distribuição será aplicada. A chave de distribuição espalha os dados em um cluster. Quando duas tabelas são unidas pela coluna especificada no parâmetro distribution, o banco de dados pode encontrar os dados unidos no mesmo nó para minimizar a E/S entre nós. O parâmetro distribution funciona apenas com bancos de dados Redshift e Aster. Para outros dialetos SQL (como MySQL e Postgres), use indexes.
O parâmetro
distributionfunciona apenas com tabelas persistentes, como PDTs e tabelas agregadas.distributionnão é compatível com tabelas derivadas sem uma estratégia de persistência.Além disso, o parâmetro
distributionnão é compatível com tabelas derivadas definidas usandocreate_processousql_create.
Em geral, uma chave de distribuição precisa ser aplicada à coluna que vai atuar como uma chave externa (a coluna usada para unir sua tabela a outras). Consulte a documentação do seu dialeto para conhecer as práticas recomendadas.
Exemplos
Crie uma tabela derivada persistente customer_order_facts com uma chave de distribuição em 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"
}
}
Crie uma tabela derivada customer_order_facts com base em uma consulta SQL com uma chave de distribuição em 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"
}
}