Onde a Databricks grava os 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 recurso de nuvem em um modelo de responsabilidade compartilhada, os locais do default 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. A gestão de dados e os administradores que buscam orientação sobre como configurar e controlar o acesso aos dados devem consultar governança de dados com Unity Catalog.
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 em nuvem, o armazenamento de objetos ou armazenamento 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 globalmente exclusivo (URI). 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 de objetos 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 escalável (limitado pela quantidade total de armazenamento disponível em uma determinada região da nuvem).
A maioria dos data lake baseados em nuvem é construída sobre formatos de dados de código aberto no armazenamento de objetos em nuvem.
Como a 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 na nuvem usando credenciais de armazenamento do Unity Catalog e locais externos. Esses locais são então usados para armazenar arquivos de dados que sustentam tabelas e volumes. Consulte Conectar-se ao serviço e ao armazenamento de objetos na nuvem 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 no Databricks armazenam dados no armazenamento de objetos na nuvem.
Delta Lake Os arquivos armazenados no armazenamento de objetos na nuvem fornecem a base de dados para um Databricks lakehouse.
O que é armazenamento em bloco?
Na computação em nuvem, 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 em nuvem, 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 de nuvem, mas as seguintes características são geralmente encontradas nas implementações:
- Todas as máquinas virtuais (VMs) exigem um volume de armazenamento em bloco conectado.
- Os arquivos e programas instalados em um volume de armazenamento em bloco persistem enquanto o volume de armazenamento em bloco persistir.
- Os volumes de armazenamento em bloco geralmente são usados para armazenamento temporário de dados.
- Os volumes de armazenamento em bloco conectados às VMs geralmente são excluídos junto com as VMs.
Como a 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 em armazenamento temporário anexado ao nó do driver.
Onde o Unity Catalog armazena os arquivos de dados?
O Unity Catalog depende dos administradores para configurar as relações entre o armazenamento em nuvem e os objetos relacionais. O local exato em que os dados residem depende de como os administradores configuraram as relações.
Os dados gravados ou carregados em objetos regidos por 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 carregados em tabelas externas e volumes externos usam armazenamento externo. Consulte Conectar-se ao serviço e armazenamento de objetos na nuvem usando Unity Catalog.
Onde o Databricks SQL armazena as tabelas de apoio de dados?
Quando o senhor executa uma instrução CREATE TABLE
com Databricks SQL configurado com Unity Catalog, o comportamento de default é armazenar os arquivos de dados em um local de armazenamento gerenciar configurado com 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 legado Hive metastore.
Onde o DLT 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, o senhor pode configurar o pipeline DLT usando Hive metastore. Quando configurado com Hive metastore, o senhor pode especificar um local de armazenamento em DBFS ou armazenamento de objetos na nuvem. Se o senhor não especificar um local, um local no site DBFS root será atribuído ao seu pipeline.
Onde o Apache Spark grava os arquivos de dados?
A Databricks recomenda o uso de nomes de objetos com o Unity Catalog para leitura e gravação de dados. O senhor também pode gravar arquivos nos volumes do Unity Catalog usando o seguinte padrão: /Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>
. O senhor deve ter privilégios suficientes para fazer upload, criar, atualizar ou inserir dados em objetos administrados 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 de nuvem. O senhor também deve ter permissões de gravação configuradas para o seu recurso compute atual para gravar no armazenamento de objetos na nuvem.
Databricks usa o Databricks Filesystem para mapear o comando de leitura e gravação do Apache Spark de volta ao armazenamento de objetos na nuvem. Cada Databricks workspace tem um local de armazenamento DBFS root configurado na nuvem 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 o Pandas grava os arquivos de dados no Databricks?
No Databricks Runtime 14.0 e acima, o default diretório de trabalho atual (CWD) do para todas as operações locais de leitura Python e gravação é o diretório que contém o Notebook. Se o senhor fornecer apenas um nome de arquivo ao salvar um arquivo de dados, o site Pandas salvará esse arquivo de dados como um arquivo workspace paralelo ao Notebook em execução no momento.
Nem todas as versões do site Databricks Runtime suportam arquivos workspace e algumas versões do site Databricks Runtime têm comportamento diferente, dependendo do uso das pastas Notebook ou Git. Consulte Qual é o diretório de trabalho atual do default.
Onde devo gravar arquivos temporários no Databricks?
Se o senhor precisar gravar arquivos temporários que não deseja manter depois que o clustering for encerrado, 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 Repo. Para obter mais informações, consulte Limites de arquivo e repositório.
Escreva em /local_disk0
se a quantidade de dados a serem gravados for grande e o senhor quiser que o armazenamento seja autoscale.