Nota: Este Blog foi escrito pela CERC, cliente Databricks.
No dia-a-dia, utilizamos diversos recursos tecnológicos, onde é um grande desafio integrá-los e manter a catalogação sempre unificada. Assim, iremos falar sobre como conectar o Unity Catalog ao Data Catalog.
A situação específica que originou essa necessidade é: a maior parte de nossos conjuntos de data assets do ambiente informacional estarem no recurso Databricks e atualmente termos o catálogo de dados corporativo utilizando o GCP-Data Catalog, que para as tabelas dentro da GCP, já as mapeia imediatamente.
Com isso, realizamos a primeira conexão entre estes recursos com um repositório de códigos que captura metadados definidos a partir do Hive Metastore do Databricks, integrando no conjunto GCP.
Com esse primeiro desafio de conexão superado, a companhia entendeu por melhor estratégia utilizar o produto Databricks-Unity Catalog, onde tivemos que repensar nossa integração, de forma que ela fosse capaz de manter os ativos de dados migrados para o novo produto e também manter os data assets existentes com origem no Hive Metastore.
Entretanto nos deparamos com a falta de solução para integrar o Databricks Unity Catalog e o Google Data Catalog, assim surgindo a solução que iremos apresentar aqui.
O Unity Catalog possui a capacidade de utilizar APIs para acesso aos metadados do Databricks, sendo que na versão com Hive Metastore esta técnica não era possível.
O GCP- Data Catalog já fornecia o uso de APIs, então com isso, foi possível criar uma conexão funcional entre os catálogos de forma simplificada em comparação às propostas de conexões anteriores.
Com isso podemos chegar em uma solução mais fácil de ser implementada com base nas documentações de cada recurso com algumas bibliotecas para as conexões com o GCP-Data Catalog. O diagrama abaixo mostra o direcionamento de nossa estratégia onde, os metadados e catalogação se concentram no GCP-Data Catalog, adicionando os metadados do Databricks extraídos do Unity Catalog através do conector.
Neste blog iremos explorar como:
Obs.: Deve ser executado em um máquina de Databricks Runtime 10.4, ou até que a google faça uma atualização em sua biblioteca datacatalog_connectors.commons