G-sheet → BigQuery → Redash 연동

Smiling Sammy·2023년 1월 16일
0
post-thumbnail

조금 더 쉽게 요약한 글

배경

  • Google sheet(G-sheet)에서 작업된 결과를 Redash에서 다른 테이블과 연동하고 싶었음 (시각화 + 결과 공유 때문..)
  • Redash에서 G-sheet 결과만 볼 수 있는 방법은 있지만, 다른 테이블과 함께 쓰는 방법을 알고 싶었음
  • 이전에 BigQuery에서 G-sheet를 테이블로 만들어서 쿼리를 만든적이 있어서 redash에도 부를 수 있지 않을까 생각했음

요약

  1. G-sheet 테이블 생성
  2. BigQuery에 연동
    1. 경로 및 스키마 설정 등
  3. BigQuery redash 계정 연동 (f. IAM)
  4. redash 권한 계정 G-sheet에 추가
  5. Redash 확인

방법

G-Sheet 생성

BigQuery Table 생성

ADD DATA 클릭

Google Cloud Storage 클릭

Source, Destination 작성

  • create table from : Drive 선택
  • select drive uri: G-sheet copy link

  • File format: Google sheet 선택
  • project: 데이터를 저장할 bigquery project 선택
  • dataset: 데이터를 저장할 bigquery dataset 선택
  • table: 원하는 테이블명 설정

Schema 설정

  • Auto detect: 칼럼명, 데이터 타입 자동 설정

    • 영어 칼럼명은 잘 반영되는 것 같음

    • 한글 칼럼명은 따로 설정해야할듯!

      • 칼럼명은 string 기본 포맷으로, 데이터 타입은 모두 string으로 지정함

  • type 지정

    • "+" 버튼을 눌러서 직접 스키마 설정

  • Advanced options
    - header rows to skip “1”로 지정 (헤더가 있는 경우만! 없는 경우는 0)

  • Query 결과 확인

권한 추가

  • Google Cloud IAM 계정을 확인한다.
    • 만약 기존에 redash에 연동된 계정이 있다면 해당 계정 참고
    • 혹시 Redash에 BigQuery가 연동되지 않았다?
      • IAM에서 계정을 새로 생성한다.
      • 이후 과정은 여기를 참고해서 설정하면 된다.
  • 위 계정(=redash BigQuery 접근 권한 계정)이 아래 두가지 권한이 있는지 확인 (없으면 부여한다)
    • BigQuery Data Viewer
    • BigQuery User
  • redash BigQuery 접근 권한 계정을 G-Sheet에 부여
    • Editor, Viewer 둘 다 가능

  • 권한을 부여하지 않고 redash에서 조회하면 아래와 같은 에러가 발생
    (Access Denied: BigQuery BigQuery: Permission denied while getting Drive credentials)

Redash 조회 test

  • 아래와 같이 redash에서 잘 보이는 것을 확인 할 수 있습니다.

참고

  • BigQuery 데이터 타입 설정 오류
    • 간혹 G-Sheet에서 칼럼별 데이터 형식이 맞지 않는 경우가 있음
      • DB의 경우 스키마를 선정하고 데이터를 넣기 때문에 이런 일이 없음
      • G-Sheet는 자유로운 형식이라 금액 칸인데 문자가 있는 경우도 있음
    • 이러한 경우, 다시 칼럼명을 하나하나 설정해야하는 번거로움이 존재;;
    • 해결 방법
      • [비추천] G-Sheet에서 데이터 전처리 작업을 진행한 후, BigQuery 테이블 생성
      • [추천] 모든 칼럼 타입을 string으로 지정
        • 이후 redash에서 cast로 칼럼 타입을 변경하는 것이 정신 건강에 이로움..
  • Redash BigQuery 연동 방법
profile
Data Scientist, Data Analyst

0개의 댓글