Google Cloud SQL 사용 방법

Google 최근에 발표되었습니다 저희는 클라우드 SQL에서 제공되는 차세대 관리형 MySQL 서비스를 시험해 보고, 이를 활용하여 모바일 앱의 백엔드 데이터베이스로 사용하거나, 심지어 데스크톱 환경에서도 고급 데이터 분석을 수행할 수 있는 클라우드 기반 SQL 데이터베이스를 구축하고자 했습니다.

구글에 따르면, 클라우드 SQL의 두 번째 세대 주요 목표는 달러당 더 나은 _성능_과 _확장성_을 제공하는 것이었습니다. 그들이 이러한 목표를 달성한 것으로 보입니다. 두 번째 세대 클라우드 SQL은 첫 번째 세대보다 7배 이상 빠릅니다. 또한, 데이터 용량은 10TB, IOPS는 15,000, RAM은 104GB까지 확장 가능하며, 이는 첫 번째 세대보다 훨씬 뛰어납니다. 따라서 모바일 앱을 위한 이상적인, 확장 가능한 클라우드 기반 데이터베이스 백엔드라고 할 수 있습니다.

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:

루트 비밀번호를 변경하고, 개발 환경이나 모바일 앱의 백엔드 서버에서만 클라우드 인스턴스에 접근을 허용하는 것이 좋습니다. 예를 들어, 향후 블로그 게시글에서 이 데이터베이스를 기반으로 모바일 앱을 개발하는 방법을 설명할 예정이며, 이때 저희 모바일 앱의 모든 서버 기능과 워크플로우를 제공할 MobileTogether 백엔드 서버는 이 Cloud SQL 인스턴스에 접근할 수 있어야 합니다.

데스크톱 개발 환경에서 Cloud SQL 인스턴스를 사용하려면, 먼저 해당 환경에 맞는 MySQL 도구를 다운로드해야 합니다. 이를 통해 mysql 명령줄 도구를 사용할 수 있습니다. 또한, 컴퓨터의 다른 애플리케이션에서 Cloud SQL 데이터베이스를 사용하려면, 해당 MySQL Connector를 다운로드해야 합니다. 이번 블로그 게시물에서는 SQL 인스턴스에 접속하고, 데이터를 업로드한 다음, 분석 작업을 수행하기 위해 Altova DatabaseSpy를 사용할 예정입니다. 따라서 Windows용 MySQL Connector/ODBC를 다운로드해야 합니다. DatabaseSpy는 기본적으로 Toad와 유사하지만, 여러 개의 서로 다른 데이터베이스 서버에 있는 여러 데이터베이스 인스턴스에 동시에 연결할 수 있다는 장점이 있습니다. 따라서 하나의 작업 공간 내에서 Cloud SQL에 대한 연결, 로컬 SQL Server에 대한 연결, 그리고 Oracle 데이터베이스에 대한 연결을 동시에 유지할 수 있습니다. 매우 유용한 기능입니다.

중요한 점은, 올바른 Connector/ODBC 드라이버를 다운로드해야 한다는 것입니다. DatabaseSpy의 64비트 버전을 사용하신다면, MySQL Connector/ODBC 드라이버의 64비트 버전도 함께 다운로드해야 합니다. 또는, 더 좋은 방법은 Connector/ODBC의 32비트 및 64비트 버전을 모두 다운로드하여 설치하는 것입니다. 이렇게 하면, 컴퓨터에서 32비트 및 64비트 소프트웨어 모두에서 Cloud SQL을 사용할 수 있습니다.

실험 및 추가 분석을 위해 Cloud SQL 인스턴스에 유용한 데이터를 추가하기 위해, 훌륭한 라만 야구 데이터베이스를 다운로드했습니다. 이 데이터베이스는 편리하게 압축된 MySQL 덤프 파일 형태로 제공됩니다. 컴퓨터에 다운로드한 후, 모든 SQL 데이터베이스 테이블 설명과 데이터가 하나의 SQL 파일에 담겨 있어, Cloud SQL 인스턴스에 쉽게 업로드할 수 있습니다.

가장 먼저 해야 할 일은 다음과 같습니다 Cloud SQL에서 새로운 데이터베이스를 생성하세요 예를 들어, 데이터베이스를 생성할 수 있습니다. 이는 MySQL 명령줄 유틸리티, Google 개발자 콘솔 또는 cURL을 통해 가능하며, 자세한 내용은 이 단락의 시작 부분에 있는 링크를 참조하십시오. 여기서는 이 데이터베이스를 간단히 "lahman"이라고 부르겠습니다.

이제 DatabaseSpy를 사용하여 이 데이터베이스에 연결할 수 있습니다. "데이터베이스에 연결" 명령을 선택하고 연결 마법사를 통해 다음 단계를 따르면 됩니다. 먼저 데이터베이스 기술로 MySQL을 선택합니다

그런 다음, 이전에 다운로드한 MySQL Connector/ODBC 드라이버를 사용하는지 확인합니다

마지막으로, 클라우드 SQL 인스턴스의 IP 주소, 사용자 이름, 비밀번호를 지정한 후 "테스트" 버튼을 눌러 연결을 확인합니다. 연결이 성공하면, 데이터 소스 이름을 지정하고, 이전에 생성한 "lahman" 데이터베이스를 지정하여 데이터 소스를 생성할 수 있습니다

이제 새로운 데이터베이스에 모든 데이터를 테이블 형태로 업로드할 준비가 되었습니다. 이를 위해, 이전에 다운로드하고 압축을 해제한 Lahman 야구 데이터베이스의 SQL 덤프 파일을 열기만 하면 됩니다. DatabaseSpy에서 해당 파일은 다음과 같이 보입니다

보시다시피, 해당 데이터베이스의 SQL 덤프 파일에는 새로운 클라우드 SQL 인스턴스에 모든 테이블을 다시 생성하는 데 필요한 모든 명령이 포함되어 있습니다. 이제 우리가 해야 할 일은 "실행" 버튼을 누르고 기다리는 것뿐입니다. 인터넷 연결 속도에 따라 시간이 다소 걸릴 수 있습니다. 현재 1871년부터 2014년까지의 매우 상세한 야구 통계를 포함하는 24개의 테이블을 생성하고 있는데, 이 중 일부 테이블은 16만 개 이상의 행을 가지고 있습니다. 제 경우에는 완료하는 데 약 8분이 걸렸습니다.

이제 DatabaseSpy의 온라인 데이터베이스 브라우저에서 "새로 고침" 버튼을 클릭하면, 모든 테이블과 그 안에 포함된 데이터를 탐색할 수 있으며, Lahman 데이터베이스의 구조도 확인할 수 있습니다. 또한, 이 데이터베이스를 활용하여 흥미로운 역사적 데이터를 계산하고, 통계 분석을 수행하며, 세이버메트릭스에서 자주 사용되는 다른 도구들을 적용하여 선수들의 실력을 더 잘 이해할 수 있습니다.

예를 들어, 다음 내용을 살펴보겠습니다 데이비드 오티즈선수 전체 경력 동안의 타석 대비 홈런(HR) 비율을 계산하고, 이를 선수의 나이에 따른 변화로 그래프에 표시합니다. 선수의 타격 기록은 "타격" 테이블에서, 이름, 생년월일 등은 "기본 정보" 테이블에서 확인할 수 있습니다. SQL을 사용하여 두 테이블을 연결하고 데이비드 오티즈의 데이터를 선택하는 것은 간단하며, 그의 경력 홈런 추세는 타석 대비 홈런 비율(HR/AB)을 계산하여 특정 연도의 그의 나이와 함께 그래프로 나타낼 수 있습니다

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

"실행" 버튼을 누르면, 이 쿼리가 Cloud SQL 인스턴스로 전송되고, 그 결과 데이터가 거의 즉시 테이블 형태로 반환됩니다. 그 후, 결과 테이블 보기에서 "그래프" 버튼을 클릭하여 데이터를 그래프로 표시하고, 해당 직원의 연령에 따른 경력 및 인사 관련 추세를 시각화할 수 있습니다

보시다시피, 새로운 Google Cloud SQL 인스턴스를 Altova DatabaseSpy 또는 다른 Altova 개발 도구(XMLSpy, MapForce, MobileTogether, StyleVision, UModel 등)를 통해 매우 쉽게 연결하고 활용할 수 있습니다. 또한, MapForce 서버를 통해 데이터 통합 및 변환 프로젝트에 Cloud SQL 인스턴스를 쉽게 활용할 수 있습니다.

향후 블로그 게시글에서는 이 Cloud SQL 인스턴스에 모바일 앱을 연결하고, Lahman 야구 데이터베이스를 기반으로 편리한 모바일 앱 인터페이스를 구축하는 것이 얼마나 쉬운지 살펴보겠습니다.