execução de consultas federadas em outro site Databricks workspace
Este artigo descreve como configurar o Lakehouse Federation para executar consultas federadas em dados Databricks em outro Databricks workspace. Para saber mais sobre a lakehouse Federation, consulte O que é a lakehouse Federation?
Databricks-to-Databricks A lakehouse Federation é uma boa ferramenta para executar consultas em dados gerenciados por outro metastore Databricks workspace 's Hive ou AWS Glue . Para a maioria dos outros cenários, outros Databricks fluxos de trabalho são mais eficientes:
- Se o espaço de trabalho Databricks compartilhar o mesmo metastore Unity Catalog, o senhor poderá gerenciar consultas cruzadasworkspace usando consultas padrão Unity Catalog e ferramentas de governança de dados.
- Se o senhor quiser ter acesso somente leitura aos dados em um Databricks workspace anexado a um metastore Unity Catalog diferente, seja no seu Databricks account ou não, o Delta Sharing é a melhor opção.
Não há necessidade de configurar a Lakehouse Federation em nenhum desses cenários.
Para se conectar a um catálogo Databricks em outro workspace usando a Lakehouse Federation, o senhor deve criar o seguinte no metastore Databricks Unity Catalog :
- Um agrupamento ou SQL warehouse em um Databricks workspace.
- Uma conexão com o clustering ou SQL warehouse.
- Um catálogo externo em seu Unity Catalog metastore que espelha o outro Databricks catálogo acessível a partir do clustering ou SQL warehouse para que o senhor possa usar a sintaxe de consulta Unity Catalog e as ferramentas de governança de dados para gerenciar o Databricks acesso do usuário aos dados.
Antes de começar
Requisitos do workspace:
- Espaço de trabalho preparado para o Catálogo do Unity.
Requisitos de computação:
- Conectividade de rede do seu recurso compute para os sistemas de banco de dados de destino. Veja as recomendações do Networking para a Lakehouse Federation.
- Databricks compute O senhor deve usar Databricks Runtime 13.3 LTS ou acima e o modo de acesso Standard ou Dedicated .
- Os SQL warehouse devem ser Pro ou Serverless e devem utilizar a versão 2023.40 ou superior.
Permissões necessárias:
- Para criar uma conexão, é preciso ser administrador de metastore ou usuário com o privilégio
CREATE CONNECTION
no metastore do Unity Catalog anexado ao espaço de trabalho. - Para criar um catálogo externo é preciso ter a permissão
CREATE CATALOG
no metastore e ser proprietário da conexão ou ter o privilégioCREATE FOREIGN CATALOG
na conexão.
Outros requisitos de permissão são definidos em cada seção baseada em tarefa a seguir.
Também é necessário ter um clustering ativo ou SQL warehouse no Databricks workspace que o senhor está usando para configurar a conexão.
Crie uma conexão
A conexão especifica um caminho e as credenciais para acessar um sistema de banco de dados externo. Para criar uma conexão, você pode usar o Catalog Explorer ou o comando CREATE CONNECTION
do SQL em um Notebook do Databricks ou no editor de consultas SQL do Databricks.
O senhor também pode usar a API REST da Databricks ou a CLI da Databricks para criar uma conexão. Veja POST /api/2.1/unity-catalog/connections e Unity Catalog comando.
Permissões necessárias: Administrador do Metastore ou usuário com o privilégio CREATE CONNECTION
.
- Catalog Explorer
- SQL
-
Em seu site Databricks workspace, clique em
Catalog .
-
Na parte superior do painel Catálogo , clique no ícone
Adicionar e selecione Adicionar uma conexão no menu.
Como alternativa, na página de acesso rápido , clique no botão Dados externos >, acesse a tab Conexões e clique em Criar conexão .
-
Na página Noções básicas de conexão do assistente de configuração de conexão , insira um nome de conexão fácil de usar.
-
Selecione um tipo de conexão de Databricks .
-
(Opcional) Adicione um comentário.
-
Clique em Avançar .
-
Na página Authentication (Autenticação ), insira as seguintes propriedades de conexão para a outra instância do Databricks:
- Host : nome da instância do espaço de trabalho. Para saber como obter o nome da instância workspace, consulte Obter identificadores para objetos workspace.
- Tokens de acesso pessoal : Um Databricks tokens de acesso pessoal que permite o acesso ao destino workspace... Para saber como obter um tokens, consulte Databricks autenticação de tokens de acesso pessoal. Para conexões, o site Databricks recomenda o uso de tokens de acesso pessoal para uma entidade de serviço.
- Caminho HTTP : O caminho HTTP para seu site SQL warehouse. Para obter o caminho, acesse SQL > SQL warehouse na barra lateral, selecione SQL warehouse, vá para Connection details tab e copie o valor de HTTP path .
-
Clique em Criar conexão .
-
Na página Catalog basics (Noções básicas de catálogo ), digite o nome do catálogo no outro Databricks workspace que pode ser mapeado para um objeto de catálogo nesse metastore.
-
(Opcional) Clique em Testar conexão para confirmar se está funcionando.
-
Clique em Criar catálogo .
-
Na página Access (Acesso) , selecione o espaço de trabalho no qual os usuários podem acessar o catálogo que o senhor criou. O senhor pode selecionar All workspace have access (Todos os espaços de trabalho têm acesso ) ou clicar em Assign to workspace (Atribuir ao espaço de trabalho), selecionar o espaço de trabalho e clicar em Assign (Atribuir ).
-
Altere o proprietário que poderá gerenciar o acesso a todos os objetos no catálogo. começar a digitar um diretor na caixa de texto e, em seguida, clicar no diretor nos resultados retornados.
-
Conceda privilégios no catálogo. Clique em Conceder :
-
Especifique os diretores que terão acesso aos objetos no catálogo. começar a digitar um diretor na caixa de texto e, em seguida, clicar no diretor nos resultados retornados.
-
Selecione as predefinições de privilégios a serem concedidas a cada diretor. Todos os usuários de account recebem
BROWSE
por default.- Selecione Leitor de dados no menu suspenso para conceder privilégios
read
em objetos no catálogo. - Selecione Editor de dados no menu suspenso para conceder os privilégios
read
emodify
aos objetos no catálogo. - Selecione manualmente os privilégios a serem concedidos.
- Selecione Leitor de dados no menu suspenso para conceder privilégios
-
Clique em Conceder .
-
-
Clique em Avançar .
-
Na página Metadata (Metadados ), especifique as tags em key-value. Para obter mais informações, consulte Apply tags to Unity Catalog securable objects.
-
(Opcional) Adicione um comentário.
-
Clique em Salvar .
Execute o seguinte comando em um Notebook ou no editor de consultas Databricks SQL, substituindo o seguinte:
<connection-name>
: nome fácil de usar para a conexão que você está criando.<workspace-instance>
: A instância de destino workspace. Para saber como obter o nome da instância workspace, consulte Obter identificadores para objetos workspace.<sql-warehouse-path>
: O caminho HTTP para seu site SQL warehouse. Para obter o caminho, acesse SQL > SQL warehouse na barra lateral, selecione SQL warehouse, vá para Connection details tab e copie o valor de HTTP path .<personal-access-token>
: Um Databricks tokens de acesso pessoal que permite o acesso ao alvo workspace. Para saber como obter tokens, consulte Databricks personal access tokens authentication. Para conexões, o site Databricks recomenda que o senhor use os tokens de acesso pessoal de uma entidade de serviço.
CREATE CONNECTION <connection-name> TYPE databricks
OPTIONS (
host '<workspace-instance>',
httpPath '<sql-warehouse-path>',
personalAccessToken '<personal-access-token>'
);
Recomendamos que o senhor use Databricks segredos em vez de texto simples strings para valores confidenciais, como credenciais. Por exemplo:
CREATE CONNECTION <connection-name> TYPE databricks
OPTIONS (
host '<workspace-instance>',
httpPath '<sql-warehouse-path>',
personalAccessToken secret ('<secret-scope>','<secret-key-password>')
)
Para obter informações sobre a configuração de segredos, consulte Gerenciamento de segredos.
Crie um catálogo estrangeiro
Se o senhor usar a interface do usuário para criar uma conexão com a fonte de dados, a criação do catálogo externo estará incluída e o senhor poderá ignorar essa etapa.
Um catálogo externo espelha um catálogo no site externo Databricks workspace para que o senhor possa consultar e gerenciar o acesso aos dados nesse catálogo externo Databricks como se fosse um catálogo em seu próprio local de trabalho. Para criar um catálogo externo, o senhor usa uma conexão com o site externo Databricks workspace que já foi definido.
Para criar um catálogo externo, o senhor pode usar o Catalog Explorer ou o comando CREATE FOREIGN CATALOG
SQL em um Notebook Databricks ou o editor de consultas Databricks SQL. O senhor também pode usar a API REST da Databricks ou a CLI da Databricks para criar um catálogo. Veja POST /api/2.1/unity-catalog/catalogs e Unity Catalog comando.
Permissões necessárias: permissão CREATE CATALOG
na metastore e propriedade da conexão ou o privilégio CREATE FOREIGN CATALOG
na conexão.
- Catalog Explorer
- SQL
-
Em seu site Databricks workspace, clique em
Catalog para abrir o Catalog Explorer.
-
Na parte superior do painel Catálogo , clique no ícone
Adicionar e selecione Adicionar um catálogo no menu.
Como alternativa, na página de acesso rápido , clique no botão Catálogos e no botão Criar catálogo .
-
Siga as instruções para criar catálogos estrangeiros em Criar catálogos.
Execute o seguinte comando SQL em um notebook ou no editor Databricks SQL. Os itens entre colchetes são opcionais. Substitua os valores temporários:
<catalog-name>
: Nome do catálogo estrangeiro que você está criando.<connection-name>
: O objeto de conexão que especifica a fonte de dados, o caminho e as credenciais de acesso.<external-catalog-name>
: Nome do catálogo no site externo Databricks workspace que o senhor está espelhando.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (catalog '<external-catalog-name>');
Pushdowns suportados
Os seguintes pushdowns são suportados em todos os sites compute:
- Filtros
- Projeções
- Limite
- Funções: somente expressões de filtro são compatíveis (funções de cadeias de caracteres, funções matemáticas, funções de dados, tempo e registro de data e hora e outras funções diversas, como Alias, Cast, SortOrder).
Os seguintes pushdowns são suportados em Databricks Runtime 13.3 LTS e acima e SQL warehouse compute:
- Agregados
- Os seguintes operadores Boolean: =, <, <=, >, >=, <=>
- As seguintes funções matemáticas (não suportadas se o ANSI estiver desativado): +, -, *,%,/
- Os seguintes operadores diversos: ^, |, ~
- Classificação, quando usada com limite
Os seguintes pushdowns não são suportados:
- unir-se
- Funções do Windows