Trabalhar com conexões para fontes de dados externas

Visão geral

Com a API BigQuery Connection, os usuários podem configurar uma conexão do BigQuery com uma fonte de dados externa. Use a conexão para enviar consultas à fonte de dados externa do BigQuery sem mover ou copiar dados para o BigQuery.

Você precisa concluir uma configuração inicial única para criar um recurso de conexão no BigQueryBigQuery. Depois disso, será possível executar as seguintes tarefas:

Antes de começar

Antes de trabalhar com um recurso de conexão, execute as tarefas explicadas nas seções a seguir.

Ativar o serviço de conexão do BigQuery

  1. Abra a página da API BigQuery Connection na biblioteca de APIs.
  2. No menu suspenso, selecione o projeto que contém a fonte de dados externa.
  3. Clique no botão ATIVAR.

    API BigQuery Connection

Conta de serviço

O BigQuery usa uma conta de serviço para se conectar à sua fonte de dados externa. Quando você ativa a API BigQuery Connection, uma conta de serviço de gerenciamento de identidade e acesso (IAM) gerenciada pelo Google Cloud é criada automaticamente em seu nome.

Para ver uma lista de contas de serviço no projeto, consulte Como listar contas de serviço.

Permissões necessárias

Para criar e manter um recurso de conexão, você precisa das seguintes permissões do IAM:

  • bigquery.connections.create
  • bigquery.connections.get
  • bigquery.connections.list
  • bigquery.connections.update
  • bigquery.connections.use
  • bigquery.connections.delete

O papel predefinido roles/bigquery.admin do IAM inclui as permissões necessárias para criar e manter um recurso de conexão.

Para conceder permissões a outro usuário para que ele possa usar o recurso de conexão, consulte Compartilhar um recurso de conexão.

Como conceder acesso bigquery.admin

Para conceder o papel bigquery.admin:

Console

  1. Abra a página "IAM" no console do Google Cloud

    Abrir a página do IAM

  2. Clique em Selecione um projeto.

  3. Selecione um projeto e clique em Abrir.

  4. Clique em Adicionar para incluir novos membros no projeto e defina as permissões deles.

  5. Na caixa de diálogo Adicionar membros:

    • Em Membros, insira o endereço de e-mail do usuário ou grupo.
    • Na lista suspensa Selecionar um papel, clique em BigQuery > Administrador do BigQuery.
    • Clique em Adicionar.

      Conceder papel de administrador

gcloud

Use a CLI do Google Cloud para conceder a um usuário ou grupo o papel bigquery.admin.

Para adicionar uma única vinculação à política do IAM do projeto, digite o comando a seguir. Para incluir um usuário, forneça a sinalização --member no formato user:user@example.com. Para incluir um grupo, forneça a sinalização --member no formato group:group@example.com.

gcloud projects add-iam-policy-binding project_id \
--member principal:address \
--role roles/bigquery.admin

Em que:

  • project_id é o ID do projeto;
  • principal é group ou user.
  • address é o endereço de e-mail do usuário ou do grupo.

Por exemplo:

gcloud projects add-iam-policy-binding myproject \
--member group:group@example.com \
--role roles/bigquery.admin

A política atualizada é exibida:

    bindings:
    - members:
      - group:group@example.com
        role: roles/bigquery.admin
    

Para mais informações sobre os papéis do IAM no BigQuery, consulte Papéis e permissões predefinidos.

Criar um recurso de conexão

Para evitar a gravação de credenciais de banco de dados como texto simples (em inglês) em uma consulta federada, é necessário primeiro criar um recurso de conexão de banco de dados por banco de dados no BigQuery e, em seguida, referenciar o recurso de conexão na consulta federada.

O recurso de conexão tem um conjunto de permissões do IAM, que pode ser concedido a outros usuários. Esse recurso é criptografado e armazenado com segurança no serviço de conexão do BigQuery e só pode ser usado para consultas federadas. Para mais informações sobre os papéis e as permissões do IAM no BigQuery, consulte Papéis e permissões predefinidos.

É possível configurar um recurso de conexão para Cloud SQL, Cloud Spanner e AWS (via BigQuery Omni). Para criar um recurso de conexão do Cloud SQL, siga estas etapas:

Console

  1. Para criar um recurso de conexão, acesse a página do BigQuery no console do Google Cloud.

    Acesse a página do BigQuery

  2. No menu Adicionar dados, selecione Fonte de dados externa.

  3. No painel Fonte de dados externa, insira as seguintes informações:

    • Em Tipo de conexão, selecione o tipo de origem, por exemplo, MySQL ou Postgres.
    • Em ID da conexão, insira um identificador para o recurso de conexão. Letras, números e sublinhados são permitidos. Por exemplo, bq_sql_connection.
    • Em Local da conexão, selecione um local (ou região) do BigQuery compatível com a região da fonte de dados externa.
    • (Opcional) Em Nome amigável, insira um nome fácil de usar para a conexão, como My connection resource. O nome amigável pode ser qualquer valor que ajude você a identificar o recurso de conexão se precisar modificá-lo mais tarde.
    • (Opcional) Em Descrição, insira uma descrição para este recurso de conexão.
    • Se você escolheu MySQL ou Postgres do Cloud SQL para o tipo de conexão, em ID da instância do Cloud SQL, digite o nome da instância do Cloud SQL, geralmente no formato project-id:location-id:instance-id. Encontre o ID da instância na página de detalhes da instância do Cloud SQL que você quer consultar.
    • Em Nome do banco de dados, insira o nome do banco de dados.
    • Em Nome de Usuário do banco de dados, insira o nome de usuário para o banco de dados.
    • Em Senha do banco de dados, insira a senha do banco de dados.

      • Opcional: para ver a senha, clique em Mostrar senha.
  4. Clique em Criar conexão.

bq

Insira o comando bq mk e forneça a sinalização de conexão: --connection. As sinalizações abaixo também são obrigatórias:

  • --connection_type
  • --properties
  • --connection_credential
  • --project_id
  • --location

As sinalizações a seguir são opcionais:

  • --display_name O nome amigável da conexão.
  • --description Uma descrição da conexão.

O connection_id é um parâmetro opcional que pode ser adicionado como o último argumento do comando usado internamente para armazenamento. Se um ID de conexão não for fornecido, um ID exclusivo será gerado automaticamente. O connection_id pode conter letras, números e sublinhados.

    bq mk --connection --display_name='friendly name' --connection_type=TYPE \
      --properties=PROPERTIES --connection_credential=CREDENTIALS \
      --project_id=PROJECT_ID --location=LOCATION \
      CONNECTION_ID

Substitua:

  • TYPE: o tipo da fonte de dados externa.
  • PROPERTIES: os parâmetros da conexão criada no formato JSON. Por exemplo, --properties='{"param":"param_value"}'. Para criar um recurso de conexão, é necessário fornecer os parâmetros instanceID, database e type.
  • CREDENTIALS: os parâmetros username e password.
  • PROJECT_ID: o ID do projeto;
  • LOCATION: a região em que a instância do Cloud SQL está localizada.
  • CONNECTION_ID: o identificador de conexão.

Por exemplo, o comando abaixo cria um novo recurso de conexão chamado my_new_connection (nome amigável: "Minha nova conexão") em um projeto com o ID federation-test.

bq mk --connection --display_name='friendly name' --connection_type='CLOUD_SQL' \
  --properties='{"instanceId":"federation-test:us-central1:mytestsql","database":"mydatabase","type":"MYSQL"}' \
  --connection_credential='{"username":"myusername", "password":"mypassword"}' \
  --project_id=federation-test --location=us my_connection_id

API

Na API BigQuery Connection, é possível invocar CreateConnection no ConnectionService para instanciar uma conexão. Para mais informações, consulte as bibliotecas de cliente da API BigQuery Connection.

Consultar um recurso de conexão

Depois de estabelecer uma conexão, use a função EXTERNAL_QUERY para executar uma consulta federada.

Consultar outro banco de dados por meio do mesmo recurso de conexão

Ao criar uma conexão com uma fonte de dados externa, você especifica credenciais para essa fonte de dados. Se as mesmas credenciais de usuário forem válidas para outros dados na origem, o mesmo recurso de conexão poderá ser usado.

Receber informações sobre um recurso de conexão

Depois de criar um recurso de conexão, será possível receber informações sobre a configuração do recurso de conexão. A configuração inclui os valores que você forneceu quando criou a transferência.

Permissões necessárias

Para ver informações sobre um recurso de conexão, é preciso ter a permissão do IAM bigquery.connections.get.

Cada um dos papéis do IAM predefinidos a seguir inclui as permissões necessárias para conseguir informações sobre um recurso de conexão:

  • roles/bigquery.admin
  • roles/bigquery.connectionAdmin
  • roles/bigquery.connectionUser

Para mais informações sobre os papéis e as permissões do IAM no BigQuery, consulte Papéis e permissões predefinidos.

Como visualizar um recurso de conexão

Console

  1. Para ver o status dos recursos de conexão, acesse a página do BigQuery no console do Google Cloud.

    Ir para o BigQuery

    Os recursos de conexão estão listados no projeto, em um grupo chamado Conexões externas.

  2. No painel Explorer clique no nome do projeto > Conexões externas > um recurso de conexão para ver informações sobre um recurso de conexão.

bq

Insira o comando bq show e forneça a sinalização de conexão: --connection. O connection_id totalmente qualificado é obrigatório.

    bq show --connection project.location.connection_id

Por exemplo, o comando a seguir recebe informações sobre um recurso de conexão chamado my_new_connection em um projeto com o ID federation-test localizado na região us.

    bq show --connection federation-test.us.my_new_connection

API

Use o método projects.locations.connections.get na seção de referência da API REST.

Java

Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.

import com.google.cloud.bigquery.connection.v1.Connection;
import com.google.cloud.bigquery.connection.v1.ConnectionName;
import com.google.cloud.bigquery.connection.v1.GetConnectionRequest;
import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient;
import java.io.IOException;

// Sample to get connection
public class GetConnection {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "MY_PROJECT_ID";
    String location = "MY_LOCATION";
    String connectionId = "MY_CONNECTION_ID";
    getConnection(projectId, location, connectionId);
  }

  public static void getConnection(String projectId, String location, String connectionId)
      throws IOException {
    try (ConnectionServiceClient client = ConnectionServiceClient.create()) {
      ConnectionName name = ConnectionName.of(projectId, location, connectionId);
      GetConnectionRequest request =
          GetConnectionRequest.newBuilder().setName(name.toString()).build();
      Connection response = client.getConnection(request);
      System.out.println("Connection info retrieved successfully :" + response.getName());
    }
  }
}

Listar todos os recursos de conexão

Permissões necessárias

Para listar todos os recursos de conexão em um projeto, você precisa da permissão do IAM bigquery.connections.list.

Cada um dos papéis predefinidos do IAM a seguir inclui as permissões necessárias para listar todos os recursos de conexão:

  • roles/bigquery.admin
  • roles/bigquery.connectionAdmin
  • roles/bigquery.connectionUser

Para mais informações sobre os papéis e as permissões do IAM no BigQuery, consulte Papéis e permissões predefinidos.

Como listar recursos de conexão

Para listar todos os recursos de conexão em um projeto:

Console

  1. Para visualizar o status de um recurso de conexão, acesse a página do BigQuery no console do Google Cloud.

    Ir para o BigQuery

    Os recursos de conexão estão listados no projeto, em um grupo chamado Conexões externas.

  2. No painel Explorer, clique no nome do seu projeto > Conexões externas para ver uma lista de todas os recursos de conexões.

bq

Insira o comando bq show e forneça a sinalização de conexão: --connection. O connection_id totalmente qualificado é obrigatório.

    bq ls --connection --project_id=[project_id] --location=[location]

Por exemplo, o comando a seguir lista os recursos de conexão em um projeto com o ID federation-test localizado na região us.

    bq ls --connection --project_id=bigquery-federation-test --location=us

API

Use o método projects.locations.connections.list na seção de referência da API REST.

Java

Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.

import com.google.cloud.bigquery.connection.v1.ListConnectionsRequest;
import com.google.cloud.bigquery.connection.v1.LocationName;
import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient;
import java.io.IOException;

// Sample to get list of connections
public class ListConnections {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "MY_PROJECT_ID";
    String location = "MY_LOCATION";
    listConnections(projectId, location);
  }

  public static void listConnections(String projectId, String location) throws IOException {
    try (ConnectionServiceClient client = ConnectionServiceClient.create()) {
      LocationName parent = LocationName.of(projectId, location);
      int pageSize = 10;
      ListConnectionsRequest request =
          ListConnectionsRequest.newBuilder()
              .setParent(parent.toString())
              .setPageSize(pageSize)
              .build();
      client
          .listConnections(request)
          .iterateAll()
          .forEach(con -> System.out.println("Connection Id :" + con.getName()));
    }
  }
}

Compartilhar um recurso de conexão

Permissões necessárias

Para permitir que outro usuário utilize um recurso de conexão para consultas federadas do Cloud SQL, o usuário bigquery.admin pode conceder os dois papéis diferentes no IAM:

  • roles/bigquery.connectionUser

    O usuário do BigQuery Connection pode executar consultas com o recurso de conexão.

    Para executar consultas com o recurso de conexão, você precisa das seguintes permissões do IAM:

    • bigquery.connections.get
    • bigquery.connections.list
    • bigquery.connections.use
    • bigquery.connections.getIamPolicy

    O papel predefinido roles/bigquery.connectionUser do IAM inclui as permissões necessárias para executar consultas com o recurso de conexão.

  • roles/bigquery.connectionAdmin

    O administrador de conexões do BigQuery pode gerenciar os recursos de conexão. Além das permissões incluídas no papel de usuário da conexão do BigQuery, esse papel inclui permissões para criar, atualizar e excluir os recursos de conexão, bem como para definir a política de IAM nos recursos de conexão.

    Para gerenciar os recursos de conexão, você precisa das seguintes permissões do IAM:

    • bigquery.connections.get
    • bigquery.connections.list
    • bigquery.connections.use
    • bigquery.connections.getIamPolicy
    • bigquery.connections.create
    • bigquery.connections.update
    • bigquery.connections.setIamPolicy
    • bigquery.connections.delete

    O papel predefinido do IAM roles/bigquery.connectionAdmin inclui as permissões necessárias para gerenciar os recursos de conexão.

    Para mais informações sobre os papéis e as permissões do IAM no BigQuery, consulte Papéis e permissões predefinidos.

Como compartilhar um recurso de conexão

Console

  1. Para compartilhar um recurso de conexão, acesse a página do BigQuery no console do Google Cloud.

    Ir para o BigQuery

    Os recursos de conexão estão listados no projeto, em um grupo chamado Conexões externas.

  2. No painel Explorer clique no nome do projeto > Conexões externas > um recurso de conexão para ver os detalhes da conexão.

  3. No painel Detalhes, clique em Compartilhar para compartilhar um recurso de conexão. Em seguida, faça o seguinte:

    1. Na caixa de diálogo Permissões de conexão, os usuários com o papel Administrador do BigQuery ou Administrador de conexão do BigQuery podem compartilhar o recurso de conexão com outros principais por meio da adição ou edição de principais.

    2. Clique em Save.

bq

Atualmente, não é possível compartilhar um recurso com a ferramenta de linha de comando bq. Para compartilhar um recurso de conexão, use o console do Google Cloud ou o método da API BigQuery Connections para compartilhar uma conexão.

API

Consulte o método projects.locations.connections.setIAM na seção de referência da API REST BigQuery Connections e forneça uma instância do recurso policy.

Java

Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.

import com.google.api.resourcenames.ResourceName;
import com.google.cloud.bigquery.connection.v1.ConnectionName;
import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient;
import com.google.iam.v1.Binding;
import com.google.iam.v1.Policy;
import com.google.iam.v1.SetIamPolicyRequest;
import java.io.IOException;

// Sample to share connections
public class ShareConnection {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "MY_PROJECT_ID";
    String location = "MY_LOCATION";
    String connectionId = "MY_CONNECTION_ID";
    shareConnection(projectId, location, connectionId);
  }

  public static void shareConnection(String projectId, String location, String connectionId)
      throws IOException {
    try (ConnectionServiceClient client = ConnectionServiceClient.create()) {
      ResourceName resource = ConnectionName.of(projectId, location, connectionId);
      Binding binding =
          Binding.newBuilder()
              .addMembers("group:example-analyst-group@google.com")
              .setRole("roles/bigquery.connectionUser")
              .build();
      Policy policy = Policy.newBuilder().addBindings(binding).build();
      SetIamPolicyRequest request =
          SetIamPolicyRequest.newBuilder()
              .setResource(resource.toString())
              .setPolicy(policy)
              .build();
      client.setIamPolicy(request);
      System.out.println("Connection shared successfully");
    }
  }
}

Editar ou atualizar um recurso de conexão

Depois de adicionar o recurso de conexão, é possível editá-lo. É possível editar a maioria dos campos preenchidos durante a criação do recurso de conexão, incluindo as credenciais de nome de usuário.

Uma conexão usa as credenciais do usuário que a criou. Se você precisar alterar o usuário vinculado a um recurso de conexão, atualize as credenciais dele. Isso será útil se o usuário que criou a conexão não estiver mais em sua organização.

Não é possível editar os seguintes elementos de um recurso de conexão:

  • Tipo de conexão
  • ID da conexão
  • Local

Permissões necessárias

Para atualizar um recurso de conexão, é necessário ter a permissão do IAM bigquery.connections.update.

Cada um dos papéis predefinidos do IAM a seguir inclui as permissões necessárias para atualizar um recurso de conexão:

  • roles/bigquery.admin
  • roles/bigquery.connectionAdmin

Para mais informações sobre os papéis e as permissões do IAM no BigQuery, consulte Papéis e permissões predefinidos.

Como editar um recurso de conexão

Para editar uma conexão:

Console

  1. No Console do Google Cloud, acesse a página do BigQuery.

    Ir para o BigQuery

    Os recursos de conexão estão listados no projeto, em um grupo chamado Conexões externas.

  2. No painel Explorer clique no nome do projeto > Conexões externas > um recurso de conexão para ver os detalhes da conexão.

  3. No painel Detalhes, clique em Editar detalhes para editar os detalhes. Em seguida, faça o seguinte:

    1. Na caixa de diálogo Editar conexão, edite os detalhes da conexão, incluindo as credenciais do usuário.

    2. Clique em Atualizar conexão.

bq

Insira o comando bq update e forneça a sinalização de conexão: --connection. O connection_id totalmente qualificado é obrigatório.

    bq update --connection --connection_type='CLOUD_SQL'
   --properties='{"instanceId" : "instance",
   "database" : "db", "type" : "MYSQL" }'
   --connection_credential='{"username":"u", "password":"p"}'
   project.location.connection_id

Por exemplo, o comando a seguir atualiza os recursos de conexão em um projeto com o ID federation-test e o ID de conexão test-mysql.

    bq update --connection --connection_type='CLOUD_SQL'
   --properties='{"instanceId" : "federation-test:us-central1:new-mysql",
   "database" : "imdb2", "type" : "MYSQL" }'
   --connection_credential='{"username":"my_username",
   "password":"my_password"}' federation-test.us.test-mysql

API

Consulte o método projects.locations.connections.patch na seção de referência da API REST e forneça uma instância do recurso connection.

Java

Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.

import com.google.cloud.bigquery.connection.v1.Connection;
import com.google.cloud.bigquery.connection.v1.ConnectionName;
import com.google.cloud.bigquery.connection.v1.UpdateConnectionRequest;
import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to update connection
public class UpdateConnection {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "MY_PROJECT_ID";
    String location = "MY_LOCATION";
    String connectionId = "MY_CONNECTION_ID";
    String description = "MY_DESCRIPTION";
    Connection connection = Connection.newBuilder().setDescription(description).build();
    updateConnection(projectId, location, connectionId, connection);
  }

  public static void updateConnection(
      String projectId, String location, String connectionId, Connection connection)
      throws IOException {
    try (ConnectionServiceClient client = ConnectionServiceClient.create()) {
      ConnectionName name = ConnectionName.of(projectId, location, connectionId);
      FieldMask updateMask = FieldMaskUtil.fromString("description");
      UpdateConnectionRequest request =
          UpdateConnectionRequest.newBuilder()
              .setName(name.toString())
              .setConnection(connection)
              .setUpdateMask(updateMask)
              .build();
      Connection response = client.updateConnection(request);
      System.out.println("Connection updated successfully :" + response.getDescription());
    }
  }
}

Excluir um recurso de conexão

É possível excluir um recurso de conexão se tiver as permissões corretas para fazer isso.

Permissões necessárias

Para excluir um recurso de conexão, é preciso ter a permissão do IAM bigquery.connections.delete.

Cada um dos papéis predefinidos do IAM a seguir inclui as permissões necessárias para excluir um recurso de conexão:

  • roles/bigquery.admin
  • roles/bigquery.connectionAdmin

Para mais informações sobre os papéis e as permissões do IAM no BigQuery, consulte Papéis e permissões predefinidos.

Como excluir um recurso de conexão

Para excluir uma conexão:

Console

  1. No Console do Google Cloud, acesse a página do BigQuery.

    Ir para o BigQuery

    Os recursos de conexão estão listados no projeto, em um grupo chamado Conexões externas.

  2. No painel Explorer clique no nome do projeto > Conexões externas > um recurso de conexão para ver os detalhes da conexão.

  3. No painel Detalhes, clique em Excluir para excluir o recurso de conexão.

  4. Na caixa de diálogo Excluir conexão?, digite delete para confirmar a exclusão.

  5. Clique em Excluir.

bq

Insira o comando bq rm e forneça a sinalização de conexão: --connection. O connection_id totalmente qualificado é obrigatório.

    bq rm --connection project.location.connection_id

Por exemplo, o comando a seguir atualiza os recursos de conexão em um projeto com o ID federation-test e o ID de conexão test-mysql.

    bq rm --connection federation-test.us.test-mysql

API

Consulte o método projects.locations.connections.delete na seção de referência da API REST.

Java

Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.

import com.google.cloud.bigquery.connection.v1.ConnectionName;
import com.google.cloud.bigquery.connection.v1.DeleteConnectionRequest;
import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient;
import java.io.IOException;

// Sample to delete a connection
public class DeleteConnection {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "MY_PROJECT_ID";
    String location = "MY_LOCATION";
    String connectionName = "MY_CONNECTION_NAME";
    deleteConnection(projectId, location, connectionName);
  }

  public static void deleteConnection(String projectId, String location, String connectionName)
      throws IOException {
    try (ConnectionServiceClient client = ConnectionServiceClient.create()) {
      ConnectionName name = ConnectionName.of(projectId, location, connectionName);
      DeleteConnectionRequest request =
          DeleteConnectionRequest.newBuilder().setName(name.toString()).build();
      client.deleteConnection(request);
      System.out.println("Connection deleted successfully");
    }
  }
}

Registro de auditoria

Para registros de auditoria de recursos de conexão, consulte Visão geral dos registros de auditoria do BigQuery.

Solução de problemas

Esta seção resolve problemas que podem ocorrer durante a configuração de uma nova conexão. Neste documento, não englobamos todas as mensagens de erro ou problemas possíveis.

Ao fazer o diagnóstico de problemas gerais de conexão, verifique os itens a seguir:

  • Você concluiu todas as etapas na seção Antes de começar.
  • As propriedades de configuração da conexão estão corretas.
  • Você tem as permissões apropriadas para criar uma conexão.

Se as propriedades da conexão estiverem corretas e as permissões apropriadas forem concedidas, consulte as seguintes soluções para problemas comuns.

Problema: o BigQuery e a fonte de dados externa não estão localizados.
Resolução: a consulta federada é aceita apenas em regiões compatíveis com o BigQuery e a fonte de dados externa. O conjunto de dados do BigQuery e a instância da fonte de dados precisam estar na mesma região ou em um local multirregional, como US e EU no mesma área geográfica compatível com a região da fonte de dados. Para ver informações sobre regiões e compatibilidade com regiões, consulte Regiões compatíveis.
Problema: o desempenho está mais lento que o esperado.
Resolução: o desempenho das consultas federadas não é tão bom quanto consultar dados armazenados no BigQuery, porque a consulta federada precisa consultar externamente a fonte de dados, retornar os dados a uma tabela temporária do BigQuery, mapear os dados para o tipo de dados do BigQuery e executar a consulta no BigQuery. Embora o desempenho da consulta não seja tão alto, os dados não precisam ser copiados, movidos ou armazenados novamente.
Problema: como formatar o nome da conexão.
Resolução: o nome da conexão precisa incluir projeto, local e código da conexão. O código de conexão precisa estar em conformidade com este padrão: project_id.location_id.connection_id, por exemplo, federation-test.us.my_new_connection