OkBublewrap

2025-07-22 TIL (BigQuery-DBeaver) 본문

Today I Learning

2025-07-22 TIL (BigQuery-DBeaver)

옥뽁뽁 2025. 7. 22. 22:38

📅 2025-07-22 | TIL (Today I Learned)

📋 하루 요약

  • 빅쿼리를 쓰다 UI 때문에 DBeaver 연동
  • 결제 관련 문제 해결 ➜ 기다리기 싫어서 다른 계정으로 만듬.

 

⚡️ 회고

BigQuery - DBeaver 연동

IAM ➜ 서비스 계정 ➜ 서비스 계정 만들기

 

권한: BigQuery 관리자 선택

서비스계정 생성 완료

 

해당 서비스 계정 클릭 후 키 설정

키 추가 ➜ 새 키 만들기 ➜ JSON으로 만들기

IAM에서 BigQuery 관리자 권한 확인!!

 

DBeaver Connection

 

 

Test Connection ➜ Download dirver files

 

Connection test 확인

이제 해당 테이블이 있는지 확인 하면 된다.

+ 추가로 DB 작동구조가 달라 오류가 발생하는데 오토 커밋이 Defalut가 되어 있어야 한다.

+ EnableSession = 1

 

문제 상황

  • DBeaver에서 BigQuery 연결 후 단순 SELECT 쿼리를 실행했는데, 예상치 못한 에러 발생:
    sql
    `Transaction control statements are supported only in scripts or sessions`
  • WITH 절 포함한 쿼리, 단순 SELECT, 테스트용 쿼리에서도 동일한 에러 반복 발생.

 

원인 분석

  • BigQuery는 트랜잭션을 script 또는 session 모드에서만 지원하지만,
    DBeaver + Simba JDBC 드라이버 조합은 내부적으로 BEGIN을 암묵적으로 실행하는 경우가 있음.
  • Auto-commit 설정이 되어 있어도 세션 설정이 완전히 반영되지 않으면 동일한 에러가 계속 발생.

 

시도한 해결책

  • Window ➜ 연결유형
    • Auto-commit by default 설정 적용
  • Edits Connection ➜ Driver properties ➜ + 
    • AutoCommit = true
    • EnableSession = 1

 

공부 요약

list, struct, unnest

list: python(list)

struct: python(dict)

unnest: python(explode)