Pular para o conteúdo principal
Página não listada
Esta página não está listada. Mecanismos de busca não armazenarão nenhuma informação, e somente usuários que possuam o link direto poderão acessá-la

Índice de salto de dados

important

DATASKIPPING INDEX foi removido no Databricks Runtime 7.0. Em vez disso, recomendamos que o senhor use as tabelas Delta, que oferecem recursos aprimorados de omissão de dados.

important

Essa documentação foi descontinuada e pode não estar atualizada. O produto, serviço ou tecnologia mencionados neste conteúdo não são mais suportados. Veja Data skipping para o Delta Lake.

Descrição

Além da poda de partição, o Databricks Runtime inclui outro recurso destinado a evitar a varredura de dados irrelevantes, ou seja, o Data Skipping Index. Ele usa estatísticas em nível de arquivo para realizar saltos adicionais na granularidade do arquivo. Isso funciona com, mas não depende, do particionamento no estilo Hive.

A eficácia da omissão de dados depende das características de seus dados e de sua disposição física. Como o salto é feito na granularidade do arquivo, é importante que seus dados sejam particionados horizontalmente em vários arquivos. Isso normalmente acontece como consequência de ter vários append Job, particionamento (shuffle), bucketing e/ou o uso de spark.sql.files.maxRecordsPerFile. Funciona melhor em tabelas com compartimentos ordenados (df.write.bucketBy(...).sortBy(...).saveAsTable(...) / CREATE TABLE ... CLUSTERED BY ... SORTED BY ...) ou com colunas correlacionadas com a chave de partição (por exemplo, brandName - modelName, companyID - stockPrice), mas também quando os dados apresentam alguma ordenação/agrupamento (por exemplo, orderID, bitcoinValue).

nota

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

  • É opcional: precisa ser ativado manualmente, por tabela.
  • É somente SQL: não há API de DataFrame para ele.
  • Depois que uma tabela é indexada, não é garantido que os efeitos das operações subsequentes de INSERT ou ADD PARTITION sejam visíveis até que o índice seja explicitamente REFRESHADO.

Sintaxe SQL

Criar índice

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

Permite o salto de dados na tabela especificada para a primeira (i.e. mais à esquerda) N colunas suportadas, em que N é controlado por spark.databricks.io.skipping.defaultNumIndexedCols (default: 32)

partitionBy as colunas são sempre indexadas e não contam para esse N.

Criar índice para colunas

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

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

Descreva o índice

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

Exibe quais colunas da tabela especificada são indexadas, junto com os tipos correspondentes de estatística em nível de arquivo que são coletados.

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

atualizar o índice completo

SQL
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

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

Reindexa somente as partições especificadas. Em geral, essas operações devem ser mais rápidas do que o índice completo refresh.

Índice de descarte

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

Desativa o salto de dados na tabela especificada e exclui todos os dados do índice.

Esse artigo foi útil?