| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- 컴활1급
- 교동짜뽕
- 컴퓨터활용능력
- 공을기
- geopandas
- scalar type
- jupyter notebook
- 홍콩식
- 라자장면
- UNNEST
- 미식가돈카츠
- 삼성역
- 3 in 1
- 통목살
- Python for Data Analysis
- string분리
- Columnar DB
- 경화루
- PYTHON 기초
- bigquery
- Data Analysis
- 안심가츠
- 컴활
- 빅쿼리
- Control Flow
- IP주소 변환
- SQL
- Python입문
- 리버스 시어링
- 한우트러플버거
- Today
- Total
maillard life
[BigQuery] 빅쿼리 알쓸신팁 1 본문
1. CURERNT_DATE()
예약 쿼리, 스케줄러 작성할 때 자주 사용하는 함수이다.
초창기에 요걸로 실수한 적이 있어서 지금은 꼭 기억하고 있다.
이외에도 [TIMEZONE]이 optional인 함수가 있다면 대부분 동일할 것이다.
SELECT
CURRENT_TIMESTAMP() c_ts,
CURRENT_DATETIME() c_dt,
CURRENT_DATE() c_ymd,
FROM `bigquery-public-data.covid19_italy.data_by_region`
GROUP BY 1

위처럼 기본적으로 UTC 시간대로 보여준다.
만약 저장된 데이터가 KST 기준이라면? 대충 어떤 문제가 생길지 예상이 되지 않는가?
한국 시간대(KST)를 사용하고 싶으면 "Asia/Seoul"을 추가해주면 된다.
(참고) CURRENT_TIMESTAMP()는 약간 방식이 다르므로 기억해두면 좋다.
SELECT
#CURRENT_TIMESTAMP("Asia/Seoul") c_ts,
EXTRACT(DATETIME FROM CURRENT_TIMESTAMP() AT TIME ZONE "Asia/Seoul") ex_ymd,
CURRENT_DATETIME("Asia/Seoul") c_dt,
CURRENT_DATE("Asia/Seoul") c_ymd,
FROM `bigquery-public-data.covid19_italy.data_by_region`
GROUP BY 1

타임스탬프 함수 | BigQuery | Google Cloud
의견 보내기 타임스탬프 함수 BigQuery는 여러 TIMESTAMP 함수를 지원합니다. 중요: 이러한 함수를 사용하려면 먼저 타임스탬프가 저장 및 표시되는 형식 간의 차이점과 이러한 형식 간 변환에 시간
cloud.google.com
2. EXTERNAL_QUERY
빅쿼리에 올리자니 여의치 않은데 어쨌든 데이터는 필요할 때, 외부 연결하여 EXTERNAL_QUERY 를 사용하면 편리하다.
그런데 기본 폼으로는 한줄 쓰기 밖에 지원하지 않아 불편하다.
# 얘가 기본 형태
SELECT *
FROM EXTERNAL_QUERY("projects/프로젝트명/locations/위치/connections/컨넥터명",
"SELECT * FROM INFORMATION_SCHEMA.TABLES;")
#==================================
# 얘는 에러를 뱉는다
SELECT *
FROM EXTERNAL_QUERY("projects/프로젝트명/locations/위치/connections/컨넥터명",
"SELECT *
FROM INFORMATION_SCHEMA.TABLES;")
위처럼 EXTERNAL로 돌릴 쿼리에 줄바꿈을 넣어주고 싶으면 " "(쌍따옴표 한 쌍)을 ''' '''(따옴표 세 쌍)으로 바꿔주면 된다.
SELECT *
FROM EXTERNAL_QUERY("projects/프로젝트명/locations/위치/connections/컨넥터명",
'''SELECT *
FROM INFORMATION_SCHEMA.TABLES;''')
이러면 EXTERNAL 안쪽 쿼리도 일반적인 형태로 자유롭게 작성할 수 있다.
3. 데이터 위치(Region)
GCP의 데이터는 기본적으로 리전 별로 저장된다.
그러다보니 동일한 형태의 데이터인데 다른 리전 별로 저장된 경우 굳이 다른 탭을 열어서 작업해야 한다.
아래 방법을 사용하면 원래 탭에서도 작업이 가능하다.



팁이 쌓일 때 마다 추가하겠습니다
'Data, What? > SQL' 카테고리의 다른 글
| [BigQuery] 빅쿼리 알쓸신팁 2 (0) | 2022.06.03 |
|---|---|
| [BigQuery] 하나의 String을 여러 row로 분리 (0) | 2022.04.19 |
| [BigQuery]SQL로 소수 구하기 (0) | 2022.03.16 |