Estabeleça ligação ao Cloud SQL
Como administrador do BigQuery, pode criar uma associação para aceder aos dados do Cloud SQL. Esta ligação permite aos analistas de dados consultar dados no Cloud SQL. Para se ligar ao Cloud SQL, tem de seguir estes passos:
Antes de começar
- Selecione o projeto que contém a base de dados do Cloud SQL.
- Ative a API BigQuery Connection.
- Certifique-se de que a instância do Cloud SQL tem uma
ligação de IP público ou uma ligação privada:
Para proteger as suas instâncias do Cloud SQL, pode adicionar conetividade IP pública sem um endereço autorizado. Isto torna a instância inacessível a partir da Internet pública, mas acessível a consultas do BigQuery.
Para permitir que o BigQuery aceda aos dados do Cloud SQL através de uma ligação privada, configure a conetividade de IP privado para uma instância do Cloud SQL nova ou existente e, em seguida, selecione a caixa de verificação Caminho privado para serviços Google Cloud. Este serviço usa um caminho direto interno em vez do endereço IP privado na nuvem privada virtual.
-
Para receber as autorizações de que precisa para criar uma ligação do Cloud SQL, peça ao seu administrador para lhe conceder a função do IAM de administrador da ligação do BigQuery (
roles/bigquery.connectionAdmin
) no projeto. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Criar ligações do Cloud SQL
Como prática recomendada, use ligações para processar credenciais de bases de dados quando se ligar ao Cloud SQL. As associações são encriptadas e armazenadas em segurança no serviço de associação do BigQuery. Se as credenciais do utilizador forem válidas para outros dados na origem, pode reutilizar a ligação. Por exemplo, pode usar uma ligação para consultar várias bases de dados residentes na mesma instância do Cloud SQL.
Selecione uma das seguintes opções para criar uma ligação do Cloud SQL:
Consola
Aceda à página do BigQuery.
No painel Explorador, clique em
Adicionar.É apresentada a caixa de diálogo Adicionar dados.
No painel Filtrar por, na secção Tipo de origem de dados, selecione Bases de dados.
Em alternativa, no campo Pesquisar origens de dados, pode introduzir
mysql
.Na secção Origens de dados em destaque, clique em MySQL.
Clique no cartão da solução CloudSQL (MySQL): federação do BigQuery.
Na caixa de diálogo Origem de dados externa, introduza as seguintes informações:
- Em Tipo de ligação, selecione o tipo de origem, por exemplo, MySQL ou PostgreSQL.
- Para o ID da ligação, introduza um identificador para o recurso de ligação. São permitidas letras, números e sublinhados. Por exemplo,
bq_sql_connection
. - Em Localização dos dados, selecione uma localização (ou uma região) do BigQuery compatível com a região da sua origem de dados externa.
- Opcional: para Nome amigável, introduza um nome amigável para a associação, como
My connection resource
. O nome amigável pode ser qualquer valor que ajude a identificar o recurso de ligação se precisar de o modificar mais tarde. - Opcional: em Descrição, introduza uma descrição para este recurso de ligação.
- Opcional: Encriptação. Se quiser usar uma chave de encriptação gerida pelo cliente (CMEK) para encriptar as suas credenciais, selecione Chave de encriptação gerida pelo cliente (CMEK) e, em seguida, selecione uma chave gerida pelo cliente. Caso contrário, as suas credenciais estão protegidas pela predefinição Google-owned and Google-managed encryption key.
- Se escolheu Cloud SQL MySQL ou Postgres para o tipo de ligação,
para o nome de ligação do Cloud SQL, introduza o
nome completo da instância do Cloud SQL,
normalmente no formato
project-id:location-id:instance-id
. Pode encontrar o ID da instância na página de detalhes da instância do Cloud SQL que quer consultar. - Em Nome da base de dados, introduza o nome da base de dados.
- Para Nome de utilizador da base de dados, introduza o nome de utilizador da base de dados.
Para Palavra-passe da base de dados, introduza a palavra-passe da base de dados.
- Opcional: para ver a palavra-passe, clique em Mostrar palavra-passe.
Clique em Criar associação.
Clique em Aceder à associação.
No painel Informações de associação, copie o ID da conta de serviço para utilização num passo seguinte.
bq
Introduza o comando bq mk
e forneça a marca de ligação:
--connection
. Os seguintes indicadores também são obrigatórios:
--connection_type
--properties
--connection_credential
--project_id
--location
As seguintes sinalizações são opcionais:
--display_name
O nome intuitivo da associação.--description
Uma descrição da associação.
O connection_id
é um parâmetro opcional que pode ser adicionado como o último argumento do comando que é usado para armazenamento interno. Se não for fornecido um ID da associação, é gerado automaticamente um ID exclusivo.
O elemento 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 o seguinte:
TYPE
: o tipo da origem de dados externa.PROPERTIES
: os parâmetros da ligação criada no formato JSON. Por exemplo:--properties='{"param":"param_value"}'
. Para criar um recurso de associação, tem de fornecer os parâmetrosinstanceID
,database
etype
.CREDENTIALS
: os parâmetrosusername
epassword
.PROJECT_ID
: o ID do seu projeto.LOCATION
: a região onde a sua instância do Cloud SQL está localizada ou a multirregião correspondente.CONNECTION_ID
: o identificador da associação.
Por exemplo, o comando seguinte cria um novo recurso de associação com o nome my_new_connection (nome amigável: "A minha nova associação") num 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, pode invocar CreateConnection
no ConnectionService
para instanciar uma ligação. Consulte a página da biblioteca de cliente para mais detalhes.
Java
Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.
Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Conceda acesso ao agente de serviço
Um agente de serviço é criado automaticamente quando cria a primeira ligação ao Cloud SQL no projeto. O nome do agente de serviço é BigQuery Connection Service Agent. Para receber o ID do agente de serviço, veja os detalhes da associação. O ID do agente do serviço tem o seguinte formato:
service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com
.
Para estabelecer ligação ao Cloud SQL, tem de conceder à nova ligação acesso de leitura ao Cloud SQL para que o BigQuery possa aceder aos ficheiros em nome dos utilizadores. O agente de serviço tem de ter as seguintes autorizações:
cloudsql.instances.connect
cloudsql.instances.get
Pode conceder ao agente de serviço associado à ligação a
função de IAM de cliente do Cloud SQL
(roles/cloudsql.client
), que tem estas autorizações atribuídas.
Pode ignorar os passos seguintes se o agente do serviço já tiver as autorizações necessárias.
Consola
Aceda à página IAM e administrador.
Clique em
Conceder acesso.É apresentada a caixa de diálogo Adicionar responsáveis.
No campo Novos responsáveis, introduza o nome do agente de serviço Agente de serviço de ligação do BigQuery ou o ID do agente de serviço obtido a partir das informações de ligação.
No campo Selecionar uma função, selecione Cloud SQL e, de seguida, selecione Cliente do Cloud SQL.
Clique em Guardar.
gcloud
Use o comando
gcloud projects add-iam-policy-binding
:
gcloud projects add-iam-policy-binding PROJECT_ID --member=serviceAccount:SERVICE_AGENT_ID --role=roles/cloudsql.client
Indique os seguintes valores:
PROJECT_ID
: o ID do seu Google Cloud projeto.SERVICE_AGENT_ID
: o ID do agente do serviço obtido a partir das informações de ligação.
Partilhe ligações com utilizadores
Pode conceder as seguintes funções para permitir que os utilizadores consultem dados e geram ligações:
roles/bigquery.connectionUser
: permite que os utilizadores usem associações para estabelecer ligação a origens de dados externas e executar consultas nas mesmas.roles/bigquery.connectionAdmin
: permite que os utilizadores geram associações.
Para mais informações sobre as funções e as autorizações do IAM no BigQuery, consulte o artigo Funções e autorizações predefinidas.
Selecione uma das seguintes opções:
Consola
Aceda à página do BigQuery.
As associações são apresentadas no seu projeto, num grupo denominado Associações externas.
No painel Explorador, clique no nome do projeto > Ligações externas > ligação.
No painel Detalhes, clique em Partilhar para partilhar uma associação. Depois, faça o seguinte:
Na caixa de diálogo Autorizações de ligação, partilhe a ligação com outros responsáveis adicionando ou editando responsáveis.
Clique em Guardar.
bq
Não pode partilhar uma ligação com a ferramenta de linhas de comando bq. Para partilhar uma associação, use a Google Cloud consola ou o método da API BigQuery Connections para partilhar uma associação.
API
Java
Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.
Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
O que se segue?
- Saiba mais sobre os diferentes tipos de ligações.
- Saiba como gerir associações.
- Saiba mais acerca das consultas federadas.
- Saiba como consultar dados do Cloud SQL.