Uso
derived_table: {
cluster_keys: ["customer_city", "customer_state"]
...
}
}
Hierarquia
cluster_keys - ou - cluster_keys |
Valor padrão
None Aceita
Um ou mais nomes de colunas em clusterRegras especiais
cluster_keys só é compatível com dialetos específicos.
|
Definição
O clustering de uma tabela particionada classifica os dados em uma partição com base nos valores das colunas em cluster e as organiza em blocos de armazenamento com o tamanho ideal. O clustering melhora o desempenho e reduz o custo das consultas que são filtradas ou agregadas pelas colunas em cluster.
Consulte a seção Suporte ao dialeto para
cluster_keys
abaixo para ver a lista de dialetos compatíveis comcluster_keys
.
O parâmetro
cluster_keys
funciona apenas com tabelas permanentes, como PDTs e tabelas agregadas.cluster_keys
não é compatível com tabelas derivadas sem uma estratégia de persistência.Além disso, o parâmetro
cluster_keys
não é compatível com tabelas derivadas definidas usandocreate_process
ousql_create
.Por fim, o Google BigQuery oferece suporte ao clustering apenas em tabelas particionadas. O parâmetro
cluster_keys
funciona apenas com PDTs ou tabelas agregadas que também são particionadas usando o parâmetropartition_keys
.
Para adicionar uma coluna em cluster a uma tabela derivada persistente (PDT, na sigla em inglês) ou uma tabela de agregação, use o parâmetro cluster_keys
e forneça os nomes das colunas que você quer agrupar na tabela do banco de dados.
Examples
Crie uma tabela derivada nativa customer_order_facts
em um banco de dados do Google BigQuery, particionada na coluna date
e agrupada nas colunas city
, age_tier
e gender
para otimizar as consultas filtradas ou agregadas nessas colunas:
view: customer_order_facts {
derived_table: {
explore_source: order {
column: customer_id { field: order.customer_id }
column: date { field: order.order_time }
column: city { field: users.city}
column: age_tier { field: users.age_tier }
column: gender { field: users.gender }
derived_column: num_orders {
sql: COUNT(order.customer_id) ;;
}
}
partition_keys: [ "date" ]
cluster_keys: [ "city", "age_tier", "gender" ]
datagroup_trigger: daily_datagroup
}
}
Considerações
As tabelas do Google BigQuery podem ser particionadas apenas em campos de data
As tabelas do Google BigQuery só podem ser particionadas em uma coluna de data ou de carimbo de data/hora. Se você quiser adicionar colunas em cluster a uma PDT ou tabela agregada que não inclua dados com base em data ou hora, uma maneira de fazer isso é adicionar uma coluna de data usando uma instrução SQL, como SELECT CURRENT_DATETIME() as now
, e usar partition_keys
para particionar na nova coluna. Em seguida, use o clustering em outras colunas na sua tabela PDT ou agregada.
Suporte a dialetos para cluster_keys
A capacidade de usar cluster_keys
depende do dialeto do banco de dados usado pela conexão do Looker. Na versão mais recente do Looker, os seguintes dialetos são compatíveis com cluster_keys
: