Pular para o conteúdo principal

Conectar-se ao armazenamento Azure Blob com WASB (legado)

Microsoft descontinuou o driver Windows Azure Storage Blob (WASB) para Azure Blob Storage em favor do driver Azure Blob Filesystem (ABFS); consulte Conectar-se ao Azure Data lake Storage e Blob Storage. O ABFS tem várias vantagens em relação ao WASB; consulte a documentação do Azure sobre o ABFS.

Este artigo fornece documentação para a manutenção do código que usa o driver WASB. A Databricks recomenda o uso do ABFS para todas as conexões com o Azure Blob Storage.

Configurar as credenciais WASB no Databricks

O driver WASB permite que o senhor use um armazenamento account access key ou uma assinatura de acesso compartilhado (SAS). (Se o senhor estiver lendo dados de um armazenamento público account, não precisará configurar as credenciais).

A Databricks recomenda o uso de segredos sempre que o senhor precisar passar credenciais na Databricks. Os segredos estão disponíveis para todos os usuários com acesso ao escopo do segredo que os contém.

Você pode passar as credenciais:

  • Com escopo para o clustering na configuração Spark
  • Com escopo para o Notebook

A Databricks recomenda atualizar todas as suas conexões para usar o ABFS para acessar o Azure Blob Storage, que fornece padrões de acesso semelhantes aos do WASB. Use o ABFS para obter a melhor segurança e desempenho ao interagir com o Azure Blob Storage.

Para configurar as credenciais de clustering, defina as propriedades de configuração doSpark quando o senhor criar o clustering. As credenciais definidas no nível do clustering estão disponíveis para todos os usuários com acesso a esse clustering.

Para configurar credenciais com escopo de Notebook, use spark.conf.set(). As credenciais passadas no nível do Notebook estão disponíveis para todos os usuários com acesso a esse Notebook.

Definir as credenciais do Azure Blob Storage com um acesso account key

Um acesso ao storage account key concede acesso total a todos os contêineres de um storage account. Embora esse padrão seja útil para prototipagem, evite usá-lo na produção para reduzir os riscos associados à concessão de acesso irrestrito aos dados de produção.

Python
spark.conf.set(
"fs.azure.account.key.<storage-account-name>.blob.core.windows.net",
"<storage-account-access-key>"
)

O senhor pode atualizar o site account key URIs para usar o ABFS. Para obter mais informações, consulte Conectar-se ao Azure data lake Storage e Blob Storage.

Definição de credenciais de armazenamento Azure Blob com uma assinatura de acesso compartilhado (SAS)

O senhor pode usar o SAS tokens para configurar o acesso limitado a um único contêiner em um armazenamento account que expira em um horário específico.

Python
spark.conf.set(
"fs.azure.sas.<container-name>.<storage-account-name>.blob.core.windows.net",
"<sas-token-for-container>"
)

Acesse o Azure Blob Storage usando o DataFrame API

O Apache Spark DataFrame API pode usar credenciais configuradas no nível do Notebook ou do clustering. Todos os URIs do driver WASB especificam os nomes do contêiner e do armazenamento account. O nome do diretório é opcional e pode especificar vários diretórios aninhados em relação ao contêiner.

wasbs://<container-name>@<storage-account-name>.blob.core.windows.net/<directory-name>

Os exemplos de código a seguir mostram como o senhor pode usar a DataFrames API Databricks dbutilsreferência e utilidades () para interagir com um diretório nomeado em um contêiner.

Python
df = spark.read.format("parquet").load("wasbs://<container-name>@<storage-account-name>.blob.core.windows.net/<directory-name>")

dbutils.fs.ls("wasbs://<container-name>@<storage-account-name>.blob.core.windows.net/<directory-name>")

Para atualizar o ABFS em vez do WASB, atualize seus URIs. Para obter mais informações, consulte Access Azure storage

Acesse Azure Blob Storage com SQL

As credenciais definidas na configuração da sessão de um Notebook não podem ser acessadas pelo Notebook que está executando Spark SQL.

Depois que um acesso account key ou um SAS for definido na configuração de cluster, o senhor poderá usar consultas padrão Spark SQL com o Azure Blob Storage:

SQL
-- SQL
CREATE DATABASE <db-name>
LOCATION "wasbs://<container-name>@<storage-account-name>.blob.core.windows.net/";

Para atualizar o ABFS em vez do WASB, atualize seus URIs; consulte Acessar o armazenamento do Azure