Uso
derived_table: {
distribution: "customer_id"
...
}
}
Hierarquia
distribution - ou - distribution |
Valor padrão
NenhumaAceita
O nome de uma coluna em uma tabela derivada ou em uma tabela agregadaRegras especiais
distribution só é compatível com bancos de dados Redshift e Aster.
|
Definição
distribution
permite especificar a coluna de uma tabela derivada permanente (PDT, na sigla em inglês) ou uma tabela agregada em que aplicar uma chave de distribuição para espalhar os dados em um cluster. Quando duas tabelas são mescladas pela coluna especificada no parâmetro distribution
, o banco de dados pode encontrar os dados mesclados no mesmo nó para minimizar a E/S do internode. No momento, o distribution
só funciona com bancos de dados Redshift e Aster. Para outros dialetos SQL (como MySQL e Postgres), use indexes
.
O parâmetro
distribution
funciona apenas com tabelas permanentes, como PDTs e tabelas agregadas.distribution
não é compatível com tabelas derivadas sem uma estratégia de persistência.Além disso, o parâmetro
distribution
não é compatível com tabelas derivadas definidas usandocreate_process
ousql_create
.
De modo geral, uma chave de distribuição deve ser aplicada à coluna que será usada como chave externa, ou seja, a coluna que você usa para unir a tabela com outras. Consulte a documentação do seu dialeto para conferir as práticas recomendadas.
Examples
Crie uma tabela derivada permanente 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"
}
}