구글 클라우드 플랫폼(GCP)의 가장 강력한 무기이자, 데이터 엔지니어링과 분석 분야에서 업계 표준으로 자리 잡은 빅쿼리(BigQuery)
1.빅쿼리(BigQuery)란?
구글이 내부에서 엄청난 양의 로그 데이터를 처리하기 위해 쓰던 '드레멜(Dremel)'이라는 기술을 외부 사용자들이 쓸 수 있게 상용화한 초고속·대용량 데이터 웨어하우스(Data Warehouse) 서비스 이다.
쉽게 말해, "엄청나게 거대한 엑셀 파일들을 모아두고, 아무리 양이 많아도 눈 깜짝할 사이에 원하는 데이터를 찾아주는 창고"
2. 빅쿼리의 압도적인 강점 3가지
1) 서버리스 (Serverless) — "서버 관리가 필요 없다"
일반적인 데이터베이스는 데이터가 늘어나면 서버의 컴퓨터 사양을 업그레이드(Scale-up)하거나 서버 대수를 늘리는(Scale-out) 복잡한 엔지니어링 작업이 필요한데 빅쿼리는 서버관리가 필요 없다.
빅쿼리는 사용자가 서버를 전혀 신경 쓸 필요가 없다. 구글이 알아서 수천 대의 컴퓨터를 동원해 연산을 처리하므로, 사용자는 오직 데이터와 쿼리문(SQL)에만 집중하면 된다.
2) 상상을 초월하는 속도 (테라바이트를 몇 초 만에)
일반 데이터베이스에 수십억 건의 데이터(테라바이트 단위를 넘어 페타바이트 단위)를 넣고 검색하면 서버가 멈추거나 몇 시간이 걸린다.
빅쿼리는 데이터를 컬럼(Column, 열) 기반으로 저장하고, 수천 대의 구글 서버가 동시에 나누어 계산(분산 컴퓨팅)하기 때문에, 수십억 건의 데이터도 단 몇 초 만에 분석해 낸다.
3) 친숙한 표준 SQL 지원
아무리 혁신적인 기술이라도 사용법이 어려우면 쓸 수 없겠죠. 빅쿼리는 개발자나 데이터 분석가들이 기존에 쓰던 표준 SQL(데이터베이스 조회 언어)을 그대로 사용한다.
SELECT * FROM 테이블 WHERE 조건 같은 기본 문법만 알면 누구나 이 엄청난 성능을 바로 활용할 수 있다.
3. 비용 산정 방식 (⚠️ 주의할 점)
빅쿼리는 서버를 켜놓은 시간에 돈을 받지 않고, "내가 쿼리를 날려서 스캔한 데이터의 양"에 따라 비용을 청구한다. (기본적으로 매달 1TB의 쿼리 스캔은 무료로 제공된다.)
💡 실무 팁: 만약 100TB짜리 데이터 정렬창고에서 SELECT * (모든 데이터 다 가져와)를 무심코 실행하면 순식간에 수십만 원의 비용이 청구될 수 있다. 그래서 실무에서는 필요한 열(Column)만 콕 집어서 조회하는 습관이 필수적임
4. 리눅스 / 개발자 과정과의 연결고리
리눅스 환경이나 파이썬(PyCharm) 코드에서 "빅쿼리 라이브러리"를 설치하면, 서버에서 발생하는 수많은 로그 데이터를 빅쿼리로 바로 쏘아 보낼 수 있다. 그렇게 쌓인 빅데이터를 빅쿼리로 분석하고, 그 결과를 바탕으로 머신러닝(AI) 모델을 돌리는 것이 현대 백엔드 / 데이터 개발의 표준적인 흐름이다.
5. 기 타
SQL 기본문법을 통해 데이터를 분석해 내는 인공지능 기능을 사용함에 있어서 관련된 데이타 제공에 대한 보안성의 문제는 간과해서는 안될 문제라고 생각한다. 일반적인 빅데이터 분석에 빅쿼리를 활용하는 것은 기업체에서 머신러닝을 어떤 방법으로 활용하는지도 연계해서 생각해 봐야 한다.
어차피 데이터 자동분석도 비용과 연관되어 있는 문제로서 기업 입장에서는 무조건 도입해서 사용하기에는 부담스러울 수도 있다. 그러나 빅데이터 분석이 아주 빈번한 곳에서 3인이 분석하던 것을 빅쿼리 하나가 하고 있다면 기업에서는 도입하지 않을 이유가 없다고 생각한다. 하루가 빠르게 변하고 있는 AI 시대에 빅데이터 분석에 대한 생각을 다시한번 하게 된다. 그러나 기본에 충실하는 "도전은 계속된다."