Pular para o conteúdo principal

Leia os dados compartilhados usando o compartilhamento aberto do Delta Sharing (para destinatários)

Este artigo descreve como ler os dados que foram Delta Sharing compartilhados com o senhor usando o protocolo de compartilhamento aberto. Inclui instruções para a leitura do uso compartilhado de dados Databricks, Apache Spark, Pandas, Power BI, e Tableau.

No compartilhamento aberto, o senhor usa um arquivo de credencial que foi compartilhado com um membro da sua equipe pelo provedor de dados para obter acesso seguro de leitura aos dados compartilhados. O acesso persiste enquanto a credencial for válida e o provedor continuar compartilhando os dados. Os provedores gerenciam a expiração e a rotação de credenciais. As atualizações dos dados estão disponíveis para o senhor quase em tempo real. Você pode ler e fazer cópias dos dados compartilhados, mas não pode modificar os dados de origem.

nota

Se os dados tiverem sido compartilhados com o senhor usando o site Databricks-to-Databricks Delta Sharing, o senhor não precisará de um arquivo de credencial para acessar os dados, e este artigo não se aplica ao senhor. Para obter instruções, consulte Ler dados compartilhados usando Databricks-to-Databricks Delta Sharing (para destinatários).

As seções a seguir descrevem como usar Databricks, Apache Spark, Pandas e Power BI para acessar e ler o uso compartilhado de dados do arquivo de credenciais. Para obter uma lista completa dos conectores Delta Sharing e informações sobre como usá-los, consulte a documentação do código abertoDelta Sharing. Se o senhor tiver problemas para acessar os dados compartilhados, entre em contato com o provedor de dados.

nota

As integrações de parceiros são, salvo indicação em contrário, fornecidas por terceiros e o senhor deve ter um account com o provedor apropriado para o uso de seu produto e serviço. Embora a Databricks faça o possível para manter esse conteúdo atualizado, não fazemos nenhuma declaração em relação às integrações ou à precisão do conteúdo das páginas de integração de parceiros. Entre em contato com os fornecedores apropriados em relação às integrações.

Antes de começar

Um membro da sua equipe deve fazer o download do arquivo de credenciais compartilhado pelo provedor de dados. Consulte Obter acesso no modelo de compartilhamento aberto.

Eles devem usar um canal seguro para compartilhar esse arquivo ou local de arquivo com o senhor.

Databricks: Leitura compartilhada uso de dados conectores de compartilhamento aberto

Esta seção descreve como importar um provedor e como consultar os dados compartilhados no Catalog Explorer ou em um notebook Python:

  • Se o seu Databricks workspace estiver habilitado para Unity Catalog, use a interface do usuário do provedor de importação no Catalog Explorer. Isso permite criar catálogos a partir de compartilhamentos com o clique de um botão, usar controles de acesso do Unity Catalog para conceder acesso a tabelas compartilhadas e usar a sintaxe padrão do Unity Catalog para consultar esses compartilhamentos, sem a necessidade de armazenar um arquivo de credenciais ou especificá-lo ao consultar dados compartilhados.
  • Se o seu Databricks workspace não estiver habilitado para Unity Catalog, use as instruções do Python Notebook como exemplo. As instruções do Notebook também descrevem como usar o Notebook para listar e ler tabelas compartilhadas.
nota

Se o provedor de dados estiver usando o Databricks-to-Databricks compartilhamento, ele não precisará compartilhar um arquivo de credencial com o senhor, e as instruções deste artigo não se aplicam a ele. Em vez disso, consulte Ler dados compartilhados usando Databricks-to-Databricks Delta Sharing (para destinatários).

Permissions required: A metastore admin or a user who has both the CREATE PROVIDER and USE PROVIDER privileges for your Unity Catalog metastore.

  1. In your Databricks workspace, click Catalog icon Catalog to open Catalog Explorer.

  2. At the top of the Catalog pane, click the Gear icon gear icon and select Delta Sharing.

    Alternatively, from the Quick access page, click the Delta Sharing > button.

  3. On the Shared with me tab, click Import provider directly.

  4. On the Import provider dialog, enter the provider name.

    The name cannot include spaces.

  5. Upload the credential file that the provider shared with you.

    Many providers have their own Delta Sharing networks that you can receive shares from. For more information, see Provider-specific configurations.

  6. (Optional) Enter a comment.

    Import a provider's credential file using the UI

  7. Click Import.

  8. Create catalogs from the shared data.

    On the Shares tab, click Create catalog on the share row.

    For information about using SQL or the Databricks CLI to create a catalog from a share, see Create a catalog from a share.

  9. Grant access to the catalogs.

    See How do I make shared data available to my team? and Manage permissions for the schemas, tables, and volumes in a Delta Sharing catalog.

  10. Read the shared data objects just like you would any data object that is registered in Unity Catalog.

    For details and examples, see Access data in a shared table or volume.

Apache Spark: Ler dados compartilhados

Siga estes passos para acessar o uso compartilhado de dados Spark 3.x ouacima.

Essas instruções pressupõem que você tenha acesso ao arquivo de credenciais que foi compartilhado pelo provedor de dados. Consulte Obter acesso no modelo de compartilhamento aberto.

nota

Se estiver usando Spark em um Databricks workspace que esteja habilitado para Unity Catalog e tiver usado a interface do usuário do provedor de importação para importar o provedor e compartilhar, as instruções desta seção não se aplicam a você. O senhor pode acessar as tabelas compartilhadas da mesma forma que qualquer outra tabela registrada no Unity Catalog. O senhor não precisa instalar o conector delta-sharing Python nem fornecer o caminho para o arquivo de credenciais. Consulte:Databricks Leia os conectores de uso compartilhado de dados de compartilhamento aberto.

Instale os conectores Delta Sharing Python e Spark

Para acessar metadados relacionados aos dados compartilhados, como a lista de tabelas compartilhadas com você, faça o seguinte. Este exemplo usa Python.

  1. Instale o conector Python de compartilhamento delta:

    Bash
    pip install delta-sharing
  2. Instale o conector do Apache Spark.

Listar tabelas compartilhadas usando o Spark

Liste as tabelas no compartilhamento. No exemplo a seguir, substitua <profile-path> pela localização do arquivo de credencial.

Python
import delta_sharing

client = delta_sharing.SharingClient(f"<profile-path>/config.share")

client.list_all_tables()

O resultado é uma matriz de tabelas, junto com metadados para cada tabela. A saída a seguir mostra duas tabelas:

Console
Out[10]: [Table(name='example_table', share='example_share_0', schema='default'), Table(name='other_example_table', share='example_share_0', schema='default')]

Se a saída estiver vazia ou não contiver as tabelas que você espera, entre em contato com o provedor de dados.

Acesso compartilhado uso de dados Spark

Execute o seguinte, substituindo essas variáveis:

  • <profile-path>: a localização do arquivo de credenciais.
  • <share-name>: o valor de share= para a tabela.
  • <schema-name>: o valor de schema= para a tabela.
  • <table-name>: o valor de name= para a tabela.
  • <version-as-of>: opcional. A versão da tabela para carregar os dados. Só funciona se o provedor de dados compartilhar a história da tabela. Requer delta-sharing-spark 0.5.0 ouacima.
  • <timestamp-as-of>: opcional. Carregue os dados na versão anterior ou no carimbo de data/hora fornecido. Só funciona se o provedor de dados compartilhar a história da tabela. Requer delta-sharing-spark 0.6.0 ouacima.
Python
delta_sharing.load_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>", version=<version-as-of>)

spark.read.format("deltaSharing")\
.option("versionAsOf", <version-as-of>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")\
.limit(10))

delta_sharing.load_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>", timestamp=<timestamp-as-of>)

spark.read.format("deltaSharing")\
.option("timestampAsOf", <timestamp-as-of>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")\
.limit(10))

Acesse o feed de dados de alterações compartilhadas usando o Spark

Se a história da tabela foi compartilhada com você e o feed de dados alterados (CDF) está ativado na tabela de origem, você pode acessar o feed de dados alterados executando o seguinte, substituindo essas variáveis. Requer delta-sharing-spark 0.5.0 ouacima.

Um e somente um parâmetro de início deve ser fornecido.

  • <profile-path>: a localização do arquivo de credenciais.
  • <share-name>: o valor de share= para a tabela.
  • <schema-name>: o valor de schema= para a tabela.
  • <table-name>: o valor de name= para a tabela.
  • <starting-version>: opcional. A versão inicial da consulta, inclusive. Especifique como longo.
  • <ending-version>: opcional. A versão final da consulta, inclusive. Se a versão final não for fornecida, a API usará a versão mais recente da tabela.
  • <starting-timestamp>: opcional. O carimbo de data/hora inicial da consulta, é convertido em uma versão criada maior ou igual a esse carimbo de data/hora. Especifique como uma cadeia de caracteres no formato yyyy-mm-dd hh:mm:ss[.fffffffff].
  • <ending-timestamp>: opcional. O carimbo de data/hora final da consulta, é convertido em uma versão criada anteriormente ou igual a esse carimbo de data/hora. Especifique como uma cadeia de caracteres no formato yyyy-mm-dd hh:mm:ss[.fffffffff]
Python
delta_sharing.load_table_changes_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>",
starting_version=<starting-version>,
ending_version=<ending-version>)

delta_sharing.load_table_changes_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>",
starting_timestamp=<starting-timestamp>,
ending_timestamp=<ending-timestamp>)

spark.read.format("deltaSharing").option("readChangeFeed", "true")\
.option("statingVersion", <starting-version>)\
.option("endingVersion", <ending-version>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")

spark.read.format("deltaSharing").option("readChangeFeed", "true")\
.option("startingTimestamp", <starting-timestamp>)\
.option("endingTimestamp", <ending-timestamp>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")

Se a saída estiver vazia ou não contiver os dados esperados, entre em contato com o provedor de dados.

Acessar uma tabela compartilhada usando Spark transmissão estructurada

Se a história da tabela for compartilhada com você, você poderá ler os dados compartilhados por transmissão. Requer delta-sharing-spark 0.6.0 ouacima.

Opções suportadas:

  • ignoreDeletes: ignore as transações que excluem dados.
  • ignoreChanges: Processe novamente as atualizações se os arquivos foram reescritos na tabela de origem devido a operações de alteração de dados, como UPDATE, MERGE INTO, DELETE (dentro de partições) ou OVERWRITE. As linhas inalteradas ainda podem ser emitidas. Portanto, seus consumidores posteriores devem ser capazes de lidar com duplicatas. As exclusões não são propagadas a jusante. ignoreChanges inclui ignoreDeletes. Portanto, se o senhor usar ignoreChanges, sua transmissão não será interrompida por exclusões ou atualizações na tabela de origem.
  • startingVersion: A versão da tabela compartilhada a partir da qual o senhor deve começar. Todas as alterações na tabela a partir dessa versão (inclusive) serão lidas pela fonte de transmissão.
  • startingTimestamp: O registro de data e hora para começar. Todas as alterações de tabela confirmadas no registro de data e hora ou após esse registro (inclusive) serão lidas pela fonte de transmissão. Exemplo: "2023-01-01 00:00:00.0".
  • maxFilesPerTrigger: O número de novos arquivos a serem considerados em cada micro-lote.
  • maxBytesPerTrigger: A quantidade de dados que é processada em cada micro-lote. Essa opção define um "soft max", o que significa que um lote processa aproximadamente essa quantidade de dados e pode processar mais do que o limite para fazer com que a consulta de transmissão avance nos casos em que a menor unidade de entrada for maior do que esse limite.
  • readChangeFeedTransmissão: lê o feed de dados de alteração da tabela compartilhada.

Opções não suportadas:

  • Trigger.availableNow

Exemplo de consultas de transmissão estruturada

Scala
spark.readStream.format("deltaSharing")
.option("startingVersion", 0)
.option("ignoreChanges", true)
.option("maxFilesPerTrigger", 10)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")

Veja também transmissão em Databricks.

Leia tabelas com vetores de exclusão ou mapeamento de colunas habilitados

info

Visualização

Esse recurso está em Public Preview.

Os vetores de exclusão são um recurso de otimização de armazenamento que seu provedor pode ativar em tabelas Delta compartilhadas. Consulte O que são vetores de exclusão? .

O Databricks também oferece suporte ao mapeamento de colunas para tabelas Delta. Consulte Renomear e soltar colunas com o mapeamento de colunas do Delta Lake.

Se o provedor compartilhou uma tabela com vetores de exclusão ou mapeamento de coluna ativado, o senhor pode ler a tabela usando compute que esteja executando delta-sharing-spark 3.1 ou acima. Se estiver usando o clustering Databricks, o senhor pode realizar leituras de lotes usando um clustering que esteja executando o Databricks Runtime 14.1 ou o acima. As consultas de CDF e transmissão exigem o site Databricks Runtime 14.2 ou superior.

O senhor pode realizar muitas consultas como estão, porque elas podem resolver automaticamente responseFormat com base no recurso de tabela da tabela compartilhada.

Para ler um feed de dados de alteração (CDF) ou para realizar consultas de transmissão em tabelas compartilhadas com vetores de exclusão ou mapeamento de coluna ativados, o senhor deve definir a opção adicional responseFormat=delta.

Os exemplos a seguir mostram consultas de lotes, CDF e transmissão:

Scala
import org.apache.spark.sql.SparkSession

val spark = SparkSession
.builder()
.appName("...")
.master("...")
.config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension")
.config("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog")
.getOrCreate()

val tablePath = "<profile-file-path>#<share-name>.<schema-name>.<table-name>"

// Batch query
spark.read.format("deltaSharing").load(tablePath)

// CDF query
spark.read.format("deltaSharing")
.option("readChangeFeed", "true")
.option("responseFormat", "delta")
.option("startingVersion", 1)
.load(tablePath)

// Streaming query
spark.readStream.format("deltaSharing").option("responseFormat", "delta").load(tablePath)

Pandas: Ler dados compartilhados

Siga estes passos para acessar dados compartilhados em pandas 0.25.3 ouacima.

Essas instruções pressupõem que você tenha acesso ao arquivo de credenciais que foi compartilhado pelo provedor de dados. Consulte Obter acesso no modelo de compartilhamento aberto.

nota

Se estiver usando Pandas em um Databricks workspace que esteja habilitado para Unity Catalog e tiver usado a interface do usuário do provedor de importação para importar o provedor e compartilhar, as instruções desta seção não se aplicam a você. O senhor pode acessar as tabelas compartilhadas da mesma forma que qualquer outra tabela registrada no Unity Catalog. O senhor não precisa instalar o conector delta-sharing Python nem fornecer o caminho para o arquivo de credenciais. Consulte:Databricks Leia os conectores de uso compartilhado de dados de compartilhamento aberto.

Instale o conector Python do Delta Sharing

Para acessar os metadados relacionados aos dados compartilhados, como a lista de tabelas compartilhadas com o senhor, é necessário instalar o conector Python de compartilhamento delta.

Bash
pip install delta-sharing

Listar tabelas compartilhadas usando Pandas

Para listar as tabelas no compartilhamento, execute o seguinte, substituindo <profile-path>/config.share pelo local do arquivo de credenciais.

Python
import delta_sharing

client = delta_sharing.SharingClient(f"<profile-path>/config.share")

client.list_all_tables()

Se a saída estiver vazia ou não contiver as tabelas que você espera, entre em contato com o provedor de dados.

Acesso compartilhado uso de dados Pandas

Para acessar dados compartilhados em Pandas usando Python, execute o seguinte, substituindo as variáveis da seguinte forma:

  • <profile-path>: a localização do arquivo de credenciais.
  • <share-name>: o valor de share= para a tabela.
  • <schema-name>: o valor de schema= para a tabela.
  • <table-name>: o valor de name= para a tabela.
Python
import delta_sharing
delta_sharing.load_as_pandas(f"<profile-path>#<share-name>.<schema-name>.<table-name>")

Acesse um feed de dados de alterações compartilhadas usando Pandas

Para acessar o feed de dados de alteração de uma tabela compartilhada em Pandas usando Python, execute o seguinte, substituindo as variáveis da seguinte forma. Um feed de dados de alteração pode não estar disponível, dependendo se o provedor de dados compartilhou ou não o feed de dados de alteração da tabela.

  • <starting-version>: opcional. A versão inicial da consulta, inclusive.
  • <ending-version>: opcional. A versão final da consulta, inclusive.
  • <starting-timestamp>: opcional. A data e hora de início da consulta. Isso é convertido em uma versão criada maior ou igual a esse carimbo de data/hora.
  • <ending-timestamp>: opcional. O carimbo de data/hora final da consulta. Isso é convertido em uma versão criada anteriormente ou igual a esse carimbo de data/hora.
Python
import delta_sharing
delta_sharing.load_table_changes_as_pandas(
f"<profile-path>#<share-name>.<schema-name>.<table-name>",
starting_version=<starting-version>,
ending_version=<starting-version>)

delta_sharing.load_table_changes_as_pandas(
f"<profile-path>#<share-name>.<schema-name>.<table-name>",
starting_timestamp=<starting-timestamp>,
ending_timestamp=<ending-timestamp>)

Se a saída estiver vazia ou não contiver os dados esperados, entre em contato com o provedor de dados.

Power BI: ler dados compartilhados

O conector Power BI Delta Sharing permite que o senhor descubra, analise e visualize o conjunto de dados compartilhado com o senhor por meio do protocolo aberto Delta Sharing.

Requisitos

Conectar-se ao Databricks

Para se conectar ao Databricks usando o conector Delta Sharing, faça o seguinte:

  1. Abra o arquivo de credencial compartilhada com um editor de texto para recuperar o URL endpoint e os tokens.
  2. Abra o Power BI Desktop.
  3. No menu Get Data (Obter dados ), procure por Delta Sharing .
  4. Selecione o conector e clique em Conectar .
  5. Digite o URL do endpoint que o senhor copiou do arquivo de credenciais no campo URL do Delta Sharing Server .
  6. Opcionalmente, em Advanced Options tab, defina um Row Limit para o número máximo de linhas que o senhor pode download. Isso é definido como 1 milhão de linhas em default.
  7. Clique em OK .
  8. Para Authentication (Autenticação ), copie os tokens que o senhor recuperou do arquivo de credenciais para Bearer tokens (Tokens do portador ).
  9. Clique em Conectar .

Limitações do conector Power BI Delta Sharing

O conector Power BI Delta Sharing tem as seguintes limitações:

  • Os dados que o conector carrega devem caber na memória da sua máquina. Para gerenciar esse requisito, o conector limita o número de linhas importadas ao Limite de linhas que o senhor define nas Opções avançadas tab em Power BI Desktop.

Tableau: Ler dados compartilhados

O conector Tableau Delta Sharing permite que o senhor descubra, analise e visualize conjuntos de dados compartilhados com o senhor por meio do protocolo aberto Delta Sharing.

Requisitos

Conectar-se ao Databricks

Para se conectar ao Databricks usando o conector Delta Sharing, faça o seguinte:

  1. Acesse Tableau Exchange, siga as instruções para download o conector Delta Sharing e coloque-o em uma pasta apropriada da área de trabalho.
  2. Abra o Tableau Desktop.
  3. Na página Connectors (Conectores ), procure por "Delta Sharing by Databricks".
  4. Selecione carregar arquivo de compartilhamento e escolha o arquivo de credencial que foi compartilhado pelo provedor.
  5. Clique em Obter dados .
  6. No Data Explorer, selecione a tabela.
  7. Opcionalmente, adicione filtros SQL ou limites de linha.
  8. Clique em Obter dados da tabela .

Limitações do conector Tableau Delta Sharing

O conector Tableau Delta Sharing tem as seguintes limitações:

  • Os dados que o conector carrega devem caber na memória da sua máquina. Para gerenciar esse requisito, o conector limita o número de linhas importadas ao limite de linhas que o senhor definiu no Tableau.
  • Todas as colunas são retornadas como tipo String.
  • O SQL Filter só funciona se o seu servidor Delta Sharing suportar predicateHint.

Solicite uma nova credencial

Se o URL de ativação da credencial ou a credencial de downloads for perdida, corrompida ou comprometida, ou se a credencial expirar sem que o provedor envie uma nova, entre em contato com o provedor para solicitar uma nova credencial.