Google BigQuery
Você pode usar o Google BigQuery 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 Google BigQuery como um destino envolve:
- Atender aos pré-requisitos
- Configurando uma conexão com o Google BigQuery
Configurando uma conexão com o Google BigQuery
Para configurar o conector, faça o seguinte:
-
Em Conexões, clique em Criar conexão.
-
Selecione o conector de destino do Google BigQuery 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
Chave da conta de serviço: baixe o arquivo JSON que foi baixado quando você criou a chave da conta de serviço do BigQuery.
Localização: onde carregar o conjunto de dados criado pela Qlik. Se você selecionar Outro, insira o nome da região no campo Nome da região. Para ver uma lista de nomes de regiões compatíveis, consulte Locais do BigQuery.
Nome
O nome de exibição da conexão.
Pré-requisitos
Permissões necessárias para aterrisar dados
Permissões necessárias para criar o conjunto de dados de destino automaticamente:
Se você deseja que o conjunto de dados seja criado automaticamente, as seguintes permissões são necessárias:
BigQuery > Usuário de trabalho do BigQuery
BigQuery > Editor de dados do BigQuery
Permissões necessárias quando o conjunto de dados de destino já existe:
Se o conjunto de dados já existir, você precisará executar as seguintes etapas:
-
Crie uma conta de serviço com a seguinte permissão:
BigQuery > Usuário de trabalho do BigQuery
-
Navegue até o conjunto de dados que você deseja usar e, em seguida:
-
Adicione a conta de serviço que você acabou de criar como principal.
-
Atribua a função Editor de Dados do BigQuery.
-
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 gbq
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 gbq 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 gbq
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 gbq 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 gbq
O driver será desinstalado.
Instalando o driver manualmente
Você só deve tentar instalar o driver manualmente se a instalação automática do driver não for concluída com êxito.
Você precisa instalar um driver ODBC e um driver JDBC.
Instalar o driver ODBC
Após a instalação do Data Movement gateway, baixe os arquivos SimbaODBCDriverforGoogleBigQuery_<version>-Linux.tar.gz e google-cloud-sdk-<version>-linux-x86_64.tar.gz. Você pode encontrar links diretos para download desses arquivos em binary-artifacts em /opt/qlik/gateway/movement/drivers/manifests/gbq.yaml. Assim que o download for concluído, copie os arquivos 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
-
Extração:
SimbaODBCDriverforGoogleBigQuery_<version>.tar.gz
para:
/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux
-
Mova os arquivos GoogleBigQueryODBC.did e simba.googlebigqueryodbc.ini para o diretório lib no diretório do Simba ODBC Driver.
Exemplo:
Mova os arquivos de:
/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/setup
para:
/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/lib
-
Edite o arquivo simba.googlebigqueryodbc.ini da seguinte forma:
-
Altere
ErrorMessagesPath
para o caminho do arquivo XML que contém as mensagens ODBC. A localização padrão é:ErrorMessagesPath=/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/ErrorMessages
- Altere
DriverManagerEncoding
paraUTF-16
.
-
-
Adicione o seguinte caminho ao arquivo site_arep_login.sh, localizado no diretório bin do Gateway Data Movement:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/lib
-
Edite o arquivo /etc/odbcinst.ini e adicione o caminho do driver (ou seja, o caminho onde o driver está instalado):
[ODBC Drivers]
Simba= Installed
Simba ODBC Driver for Google BigQuery = Installed
[Simba ODBC Driver for Google BigQuery]
Description=Simba ODBC Driver for Google BigQuery(64-bit)
Driver=/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/lib/libgooglebigqueryodbc_sb64.so
-
Instale google-cloud-sdk-<version>-linux-x86_64.tar.gz.
-
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
Instalando o driver JDBC e suas dependências
-
Baixe o seguinte arquivo ZIP e arquivos JAR listados em binary-artifacts em /opt/qlik/gateway/movement/drivers/manifests/gbq.yaml:
- https://repo1.maven.org/maven2/com/google/cloud/google-cloud-bigquery/<version>/google-cloud-bigquery-<version>.jar
- https://repo1.maven.org/maven2/com/google/cloud/google-cloud-storage/<version>/google-cloud-storage-<version>.jar
- https://storage.googleapis.com/simba-bq-release/jdbc/SimbaJDBCDriverforGoogleBigQuery<version>.zip
Copie os arquivos JAR para a seguinte pasta na máquina do Data Movement gateway e extraia os arquivos JAR em SimbaJDBCDriverforGoogleBigQuery<version>.zip para a mesma pasta:
/opt/qlik/gateway/movement/qcs_agents/qdi-db-commands/lib
-
Reinicie o serviço Data Movement gateway executando o comando descrito em Reiniciando o serviço
Porta
A porta 443 do firewall precisa ser aberta para comunicação de saída.
Tipos de dados
O comprimento do tipo de dados parametrizado será definido com valores padrão:
-
STRING: 8192 (comprimento)
-
BYTES: 8192 (comprimento)
-
NUMERIC: precisão: 38, escala: 9
-
BIGDECIMAL: precisão: 76, escala: 38
A tabela a seguir mostra os tipos de dados Google BigQuery 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 Google BigQuery |
---|---|
BOOLEAN |
BOOL |
BYTES |
BYTES (comprimento em Bytes) |
DATE |
DATE |
TIME |
TIME |
DATETIME |
TIMESTAMP |
INT1 |
TINYINT |
INT2 | SMALLINT |
INT4 |
INTEGER |
INT8 | BIGINT |
NUMERIC |
NUMERIC (precisão, escala) |
REAL4 |
FLOAT64 |
REAL8 |
FLOAT64 |
UINT1 |
TINYINT |
UINT2 |
SMALLINT |
UINT4 |
INTEGER |
UINT8 |
BIGINT |
STRING |
STRING (comprimento em bytes) |
WSTRING |
STRING (comprimento em bytes) |
BLOB |
BYTES |
NCLOB |
STRING |
CLOB |
STRING |
Os seguintes tipos de dados são convertidos em STRING:
-
ARRAY
-
STRUCT
-
JSON
-
GEOGRAPHY
Você só deve tentar instalar o driver manualmente se a instalação automática do driver não for concluída com êxito.
Limitações e considerações
As seguintes limitações e considerações se aplicam ao mover dados para um destino do Google BigQuery.
Limitações e considerações para todas as tarefas de dados
- As DDLs a seguir não são compatíveis:
- Soltar coluna
- Renomear coluna
- Alterar o tipo de dados da coluna
- Renomear tabela
Não há suporte para a captura de alterações de tabelas de origem sem uma chave primária ou índice exclusivo. Se precisar capturar alterações nessas tabelas, você poderá adicionar uma Chave primária usando uma transformação. Além disso, as colunas Primary Key ou Unique Index não podem conter NULLs. Se estiver ciente de que essas colunas serão preenchidas com valores NULL, defina uma transformação para transformar NULLs em Valores não nulos.
Limitações e considerações apenas para tarefas de replicação
- Não há suporte para o modo de Aplicação de alterações transacionais.
Não há suporte para a opção de tratamento de erros Registrar log na tabela de exceções para conflitos de aplicação e erros de dados.
Com a seguinte configuração de definições de tarefa, a tarefa de replicação executará uma operação DELETE seguida de um INSERT em vez de um UPDATE:
O modo Aplicar alterações está definido como Lote otimizado.
A opção Aplicar alterações usando SQL MERGE não está selecionada.
O tratamento de erros de UPDATEs para Aplicar conflitos está definido como: Nenhum registro encontrado para aplicar um UPDATE: INSERIR o registro de destino ausente.
Como o Google Cloud BigQuery não oferece suporte à reversão, caso a tarefa de replicação não consiga inserir a linha atualizada, os dados serão excluídos do destino.