Esta página descreve como conectar uma instância particular do Cloud Data Fusion a uma instância particular do Cloud SQL que hospeda um banco de dados MySQL. Uma configuração semelhante funciona para instâncias do Postgres e do SQL Server. As conexões públicas são possíveis.
Recomendado: por motivos de segurança, use instâncias particulares do Cloud SQL e do Cloud Data Fusion.
Criar instâncias particulares no Cloud Data Fusion e no Cloud SQL
Para se conectar a uma instância particular do Cloud SQL a partir de uma instância particular do Cloud Data Fusion, use uma VM do Compute Engine como proxy. Um proxy porque a rede do Cloud SQL não tem peering direto na rede do Cloud Data Fusion, e os pares transitivos não conseguem se comunicar entre si. Consulte a Visão geral do peering de rede VPC.
Para criar as instâncias particulares, siga estas etapas:
Se você ainda não tiver um, crie um Cloud Data Fusion privado instância. Isso inclui:
- Configurar uma rede VPC
- Como alocar um intervalo de IPs
Crie uma instância particular do Cloud SQL na mesma rede VPC da sua instância do Cloud Data Fusion.
Depois que a instância for criada, acesse a página Instâncias do Cloud SQL e abra Detalhes da instância. Na caixa de diálogo Conectar-se a instância, copie o IP e o nome da conexão.
Criar uma VM particular do Compute Engine
Para criar a VM, digite os comandos a seguir no Cloud Shell ou em outro ambiente em que o SDK do Google Cloud esteja instalado.
Os comandos criam uma VM com endereços IP internos e públicos
(--no-address
não é especificado no comando de criação de VM de exemplo) para que a
VM possa acessar o Registro de contêineres e receber a imagem do proxy. Você pode usar endereços
IPs, mas você também precisa
ative o Acesso privado do Google para
a sub-rede em que a VM está localizada.
Exporte as seguintes variáveis de ambiente:
export PROJECT=CUSTOMER_PROJECT export REGION=VM_REGION export ZONE=`gcloud compute zones list --filter="name=${REGION}" --limit 1 --uri --project=${PROJECT}| sed 's/.*\///'` export NETWORK=CUSTOMER_VPC_NETWORK_NAME export SUBNET=CUSTOMER_VPC_SUBNET_NAME export INSTANCE_NAME=COMPUTE_ENGINE_VM_NAME export SQL_CONN=SQL_INSTANCE_CONNECTION_NAME export CDF_IP_RANGE=CLOUD_DATA_FUSION_IP_RANGE export VM_IMAGE=$(gcloud compute images list --project=$PROJECT --filter=family:cos-stable --format='value(selfLink.scope())' --limit=1) export SQL_PORT=DB_PORT # MySQL 3306 # PostgreSQL 5432 # SQLServer 1433
Substitua:
CUSTOMER_PROJECT
: o nome do projetoVM_REGION
: a região em que a VM do Compute Engine está localizadaCUSTOMER_VPC_NETWORK_NAME
: o nome da sua redeCUSTOMER_VPC_SUBNET_NAME
: o nome da sub-redeCOMPUTE_ENGINE_VM_NAME
: o nome do VM do Compute EngineSQL_INSTANCE_CONNECTION_NAME
: o nome da conexão da etapa anteriorCLOUD_DATA_FUSION_IP_RANGE
: o intervalo de endereços IPDB_PORT
: o número da porta do banco de dados do Cloud SQL
Crie uma regra de firewall para permitir o tráfego de entrada do Cloud Data Fusion com o seguinte comando da CLI gcloud:
gcloud compute firewall-rules create allow-private-cdf \ --allow=tcp:22,tcp:${SQL_PORT} \ --source-ranges=$CDF_IP_RANGE --network=$NETWORK --project=$PROJECT
Crie a VM com o seguinte comando da CLI gcloud:
gcloud compute --project=${PROJECT} instances create ${INSTANCE_NAME} \ --zone=${ZONE} \ --machine-type=g1-small \ --subnet=${SUBNET} \ --metadata=startup-script="docker run -d -p 0.0.0.0:${SQL_PORT}:${SQL_PORT} gcr.io/cloudsql-docker/gce-proxy:latest /cloud_sql_proxy -instances=${SQL_CONN}=tcp:0.0.0.0:${SQL_PORT}" \ --maintenance-policy=MIGRATE \ --scopes=https://www.googleapis.com/auth/cloud-platform \ --image=${VM_IMAGE} \ --image-project=cos-cloud
Receba o IP interno da VM com o seguinte comando da CLI gcloud:
export IP=`gcloud compute \ --project=${PROJECT} instances describe ${INSTANCE_NAME} \ --zone ${ZONE} | grep "networkIP" | awk '{print $2}'`
Promova o IP interno da VM para um IP estático com o seguinte comando da CLI do gcloud:
gcloud compute --project=${PROJECT} addresses create mysql-proxy \ --addresses ${IP} --region ${REGION} --subnet ${SUBNET}
Receba o IP a ser usado na string de conexão JDBC do MySQL do Cloud Data Fusion ao configurar a conexão:
echo ${IP}
Depois que a VM for criada com um IP estático, use o IP como host ou insira-o a string de conexão do JDBC para acessar o banco de dados MySQL o Cloud Data Fusion.
Acessar o MySQL pelo Cloud Data Fusion
Antes de se conectar à instância do MySQL pelo Cloud Data Fusion de uma instância, instale o driver JDBC do MySQL pelo hub do Data Fusion (ou diretamente do Downloads da comunidade do MySQL).
Insira os detalhes da conexão do seu banco de dados MySQL em o Cloud Data Fusion. Você pode inserir os detalhes e testar a conexão na página Wrangler.
Opcional: outras maneiras de se conectar ao MySQL
É possível acessar o MySQL da seguinte maneira no Cloud Data Fusion:
- Na página do Studio, clique no plug-in de origem do MySQL e insira o detalhes da conexão.
Na página Studio, use o plug-in de origem do banco de dados, que tem propriedades semelhantes (Connection string, Username, Password e Connection Arguments).
Outras conexões
Embora a conexão de instâncias particulares seja recomendada, as seguintes conexões são possíveis:
- Uma instância pública do Cloud Data Fusion para um Cloud SQL público
do Cloud SQL (usando um proxy público do Cloud SQL ou adicionando o
0.0.0.0/0
em uma rede autorizada). Consulte a opção de conexão de IP público para o Cloud SQL. - Uma instância particular do Cloud Data Fusion e uma instância pública do Cloud SQL (usando um proxy público do Cloud SQL em uma rede autorizada).
Uma instância pública do Cloud Data Fusion e uma instância particular do Cloud SQL.