Índice para ignorar dados

Importante

DATASKIPPING INDEX foi removido no Databricks Runtime 7.0. Em vez disso, recomendamos que você use tabelas Delta, que oferecem recursos aprimorados de pulo de dados.

Importante

Esta documentação foi desativada e pode não ser atualizada. Os produtos, serviços ou tecnologias mencionados neste conteúdo não são mais suportados. Consulte Pulo de dados para Delta Lake.

Description

Além da remoção de partições, o Databricks Runtime inclui outro recurso que se destina a evitar a verificação de dados irrelevantes, ou seja, o Índice de Pulo de Dados. Ele usa estatísticas no nível de arquivo para executar saltos adicionais na granularidade do arquivo. Isso funciona com, mas não depende de, particionamento no estilo Hive.

A eficácia do salto de dados depende das características dos seus dados e do seu layout físico. Como pular é feito na granularidade do arquivo, é importante que seus dados sejam particionados horizontalmente em vários arquivos. Isso normalmente acontecerá como consequência de ter vários trabalhos de acréscimo, particionamento (shuffle), bucketing e/ou o uso de spark.sql.files.maxRecordsPerFile. Ele funciona melhor em tabelas com buckets classificados (), ou com colunas que estão correlacionadas com chaves de partição (por exemplo, , ), mas também quando seus dados apenas exibem alguma ordenação / clusteredness (df.write.bucketBy(...).sortBy(...).saveAsTable(...) / CREATE TABLE ... CLUSTERED BY ... SORTED BY ...por exemplo, , ). brandName - modelNamecompanyID - stockPriceorderIDbitcoinValue

Nota

Este recurso beta tem uma série de limitações importantes:

  • É Opt-In: precisa ser ativado manualmente, por tabela.
  • É apenas SQL: não há API DataFrame para ele.
  • Depois que uma tabela é indexada, os efeitos das operações ou subsequentes INSERT não têm garantia de serem visíveis até que o índice seja explicitamente ADD PARTITION ATUALIZADO.

Sintaxe SQL

Create Index

CREATE DATASKIPPING INDEX ON [TABLE] [db_name.]table_name

Habilita o Pulo de Dados na tabela fornecida para as primeiras (ou seja, mais à esquerda) N colunas suportadas, onde N é controlado por spark.databricks.io.skipping.defaultNumIndexedCols (padrão: 32)

partitionBy as colunas estão sempre indexadas e não contam para este N.

Criar índice para colunas

CREATE DATASKIPPING INDEX ON [TABLE] [db_name.]table_name
    FOR COLUMNS (col1, ...)

Habilita o Pulo de Dados na tabela fornecida para a lista especificada de colunas. Da mesma forma que acima, todas as partitionBy colunas serão sempre indexadas além das especificadas.

Descrever índice

DESCRIBE DATASKIPPING INDEX [EXTENDED] ON [TABLE] [db_name.]table_name

Exibe quais colunas de uma determinada tabela são indexadas, juntamente com os tipos correspondentes de estatística no nível de arquivo que são coletados.

Se EXTENDED for especificado, uma terceira coluna chamada "effectiveness_score" é exibida que dá uma medida aproximada de quão benéfico esperamos que DataSkipping seja para filtros nas colunas correspondentes.

Atualizar índice completo

REFRESH DATASKIPPING INDEX ON [TABLE] [db_name.]table_name

Reconstrói todo o índice. Ou seja, todas as partições da tabela serão reindexadas.

Atualizar partições

REFRESH DATASKIPPING INDEX ON [TABLE] [db_name.]table_name
    PARTITION (part_col_name1[=val1], part_col_name2[=val2], ...)

Reindexa apenas as partições especificadas. Essa operação geralmente deve ser mais rápida do que a atualização completa do índice.

Drop Index

DROP DATASKIPPING INDEX ON [TABLE] [db_name.]table_name

Desabilita o Pulo de Dados na tabela fornecida e exclui todos os dados de índice.