Onde o Databricks grava dados?
Este artigo detalha os locais onde o Databricks grava dados com operações e configurações cotidianas. Como o Databricks tem um conjunto de ferramentas que abrange várias tecnologias e interage com o cloud recurso em um modelo de responsabilidade compartilhada, os default locais usados para armazenar dados variam de acordo com o ambiente de execução, as configurações e a biblioteca.
As informações contidas neste artigo têm o objetivo de ajudá-lo a entender os caminhos do default para várias operações e como as configurações podem alterar esse padrão. O senhor deve consultar a seção Governança de dados com o Unity Catalog para obter orientações sobre como configurar e controlar o acesso aos dados.
Para saber mais sobre como configurar o armazenamento de objetos e outras fontes de dados, consulte Conectar-se a fontes de dados.
O que é armazenamento de objetos?
Na computação cloud, o armazenamento de objetos ou de blob refere-se a contêineres de armazenamento que mantêm dados como objetos, sendo que cada objeto consiste em dados, metadados e um identificador de recurso (URI) globalmente exclusivo. As operações de manipulação de dados de armazenamento de objetos geralmente se limitam à criação, leitura, atualização e exclusão (CRUD) por meio de uma interface de API REST. Algumas ofertas de armazenamento de objetos incluem recursos como controle de versão e gerenciamento de ciclo de vida. O armazenamento em objeto tem os seguintes benefícios:
Alta disponibilidade, durabilidade e confiabilidade.
Custos de armazenamento mais baixos em comparação com a maioria das outras opções de armazenamento.
Infinitamente escalonável (limitado pela quantidade total de armazenamento disponível em uma determinada região do cloud ).
A maioria cloudsdos baseados em data lake são construídos com base em formatos de dados de código aberto no armazenamento de objetos em .clouds
Como o Databricks usa o armazenamento de objetos?
O armazenamento de objetos é a principal forma de armazenamento usada pela Databricks para a maioria das operações. O senhor configura o acesso ao armazenamento de objetos cloud usando credenciais de armazenamento Unity Catalog e locais externos. Esses locais são usados para armazenar arquivos de dados que fazem backup de tabelas e volumes. Consulte Conectar-se ao armazenamento de objetos cloud usando Unity Catalog.
A menos que o senhor configure especificamente uma tabela em relação a um sistema de dados externo, todas as tabelas criadas em Databricks armazenam dados no armazenamento de objetos cloud.
Delta Lake Os arquivos armazenados no armazenamento de objetos cloud fornecem a base de dados para um Databricks lakehouse.
O que é armazenamento em bloco?
Na computação cloud, o armazenamento em bloco ou em disco refere-se a volumes de armazenamento que correspondem a unidades de disco rígido tradicionais (HDDs) ou unidades de estado sólido (SSD), também conhecidas como "discos rígidos". Ao implantar o armazenamento em bloco em um ambiente de computação cloud, normalmente é implantada uma partição lógica de uma ou mais unidades físicas. As implementações variam ligeiramente entre as ofertas de produtos e os fornecedores do site cloud, mas as seguintes características são normalmente encontradas nas implementações:
Todas as máquinas virtuais (VMs) requerem um volume de armazenamento em bloco anexado.
Arquivos e programas instalados em um volume de armazenamento em blocos persistem enquanto o volume de armazenamento em blocos persistir.
Os volumes de armazenamento em bloco são frequentemente usados para armazenamento temporário de dados.
Os volumes de armazenamento em bloco anexados às VMs geralmente são excluídos juntamente com as VMs.
Como o Databricks usa o armazenamento em bloco?
Quando o senhor ativa o compute recurso, o Databricks configura e implanta VMs e anexa volumes de armazenamento em bloco. Esse armazenamento em bloco é usado para armazenar arquivos de dados efêmeros durante a vida útil do recurso compute. Esses arquivos incluem o sistema operacional, a biblioteca instalada e os dados usados pelo cache de disco. Embora o Apache Spark use o armazenamento em bloco em segundo plano para paralelização e carregamento de dados eficientes, a maior parte da execução do código no Databricks não salva nem carrega dados diretamente no armazenamento em bloco.
O senhor pode executar códigos arbitrários, como o Python ou o comando Bash, que usam o armazenamento em bloco anexado ao nó do driver. Consulte Trabalhar com arquivos no armazenamento efêmero anexado ao nó do driver.
Onde o Unity Catalog armazena arquivos de dados?
O Unity Catalog depende de administradores para configurar relacionamentos entre armazenamento clouds e objetos relacionais. O local exato onde os dados residem depende de como os administradores configuraram as relações.
Os dados gravados ou upload em objetos regidos pelo Unity Catalog são armazenados em um dos seguintes locais:
Um local de armazenamento gerenciável associado a um metastore, catálogo ou esquema. Os dados gravados ou carregados em tabelas gerenciar e volumes gerenciar usam o armazenamento gerenciar. Consulte Especificar um local de armazenamento gerenciar em Unity Catalog.
Um local externo configurado com credenciais de armazenamento. Os dados gravados ou upload em tabelas externas e volumes externos usam armazenamento externo. Consulte Conectar-se ao armazenamento de objetos clouds usando o Unity Catalog.
Onde o Databricks SQL armazena tabelas de suporte de dados?
Quando você executa uma instrução CREATE TABLE
com o Databricks SQL configurado com o Unity Catalog, o comportamento default é armazenar arquivos de dados em um local de armazenamento gerenciado configurado com o Unity Catalog. Consulte Onde o Unity Catalog armazena arquivos de dados?.
O catálogo legado hive_metastore
segue regras diferentes. Consulte Trabalhar com Unity Catalog e o Hive metastore.
Onde o Delta Live Tables armazena arquivos de dados?
Databricks recomenda o uso do site Unity Catalog ao criar um pipeline DLT. Os dados são armazenados em diretórios no local de armazenamento gerenciar associado ao esquema de destino.
Opcionalmente, você pode configurar pipelines DLT usando Hive metastore. Quando configurado com Hive metastore, você pode especificar um local de armazenamento no DBFS ou no armazenamento de objetos clouds . Se você não especificar um local, um local na DBFS root será atribuído ao pipeline.
Onde o Apache Spark grava arquivos de dados?
A Databricks recomenda a utilização de nomes de objetos com Unity Catalog para leitura e escrita de dados. Você também pode gravar arquivos em volumes do Unity Catalog usando o seguinte padrão: /Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>
. Você deve ter privilégios suficientes para fazer upload, criar, atualizar ou inserir dados em objetos controlados pelo Unity Catalog.
Opcionalmente, o senhor pode usar indicadores de recurso universal (URIs) para especificar caminhos para arquivos de dados. Os URIs variam de acordo com o provedor cloud. O senhor também deve ter permissões de gravação configuradas para o seu recurso compute atual para gravar no armazenamento de objetos cloud.
Databricks usa o Databricks Filesystem para mapear o comando de leitura e gravação do Apache Spark de volta para o armazenamento de objetos do cloud. Cada Databricks workspace tem um local de armazenamento DBFS root configurado em cloud account alocado para o workspace, que todos os usuários podem acessar para ler e gravar dados. Databricks não recomenda o uso do site DBFS root para armazenar dados de produção. Consulte O que é DBFS? e Recomendações para trabalhar com DBFS root.
Onde os pandas gravam arquivos de dados no Databricks?
No Databricks Runtime 14.0 e acima, o diretório de trabalho atual (CWD) default para todas as operações locais de leitura e gravação do Python é o diretório que contém o Notebook. Se você fornecer apenas um nome de arquivo ao salvar um arquivo de dados, o pandas salvará esse arquivo de dados como um arquivo de workspace paralelo ao Notebook em execução no momento.
Nem todas as versões do Databricks Runtime suportam arquivos workspace e algumas versões do Databricks Runtime têm comportamento diferente, dependendo do uso de pastas do Notebook ou do Git. Consulte Qual é o diretório de trabalho atual do default .
Onde devo escrever arquivos temporários no Databricks?
Se o senhor precisar gravar arquivos temporários que não deseja manter após o encerramento do cluster, gravar os arquivos temporários em $TEMPDIR
produz melhor desempenho do que gravar no diretório de trabalho atual (CWD) se o CWD estiver no sistema de arquivos workspace. O senhor também pode evitar exceder os limites de tamanho de ramificação se o código for executado em um repositório. Para obter mais informações, consulte Limites de tamanho de arquivo e repo .
Escreva em /local_disk0
se a quantidade de dados a serem gravados for grande e o senhor quiser que o armazenamento seja autoscale.