도입 배경

많은 분들이 Google sheet(G-sheet)에서 정보를 실시간으로 저장, 변경하는 관리를 하고 있다.

서버에 저장된 정보와 Join해서 사용해서 Redash로 결과를 보여야하는 일이 생겼다.

처음 생각한 방안은 3가지가 있었다.

  1. Redash G-sheet 불러오는 기능 → 다른 테이블과 join 불가능
  2. 쿼리에 case when으로 값을 추가하기 → 매번 쿼리를 바꿔야되고 번거롭고 실수가 생길 수 있다.
  3. Python으로 G-Sheet API로 불러서 airflow로 BigQuery에 적재하는 방법 → 앞으로 google sheet가 추가될 때마다 python script와 테이블을 생성해야하는 번거로움이 있었음

추가적으로 redash community에서도 찾아봤는데 관련 자료를 못찾았다.

다른 팀도 쉽게 따라할 수 있으면서 조금 더 효율적으로 하는 방법은 없을까?

어떻게 하면 될까?

BigQuery를 활용해볼까?

현재 사내 분석 DB는 BigQuery이고, Redash를 대시보드로 사용하고 있다.

테이블 join을 하려면 테이블 생성은 불가피하다고 생각했다. (그러면 BigQuery는 쓰는게 맞겠네..)

찾아보니 BigQuery에서 G-Sheet를 연동하는 기능이 있었다. (같은 Google 플랫폼이기 때문에 가능하다고 생각했었다.)

그리고 Redash에서도 BigQuery 데이터를 불러올 수 있다. (현재 그렇게 쓰고 있음)

그렇다면 G-sheet → BigQuery → Redash도 가능할 수 밖에 없다.