Databricks
Você pode usar o Databricks como uma plataforma de dados de destino em um pipeline de dados ou em uma tarefa de replicação. Em um pipeline de dados, várias operações ELT podem ser executadas na plataforma de destino, incluindo armazenamento de dados, transformação de dados, criação de data marts e registro de dados. Uma tarefa de replicação, por outro lado, envolve a replicação de dados diretamente de um sistema de origem para um sistema de destino com capacidades básicas de transformação, mas sem suporte para operações ELT.
A configuração do Databricks como um destino envolve:
- Atender aos pré-requisitos
- Configurando uma conexão com uma área de teste na nuvem. Isto não é necessário se você estiver registrando dados existentes.
- Configurando uma conexão com o Databricks
Configurando uma área de teste na nuvem
Ao utilizar o conector do Databricks Target, você também precisa definir uma área de teste na nuvem onde os dados e as alterações sejam preparados antes de serem aplicados e armazenados. As seguintes plataformas de armazenamento são compatíveis:
Configurando uma conexão com o Databricks
Depois de fornecer as configurações de teste, faça o seguinte:
-
Em Conexões, clique em Criar conexão.
-
Selecione o conector de destino do Databricks e forneça as seguintes configurações:
Destino de dados
Gateway de dados
O Data Movement gateway apenas será necessário se o banco de dados de destino não estiver acessível a partir do Qlik Cloud e somente pode ser acessado através de um link privado (por exemplo, se estiver localizado em uma nuvem privada virtual). Se esse for o caso, selecione o Data Movement gateway através do qual você deseja acessar o banco de dados de destino.
Dependendo do seu caso de uso, será o mesmo Data Movement gateway implementado para mover dados da fonte de dados ou de uma fonte diferente.
Para obter informações sobre casos de uso do Data Movement gateway, consulte Quando o Data Movement gateway é necessário? e Casos de uso comuns.
Se o banco de dados de destino estiver acessível diretamente no Qlik Cloud, selecione Nenhum.
Propriedades da conexão
- Host: o nome do host do espaço de trabalho do Databricks.
- Porta: a porta pela qual acessar o espaço de trabalho.
- Caminho HTTP: o caminho para o cluster que está sendo usado.
- Token: seu token pessoal para acessar o espaço de trabalho.
Propriedades do catálogo
Clique em Carregar catálogos para carregar os catálogos disponíveis e selecione um Catálogo. Se o seu ambiente não estiver configurado com nenhum catálogo, selecione hive_metastore, que é o catálogo padrão.
Você precisa permitir que o Data Movement gateway acesse tabelas externas (não gerenciadas) definindo um local externo no Databricks. Para obter diretrizes, consulte:
Propriedades internas
Propriedades internas são para casos de uso especiais e, portanto, não são expostas na caixa de diálogo. Você só deve usá-las se instruído pelo Suporte da Qlik.
Use os botões e à direita dos campos para adicionar ou remover propriedades conforme necessário.
Nome
O nome de exibição da conexão.
Pré-requisitos
Permissões gerais
- A hora na máquina do Servidor do Qlik Talend Data Integration deve ser exata.
- Permissões de tabela do Databricks: o Qlik Talend Data Integration requer permissões para realizar as seguintes operações nas tabelas do Databricks: CREATE, DROP, TRUNCATE, DESCRIBE e ALTER.
- Nas configurações de controle de acesso (IAM) para o sistema de arquivos ADLS Gen2, atribua a função "Colaborador de dados Blob de armazenamento" ao Qlik Talend Data Integration (ID do aplicativo AD). Pode levar alguns minutos para que a função entre em vigor.
- Para que o Qlik Talend Data Integration se conecte a um cluster do Databricks via ODBC, os usuários devem receber a permissão "Pode anexar a" em sua conta do Databricks.
- Um token de segurança válido é necessário para acessar o Databricks. O token deve ser especificado ao configurar os campos Acesso ODBC do Databricks nas configurações do terminal.
-
Ao configurar um novo cluster com o Microsoft Azure Data Lake Storage (ADLS) Gen2, a linha a seguir deve ser adicionada à seção "Configuração do Spark".
spark.hadoop.hive.server2.enable.doAs false
-
Para poder acessar os diretórios de armazenamento do cluster do Databricks, os usuários precisam adicionar uma configuração (na Configuração do Spark) para essa conta de armazenamento e sua chave.
Exemplo:
fs.azure.account.key.<storage-account-name>.dfs.core.windows.net <storage-account-access-key>
Para obter detalhes, consulte a ajuda online do Databricks em: https://docs.databricks.com/clusters/configure.html#spark-configuration
-
A melhor prática é não usar a localização raiz (/Usr/Hive/Warehouse/) para o banco de dados do Databricks, pois isso pode afetar o desempenho.
Permissão de acesso ao armazenamento
A computação SQL do Databricks deve ser configurada para acessar o armazenamento em nuvem. Para obter instruções, consulte a ajuda online do fornecedor.
Configuração do driver
Um driver apenas será necessário se você estiver acessando o banco de dados via Data Movement gateway. Nesse caso, você precisa instalar o driver na máquina Data Movement gateway.
Você pode instalar o driver usando o utilitário de instalação do driver (recomendado) ou manualmente. A instalação manual só deve ser tentada no caso improvável de você encontrar um problema com o utilitário de instalação do driver.
Usando o utilitário de instalação de driver para instalar o driver
Esta seção descreve como instalar o driver necessário. O processo envolve a execução de um script que baixará, instalará e configurará automaticamente os driver necessários. Você também pode executar scripts para atualizar e desinstalar o driver como necessário.
Preparando a instalação
-
Certifique-se de que o Python 3.6.x ou mais recente esteja instalado no servidor de gateway do Movimentação de dados.
O Python vem pré-instalado na maioria das distribuições do Linux. Você pode verificar qual versão do Python está instalada em seu sistema executando o seguinte comando:
python3 --version
Instalando o driver
Para baixar e instalar o driver:
-
Pare o serviço do Gateway Data Movement:
sudo systemctl stop repagent
-
Opcionalmente, confirme se o serviço foi interrompido:
sudo systemctl status repagent
O status deverá ser o seguinte:
Active: inactive (dead) since <timestamp> ago
-
Na máquina do gateway do Movimentação de dados, altere o diretório de trabalho para:
opt/qlik/gateway/movement/drivers/bin
-
Execute o seguinte comando:
Sintaxe:
./install databricks
Se o driver não puder ser baixado (devido a restrições de acesso ou problemas técnicos), uma mensagem será exibida informando onde baixar o driver e onde copiá-lo na máquina de gateway do Movimentação de dados. Depois de fazer isso, execute o comando install databricks novamente.
Caso contrário, o EULA do driver será exibido.
-
Realize uma das seguintes ações:
- Pressione [Enter] repetidamente para percorrer lentamente o EULA.
- Pressione a barra de espaço repetidamente para rolar rapidamente pelo EULA.
- Pressione q para sair do texto da licença e ser apresentado às opções de aceitação do EULA.
-
Realize uma das seguintes ações:
- Digite "y" e pressione [Enter] para aceitar o EULA e iniciar a instalação.
- Digite "n" e pressione [Enter] para rejeitar o EULA e sair da instalação.
-
Digite "v" e pressione [Enter] para visualizar o EULA novamente.
-
Aguarde a conclusão da instalação (indicada por "Concluído!") e inicie o serviço do Gateway Data Movement:
sudo systemctl start repagent
-
Opcionalmente, confirme se o serviço foi iniciado:
sudo systemctl status repagent
O status deverá ser o seguinte:
Active: active (running) since <timestamp> ago
O driver será instalado.
Atualizando o driver
Execute o comando de atualização se quiser desinstalar versões anteriores do driver antes de instalar o driver fornecido.
Para baixar e atualizar o driver:
-
Pare o serviço do Gateway Data Movement:
sudo systemctl stop repagent
-
Opcionalmente, confirme se o serviço foi interrompido:
sudo systemctl status repagent
O status deverá ser o seguinte:
Active: inactive (dead) since <timestamp> ago
-
Na máquina do gateway do Movimentação de dados, altere o diretório de trabalho para:
opt/qlik/gateway/movement/drivers/bin
-
Execute o seguinte comando:
Sintaxe:
./update databricks
Se o driver não puder ser baixado (devido a restrições de acesso ou problemas técnicos), uma mensagem será exibida informando onde baixar o driver e onde copiá-lo na máquina de gateway do Movimentação de dados. Depois de fazer isso, execute o comando update databricks novamente.
Caso contrário, o EULA do driver será exibido.
-
Realize uma das seguintes ações:
- Pressione [Enter] repetidamente para percorrer lentamente o EULA.
- Pressione a barra de espaço repetidamente para rolar rapidamente pelo EULA.
- Pressione q para sair do texto da licença e ser apresentado às opções de aceitação do EULA.
-
Realize uma das seguintes ações:
- Digite "y" e pressione [Enter] para aceitar o EULA e iniciar a instalação.
- Digite "n" e pressione [Enter] para rejeitar o EULA e sair da instalação.
- Digite "v" e pressione [Enter] para revisar o EULA desde o início.
-
Aguarde a conclusão da instalação (indicada por "Concluído!") e inicie o serviço do Gateway Data Movement:
sudo systemctl start repagent
-
Opcionalmente, confirme se o serviço foi iniciado:
sudo systemctl status repagent
O status deverá ser o seguinte:
Active: active (running) since <timestamp> ago
O driver antigo será desinstalado, e o novo driver será instalado.
Desinstalando o driver
Execute o comando de desinstalação se quiser desinstalar o driver.
Para desinstalar o driver:
-
Pare todas as tarefas configuradas para usar esse conector.
-
Na máquina do gateway do Movimentação de dados, altere o diretório de trabalho para:
opt/qlik/gateway/movement/drivers/bin
-
Execute o seguinte comando:
Sintaxe:
./uninstall databricks
O driver será desinstalado.
Instalando manualmente o driver
Você só deve tentar instalar o driver manualmente se a instalação automática do driver não for concluída com êxito.
Instalar o driver ODBC
Após a instalação do Data Movement gateway, baixe o arquivo SimbaSparkODBC-<version>-LinuxRPM-64bit.zip. Você pode encontrar um link de download direto para a versão compatível em binary-artifacts em /opt/qlik/gateway/movement/drivers/manifests/databricks.yaml. Assim que o download for concluído, copie o arquivo para a máquina Data Movement gateway.
-
Pare o serviço do Gateway Data Movement:
sudo systemctl stop repagent
-
Opcionalmente, confirme se o serviço foi interrompido:
sudo systemctl status repagent
-
Instale o driver na máquina do Gateway Data Movement.
-
Uma vez instalado, certifique-se de que a seção a seguir apareça no arquivo /etc/odbcinst.ini:
-
Inicie o serviço do Gateway Data Movement:
sudo systemctl start repagent
-
Opcionalmente, confirme se o serviço foi iniciado:
sudo systemctl status repagent
O status deverá ser o seguinte:
Active: active (running) since <timestamp> ago
O status deverá ser o seguinte:
Active: inactive (dead) since <timestamp> ago
[Driver ODBC do Simba Spark] Descrição=Driver ODBC do Amazon Hive (64 bits) Driver=/opt/simba/spark/lib/64/libsparkodbc_sb64.so
Instalar o driver JDBC
-
Baixe o arquivo databricks-jdbc-<version>.jar. Você pode encontrar um link de download direto para a versão compatível em binary-artifacts em /opt/qlik/gateway/movement/drivers/manifests/databricks.yaml. Assim que o download for concluído, copie o arquivo JAR para a seguinte pasta na máquina do Data Movement gateway:
/opt/qlik/gateway/movement/qcs_agents/qdi-db-commands/lib
-
Reinicie o serviço Data Movement gateway e verifique se ele foi iniciado executando os comandos descritos em Comandos de serviço do Data Movement gateway
Porta
A porta 443 do firewall precisa ser aberta para comunicação de saída.
Tipos de dados
A tabela a seguir mostra os tipos de dados do Databricks que são suportados durante o uso do Qlik Cloud e o mapeamento padrão dos tipos de dados do Qlik Cloud.
As informações do tipo de dados nativo são preservadas e exibidas na coluna Tipo de dados nativo nas visualizações do conjunto de dados. Se a coluna não estiver visível, será necessário abrir o seletor de colunas da visualização do conjunto de dados e selecionar a coluna Tipo de dados nativo.
Tipos de dados do Qlik Cloud | Tipos de dados do Databricks |
---|---|
BOOLEAN |
BOOLEAN |
BYTES |
STRING |
DATE |
DATE |
TIME |
STRING |
DATETIME |
TIMESTAMP |
INT1 |
TINYINT |
INT2 |
SMALLINT |
INT4 |
INT |
INT8 |
BIGINT |
NUMERIC |
DECIMAL (precisão, escala) |
REAL4 |
FLOAT |
REAL8 |
DOUBLE |
UINT1 |
SMALLINT |
UINT2 |
INT |
UINT4 |
BIGINT |
UINT8 |
DECIMAL (20, 0) |
STRING |
VARCHAR (comprimento em bytes) |
WSTRING |
VARCHAR (comprimento em bytes) |
BLOB |
STRING |
NCLOB |
STRING |
CLOB |
STRING |
Os seguintes tipos de dados são convertidos em STRING(255):
-
MAP
-
ARRAY
-
STRUCT
Limitações e considerações
-
Ao usar Databricks na AWS com tabelas sem chave primária, o recarregamento das tabelas na aterrisagem falhará no aplicativo Armazenamento. Para resolver isso, você pode
-
Definir uma chave primária nas tabelas.
-
Definir spark.databricks.delta.alterTable.rename.enabledOnAWS como True no Databricks.
-
Ao criar uma transformação baseada em SQL, todos os campos VARCHAR são retornados como STRING(255).
-