Utilizando o Google Cloud SQL

Google recentemente anunciado Apresentámos a nossa próxima geração de soluções MySQL geridas no Cloud SQL, e queríamos testá-la e criar um banco de dados SQL na nuvem que pudéssemos utilizar como base para aplicações móveis, ou até mesmo para análises de dados avançadas a partir dos nossos computadores.

De acordo com a Google, os dois principais objetivos da segunda geração do Cloud SQL foram melhorar.. desempenho e escalabilidade por dólar. Parece que conseguiram atingir esses objetivos: a segunda geração do Cloud SQL é mais de sete vezes mais rápida que a primeira. Além disso, suporta até 10TB de dados, 15.000 operações de entrada/saída por segundo e 104GB de RAM por instância – muito além do que a primeira geração oferecia. Portanto, parece ser uma solução ideal e escalável de base de dados na nuvem para aplicações móveis.

If you follow the instructions on the the [Google blog post](http://googlecloudplatform.blogspot.com/2015/12/the-next-generation-of-managed-MySQL-offerings-on-Cloud-SQL.html), you will first have to create a trial account for Google Cloud. Then, once you are logged into the Google Developer Console, click on the top-left menu button and select SQL under the storage section. This will enable you to create a new second generation Cloud SQL instance:

É altamente recomendável alterar a sua palavra-passe de administrador e permitir o acesso à sua instância na nuvem apenas a partir de redes autorizadas que irão hospedar as suas máquinas de desenvolvimento ou os seus servidores de back-end para a aplicação móvel que está a desenvolver. Por exemplo, num futuro artigo do blogue, exploraremos a criação de uma aplicação móvel com base nesta base de dados, e o servidor de back-end MobileTogether que fornecerá todas as funcionalidades e o fluxo de trabalho para a nossa aplicação móvel terá de ser capaz de aceder a esta instância do Cloud SQL.

Para utilizar a instância do Cloud SQL a partir do seu computador de desenvolvimento, será necessário descarregar as ferramentas do MySQL para o seu sistema, o que lhe permitirá utilizar a ferramenta de linha de comandos mysql. Além disso, para utilizar o banco de dados do Cloud SQL a partir de outras aplicações no seu computador, terá de descarregar os respetivos conectores MySQL. Neste artigo, utilizaremos o Altova DatabaseSpy para aceder à instância SQL, carregar alguns dados e, em seguida, realizar algumas análises, por isso, deverá descarregar o MySQL Connector/ODBC para Windows. Essencialmente, o DatabaseSpy é semelhante ao Toad, mas permite-lhe conectar-se a várias instâncias de base de dados diferentes em diferentes servidores de base de dados ao mesmo tempo. Assim, pode ter uma ligação aberta ao Cloud SQL, uma ligação a um SQL Server local e uma terceira ligação a um banco de dados Oracle, tudo dentro do mesmo ambiente de trabalho. É bastante útil.

Uma observação importante: certifique-se de que descarrega o driver Connector/ODBC correto. Se estiver a utilizar a versão de 64 bits do DatabaseSpy, também precisará da versão de 64 bits do driver MySQL Connector/ODBC. Ou, melhor ainda, pode descarregar tanto a versão de 32 bits como a de 64 bits do Connector/ODBC e instalá-las ambas – assim, poderá utilizar o Cloud SQL tanto em software de 32 bits como em software de 64 bits no seu computador.

Para preencher a nossa instância do Cloud SQL com dados úteis para experimentação e análise posterior, descarregámos o excelente.. Base de dados de baseball de Lahman, que está convenientemente disponível como um ficheiro MySQL compactado. Depois de o descarregar para o nosso computador, tínhamos uma descrição completa das tabelas da base de dados SQL, juntamente com todos os dados, tudo num único ficheiro SQL, o que facilita a sua subida para a nossa instância Cloud SQL.

O primeiro passo é.. Crie um novo banco de dados no seu Cloud SQL Por exemplo, pode fazer isso através da utilidade de linha de comandos mysql, através da Google Developer Console, ou através do cURL – consulte o link no início deste parágrafo para mais detalhes. Vamos simplesmente chamar esta base de dados "lahman".

Agora podemos conectar-nos a esta base de dados a partir do DatabaseSpy, selecionando o comando "Conectar a uma base de dados" e seguindo estes passos através do assistente de conexão. Em primeiro lugar, selecionamos o MySQL como a tecnologia da base de dados:

Em seguida, confirmamos a utilização do driver MySQL Connector/ODBC que previamente instalámos

E, por último, mas não menos importante, especificamos o endereço IP, o nome de utilizador e a palavra-passe da nossa instância Cloud SQL, e depois clicamos no botão "Testar" para verificar a ligação. Se tudo funcionar, podemos agora criar uma fonte de dados, atribuindo-lhe um nome, e também especificar a base de dados "lahman" que criámos anteriormente:

Agora estamos prontos para carregar todos os dados nas tabelas da nossa nova base de dados. Para isso, basta abrir o ficheiro SQL da base de dados Lahman Baseball, que previamente descarregámos e descompactámos, e que aparece assim no DatabaseSpy:

Como podem ver, o ficheiro SQL dessa base de dados contém todos os comandos necessários para recriar todas as tabelas na nossa nova instância do Cloud SQL. Agora, tudo o que temos de fazer é clicar no botão "Executar" e esperar. Dependendo da velocidade da sua ligação à Internet, este processo pode demorar algum tempo, pois estão a criar 24 tabelas com estatísticas detalhadas de baseball desde 1871 até 2014 – algumas das quais contêm mais de 160.000 linhas. No meu caso, demorou cerca de 8 minutos a ser concluído.

Agora pode clicar em "Atualizar" no seu navegador de base de dados online no DatabaseSpy e, em seguida, explorar todas as tabelas e os dados que contêm, bem como a estrutura da base de dados Lahman. E pode usar esta base de dados para calcular dados históricos interessantes, realizar análises estatísticas e aplicar outras ferramentas frequentemente utilizadas em sabermetria para compreender melhor a qualidade dos jogadores.

Como exemplo, vamos analisar a percentagem de home runs (HR) que o jogador David Ortiz conseguiu em relação ao número de vezes que se apresentou ao batedor (AB) ao longo de toda a sua carreira, e representaremos essa percentagem em função da sua idade. Poderão encontrar o desempenho de um jogador no número de vezes que se apresentou ao batedor na tabela "Batting" e o seu nome, data de nascimento, etc., na tabela "Master". É fácil unir as duas tabelas em SQL e selecionar os dados de David Ortiz, e podemos então calcular a sua trajetória de home runs ao longo da carreira simplesmente como HR/AB e representar esse valor em função da sua idade num determinado ano:

SELECT yearID-birthYear AS Age, HR/AB AS CareerHRTrajectory FROM Batting, `Master` 
WHERE Batting.playerID = `Master`.playerID AND nameLast='Ortiz' AND nameFirst='David'
ORDER BY Age ASC

Assim que clicar em "Executar", esta consulta é enviada para a instância do Cloud SQL e os dados resultantes são devolvidos quase instantaneamente, apresentados numa tabela. Em seguida, pode clicar no botão "Gráfico" na visualização da tabela de resultados para criar um gráfico dos dados e representar a trajetória da carreira em termos de recursos humanos ao longo da idade:

Como podem ver, é muito fácil conectar-se e utilizar as novas instâncias do Google Cloud SQL a partir do Altova DatabaseSpy, ou, de facto, a partir de qualquer uma das outras ferramentas de desenvolvimento da Altova, incluindo o XMLSpy, o MapForce, o MobileTogether, o StyleVision e o UModel. Além disso, podem utilizar facilmente as instâncias do Cloud SQL a partir do servidor MapForce para projetos de integração e conversão de dados.

Num futuro artigo do blog, vamos conectar esta instância do Cloud SQL a partir de uma aplicação móvel e explorar o quão fácil é criar uma interface de utilizador móvel intuitiva, utilizando a base de dados de baseball Lahman.