Use o conector do Azure Databricks para se conectar a outro workspace do Azure Databricks

Este artigo fornece exemplos de sintaxe de como usar o conector do Databricks para se conectar a outro workspace do Databricks. Esse conector aproveita o driver JDBC do Databricks, que está incluído no Databricks Runtime 13.3 LTS e superior.

Importante

Para a maioria das operações de compartilhamento de dados, o Databricks recomenda o compartilhamento Delta. Confira O que é o Compartilhamento Delta?. Você também pode preferir Federação Lakehouse para gerenciar consultas em dados em outros workspaces do Databricks. Confira O que é Federação do Lakehouse?.

Conectando-se a outro workspace do Databricks

O conector do Databricks Spark permite que você se conecte aos recursos de computação configurados em outro workspace do Databricks e retorne resultados ao workspace atual do Azure Databricks. Você deve ter acesso à computação ativa em ambos os workspaces para que as consultas tenham êxito.

O driver JDBC está registrado para endereços URL jdbc:databricks://. Você deve configurar e usar um token de acesso pessoal que conceda permissões aos recursos do workspace que estão sendo acessados remotamente. Consulte a API de gerenciamento de token.

Observação

Se você tiver uma biblioteca JDBC do Databricks anexada ao cluster, a versão da biblioteca anexada ao cluster será usada em vez da versão incluída no Databricks Runtime.

Ler dados de outro workspace do Databricks

Você pode especificar o formato databricks para usar o conector do Databricks Spark ao ler dados, como no exemplo a seguir:

df = (spark.read
  .format("databricks")
  .option("host", "adb-<workspace-id>.<random-number>.azuredatabricks.net")
  .option("httpPath", "/sql/1.0/warehouses/<warehouse-id>")
  .option("personalAccessToken", "<auth-token>")
  .option("dbtable", "<table-name>")
  .load()
)

Criar uma tabela externa em outro espaço de trabalho do Databricks

Você pode registrar uma tabela externa em um espaço de trabalho do Azure Databricks vinculado a um espaço de trabalho do Databricks separado.

O exemplo a seguir demonstra essa sintaxe, usando a secret função para obter credenciais armazenadas com segredos do Databricks:

Observação

Para obter mais informações sobre segredos do Databricks, consulte secret a função.

CREATE TABLE databricks_external_table
USING databricks
OPTIONS (
  host 'adb-<workspace-id>.<random-number>.azuredatabricks.net',
  httpPath '/sql/1.0/warehouses/<warehouse-id>',
  personalAccessToken secret('<scope>', '<token>'),
  dbtable '<table-name>'
);