Configurando o Openflow Connector for Google BigQuery

Nota

O conector está sujeito aos Termos do conector Snowflake.

Este tópico descreve as etapas para configurar o Openflow Connector for Google BigQuery.

Pré-requisitos

  1. Consulte Sobre Openflow Connector for Google BigQuery.

  2. Configure sua implantação de tempo de execução.

  3. Se você usa Openflow - Snowflake Deployments, certifique-se de ter revisado a configuração dos domínios necessários e concedido acesso aos domínios exigidos pelo conector.

  4. Você tem acesso à função de administrador do Openflow ou uma função semelhante usada para gerenciar o Openflow.

  5. Se você estiver criando um usuário de serviço do Snowflake para gerenciar o conector, já criou uma autenticação de par de chaves. Para obter mais informações, consulte autenticação de par de chaves.

Pontos de extremidade obrigatórios

Os seguintes pontos de extremidade são obrigatórios para que o conector funcione:

  • bigquery.googleapis.com:443

  • bigquerystorage.googleapis.com:443

  • oauth2.googleapis.com:443

Se você usa o Openflow – BYOC, precisa configurar a saída da rede de nuvem para permitir o acesso TLS 443 aos pontos de extremidade listados acima. Se você usa Openflow - Snowflake Deployments, precisa criar uma regra de rede e uma integração de acesso externo (External Access Integration, EAI). Em seguida, conceda os privilégios de uso de função do Snowflake na EAI.

Configuração de BigQuery

  1. Crie uma conta do Google Cloud Service e conceda a ela as permissões necessárias para ler dados do BigQuery. O conector usa essa conta para autenticação.

    Essa conta deve ter as seguintes permissões:

Importante

BigQuery Data Editor deve ser concedido no nível do projeto, não a conjuntos de dados individuais. O conector consulta {project}.{region}.INFORMATION_SCHEMA.TABLES para descobrir tabelas em todas as regiões configuradas: uma exibição com escopo regional que requer acesso no nível do projeto. O conector também consulta {project}.{dataset}.INFORMATION_SCHEMA.KEY_COLUMN_USAGE para determinar chaves primárias para cada tabela replicada. Sem acesso no nível do projeto, a consulta falha com o erro Access Denied, e o conector não é executado corretamente.

  1. Gere e baixe o arquivo de chave JSON correspondente para a conta de serviço. Você precisará do conteúdo completo desse arquivo para a configuração do conector.

  2. Habilite o histórico de alterações em cada tabela de origem para permitir que o conector execute a replicação incremental. Esse recurso permite que o BigQuery rastreie as alterações no nível da linha (inserções, atualizações e exclusões), que o conector usa para sincronizar dados com eficiência.

    Execute a seguinte consulta no console do BigQuery para cada tabela:

    ALTER TABLE `project.dataset.table`
    SET OPTIONS (enable_change_history = TRUE);
    

Configurar sua conta Snowflake

Como administrador do Openflow, execute as seguintes tarefas para configurar sua conta Snowflake:

  1. Crie um usuário de serviço do Snowflake:

    USE ROLE USERADMIN;
    CREATE USER <openflow_service_user>
      TYPE=SERVICE
      COMMENT='Service user for Openflow automation';
    
  2. Armazene a chave privada do usuário em um arquivo para fornecer para a configuração do conector. Para obter mais informações, consulte autenticação de par de chaves.

    ALTER USER <openflow_service_user> SET RSA_PUBLIC_KEY = '<pubkey>';
    
  3. Crie um banco de dados para armazenar os dados replicados e configure permissões para que o usuário do Snowflake crie objetos nesse banco de dados concedendo os privilégios USAGE e CREATE SCHEMA.

    USE ROLE ACCOUNTADMIN;
    CREATE DATABASE IF NOT EXISTS <destination_database>;
    GRANT USAGE ON DATABASE <destination_database> TO USER <openflow_service_user>;
    GRANT CREATE SCHEMA ON DATABASE <destination_database> TO USER <openflow_service_user>;
    
  4. Crie um novo warehouse ou use um warehouse existente para o conector.

    Para criar um novo warehouse:

    CREATE WAREHOUSE <openflow_warehouse>
    WITH
       WAREHOUSE_SIZE = 'MEDIUM'
       AUTO_SUSPEND = 300
       AUTO_RESUME = TRUE;
    GRANT USAGE, OPERATE ON WAREHOUSE <openflow_warehouse> TO USER <openflow_service_user>;
    

    Comece com o tamanho MEDIUM de warehouse e, em seguida, experimente os tamanhos dependendo da quantidade de tabelas que estão sendo replicadas e da quantidade de dados transferidos.

    Para determinar se você deve aumentar, monitore o conector e o banco de dados enquanto a replicação de dados estiver em andamento. Se você observar atrasos significativos durante a replicação incremental, experimente um tamanho de warehouse maior. No entanto, o escalonamento de grandes números de tabelas normalmente é melhor usando warehouses multicluster em vez de aumentar o tamanho do warehouse.

  5. Crie uma integração de acesso externo para permitir o acesso à rede fora do Snowflake.

    Cuidado

    Se o seu tempo de execução é executado no Openflow – BYOC, você não precisa criar uma integração de acesso externo (EAI). Em vez disso, configure a saída da rede de nuvem para permitir o acesso TLS 443 aos pontos de extremidade listados abaixo.

    Os pontos de extremidade host:porta necessários estão listados em Pontos de extremidade obrigatórios.

    Para permitir que o conector chame as APIs do Google necessárias de um tempo de execução hospedado pelo Snowflake, você deve criar uma regra de rede e uma integração de acesso externo (EAI). Em seguida, conceda os privilégios de uso de função do Snowflake na EAI.

    Para criar a integração de acesso externo e a regra de rede e conceder o acesso, execute as seguintes etapas:

    1. Crie uma regra de rede para permitir que o conector acesse as APIs do Google necessárias:

      USE ROLE ACCOUNTADMIN;
      USE DATABASE <openflow_network_db>;
      
      CREATE OR REPLACE NETWORK RULE openflow_<runtime_name>_network_rule
        TYPE = HOST_PORT
        MODE = EGRESS
        VALUE_LIST = (
          'bigquery.googleapis.com:443',
          'bigquerystorage.googleapis.com:443',
          'oauth2.googleapis.com:443'
        );
      
    2. Crie uma integração de acesso externo que faça referência à regra de rede:

      CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION openflow_<runtime_name>_eai
        ALLOWED_NETWORK_RULES = (openflow_<runtime_name>_network_rule)
        ENABLED = TRUE;
      
    3. Conceda o privilégio USAGE na integração à sua função do Snowflake:

      GRANT USAGE ON INTEGRATION openflow_<runtime_name>_eai
        TO ROLE openflow_runtime_role_<runtime_name>;
      

Instalação do conector

Para instalar o conector, faça o seguinte como engenheiro de dados:

  1. Navegue até a página de visão geral do Openflow. Na seção Featured connectors, selecione View more connectors.

  2. Na página de conectores do Openflow, localize o conector e selecione Add to runtime.

  3. Na caixa de diálogo Select runtime, selecione seu tempo de execução na lista suspensa Available runtimes e clique em Add.

    Nota

    Antes de instalar o conector, verifique se você criou um banco de dados e um esquema no Snowflake para que o conector armazene os dados ingeridos.

  4. Autentique-se na implementação com as credenciais de sua conta Snowflake e selecione Allow quando solicitado para permitir que o aplicativo de tempo de execução acesse sua conta Snowflake. O processo de instalação do conector leva alguns minutos para ser concluído.

  5. Autentique-se no tempo de execução com as credenciais de sua conta Snowflake.

A tela do Openflow é exibida com o grupo de processos do conector adicionado a ela.

Configuração do conector

Para configurar o conector, execute as seguintes etapas:

  1. Clique com o botão direito do mouse no tempo de execução adicionado e selecione Parameters.

  2. Preencha os valores dos parâmetros necessários conforme descrito em Especificar parâmetros de fluxo.

Especificar parâmetros de fluxo

Esta seção descreve os parâmetros de fluxo que podem ser configurados com base nos contextos de parâmetros a seguir:

Parâmetros de origem do BigQuery

Parâmetro

Descrição

Nome do projeto BigQuery

O identificador exclusivo do projeto do Google Cloud que contém conjuntos de dados e tabelas do BigQuery.

Onde encontrar: abra o BigQuery Studio (Google Cloud Console > BigQuery) e, no painel esquerdo do navegador, passe o cursor do mouse sobre seu projeto para ver o ID.

Exemplo: example-team-gcp

JSON da conta de serviço do GCP

Todo o conteúdo do arquivo de chave JSON na conta de serviço do Google Cloud Platform utilizado para autenticação. Certifique-se de que a conta de serviço tenha as permissões do IAM necessárias para executar operações do BigQuery, como as funções de usuário de trabalho do BigQuery e de visualizador de dados do BigQuery.

Onde obter: Google Cloud Console > IAM e admin > Contas de serviço > selecione a conta de serviço > guia Chaves > Adicionar chave > Criar nova chave > JSON. Dessa forma, um arquivo .json é baixado. Abra-o e cole todo o conteúdo do arquivo (incluindo as chaves) nesse campo.

Parâmetros de destino do BigQuery

Parâmetro

Descrição

Estratégia de autenticação Snowflake

Ao usar SPCS, use SNOWFLAKE_SESSION_TOKEN como o valor para estratégia de autenticação. Ao usar BYOC, use KEY_PAIR como o valor para estratégia de autenticação.

Exemplo: KEY_PAIR

Identificador de conta Snowflake

Ao utilizar:

  • Estratégia de autenticação de tokens de sessão: deve estar em branco.

  • KEY_PAIR: nome da conta Snowflake em que os dados persistirão.

Banco de dados de destino

O nome do banco de dados de destino no qual será feita a replicação. A combinação de maiúsculas e minúsculas é permitida.

Arquivo de chave privada Snowflake

Ao utilizar:

  • Estratégia de autenticação de tokens de sessão: o arquivo de chave privada deve estar em branco.

  • KEY_PAIR: A linha do cabeçalho começa com PEM. A linha do cabeçalho começa com -----BEGIN PRIVATE. Para carregar o arquivo de chave privada, marque a caixa de seleção Reference asset.

Senha de chave privada Snowflake

Ao utilizar:

  • Estratégia de autenticação de tokens de sessão: deve estar em branco.

  • KEY_PAIR: forneça a senha associada ao arquivo de chave privada do Snowflake.

Função Snowflake

Ao utilizar:

  • Estratégia de autenticação de tokens de sessão: use sua função do Snowflake. Você encontra sua função do Snowflake na UI do Openflow acessando os detalhes da exibição do seu tempo de execução.

  • Estratégia de autenticação KEY_PAIR: use uma função válida configurada para o usuário do seu serviço.

Nome de usuário do Snowflake

Ao utilizar:

  • Estratégia de autenticação de tokens de sessão: deve estar em branco.

  • KEY_PAIR: forneça o nome de usuário usado para se conectar à instância do Snowflake.

Warehouse Snowflake

O nome do warehouse a ser usado pelo conector.

Parâmetros de ingestão do BigQuery

Parâmetro

Descrição

Regiões BigQuery

Especifica uma lista separada por vírgulas dos locais a serem consultados para conjuntos de dados do BigQuery. É possível combinar locais regionais e multirregionais na mesma lista.

Exemplo: us,eu,us-west1

Nomes de conjuntos de dados incluídos

Lista separada por vírgulas de conjuntos de dados a serem replicados (consultados em todas as regiões selecionadas).

Exemplo: sales_data,marketing_leads

Regex de nomes de conjuntos de dados incluídos

Expressão regular para especificar os nomes dos conjuntos de dados a serem replicados (consultados em todas as regiões selecionadas). Combinada com os nomes dos conjuntos de dados incluídos para incluir qualquer conjunto de dados correspondente. Observação: a expressão REGEXP deve corresponder à sintaxe RE2 do Google.

Exemplo: ^sales_.*

Nomes de tabela inclusos

Lista separada por vírgulas de tabelas para replicar em conjuntos de dados.

Exemplo: transactions,customers

Regex de nomes de tabelas incluídos

Expressão regular para especificar nomes de tabelas a serem replicados em conjuntos de dados. Combinada com os nomes de tabelas incluídos para incluir qualquer tabela correspondente. Observação: a expressão REGEXP deve corresponder à sintaxe RE2 do Google.

Exemplo: ^revenue_.*

Nomes de exibições incluídos

Lista de exibições separadas por vírgulas para replicar em conjuntos de dados.

Exemplo: customer_summary,revenue_report

Regex de nomes de exibições incluídos

Expressão regular para especificar nomes de exibições para replicação em conjuntos de dados. Combinada com os nomes de exibições incluídos para incluir qualquer exibição correspondente. Observação: a expressão REGEXP deve corresponder à sintaxe RE2 do Google.

Exemplo: ^report_.*

Frequência de sincronização incremental

Com que frequência o conector executa a sincronização incremental para cada tabela. As execuções não se sobrepõem. Se um ciclo leva mais tempo do que o intervalo configurado, a próxima execução aguarda a conclusão da anterior. Como o BigQuery limita o tamanho máximo da janela a 24 horas, o cronograma deve ser mais frequente do que esse valor.

Exemplo: 10m

Frequência de sincronização de exibição

Com que frequência o conector executa a sincronização para cada exibição. As execuções não se sobrepõem. Se um ciclo leva mais tempo do que o intervalo configurado, a próxima execução aguarda a conclusão da anterior. A ingestão de exibição não é compatível com CDC, apenas truncamento e carregamento.

Exemplo: 1h

Conjunto de dados de tabela temporária

Conjunto de dados no qual são criadas as tabelas temporárias necessárias, como tabelas de diário ou tabelas temporárias CDC para ingestão de exibição. A Snowflake recomenda ter um conjunto de dados separado para tabelas temporárias, e não usar o conjunto de dados ingerido para essa finalidade.

Exemplo: openflow_temp

Execute o fluxo

  1. Clique com o botão direito do mouse no plano e selecione Enable all Controller Services.

  2. Clique com o botão direito do mouse no grupo de processos importado e selecione Start. O conector inicia a ingestão de dados.

Próximos passos

  • Para obter informações sobre as tarefas que você pode realizar após a instalação do conector, consulte Usar o conector

  • Para obter informações sobre o monitoramento do fluxo, consulte Monitorar o fluxo