Como funcionam as tabelas Delta
Todas as novas tabelas no Databricks são, por padrão, criadas como tabelas Delta. Uma tabela Delta armazena dados como um diretório de arquivos no armazenamento de objetos na nuvem e registra os metadados dessa tabela no metastore dentro de um catálogo e esquema. Todas as tabelas gerenciadas e tabelas de streaming do Unity Catalog são tabelas Delta.
As tabelas delta contêm linhas de dados que podem ser consultadas e atualizadas usando APIs SQL, Python e Scala. As tabelas delta armazenam metadados no formato de código aberto Delta Lake. Como usuário, você pode tratar essas tabelas da mesma forma que trataria tabelas em um banco de dados - você pode inserir, atualizar, excluir e mesclar dados nelas. A Databricks cuida de armazenar e organizar os dados de uma maneira que suporte operações eficientes. Como os dados são armazenados no formato aberto Delta Lake, você pode lê-los e escrevê-los de muitos outros produtos além do Databricks.
Embora seja possível criar tabelas em Databricks que não usam Delta Lake, essas tabelas não fornecem as garantias transacionais ou o desempenho otimizado das tabelas Delta. Para obter mais informações sobre outros tipos de tabela que usam formatos diferentes do Delta Lake, consulte O que é uma tabela?.
O código de exemplo a seguir cria uma tabela Delta a partir dos conjuntos de dados de viagens de táxi de NYC de exemplo, filtrando até linhas que contêm uma tarifa superior a US$ 10. Esta tabela não é atualizada quando novas linhas são adicionadas ou atualizadas em samples.nyctaxi.trips
:
filtered_df = (
spark.read.table("samples.nyctaxi.trips")
.filter(col("fare_amount") > 10.0)
)
filtered_df.write.saveAsTable("catalog.schema.filtered_taxi_trips")
Agora você pode consultar esta tabela Delta usando linguagens como SQL ou Python.
Tabelas delta e vistas regulares
Uma exibição é o resultado de uma consulta sobre uma ou mais tabelas e exibições no Unity Catalog. Você pode criar uma exibição a partir de tabelas e de outras exibições em vários esquemas e catálogos.
Uma vista regular é uma consulta cujo resultado é recalculado sempre que a vista é consultada. O principal benefício de um modo de exibição é que ele permite que você oculte a complexidade da consulta dos usuários, porque eles podem consultar o modo de exibição como uma tabela regular. No entanto, como as exibições regulares são recalculadas sempre que uma consulta é executada, elas podem ser caras para consultas complexas ou consultas que processam muitos dados.
O diagrama a seguir mostra como as exibições regulares funcionam.
O código de exemplo a seguir cria uma exibição regular dos conjuntos de dados de viagens de táxi de NYC de exemplo, filtrando até linhas que contêm uma tarifa superior a US$ 10. Esta vista devolve sempre resultados corretos, mesmo que sejam adicionadas novas linhas ou que as linhas existentes sejam atualizadas em samples.nyctaxi.trips
:
filtered_df = (
spark.read.table("samples.nyctaxi.trips")
.filter(col("fare_amount") > 10.0)
)
filtered_df.write.createOrReplaceTempView("catalog.schema.v_filtered_taxi_trips")
Agora você pode consultar essa exibição regular usando linguagens como SQL ou Python.